geoblacklight_admin 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +27 -3
  3. data/Rakefile +30 -12
  4. data/app/assets/javascripts/geoblacklight_admin.js +1 -0
  5. data/app/assets/stylesheets/geoblacklight_admin/_core.scss +5 -0
  6. data/app/assets/stylesheets/geoblacklight_admin/modules/_chosen.scss +425 -0
  7. data/app/controllers/admin/admin_controller.rb +4 -2
  8. data/app/controllers/admin/advanced_search_controller.rb +123 -103
  9. data/app/controllers/admin/api_controller.rb +123 -108
  10. data/app/controllers/admin/bookmarks_controller.rb +4 -4
  11. data/app/controllers/admin/bulk_actions_controller.rb +9 -4
  12. data/app/controllers/admin/concerns/upload_util.rb +2 -0
  13. data/app/controllers/admin/document_accesses_controller.rb +10 -4
  14. data/app/controllers/admin/document_assets_controller.rb +14 -11
  15. data/app/controllers/admin/document_downloads_controller.rb +12 -10
  16. data/app/controllers/admin/documents_controller.rb +16 -8
  17. data/app/controllers/admin/elements_controller.rb +6 -5
  18. data/app/controllers/admin/form_elements_controller.rb +4 -4
  19. data/app/controllers/admin/ids_controller.rb +107 -87
  20. data/app/controllers/admin/import_documents_controller.rb +1 -1
  21. data/app/controllers/admin/imports_controller.rb +7 -3
  22. data/app/controllers/admin/mappings_controller.rb +6 -4
  23. data/app/controllers/admin/notifications_controller.rb +1 -1
  24. data/app/controllers/admin/search_controller.rb +1 -1
  25. data/app/controllers/admin/users_controller.rb +1 -1
  26. data/app/helpers/form_input_helper.rb +4 -4
  27. data/app/helpers/geoblacklight_admin_helper.rb +1 -1
  28. data/app/jobs/export_job.rb +2 -1
  29. data/app/models/admin/bookmark.rb +18 -0
  30. data/app/models/api_search_builder.rb +3 -1
  31. data/app/models/document/bbox_validator.rb +9 -5
  32. data/app/models/document/date_range_validator.rb +13 -10
  33. data/app/models/document/geom_validator.rb +4 -2
  34. data/app/models/document.rb +15 -7
  35. data/app/models/element.rb +9 -7
  36. data/app/models/form_control.rb +2 -0
  37. data/app/models/form_element.rb +2 -0
  38. data/app/models/form_feature.rb +2 -0
  39. data/app/models/form_group.rb +2 -0
  40. data/app/models/form_header.rb +2 -0
  41. data/app/models/geoblacklight_admin/schema.rb +5 -2
  42. data/app/models/geoblacklight_admin.rb +2 -0
  43. data/app/models/import/csv_duplicates_validator.rb +2 -1
  44. data/app/models/import/csv_header_validator.rb +2 -1
  45. data/app/models/import.rb +4 -7
  46. data/app/models/user.rb +1 -1
  47. data/app/services/export_csv_service.rb +5 -1
  48. data/app/views/admin/advanced_search/facets.json.jbuilder +9 -8
  49. data/app/views/admin/advanced_search/index.json.jbuilder +8 -7
  50. data/app/views/admin/api/_field.json.jbuilder +1 -1
  51. data/app/views/admin/api/fetch.json.jbuilder +8 -7
  52. data/app/views/admin/api/index.json.jbuilder +8 -7
  53. data/app/views/admin/bookmarks/index.html.erb +2 -2
  54. data/app/views/admin/bulk_actions/index.html.erb +3 -3
  55. data/app/views/admin/bulk_actions/show.html.erb +1 -1
  56. data/app/views/admin/document_accesses/_form.html.erb +1 -1
  57. data/app/views/admin/document_accesses/destroy_all.html.erb +2 -2
  58. data/app/views/admin/document_accesses/edit.html.erb +1 -1
  59. data/app/views/admin/document_accesses/import.html.erb +2 -2
  60. data/app/views/admin/document_accesses/index.html.erb +9 -9
  61. data/app/views/admin/document_accesses/new.html.erb +1 -1
  62. data/app/views/admin/document_downloads/_form.html.erb +1 -1
  63. data/app/views/admin/document_downloads/destroy_all.html.erb +1 -1
  64. data/app/views/admin/document_downloads/edit.html.erb +2 -3
  65. data/app/views/admin/document_downloads/import.html.erb +1 -1
  66. data/app/views/admin/document_downloads/index.html.erb +9 -9
  67. data/app/views/admin/document_downloads/new.html.erb +1 -1
  68. data/app/views/admin/document_downloads/show.html.erb +2 -2
  69. data/app/views/admin/documents/_document_bookmark.html.erb +1 -1
  70. data/app/views/admin/documents/_form_nav.html.erb +1 -1
  71. data/app/views/admin/documents/_json_btaa_aardvark.jbuilder +1 -3
  72. data/app/views/admin/documents/edit.html.erb +1 -1
  73. data/app/views/admin/documents/features/_multiple_download_links.html.erb +2 -2
  74. data/app/views/admin/documents/index.html.erb +2 -4
  75. data/app/views/admin/documents/versions.html.erb +1 -1
  76. data/app/views/admin/elements/_element.json.jbuilder +4 -1
  77. data/app/views/admin/elements/_form.html.erb +1 -1
  78. data/app/views/admin/elements/edit.html.erb +2 -2
  79. data/app/views/admin/elements/index.html.erb +3 -3
  80. data/app/views/admin/elements/index.json.jbuilder +2 -0
  81. data/app/views/admin/elements/new.html.erb +1 -1
  82. data/app/views/admin/elements/show.html.erb +6 -6
  83. data/app/views/admin/elements/show.json.jbuilder +2 -0
  84. data/app/views/admin/form_elements/_form.html.erb +1 -1
  85. data/app/views/admin/form_elements/_form_element.json.jbuilder +2 -0
  86. data/app/views/admin/form_elements/edit.html.erb +2 -2
  87. data/app/views/admin/form_elements/index.html.erb +1 -1
  88. data/app/views/admin/form_elements/index.json.jbuilder +2 -0
  89. data/app/views/admin/form_elements/new.html.erb +1 -1
  90. data/app/views/admin/form_elements/show.html.erb +2 -2
  91. data/app/views/admin/form_elements/show.json.jbuilder +2 -0
  92. data/app/views/admin/ids/fetch.json.jbuilder +8 -7
  93. data/app/views/admin/ids/index.json.jbuilder +3 -2
  94. data/app/views/admin/import_documents/show.html.haml +1 -1
  95. data/app/views/admin/imports/_import.json.jbuilder +2 -1
  96. data/app/views/admin/imports/_show_failed_tab.html.erb +2 -2
  97. data/app/views/admin/imports/_show_success_tab.html.erb +1 -1
  98. data/app/views/admin/imports/edit.html.erb +3 -3
  99. data/app/views/admin/imports/index.html.erb +3 -3
  100. data/app/views/admin/layouts/application.html.erb +4 -4
  101. data/app/views/admin/mappings/_form.html.erb +1 -1
  102. data/app/views/admin/mappings/_mapping.json.jbuilder +2 -1
  103. data/app/views/admin/mappings/edit.html.erb +2 -2
  104. data/app/views/admin/mappings/new.html.erb +1 -1
  105. data/app/views/admin/mappings/show.html.erb +2 -2
  106. data/app/views/admin/notifications/index.html.erb +3 -3
  107. data/app/views/admin/search/index.html.erb +2 -2
  108. data/app/views/admin/shared/_navbar.html.erb +8 -3
  109. data/app/views/catalog/_show_gbl_admin.html.erb +3 -0
  110. data/config/routes.rb +37 -33
  111. data/db/migrate/20230316183001_add_geoblacklight_admin_gem.rb +408 -0
  112. data/db/seeds.rb +7 -5
  113. data/lib/generators/geoblacklight_admin/config_generator.rb +43 -31
  114. data/lib/generators/geoblacklight_admin/install_generator.rb +2 -3
  115. data/lib/generators/geoblacklight_admin/jobs_generator.rb +3 -2
  116. data/lib/generators/geoblacklight_admin/models_generator.rb +0 -1
  117. data/lib/generators/geoblacklight_admin/templates/_show_sidebar.html.erb +19 -0
  118. data/lib/generators/geoblacklight_admin/templates/_user_util_links.html.erb +1 -1
  119. data/lib/generators/geoblacklight_admin/templates/config/database.yml +9 -5
  120. data/lib/generators/geoblacklight_admin/templates/config/initializers/geoblacklight_admin.rb +1 -2
  121. data/lib/generators/geoblacklight_admin/templates/config/initializers/pagy.rb +150 -68
  122. data/lib/generators/geoblacklight_admin/templates/config/settings.yml +241 -0
  123. data/lib/generators/geoblacklight_admin/templates/package.json +1 -0
  124. data/lib/generators/geoblacklight_admin/views_generator.rb +0 -1
  125. data/lib/geoblacklight_admin/engine.rb +5 -6
  126. data/lib/geoblacklight_admin/version.rb +1 -1
  127. data/lib/geoblacklight_admin.rb +1 -1
  128. data/lib/tasks/geoblacklight_admin.rake +10 -6
  129. metadata +79 -48
  130. data/.editorconfig +0 -18
  131. data/.gitignore +0 -75
  132. data/.standard.yml +0 -4
  133. data/Gemfile +0 -59
  134. data/LICENSE +0 -21
  135. data/app/assets/images/.keep +0 -0
  136. data/app/controllers/admin/concerns/.keep +0 -0
  137. data/app/models/bookmark.rb +0 -17
  138. data/app/models/concerns/.keep +0 -0
  139. data/db/migrate/20230316183001_add_geoblacklight_admin.rb +0 -399
  140. data/geoblacklight_admin.gemspec +0 -67
  141. data/lib/generators/geoblacklight_admin/templates/.env.development.example +0 -28
  142. data/lib/generators/geoblacklight_admin/templates/.solr_wrapper.yml +0 -7
  143. data/lib/generators/geoblacklight_admin/templates/solr/snapshots/.keep +0 -0
  144. data/lib/tasks/.keep +0 -0
  145. data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -35
  146. data/template.rb +0 -16
