Skip to content

Commit b0c790e

Browse files
committed
WIP - trying gem controller, initializer, form, fix migration
1 parent 190d5bc commit b0c790e

File tree

10 files changed

+247
-211
lines changed

10 files changed

+247
-211
lines changed

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1150,7 +1150,7 @@ GEM
11501150
tins (~> 1.0)
11511151
terminal-table (4.0.0)
11521152
unicode-display_width (>= 1.1.1, < 4)
1153-
thor (1.3.2)
1153+
thor (1.4.0)
11541154
thread_safe (0.3.6)
11551155
tilt (2.6.1)
11561156
timeout (0.4.3)

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@
3838
1. Start solr in new tab: ```solr_wrapper -d solr/config/ --collection_name hydra-development```
3939
1. Start redis in new tab: ```redis-server```
4040
1. Run the database migrations: `bundle exec rake db:migrate`
41-
1. Start the rails server in new tab: `rails server`
41+
1. Start the rails server in new tab: `bundle exec rails server`
4242
1. Visit the site at [http://localhost:3000] (http://localhost:3000)
4343
1. Create default admin set: ```bin/rails hyrax:default_admin_set:create```
4444
1. Create default collection: ```bundle exec rails hyrax:default_collection_types:create```
4545
1. Load workflows: ```bin/rails hyrax:workflow:load```
4646
* Creating default admin set should also load the default workflow. You can load, any additional workflows defined, using this command.
47-
1. Assigning admin role to user from `rails console`:
47+
1. Assigning admin role to user from `bundle exec rails console`:
4848
* ```admin = Role.find_or_create_by(name: "admin")```
4949
* ```admin.users << User.find_by_user_key( "your_admin_users_email@fake.email.org" )```
5050
* ```admin.save```

app/controllers/bulkrax/exporters_controller.rb

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# # frozen_string_literal: true
2+
#
3+
# require_dependency "bulkrax/application_controller"
4+
# gem_dir = Gem::Specification.find_by_name("bulkrax").gem_dir
5+
# require "#{gem_dir}/app/controllers/bulkrax/exporters_controller.rb"
6+
#
7+
# module Bulkrax
8+
# class ExportersController < ::Bulkrax::ExportersController
9+
# include Hyrax::ThemedLayoutController
10+
# include Bulkrax::DownloadBehavior
11+
#
12+
# validate :must_have_export_source
13+
#
14+
# before_action :authenticate_user!
15+
# before_action :ensure_admin!
16+
# before_action :set_exporter, only: %i[show edit update destroy]
17+
#
18+
# with_themed_layout 'dashboard'
19+
#
20+
# # Patch the DataTables Ajax endpoint to never 500 if exporter or entries are missing
21+
# def entry_table
22+
# exporter = Bulkrax::Exporter.find_by(id: params[:exporter_id])
23+
# # Defensive: handle exporter not found or no entries (e.g., pending export)
24+
# if exporter.nil? || exporter.entries.empty?
25+
# Rails.logger.warn("[Bulkrax] No entries found for Exporter #{params[:exporter_id]} -- returning empty DataTables result.")
26+
# render json: {
27+
# draw: params[:draw].to_i,
28+
# recordsTotal: 0,
29+
# recordsFiltered: 0,
30+
# data: []
31+
# }
32+
# else
33+
# # Defer to the original Bulkrax implementation for normal cases
34+
# super
35+
# end
36+
# end
37+
#
38+
# private
39+
#
40+
# def ensure_admin!
41+
# authorize! :read, :admin_dashboard
42+
# end
43+
#
44+
# def must_have_export_source
45+
# if [settings['export_source_collection'], settings['export_source_worktype'], settings['export_source_importer']].all?(&:blank?)
46+
# errors.add(:base, "You must select a source to export from (collection, worktype, or importer).")
47+
# end
48+
# end
49+
#
50+
# # Extend Bulkrax’s built-in exporter_params to allow our extra fields
51+
# def exporter_params
52+
# params.require(:exporter).permit(
53+
# :name,
54+
# :user_id,
55+
# :export_type,
56+
# :export_from,
57+
# :limit,
58+
# :work_visibility,
59+
# :workflow_status,
60+
# :parser_klass,
61+
# # Our custom exporter form fields:
62+
# :export_source_importer,
63+
# :export_source_collection,
64+
# :export_source_worktype,
65+
# :date_filter,
66+
# :start_date,
67+
# :finish_date,
68+
# settings: {},
69+
# )
70+
# end
71+
# end
72+
# end
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# app/controllers/exporters_controller.rb
2+
class ExportersController < Bulkrax::ExportersController
3+
def exporter_params
4+
params.require(:exporter).permit(
5+
:name, :user_id, :export_type, :export_from, :export_source_importer,
6+
:export_source_collection, :export_source_worktype,
7+
:parser_klass, :limit, :generated_metadata, :include_thumbnails,
8+
:date_filter, :start_date, :finish_date, :work_visibility, :workflow_status
9+
)
10+
end
11+
end
File renamed without changes.

app/views/bulkrax/exporters/show.html.erb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@
102102
</ul>
103103
<!-- Tab panes -->
104104
<div class="tab-content outline">
105-
<%= render partial: 'bulkrax/shared/work_entries_tab', locals: { item: @exporter, entries: @work_entries } %>
106-
<%= render partial: 'bulkrax/shared/collection_entries_tab', locals: { item: @exporter, entries: @collection_entries } %>
107-
<%= render partial: 'bulkrax/shared/file_set_entries_tab', locals: { item: @exporter, entries: @file_set_entries } %>
105+
<%= render partial: 'bulkrax/shared/entries_tab', locals: { item: @exporter, entries: @work_entries, entry_type: :work } %>
106+
<%= render partial: 'bulkrax/shared/entries_tab', locals: { item: @exporter, entries: @collection_entries, entry_type: :collection } %>
107+
<%= render partial: 'bulkrax/shared/entries_tab', locals: { item: @exporter, entries: @file_set_entries, entry_type: :file_set } %>
108108
</div>
109109
<br>
110110
<%= link_to 'Edit', edit_exporter_path(@exporter) %>

0 commit comments

Comments
 (0)