Module: ElFinderFtp::ActionClass

Defined in:
lib/el_finder_ftp/action.rb

Instance Method Summary collapse

Instance Method Details

#el_finder_ftp(name = :elfinder, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/el_finder_ftp/action.rb', line 11

def el_finder_ftp(name = :elfinder, &block)
  self.send(:define_method, name) do
    h, r = ElFinderFtp::Connector.new(instance_eval(&block)).run(params)
    headers.merge!(h)
    if r.include?(:file_data)
      send_data r[:file_data], type: r[:mime_type], disposition: r[:disposition], filename: r[:filename]
    else
      if browser.ie8? || browser.ie9?
        # IE 8 and IE 9 don't accept application/json as a response to a POST in some cases:
        # http://blog.degree.no/2012/09/jquery-json-ie8ie9-treats-response-as-downloadable-file/
        # so we send text/html instead
        response = (r.empty? ? {:nothing => true} : {:text => r.to_json})
      else
        response = (r.empty? ? {:nothing => true} : {:json => r})
      end

      render response, :layout => false
    end
  end
end