@@ -1,5 +1,6 @@
1
- # -*- encoding : utf-8 -*-
2
- require 'blacklight/catalog'
1
+ # frozen_string_literal: true
2
+
3
+ require "blacklight/catalog"
3
4
 
4
5
  # Admin::ApiController
5
6
  module Admin
@@ -18,41 +19,43 @@ module Admin
18
19
  config.advanced_search ||= Blacklight::OpenStructWithHashAccess.new
19
20
 
20
21
  # Blacklight update to 7.0.0
21
- config.add_results_document_tool(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
22
+ config.add_results_document_tool(:bookmark, partial: "bookmark_control", if: :render_bookmarks_control?)
22
23
 
23
24
  config.add_results_collection_tool(:sort_widget)
24
25
  config.add_results_collection_tool(:per_page_widget)
25
26
  config.add_results_collection_tool(:view_type_group)
26
27
 
27
- config.add_show_tools_partial(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
28
+ config.add_show_tools_partial(:bookmark, partial: "bookmark_control", if: :render_bookmarks_control?)
28
29
  config.add_show_tools_partial(:email, callback: :email_action, validator: :validate_email_params)
29
- config.add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params)
30
+ config.add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action,
31
+ validator: :validate_sms_params)
30
32
 
31
- config.add_nav_action(:bookmark, partial: 'blacklight/nav/bookmark', if: :render_bookmarks_control?)
33
+ config.add_nav_action(:bookmark, partial: "blacklight/nav/bookmark", if: :render_bookmarks_control?)
32
34
  # Blacklight update to 7.0.0
