Module: ActiveScaffold::Actions::Export

Defined in:
lib/active_scaffold/actions/export.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/active_scaffold/actions/export.rb', line 3

def self.included(base)
  base.before_filter :export_authorized?, :only => [:export]
  base.before_filter :init_session_var

  as_export_plugin_path = File.join(ActiveScaffold::Config::Export.plugin_directory, 'frontends', 'default' , 'views')
  
  base.add_active_scaffold_path as_export_plugin_path
end

Instance Method Details

#exportObject

if invoked directly, will use default configuration



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/active_scaffold/actions/export.rb', line 30

def export
  export_config = active_scaffold_config.export
  if params[:export_columns].nil?
    export_columns = {}
    export_config.columns.each { |col|
      export_columns[col.name.to_sym] = 1
    }
    options = {
      :export_columns => export_columns,
      :full_download => export_config.default_full_download.to_s,
      :delimiter => export_config.default_delimiter,
      :skip_header => export_config.default_skip_header.to_s
    }
    params.merge!(options)
  end

  find_items_for_export

  response.headers['Content-Disposition'] = "attachment; filename=#{export_file_name}"
  render :partial => 'export', :layout => false, :content_type => Mime::CSV, :status => response_status
end

#init_session_varObject



12
13
14
# File 'lib/active_scaffold/actions/export.rb', line 12

def init_session_var
  session[:search] = params[:search] if !params[:search].nil? || params[:commit] == as_('Search')
end

#show_exportObject

display the customization form or skip directly to export



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/active_scaffold/actions/export.rb', line 17

def show_export
  export_config = active_scaffold_config.export
  respond_to do |wants|
    wants.html do
      render(:partial => 'show_export', :layout => true)
    end
    wants.js do
      render(:partial => 'show_export', :layout => false)
    end
  end
end