Class: Bulkrax::ExportersController

Inherits:
ApplicationController show all
Includes:
DownloadBehavior, Hyrax::ThemedLayoutController
Defined in:
app/controllers/bulkrax/exporters_controller.rb

Instance Method Summary collapse

Methods included from DownloadBehavior

#content_head, #content_options, #download_content_type, #file, #file_name, #prepare_file_headers, #send_content, #send_file_contents

Instance Method Details

#createObject

POST /exporters



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'app/controllers/bulkrax/exporters_controller.rb', line 55

def create
  @exporter = Exporter.new(exporter_params)
  field_mapping_params

  if @exporter.save
    if params[:commit] == 'Create and Export'
      # Use perform now for export
      Bulkrax::ExporterJob.perform_later(@exporter.id)
      message = 'Exporter was successfully created. A download link will appear once it completes.'
    else
      message = 'Exporter was successfully created.'
    end
    redirect_to exporters_path, notice: message
  else
    render :new
  end
end

#destroyObject

DELETE /exporters/1



90
91
92
93
# File 'app/controllers/bulkrax/exporters_controller.rb', line 90

def destroy
  @exporter.destroy
  redirect_to exporters_url, notice: 'Exporter was successfully destroyed.'
end

#downloadObject

GET /exporters/1/download



96
97
98
99
# File 'app/controllers/bulkrax/exporters_controller.rb', line 96

def download
  @exporter = Exporter.find(params[:exporter_id])
  send_content
end

#editObject

GET /exporters/1/edit



43
44
45
46
47
48
49
50
51
52
# File 'app/controllers/bulkrax/exporters_controller.rb', line 43

def edit
  if defined?(::Hyrax)
    add_exporter_breadcrumbs
    add_breadcrumb @exporter.name, bulkrax.exporter_path(@exporter.id)
    add_breadcrumb 'Edit'
  end

  # Correctly populate export_source_collection input
  @collection = Collection.find(@exporter.export_source) if @exporter.export_source.present? && @exporter.export_from == 'collection'
end

#indexObject

GET /exporters



15
16
17
18
19
20
# File 'app/controllers/bulkrax/exporters_controller.rb', line 15

def index
  # NOTE: We're paginating this in the browser.
  @exporters = Exporter.order(created_at: :desc).all

  add_exporter_breadcrumbs if defined?(::Hyrax)
end

#newObject

GET /exporters/new



35
36
37
38
39
40
# File 'app/controllers/bulkrax/exporters_controller.rb', line 35

def new
  @exporter = Exporter.new
  return unless defined?(::Hyrax)
  add_exporter_breadcrumbs
  add_breadcrumb 'New'
end

#showObject

GET /exporters/1



23
24
25
26
27
28
29
30
31
32
# File 'app/controllers/bulkrax/exporters_controller.rb', line 23

def show
  if defined?(::Hyrax)
    add_exporter_breadcrumbs
    add_breadcrumb @exporter.name
  end

  @work_entries = @exporter.entries.where(type: @exporter.parser.entry_class.to_s).page(params[:work_entries_page]).per(30)
  @collection_entries = @exporter.entries.where(type: @exporter.parser.collection_entry_class.to_s).page(params[:collections_entries_page]).per(30)
  @file_set_entries = @exporter.entries.where(type: @exporter.parser.file_set_entry_class.to_s).page(params[:file_set_entries_page]).per(30)
end

#updateObject

PATCH/PUT /exporters/1



74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'app/controllers/bulkrax/exporters_controller.rb', line 74

def update
  field_mapping_params
  if @exporter.update(exporter_params)
    if params[:commit] == 'Update and Re-Export All Items'
      Bulkrax::ExporterJob.perform_later(@exporter.id)
      message = 'Exporter was successfully updated. A download link will appear once it completes.'
    else
      'Exporter was successfully updated.'
    end
    redirect_to exporters_path, notice: message
  else
    render :edit
  end
end