33
35
 
34
36
  # Advanced config values
35
37
  config.advanced_search ||= Blacklight::OpenStructWithHashAccess.new
36
- config.advanced_search[:url_key] ||= 'advanced'
37
- config.advanced_search[:query_parser] ||= 'edismax'
38
+ config.advanced_search[:url_key] ||= "advanced"
39
+ config.advanced_search[:query_parser] ||= "edismax"
38
40
  config.advanced_search[:form_solr_parameters] ||= {}
39
- config.advanced_search[:form_solr_parameters]['facet.field'] ||= [Settings.FIELDS.PROVIDER, Settings.FIELDS.B1G_CODE, Settings.FIELDS.MEMBER_OF, Settings.FIELDS.IS_PART_OF, Settings.FIELDS.RESOURCE_CLASS, Settings.FIELDS.RESOURCE_TYPE, Settings.FIELDS.SUBJECT, Settings.FIELDS.THEME, Settings.FIELDS.FORMAT, Settings.FIELDS.SUPPRESSED, Settings.FIELDS.B1G_CHILD_RECORD, Settings.FIELDS.GEOREFERENCED]
40
- config.advanced_search[:form_solr_parameters]['facet.query'] ||= ''
41
- config.advanced_search[:form_solr_parameters]['facet.limit'] ||= -1
42
- config.advanced_search[:form_solr_parameters]['facet.sort'] ||= 'index'
41
+ config.advanced_search[:form_solr_parameters]["facet.field"] ||= [Settings.FIELDS.PROVIDER,
42
+ Settings.FIELDS.B1G_CODE, Settings.FIELDS.MEMBER_OF, Settings.FIELDS.IS_PART_OF, Settings.FIELDS.RESOURCE_CLASS, Settings.FIELDS.RESOURCE_TYPE, Settings.FIELDS.SUBJECT, Settings.FIELDS.THEME, Settings.FIELDS.FORMAT, Settings.FIELDS.SUPPRESSED, Settings.FIELDS.B1G_CHILD_RECORD, Settings.FIELDS.GEOREFERENCED]
43
+ config.advanced_search[:form_solr_parameters]["facet.query"] ||= ""
44
+ config.advanced_search[:form_solr_parameters]["facet.limit"] ||= -1
45
+ config.advanced_search[:form_solr_parameters]["facet.sort"] ||= "index"
43
46
 
44
47
  # Map views
45
48
  config.view.mapview.partials = [:index]
46
- config.view['split'].title = "List view"
47
- config.view['mapview'].title = "Map view"
49
+ config.view["split"].title = "List view"
50
+ config.view["mapview"].title = "Map view"
48
51
 
49
52
  config.raw_endpoint.enabled = true
50
53
 
51
54
  ## Default parameters to send to solr for all search-like requests. See also SolrHelper#solr_search_params
52
55
  config.default_solr_params = {
53
56
  :start => 0,
54
- 'q.alt' => '*:*',
55
- 'admin.api' => true
57
+ "q.alt" => "*:*",
58
+ "admin.api" => true
56
59
  }
57
60
 
58
61
  # @TODO
@@ -65,8 +68,8 @@ module Admin
65
68
  ## parameters included in the Blacklight-jetty document requestHandler.
66
69
  #
67
70
  config.default_document_solr_params = {
68
- :qt => 'document',
69
- :q => "{!raw f=#{Settings.FIELDS.B1G_GEOMG_ID} v=$id}"
71
+ qt: "document",
72
+ q: "{!raw f=#{Settings.FIELDS.B1G_GEOMG_ID} v=$id}"
70
73
  }
71
74
 
72
75
  # config.search_builder_class = Geoblacklight::SearchBuilder
@@ -80,7 +83,7 @@ module Admin
80
83
 
81
84
  # solr field configuration for document/show views
82
85
 
83
- config.show.display_type_field = 'format'
86
+ config.show.display_type_field = "format"
84
87
 
85
88
  # Custom GeoBlacklight fields which currently map to GeoBlacklight-Schema
86
89
  # v0.3.2
@@ -121,29 +124,29 @@ module Admin
121
124
  # config.add_facet_field 'date_created_drsim', :label => 'Date Created', :show => false
122
125
 
123
126
  # Date Created
124
- # config.add_facet_field 'time_period', label: 'Date Created', query: {
125
- # 'today' => { label: 'Today', fq: "date_created_drsim:[#{Date.today.beginning_of_day.to_time.strftime('%Y-%m-%dT%H:%M:%S')} TO #{Date.today.end_of_day.to_time.strftime('%Y-%m-%dT%H:%M:%S')}]"},
126
- # 'this_week' => { label: 'This week', fq: "date_created_drsim:[#{(Date.today.end_of_day - 1.week).to_time.strftime('%Y-%m-%dT%H:%M:%S')} TO #{Date.today.end_of_day.to_time.strftime('%Y-%m-%dT%H:%M:%S')}]"},
127
- # 'this_month' => { label: 'This month', fq: "date_created_drsim:[#{(Date.today.end_of_day - 1.month).to_time.strftime('%Y-%m-%dT%H:%M:%S')} TO #{Date.today.end_of_day.to_time.strftime('%Y-%m-%dT%H:%M:%S')}]"},
128
- # 'last_month' => { label: 'Last month', fq: "date_created_drsim:[#{(Date.today.end_of_day - 2.months).to_time.strftime('%Y-%m-%dT%H:%M:%S')} TO #{(Date.today.end_of_day - 1.month).to_time.strftime('%Y-%m-%dT%H:%M:%S')}]"},
129
- # 'this_quarter' => { label: 'This quarter', fq: "date_created_drsim:[#{(Date.today.end_of_day - 3.months).to_time.strftime('%Y-%m-%dT%H:%M:%S')} TO #{(Date.today.end_of_day).to_time.strftime('%Y-%m-%dT%H:%M:%S')}]"},
130
- # 'this_year' => { label: 'This year', fq: "date_created_drsim:[#{(Date.today.end_of_day - 1.year).to_time.strftime('%Y-%m-%dT%H:%M:%S')} TO #{(Date.today.end_of_day).to_time.strftime('%Y-%m-%dT%H:%M:%S')}]"}
131
- # }
127
+ config.add_facet_field "time_period", label: "Date Created", query: {
128
+ "today" => {label: "Today", fq: "date_created_drsim:[#{Date.today.beginning_of_day.to_time.strftime("%Y-%m-%dT%H:%M:%S")} TO #{Date.today.end_of_day.to_time.strftime("%Y-%m-%dT%H:%M:%S")}]"},
129
+ "this_week" => {label: "This week", fq: "date_created_drsim:[#{(Date.today.end_of_day - 1.week).to_time.strftime("%Y-%m-%dT%H:%M:%S")} TO #{Date.today.end_of_day.to_time.strftime("%Y-%m-%dT%H:%M:%S")}]"},
130
+ "this_month" => {label: "This month", fq: "date_created_drsim:[#{(Date.today.end_of_day - 1.month).to_time.strftime("%Y-%m-%dT%H:%M:%S")} TO #{Date.today.end_of_day.to_time.strftime("%Y-%m-%dT%H:%M:%S")}]"},
131
+ "last_month" => {label: "Last month", fq: "date_created_drsim:[#{(Date.today.end_of_day - 2.months).to_time.strftime("%Y-%m-%dT%H:%M:%S")} TO #{(Date.today.end_of_day - 1.month).to_time.strftime("%Y-%m-%dT%H:%M:%S")}]"},
132
+ "this_quarter" => {label: "This quarter", fq: "date_created_drsim:[#{(Date.today.end_of_day - 3.months).to_time.strftime("%Y-%m-%dT%H:%M:%S")} TO #{Date.today.end_of_day.to_time.strftime("%Y-%m-%dT%H:%M:%S")}]"},
133
+ "this_year" => {label: "This year", fq: "date_created_drsim:[#{(Date.today.end_of_day - 1.year).to_time.strftime("%Y-%m-%dT%H:%M:%S")} TO #{Date.today.end_of_day.to_time.strftime("%Y-%m-%dT%H:%M:%S")}]"}
134
+ }
132
135
 
133
136
  # Publication State
134
- # config.add_facet_field Settings.FIELDS.B1G_PUBLICATION_STATE, :label => 'Publication State', :limit => 8, collapse: false
137
+ config.add_facet_field Settings.FIELDS.B1G_PUBLICATION_STATE, label: "Publication State", limit: 8, collapse: false
135
138
 
136
139
  # Resouce Class
137
- config.add_facet_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', limit: 8
140
+ config.add_facet_field Settings.FIELDS.RESOURCE_CLASS, label: "Resource Class", limit: 8
138
141
 
139
142
  # Contributor
140
- config.add_facet_field Settings.FIELDS.PROVIDER, label: 'Provider', limit: 15
143
+ config.add_facet_field Settings.FIELDS.PROVIDER, label: "Provider", limit: 15
141
144
 
142
145
  # Accrual Method
143
146
  # config.add_facet_field Settings.FIELDS.B1G_ACCRUAL_METHOD, :label => 'Accrual Method'
144
147
 
145
148
  # Public/Restricted
146
- config.add_facet_field Settings.FIELDS.ACCESS_RIGHTS, :label => 'Public/Restricted'
149
+ config.add_facet_field Settings.FIELDS.ACCESS_RIGHTS, label: "Public/Restricted"
147
150
 
148
151
  # ADVANCED SEARCH
149
152
  #
@@ -151,31 +154,31 @@ module Admin
151
154
  # config.add_facet_field Settings.FIELDS.B1G_CODE, label: 'Code', show: false
152
155
 
153
156
  # Is Part Of
154
- config.add_facet_field Settings.FIELDS.IS_PART_OF, label: 'Is Part Of', show: false
157
+ config.add_facet_field Settings.FIELDS.IS_PART_OF, label: "Is Part Of", show: false
155
158
 
156
159
  # Member Of
157
- config.add_facet_field Settings.FIELDS.MEMBER_OF, label: 'Member Of', show: false
160
+ config.add_facet_field Settings.FIELDS.MEMBER_OF, label: "Member Of", show: false
158
161
 
159
162
  # Resource Type
160
- config.add_facet_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', show: false
163
+ config.add_facet_field Settings.FIELDS.RESOURCE_TYPE, label: "Resource Type", show: false
161
164
 
162
165
  # Subject
163
- config.add_facet_field Settings.FIELDS.SUBJECT, label: 'Subject', show: false
166
+ config.add_facet_field Settings.FIELDS.SUBJECT, label: "Subject", show: false
164
167
 
165
168
  # Theme
166
- config.add_facet_field Settings.FIELDS.THEME, label: 'Theme', show: false
169
+ config.add_facet_field Settings.FIELDS.THEME, label: "Theme", show: false
167
170
 
168
171
  # Format
169
- config.add_facet_field Settings.FIELDS.FORMAT, label: 'Format', show: false
172
+ config.add_facet_field Settings.FIELDS.FORMAT, label: "Format", show: false
170
173
 
171
174
  # Suppressed
172
- config.add_facet_field Settings.FIELDS.SUPPRESSED, label: 'Suppressed', show: false
175
+ config.add_facet_field Settings.FIELDS.SUPPRESSED, label: "Suppressed", show: false
173
176
 
174
177
  # Child Record
175
178
  # config.add_facet_field Settings.FIELDS.B1G_CHILD_RECORD, label: 'Child Record', show: false
176
179
 
177
180
  # Georeferenced
178
- config.add_facet_field Settings.FIELDS.GEOREFERENCED, label: 'Georeferenced', show: false
181
+ config.add_facet_field Settings.FIELDS.GEOREFERENCED, label: "Georeferenced", show: false
179
182
 
180
183
  # Have BL send all facet field names to Solr, which has been the default
181
184
  # previously. Simply remove these lines if you'd rather use Solr request
@@ -194,17 +197,17 @@ module Admin
194
197
  # config.add_index_field 'published_vern_display', :label => 'Published:'
195
198
  # config.add_index_field 'lc_callnum_display', :label => 'Call number:'
196
199
 
197
- config.add_index_field Settings.FIELDS.TITLE, :label => 'Title:'
200
+ config.add_index_field Settings.FIELDS.TITLE, label: "Title:"
198
201
  # config.add_index_field Settings.FIELDS.B1G_GEOMG_ID, :label => 'Identifier:'
199
- config.add_index_field Settings.FIELDS.PROVIDER, :label => 'Institution:'
200
- config.add_index_field Settings.FIELDS.ACCESS_RIGHTS, :label => 'Access:'
201
- config.add_index_field Settings.FIELDS.SUBJECT, :label => 'Keywords:'
202
- config.add_index_field Settings.FIELDS.CENTROID, :label => 'Centroid:'
202
+ config.add_index_field Settings.FIELDS.PROVIDER, label: "Institution:"
203
+ config.add_index_field Settings.FIELDS.ACCESS_RIGHTS, label: "Access:"
204
+ config.add_index_field Settings.FIELDS.SUBJECT, label: "Keywords:"
205
+ config.add_index_field Settings.FIELDS.CENTROID, label: "Centroid:"
203
206
  config.add_index_field Settings.FIELDS.INDEX_YEAR
204
207
  config.add_index_field Settings.FIELDS.CREATOR
205
208
  config.add_index_field Settings.FIELDS.DESCRIPTION, helper_method: :snippit
206
209
  config.add_index_field Settings.FIELDS.PUBLISHER
207
- config.add_index_field Settings.FIELDS.SUPPRESSED, :label => 'Suppressed:'
210
+ config.add_index_field Settings.FIELDS.SUPPRESSED, label: "Suppressed:"
208
211
 
209
212
  # solr fields to be displayed in the show (single result) view
210
213
  # The ordering of the field names is the order of the display
@@ -212,16 +215,19 @@ module Admin
212
215
  # item_prop: [String] property given to span with Schema.org item property
213
216
  # link_to_facet: [Boolean] that can be passed to link to a facet search
214
217
  # helper_method: [Symbol] method that can be used to render the value
215
- config.add_show_field Settings.FIELDS.CREATOR, label: 'Creator', itemprop: 'creator'
216
- config.add_show_field Settings.FIELDS.DESCRIPTION, label: 'Description', itemprop: 'description', helper_method: :render_value_as_truncate_abstract
217
- config.add_show_field Settings.FIELDS.PUBLISHER, label: 'Publisher', itemprop: 'publisher', link_to_facet: true
218
- config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place', itemprop: 'spatial', link_to_facet: true, helper_method: :render_placenames_as_truncate_abstract
219
- config.add_show_field Settings.FIELDS.SUBJECT, label: 'Subject', itemprop: 'keywords', link_to_facet: true
220
- config.add_show_field Settings.FIELDS.RESOURCE_TYPE, label: 'Type', itemprop: 'keywords', link_to_facet: true
221
- config.add_show_field Settings.FIELDS.DATE_ISSUED, label: 'Date Published', itemprop: 'keywords', link_to_facet: true
222
- config.add_show_field Settings.FIELDS.TEMPORAL_COVERAGE, label: 'Temporal Coverage', itemprop: 'temporal'
223
- config.add_show_field Settings.FIELDS.PROVIDER, label: 'Contributed by', link_to_facet: true
224
- config.add_show_field Settings.FIELDS.RIGHTS, label: 'Access Rights'
218
+ config.add_show_field Settings.FIELDS.CREATOR, label: "Creator", itemprop: "creator"
219
+ config.add_show_field Settings.FIELDS.DESCRIPTION, label: "Description", itemprop: "description",
220
+ helper_method: :render_value_as_truncate_abstract
221
+ config.add_show_field Settings.FIELDS.PUBLISHER, label: "Publisher", itemprop: "publisher", link_to_facet: true
222
+ config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: "Place", itemprop: "spatial", link_to_facet: true,
223
+ helper_method: :render_placenames_as_truncate_abstract
224
+ config.add_show_field Settings.FIELDS.SUBJECT, label: "Subject", itemprop: "keywords", link_to_facet: true
225
+ config.add_show_field Settings.FIELDS.RESOURCE_TYPE, label: "Type", itemprop: "keywords", link_to_facet: true
226
+ config.add_show_field Settings.FIELDS.DATE_ISSUED, label: "Date Published", itemprop: "keywords",
227
+ link_to_facet: true
228
+ config.add_show_field Settings.FIELDS.TEMPORAL_COVERAGE, label: "Temporal Coverage", itemprop: "temporal"
229
+ config.add_show_field Settings.FIELDS.PROVIDER, label: "Contributed by", link_to_facet: true
230
+ config.add_show_field Settings.FIELDS.RIGHTS, label: "Access Rights"
225
231
 
226
232
  # "fielded" search configuration. Used by pulldown among other places.
227
233
  # For supported keys in hash, see rdoc for Blacklight::SearchFields
@@ -241,48 +247,48 @@ module Admin
241
247
  # solr request handler? The one set in config[:default_solr_parameters][:qt],
242
248
  # since we aren't specifying it otherwise.
243
249
 
244
- config.add_search_field('all_fields') do |field|
250
+ config.add_search_field("all_fields") do |field|
245
251
  field.include_in_advanced_search = false
246
- field.label = 'All Fields'
252
+ field.label = "All Fields"
247
253
  end
248
254
 
249
- config.add_search_field('keyword') do |field|
255
+ config.add_search_field("keyword") do |field|
250
256
  field.include_in_simple_select = false
251
- field.qt = 'search'
252
- field.label = 'Keyword'
257
+ field.qt = "search"
258
+ field.label = "Keyword"
253
259
  field.solr_local_parameters = {
254
- qf: '$qf',
255
- pf: '$pf'
260
+ qf: "$qf",
261
+ pf: "$pf"
256
262
  }
257
263
  end
258
264
 
259
- config.add_search_field('title') do |field|
265
+ config.add_search_field("title") do |field|
260
266
  field.include_in_simple_select = false
261
- field.qt = 'search'
262
- field.label = 'Title'
267
+ field.qt = "search"
268
+ field.label = "Title"
263
269
  field.solr_local_parameters = {
264
- qf: '$title_qf',
265
- pf: '$title_pf'
270
+ qf: "$title_qf",
271
+ pf: "$title_pf"
266
272
  }
267
273
  end
268
274
 
269
- config.add_search_field('placename') do |field|
275
+ config.add_search_field("placename") do |field|
270
276
  field.include_in_simple_select = false
271
- field.qt = 'search'
272
- field.label = 'Place'
277
+ field.qt = "search"
278
+ field.label = "Place"
273
279
  field.solr_local_parameters = {
274
- qf: '$placename_qf',
275
- pf: '$placename_pf'
280
+ qf: "$placename_qf",
281
+ pf: "$placename_pf"
276
282
  }
277
283
  end
278
284
 
279
- config.add_search_field('publisher') do |field|
285
+ config.add_search_field("publisher") do |field|
280
286
  field.include_in_simple_select = false
281
- field.qt = 'search'
282
- field.label = 'Publisher/Creator'
287
+ field.qt = "search"
288
+ field.label = "Publisher/Creator"
283
289
  field.solr_local_parameters = {
284
- qf: '$publisher_qf',
285
- pf: '$publisher_pf'
290
+ qf: "$publisher_qf",
291
+ pf: "$publisher_pf"
286
292
  }
287
293
  end
288
294
 
@@ -290,41 +296,52 @@ module Admin
290
296
  # label in pulldown is followed by the name of the SOLR field to sort by and
291
297
  # whether the sort is ascending or descending (it must be asc or desc
292
298
  # except in the relevancy case).
293
- config.add_sort_field 'score desc, dct_title_sort asc', :label => 'Relevance'
294
- config.add_sort_field "#{Settings.FIELDS.INDEX_YEAR} desc, dct_title_sort asc", :label => 'Year (Newest first)'
295
- config.add_sort_field "#{Settings.FIELDS.INDEX_YEAR} asc, dct_title_sort asc", :label => 'Year (Oldest first)'
296
- config.add_sort_field 'dct_title_sort asc', :label => 'Title (A-Z)'
297
- config.add_sort_field 'dct_title_sort desc', :label => 'Title (Z-A)'
298
- config.add_sort_field 'date_modified_dtsi desc', :label => 'Updated At (Newest first)'
299
- config.add_sort_field 'date_modified_dtsi asc', :label => 'Updated At (Oldest first)'
299
+ config.add_sort_field "score desc, dct_title_sort asc", label: "Relevance"
300
+ config.add_sort_field "#{Settings.FIELDS.INDEX_YEAR} desc, dct_title_sort asc", label: "Year (Newest first)"
301
+ config.add_sort_field "#{Settings.FIELDS.INDEX_YEAR} asc, dct_title_sort asc", label: "Year (Oldest first)"
302
+ config.add_sort_field "dct_title_sort asc", label: "Title (A-Z)"
303
+ config.add_sort_field "dct_title_sort desc", label: "Title (Z-A)"
304
+ config.add_sort_field "date_modified_dtsi desc", label: "Updated At (Newest first)"
305
+ config.add_sort_field "date_modified_dtsi asc", label: "Updated At (Oldest first)"
300
306
 
301
307
  # If there are more than this many search results, no spelling ("did you
302
308
  # mean") suggestion is offered.
303
309
  config.spell_max = 5
304
310
 
305
311
  # Custom tools for GeoBlacklight
306
- config.add_show_tools_partial :more_details, partial: 'more_details', if: proc { |_context, _config, options| options[:document] && (!options[:document].references.nil? & !options[:document].references.url.nil?)}
307
- config.add_show_tools_partial :metadata, if: proc { |_context, _config, options| options[:document] && (Settings.METADATA_SHOWN & options[:document].references.refs.map(&:type).map(&:to_s)).any? }
308
- config.add_show_tools_partial :web_services, if: proc { |_context, _config, options| options[:document] && (Settings.WEBSERVICES_SHOWN & options[:document].references.refs.map(&:type).map(&:to_s)).any? }
309
- config.add_show_tools_partial :exports, partial: 'exports', if: proc { |_context, _config, options| options[:document] }
310
- config.add_show_tools_partial :data_dictionary, partial: 'data_dictionary', if: proc { |_context, _config, options| options[:document] && options[:document].data_dictionary_download.present?}
312
+ config.add_show_tools_partial :more_details, partial: "more_details", if: proc { |_context, _config, options|
313
+ options[:document] && (!options[:document].references.nil? & !options[:document].references.url.nil?)
314
+ }
315
+ config.add_show_tools_partial :metadata, if: proc { |_context, _config, options|
316
+ options[:document] && (Settings.METADATA_SHOWN & options[:document].references.refs.map(&:type).map(&:to_s)).any?
317
+ }
318
+ config.add_show_tools_partial :web_services, if: proc { |_context, _config, options|
319
+ options[:document] && (Settings.WEBSERVICES_SHOWN & options[:document].references.refs.map(&:type).map(&:to_s)).any?
320
+ }
321
+ config.add_show_tools_partial :exports, partial: "exports", if: proc { |_context, _config, options|
322
+ options[:document]
323
+ }
324
+ config.add_show_tools_partial :data_dictionary, partial: "data_dictionary", if: proc { |_context, _config, options|
325
+ options[:document] && options[:document].data_dictionary_download.present?
326
+ }
311
327
  config.add_show_tools_partial(:citation)
312
- config.add_show_tools_partial(:access_links, partial: 'access_links', if: proc { |_context, _config, options| options[:document] && options[:document].access_links.present?})
328
+ config.add_show_tools_partial(:access_links, partial: "access_links", if: proc { |_context, _config, options|
329
+ options[:document] && options[:document].access_links.present?
330
+ })
313
331
 
314
332
  # Remove nav actions
315
- config.add_nav_action(:bookmark, partial: 'blacklight/nav/bookmark', if: false)
333
+ config.add_nav_action(:bookmark, partial: "blacklight/nav/bookmark", if: false)
316
334
 
317
335
  # Remove show tools
318
336
  config.show.partials.delete(:show_header)
319
337
  config.show.partials.delete(:show)
320
338
 
321
- config.show.display_type_field = 'format'
322
- config.show.partials << 'show_header'
323
- config.show.partials << 'show_default_viewer_container'
324
- config.show.partials << 'show_default_viewer_information'
325
- config.show.partials << 'show_default_attribute_table'
326
- config.show.partials << 'show'
327
-
339
+ config.show.display_type_field = "format"
340
+ config.show.partials << "show_header"
341
+ config.show.partials << "show_default_viewer_container"
342
+ config.show.partials << "show_default_viewer_information"
343
+ config.show.partials << "show_default_attribute_table"
344
+ config.show.partials << "show"
328
345
 
329
346
  config.show.document_actions.delete(:email)
330
347
  config.show.document_actions.delete(:bookmark)
@@ -336,30 +353,30 @@ module Admin
336
353
  # 'mapquest' http://developer.mapquest.com/web/products/open/map
337
354
  # 'positron' http://cartodb.com/basemaps/
338
355
  # 'darkMatter' http://cartodb.com/basemaps/
339
- config.basemap_provider = 'esri'
340
- config.max_per_page = 100000
356
+ config.basemap_provider = "esri"
357
+ config.max_per_page = 100_000
341
358
 
342
359
  # Configuration for autocomplete suggestor
343
360
  config.autocomplete_enabled = true
344
- config.autocomplete_path = 'suggest'
361
+ config.autocomplete_path = "suggest"
345
362
  end
346
363
 
347
364
  # Administrative view of document
348
365
  # - Sidecar Image
349
366
  # - URIs
350
367
  def admin
351
- deprecated_response, @document = search_service.fetch(params[:id])
368
+ _, @document = search_service.fetch(params[:id])
352
369
  end
353
370
 
354
371
  # Administrative view for array of document ids
355
372
  # - bookmarks
356
373
  def fetch
357
- @response, deprecated_document_list = search_service.fetch(params[:id])
374
+ @response, = search_service.fetch(params[:id])
358
375
 
359
376
  respond_to do |format|
360
377
  format.json do
361
378
  @presenter = Blacklight::JsonPresenter.new(@response,
362
- blacklight_config)
379
+ blacklight_config)
363
380
  end
364
381
  end
365
382
  end
@@ -369,16 +386,14 @@ module Admin
369
386
  # We want to find the facets available for the current search, but:
370
387
  # * IGNORING current query (add in facets_for_advanced_search_form filter)
371
388
  # * IGNORING current advanced search facets (remove add_advanced_search_to_solr filter)
372
- @response, _ = search_service.search_results do |search_builder|
389
+ @response, = search_service.search_results do |search_builder|
373
390
  search_builder.except(:add_advanced_search_to_solr).append(:facets_for_advanced_search_form)
374
391
  end
375
392
 
376
- @response
377
-
378
393
  respond_to do |format|
379
394
  format.json do
380
395
  @presenter = Blacklight::JsonPresenter.new(@response,
381
- blacklight_config)
396
+ blacklight_config)
382
397
  end
383
398
  end
384
399
  end
@@ -9,7 +9,7 @@ module Admin
9
9
  # GET /bookmarks
10
10
  # GET /bookmarks.json
11
11
  def index
12
- @pagy, @bookmarks = pagy(current_user.bookmarks)
12
+ @pagy, @bookmarks = pagy(current_user.bookmarks.where(document_type: "Kithe::Model"))
13
13
 
14
14
  respond_to do |format|
15
15
  format.html { render :index }
@@ -21,7 +21,7 @@ module Admin
21
21
  # POST /bookmarks
22
22
  # POST /bookmarks.json
23
23
  def create
24
- @bookmark = Bookmark.find_or_create_by(user: current_user, document: @document)
24
+ @bookmark = Admin::Bookmark.find_or_create_by(user: current_user, document: @document)
25
25
 
26
26
  respond_to do |format|
27
27
  if @bookmark.save
@@ -37,7 +37,7 @@ module Admin
37
37
  # DELETE /bookmarks/1
38
38
  # DELETE /bookmarks/1.json
39
39
  def destroy
40
- Bookmark.destroy_by(user: current_user, document: @document)
40
+ Admin::Bookmark.destroy_by(user: current_user, document: @document)
41
41
 
42
42
  respond_to do |format|
43
43
  format.html { redirect_to bookmarks_url, notice: "Bookmark was successfully destroyed." }
@@ -65,4 +65,4 @@ module Admin
65
65
  end
66
66
  end
67
67
  end
68
- end
68
+ end
@@ -34,7 +34,9 @@ module Admin
34
34
 
35
35
  respond_to do |format|
36
36
  if @bulk_action.save
37
- format.html { redirect_to admin_bulk_action_path(@bulk_action), notice: "Bulk action was successfully created." }
37
+ format.html do
38
+ redirect_to admin_bulk_action_path(@bulk_action), notice: "Bulk action was successfully created."
39
+ end
38
40
  format.json { render :show, status: :created, location: @bulk_action }
39
41
  else
40
42
  format.html { render :new }
@@ -48,7 +50,9 @@ module Admin
48
50
  def update
49
51
  respond_to do |format|
50
52
  if @bulk_action.update(bulk_action_params)
51
- format.html { redirect_to admin_bulk_action_path(@bulk_action), notice: "Bulk action was successfully updated." }
53
+ format.html do
54
+ redirect_to admin_bulk_action_path(@bulk_action), notice: "Bulk action was successfully updated."
55
+ end
52
56
  format.json { render :show, status: :ok, location: @bulk_action }
53
57
  else
54
58
  format.html { render :edit }
@@ -76,7 +80,8 @@ module Admin
76
80
  def revert
77
81
  @bulk_action.revert!
78
82
  @bulk_action.state_machine.transition_to!(:queued)
79
- redirect_to admin_bulk_action_url(@bulk_action), notice: "Revert bulk action is running. Check back soon for results."
83
+ redirect_to admin_bulk_action_url(@bulk_action),
84
+ notice: "Revert bulk action is running. Check back soon for results."
80
85
  end
81
86
 
82
87
  private
@@ -91,4 +96,4 @@ module Admin
91
96
  params.fetch(:bulk_action, {})
92
97
  end
93
98
  end
94
- end
99
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module UploadUtil
2
4
  def self.kithe_upload_data_config(toggle_value: "kithe-upload")
3
5
  {
@@ -39,7 +39,9 @@ module Admin
39
39
 
40
40
  respond_to do |format|
41
41
  if @document_access.save
42
- format.html { redirect_to document_document_accesses_path(@document), notice: "Document access was successfully created." }
42
+ format.html do
43
+ redirect_to admin_document_document_accesses_path(@document), notice: "Document access was successfully created."
44
+ end
43
45
  format.json { render :show, status: :created, location: @document_access }
44
46
  else
45
47
  format.html { render :new }
@@ -53,7 +55,9 @@ module Admin
53
55
  def update
54
56
  respond_to do |format|
55
57
  if @document_access.update(document_access_params)
56
- format.html { redirect_to document_document_accesses_path(@document), notice: "Document access was successfully updated." }
58
+ format.html do
59
+ redirect_to admin_document_document_accesses_path(@document), notice: "Document access was successfully updated."
60
+ end
57
61
  format.json { render :show, status: :ok, location: @document_access }
58
62
  else
59
63
  format.html { render :edit }
@@ -67,7 +71,9 @@ module Admin
67
71
  def destroy
68
72
  @document_access.destroy
69
73
  respond_to do |format|
70
- format.html { redirect_to document_document_accesses_path(@document), notice: "Document access was successfully destroyed." }
74
+ format.html do
75
+ redirect_to admin_document_document_accesses_path(@document), notice: "Document access was successfully destroyed."
76
+ end
71
77
  format.json { head :no_content }
72
78
  end
73
79
  end
@@ -122,4 +128,4 @@ module Admin
122
128
  params.require(:document_access).permit(:friendlier_id, :institution_code, :access_url)
123
129
  end
124
130
  end
125
- end
131
+ end
@@ -24,11 +24,11 @@ module Admin
24
24
  @asset = Kithe::Asset.find_by_friendlier_id!(params[:id])
25
25
  authorize! :read, @asset
26
26
 
27
- if @asset.stored?
28
- @checks = @asset.fixity_checks.order("created_at asc")
29
- @latest_check = @checks.last
30
- @earliest_check = @checks.first
31
- end
27
+ return unless @asset.stored?
28
+
29
+ @checks = @asset.fixity_checks.order("created_at asc")
30
+ @latest_check = @checks.last
31
+ @earliest_check = @checks.first
32
32
  end
33
33
 
34
34
  def edit
@@ -58,7 +58,10 @@ module Admin
58
58
  @asset.destroy
59
59
 
60
60
  respond_to do |format|
61
- format.html { redirect_to document_document_assets_path(@document), notice: "Asset '#{@asset.title}' was successfully destroyed." }
61
+ format.html do
62
+ redirect_to document_document_assets_path(@document),
63
+ notice: "Asset '#{@asset.title}' was successfully destroyed."
64
+ end
62
65
  format.json { head :no_content }
63
66
  end
64
67
  end
@@ -105,9 +108,7 @@ module Admin
105
108
  asset.save!
106
109
  end
107
110
 
108
- if @parent.representative_id.nil?
109
- @parent.update(representative: @parent.members.order(:position).first)
110
- end
111
+ @parent.update(representative: @parent.members.order(:position).first) if @parent.representative_id.nil?
111
112
 
112
113
  redirect_to document_path(@parent.friendlier_id, anchor: "nav-members")
113
114
  end
@@ -155,7 +156,8 @@ module Admin
155
156
 
156
157
  RefreshActiveEncodeStatusJob.perform_later(status)
157
158
 
158
- redirect_to admin_asset_url(status.asset), notice: "Started refresh for ActiveEncode job #{status.active_encode_id}"
159
+ redirect_to admin_asset_url(status.asset),
160
+ notice: "Started refresh for ActiveEncode job #{status.active_encode_id}"
159
161
  end
160
162
 
161
163
  def work_is_oral_history?
@@ -175,6 +177,7 @@ module Admin
175
177
 
176
178
  def parent_path(asset)
177
179
  return nil if asset.parent.nil?
180
+
178
181
  asset.parent.is_a? Collection ? collection_path(asset.parent) : admin_work_path(asset.parent)
179
182
  end
180
183
  helper_method :parent_path
@@ -195,4 +198,4 @@ module Admin
195
198
  params.require(:asset).permit(*allowed_params)
196
199
  end
197
200
  end
198
- end
201
+ end