geoblacklight_admin 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +18 -0
  3. data/.gitignore +75 -0
  4. data/.standard.yml +4 -0
  5. data/Gemfile +59 -0
  6. data/LICENSE +21 -0
  7. data/README.md +84 -0
  8. data/Rakefile +72 -0
  9. data/app/assets/images/.keep +0 -0
  10. data/app/assets/images/aerial_photo.jpg +0 -0
  11. data/app/assets/images/archive-solid.svg +1 -0
  12. data/app/assets/images/bookmark-regular.svg +1 -0
  13. data/app/assets/images/bookmark-solid.svg +1 -0
  14. data/app/assets/images/btaa-logo.jpg +0 -0
  15. data/app/assets/images/cloud-download-alt-solid.svg +1 -0
  16. data/app/assets/images/file-import-solid.svg +1 -0
  17. data/app/assets/images/trash-alt-solid.svg +1 -0
  18. data/app/assets/javascripts/geoblacklight_admin/chosen.js +4 -0
  19. data/app/assets/javascripts/geoblacklight_admin/date_range_picker.js +173 -0
  20. data/app/assets/javascripts/geoblacklight_admin/datepicker.js +22 -0
  21. data/app/assets/javascripts/geoblacklight_admin/elements.js +38 -0
  22. data/app/assets/javascripts/geoblacklight_admin/exports.js +3 -0
  23. data/app/assets/javascripts/geoblacklight_admin/fields.js +11 -0
  24. data/app/assets/javascripts/geoblacklight_admin/geoblacklight_admin.js +2 -0
  25. data/app/assets/javascripts/geoblacklight_admin/inputmask.js +4 -0
  26. data/app/assets/javascripts/geoblacklight_admin/locale.js +5 -0
  27. data/app/assets/javascripts/geoblacklight_admin/sortable.js +2544 -0
  28. data/app/assets/javascripts/geoblacklight_admin/tooltips.js +3 -0
  29. data/app/assets/javascripts/geoblacklight_admin/truncate.js +4 -0
  30. data/app/assets/javascripts/geoblacklight_admin.js +40 -0
  31. data/app/assets/stylesheets/geoblacklight_admin/_core.scss +47 -0
  32. data/app/assets/stylesheets/geoblacklight_admin/modules/_autocomplete.scss +32 -0
  33. data/app/assets/stylesheets/geoblacklight_admin/modules/_blazer.scss +3 -0
  34. data/app/assets/stylesheets/geoblacklight_admin/modules/_code.scss +3 -0
  35. data/app/assets/stylesheets/geoblacklight_admin/modules/_datepicker.scss +477 -0
  36. data/app/assets/stylesheets/geoblacklight_admin/modules/_elements.scss +3 -0
  37. data/app/assets/stylesheets/geoblacklight_admin/modules/_forms.scss +28 -0
  38. data/app/assets/stylesheets/geoblacklight_admin/modules/_icons.scss +15 -0
  39. data/app/assets/stylesheets/geoblacklight_admin/modules/_nav.scss +9 -0
  40. data/app/assets/stylesheets/geoblacklight_admin/modules/_tables.scss +4 -0
  41. data/app/assets/stylesheets/geoblacklight_admin/modules/_toasts.scss +7 -0
  42. data/app/assets/stylesheets/geoblacklight_admin/modules/_visibility.scss +3 -0
  43. data/app/assets/stylesheets/geoblacklight_admin/settings/_variables.scss +1 -0
  44. data/app/channels/export_channel.rb +12 -0
  45. data/app/controllers/admin/admin_controller.rb +16 -0
  46. data/app/controllers/admin/advanced_search_controller.rb +365 -0
  47. data/app/controllers/admin/api_controller.rb +386 -0
  48. data/app/controllers/admin/bookmarks_controller.rb +68 -0
  49. data/app/controllers/admin/bulk_actions_controller.rb +94 -0
  50. data/app/controllers/admin/concerns/.keep +0 -0
  51. data/app/controllers/admin/concerns/upload_util.rb +8 -0
  52. data/app/controllers/admin/document_accesses_controller.rb +125 -0
  53. data/app/controllers/admin/document_assets_controller.rb +198 -0
  54. data/app/controllers/admin/document_downloads_controller.rb +127 -0
  55. data/app/controllers/admin/documents_controller.rb +219 -0
  56. data/app/controllers/admin/elements_controller.rb +81 -0
  57. data/app/controllers/admin/form_elements_controller.rb +81 -0
  58. data/app/controllers/admin/ids_controller.rb +379 -0
  59. data/app/controllers/admin/import_documents_controller.rb +18 -0
  60. data/app/controllers/admin/imports_controller.rb +105 -0
  61. data/app/controllers/admin/mappings_controller.rb +95 -0
  62. data/app/controllers/admin/notifications_controller.rb +51 -0
  63. data/app/controllers/admin/search_controller.rb +10 -0
  64. data/app/controllers/admin/users_controller.rb +10 -0
  65. data/app/helpers/bulk_actions_helper.rb +9 -0
  66. data/app/helpers/document_helper.rb +60 -0
  67. data/app/helpers/form_input_helper.rb +73 -0
  68. data/app/helpers/geoblacklight_admin_helper.rb +118 -0
  69. data/app/helpers/import_documents_helper.rb +5 -0
  70. data/app/helpers/mappings_helper.rb +27 -0
  71. data/app/indexers/document_indexer.rb +34 -0
  72. data/app/jobs/bulk_action_revert_document_job.rb +49 -0
  73. data/app/jobs/bulk_action_revert_job.rb +25 -0
  74. data/app/jobs/bulk_action_run_document_job.rb +42 -0
  75. data/app/jobs/bulk_action_run_job.rb +27 -0
  76. data/app/jobs/export_job.rb +72 -0
  77. data/app/jobs/export_json_job.rb +120 -0
  78. data/app/jobs/import_document_job.rb +25 -0
  79. data/app/jobs/import_run_job.rb +33 -0
  80. data/app/models/active_storage_attachment.rb +5 -0
  81. data/app/models/active_storage_blob.rb +5 -0
  82. data/app/models/api_search_builder.rb +12 -0
  83. data/app/models/application_record.rb +6 -0
  84. data/app/models/blacklight_api.rb +93 -0
  85. data/app/models/blacklight_api_facets.rb +15 -0
  86. data/app/models/blacklight_api_ids.rb +103 -0
  87. data/app/models/bookmark.rb +17 -0
  88. data/app/models/bulk_action.rb +88 -0
  89. data/app/models/bulk_action_document.rb +22 -0
  90. data/app/models/bulk_action_document_state_machine.rb +16 -0
  91. data/app/models/bulk_action_document_transition.rb +19 -0
  92. data/app/models/bulk_action_state_machine.rb +16 -0
  93. data/app/models/bulk_action_transition.rb +26 -0
  94. data/app/models/concerns/.keep +0 -0
  95. data/app/models/document/bbox_validator.rb +70 -0
  96. data/app/models/document/controlled_lists.rb +104 -0
  97. data/app/models/document/date_range_validator.rb +63 -0
  98. data/app/models/document/geom_validator.rb +117 -0
  99. data/app/models/document/reference.rb +107 -0
  100. data/app/models/document.rb +264 -0
  101. data/app/models/document_access.rb +35 -0
  102. data/app/models/document_download.rb +35 -0
  103. data/app/models/document_state_machine.rb +14 -0
  104. data/app/models/document_transition.rb +26 -0
  105. data/app/models/element.rb +90 -0
  106. data/app/models/form_control.rb +2 -0
  107. data/app/models/form_element.rb +19 -0
  108. data/app/models/form_feature.rb +2 -0
  109. data/app/models/form_group.rb +2 -0
  110. data/app/models/form_header.rb +2 -0
  111. data/app/models/geoblacklight_admin/field_mappings_btaa_aardvark.rb +379 -0
  112. data/app/models/geoblacklight_admin/field_mappings_gblv1.rb +344 -0
  113. data/app/models/geoblacklight_admin/iso_language_codes.rb +515 -0
  114. data/app/models/geoblacklight_admin/schema.rb +194 -0
  115. data/app/models/geoblacklight_admin.rb +3 -0
  116. data/app/models/import/csv_duplicates_validator.rb +36 -0
  117. data/app/models/import/csv_header_validator.rb +24 -0
  118. data/app/models/import.rb +186 -0
  119. data/app/models/import_btaa.rb +91 -0
  120. data/app/models/import_btaa_aardvark.rb +109 -0
  121. data/app/models/import_document.rb +34 -0
  122. data/app/models/import_document_state_machine.rb +12 -0
  123. data/app/models/import_document_transition.rb +19 -0
  124. data/app/models/import_gblv1.rb +92 -0
  125. data/app/models/import_state_machine.rb +16 -0
  126. data/app/models/import_transition.rb +26 -0
  127. data/app/models/mapping.rb +10 -0
  128. data/app/models/notification.rb +9 -0
  129. data/app/models/user.rb +26 -0
  130. data/app/notifications/export_notification.rb +30 -0
  131. data/app/services/export_csv_document_access_links_service.rb +47 -0
  132. data/app/services/export_csv_document_downloads_service.rb +47 -0
  133. data/app/services/export_csv_service.rb +44 -0
  134. data/app/services/export_json_service.rb +35 -0
  135. data/app/services/zip_file_generator.rb +56 -0
  136. data/app/views/admin/advanced_search/facets.json.jbuilder +80 -0
  137. data/app/views/admin/advanced_search/index.json.jbuilder +90 -0
  138. data/app/views/admin/api/_field.json.jbuilder +10 -0
  139. data/app/views/admin/api/fetch.json.jbuilder +86 -0
  140. data/app/views/admin/api/index.json.jbuilder +90 -0
  141. data/app/views/admin/bookmarks/_bookmark.json.jbuilder +4 -0
  142. data/app/views/admin/bookmarks/create.js.erb +7 -0
  143. data/app/views/admin/bookmarks/destroy.js.erb +7 -0
  144. data/app/views/admin/bookmarks/index.html.erb +21 -0
  145. data/app/views/admin/bookmarks/index.json.jbuilder +3 -0
  146. data/app/views/admin/bulk_actions/_bulk_action.json.jbuilder +4 -0
  147. data/app/views/admin/bulk_actions/_form.html.erb +17 -0
  148. data/app/views/admin/bulk_actions/edit.html.erb +6 -0
  149. data/app/views/admin/bulk_actions/index.html.erb +54 -0
  150. data/app/views/admin/bulk_actions/index.json.jbuilder +3 -0
  151. data/app/views/admin/bulk_actions/new.html.erb +5 -0
  152. data/app/views/admin/bulk_actions/show.html.erb +100 -0
  153. data/app/views/admin/bulk_actions/show.json.jbuilder +3 -0
  154. data/app/views/admin/devise/confirmations/new.html.erb +16 -0
  155. data/app/views/admin/devise/invitations/edit.html.erb +15 -0
  156. data/app/views/admin/devise/invitations/new.html.erb +15 -0
  157. data/app/views/admin/devise/mailer/invitation_instructions.html.erb +11 -0
  158. data/app/views/admin/devise/mailer/invitation_instructions.text.erb +11 -0
  159. data/app/views/admin/devise/passwords/edit.html.erb +26 -0
  160. data/app/views/admin/devise/passwords/new.html.erb +16 -0
  161. data/app/views/admin/devise/registrations/edit.html.erb +35 -0
  162. data/app/views/admin/devise/registrations/new.html.erb +30 -0
  163. data/app/views/admin/devise/sessions/new.html.erb +28 -0
  164. data/app/views/admin/devise/shared/_links.html.erb +27 -0
  165. data/app/views/admin/devise/unlocks/new.html.erb +16 -0
  166. data/app/views/admin/document_accesses/_document_access.json.jbuilder +4 -0
  167. data/app/views/admin/document_accesses/_form.html.erb +17 -0
  168. data/app/views/admin/document_accesses/destroy_all.html.erb +70 -0
  169. data/app/views/admin/document_accesses/edit.html.erb +5 -0
  170. data/app/views/admin/document_accesses/import.html.erb +70 -0
  171. data/app/views/admin/document_accesses/index.html.erb +74 -0
  172. data/app/views/admin/document_accesses/index.json.jbuilder +3 -0
  173. data/app/views/admin/document_accesses/new.html.erb +6 -0
  174. data/app/views/admin/document_accesses/show.html.erb +19 -0
  175. data/app/views/admin/document_accesses/show.json.jbuilder +3 -0
  176. data/app/views/admin/document_assets/display_attach_form.html.erb +44 -0
  177. data/app/views/admin/document_assets/index.html.erb +65 -0
  178. data/app/views/admin/document_downloads/_document_download.json.jbuilder +4 -0
  179. data/app/views/admin/document_downloads/_form.html.erb +15 -0
  180. data/app/views/admin/document_downloads/destroy_all.html.erb +70 -0
  181. data/app/views/admin/document_downloads/edit.html.erb +6 -0
  182. data/app/views/admin/document_downloads/import.html.erb +74 -0
  183. data/app/views/admin/document_downloads/index.html.erb +70 -0
  184. data/app/views/admin/document_downloads/index.json.jbuilder +3 -0
  185. data/app/views/admin/document_downloads/new.html.erb +5 -0
  186. data/app/views/admin/document_downloads/show.html.erb +24 -0
  187. data/app/views/admin/document_downloads/show.json.jbuilder +3 -0
  188. data/app/views/admin/documents/_document.html.erb +29 -0
  189. data/app/views/admin/documents/_document_bookmark.html.erb +17 -0
  190. data/app/views/admin/documents/_document_fields.html.erb +24 -0
  191. data/app/views/admin/documents/_form.html.erb +49 -0
  192. data/app/views/admin/documents/_form_control.html.erb +86 -0
  193. data/app/views/admin/documents/_form_group.html.erb +1 -0
  194. data/app/views/admin/documents/_form_header.html.erb +1 -0
  195. data/app/views/admin/documents/_form_nav.html.erb +21 -0
  196. data/app/views/admin/documents/_json_aardvark.jbuilder +47 -0
  197. data/app/views/admin/documents/_json_btaa_aardvark.jbuilder +16 -0
  198. data/app/views/admin/documents/_json_gbl_v1.jbuilder +32 -0
  199. data/app/views/admin/documents/_result_facets.html.erb +35 -0
  200. data/app/views/admin/documents/_result_pagination.html.erb +21 -0
  201. data/app/views/admin/documents/_result_selected_options.html.erb +54 -0
  202. data/app/views/admin/documents/_result_selection_options.html.erb +10 -0
  203. data/app/views/admin/documents/_result_toggle.html.erb +13 -0
  204. data/app/views/admin/documents/edit.html.erb +7 -0
  205. data/app/views/admin/documents/features/_assets.html.erb +3 -0
  206. data/app/views/admin/documents/features/_institutional_access_links.html.erb +3 -0
  207. data/app/views/admin/documents/features/_multiple_download_links.html.erb +27 -0
  208. data/app/views/admin/documents/fetch.json_aardvark.jbuilder +9 -0
  209. data/app/views/admin/documents/fetch.json_btaa_aardvark.jbuilder +9 -0
  210. data/app/views/admin/documents/fetch.json_gbl_v1.jbuilder +9 -0
  211. data/app/views/admin/documents/index.html.erb +49 -0
  212. data/app/views/admin/documents/index.json_aardvark.jbuilder +9 -0
  213. data/app/views/admin/documents/index.json_btaa_aardvark.jbuilder +9 -0
  214. data/app/views/admin/documents/index.json_gbl_v1.jbuilder +9 -0
  215. data/app/views/admin/documents/show.json_aardvark.jbuilder +3 -0
  216. data/app/views/admin/documents/show.json_btaa_aardvark.jbuilder +3 -0
  217. data/app/views/admin/documents/show.json_gbl_v1.jbuilder +3 -0
  218. data/app/views/admin/documents/versions.html.erb +110 -0
  219. data/app/views/admin/elements/_element.json.jbuilder +2 -0
  220. data/app/views/admin/elements/_form.html.erb +45 -0
  221. data/app/views/admin/elements/edit.html.erb +6 -0
  222. data/app/views/admin/elements/index.html.erb +68 -0
  223. data/app/views/admin/elements/index.json.jbuilder +1 -0
  224. data/app/views/admin/elements/new.html.erb +5 -0
  225. data/app/views/admin/elements/show.html.erb +121 -0
  226. data/app/views/admin/elements/show.json.jbuilder +1 -0
  227. data/app/views/admin/form_elements/_form.html.erb +46 -0
  228. data/app/views/admin/form_elements/_form_element.json.jbuilder +2 -0
  229. data/app/views/admin/form_elements/edit.html.erb +6 -0
  230. data/app/views/admin/form_elements/index.html.erb +49 -0
  231. data/app/views/admin/form_elements/index.json.jbuilder +1 -0
  232. data/app/views/admin/form_elements/new.html.erb +5 -0
  233. data/app/views/admin/form_elements/show.html.erb +19 -0
  234. data/app/views/admin/form_elements/show.json.jbuilder +1 -0
  235. data/app/views/admin/ids/fetch.json.jbuilder +86 -0
  236. data/app/views/admin/ids/index.json.jbuilder +41 -0
  237. data/app/views/admin/import_documents/show.html.haml +20 -0
  238. data/app/views/admin/imports/_form.html.erb +27 -0
  239. data/app/views/admin/imports/_import.json.jbuilder +4 -0
  240. data/app/views/admin/imports/_show_failed_tab.html.erb +37 -0
  241. data/app/views/admin/imports/_show_success_tab.html.erb +31 -0
  242. data/app/views/admin/imports/edit.html.erb +8 -0
  243. data/app/views/admin/imports/index.html.erb +56 -0
  244. data/app/views/admin/imports/index.json.jbuilder +3 -0
  245. data/app/views/admin/imports/new.html.erb +7 -0
  246. data/app/views/admin/imports/show.html.erb +123 -0
  247. data/app/views/admin/imports/show.json.jbuilder +3 -0
  248. data/app/views/admin/layouts/application.html.erb +30 -0
  249. data/app/views/admin/layouts/blazer/application.html.erb +23 -0
  250. data/app/views/admin/layouts/mailer.html.erb +13 -0
  251. data/app/views/admin/layouts/mailer.text.erb +1 -0
  252. data/app/views/admin/mappings/_form.html.erb +17 -0
  253. data/app/views/admin/mappings/_mapping.json.jbuilder +4 -0
  254. data/app/views/admin/mappings/edit.html.erb +6 -0
  255. data/app/views/admin/mappings/index.html.erb +37 -0
  256. data/app/views/admin/mappings/index.json.jbuilder +3 -0
  257. data/app/views/admin/mappings/new.html.erb +5 -0
  258. data/app/views/admin/mappings/show.html.erb +27 -0
  259. data/app/views/admin/mappings/show.json.jbuilder +3 -0
  260. data/app/views/admin/notifications/_notification.html.haml +31 -0
  261. data/app/views/admin/notifications/index.html.erb +54 -0
  262. data/app/views/admin/notifications/update.js.erb +7 -0
  263. data/app/views/admin/search/index.html.erb +38 -0
  264. data/app/views/admin/shared/_flash_messages.html.erb +5 -0
  265. data/app/views/admin/shared/_footer.html.erb +56 -0
  266. data/app/views/admin/shared/_js_behaviors.html.erb +147 -0
  267. data/app/views/admin/shared/_navbar.html.erb +78 -0
  268. data/app/views/admin/shared/_navbar_blazer.html.erb +42 -0
  269. data/app/views/admin/shared/_schema_timestamp.html.erb +16 -0
  270. data/app/views/admin/shared/_toast.html.erb +13 -0
  271. data/app/views/admin/users/index.html.erb +21 -0
  272. data/config/authorities/formats.yml +25 -0
  273. data/config/authorities/languages.yml +50 -0
  274. data/config/authorities/resource_type.yml +82 -0
  275. data/config/blazer.yml +79 -0
  276. data/config/gbl_v1_schema.json +118 -0
  277. data/config/geomg_aardvark_schema.json +211 -0
  278. data/config/geomg_schema.json +123 -0
  279. data/config/locales/devise.en.yml +65 -0
  280. data/config/locales/devise_invitable.en.yml +31 -0
  281. data/config/locales/documents.en.yml +189 -0
  282. data/config/locales/en.yml +51 -0
  283. data/config/locales/geoblacklight.en.yml +178 -0
  284. data/config/locales/simple_form.en.yml +31 -0
  285. data/config/routes.rb +162 -0
  286. data/db/migrate/20230316183001_add_geoblacklight_admin.rb +399 -0
  287. data/db/seeds.rb +26 -0
  288. data/db/seeds_elements.csv +56 -0
  289. data/db/seeds_elements.numbers +0 -0
  290. data/db/seeds_form_elements.csv +71 -0
  291. data/db/seeds_form_elements.numbers +0 -0
  292. data/db/structure.sql +816 -0
  293. data/geoblacklight_admin.gemspec +67 -0
  294. data/lib/generators/geoblacklight_admin/config_generator.rb +336 -0
  295. data/lib/generators/geoblacklight_admin/example_docs_generator.rb +18 -0
  296. data/lib/generators/geoblacklight_admin/helpers_generator.rb +18 -0
  297. data/lib/generators/geoblacklight_admin/install_generator.rb +60 -0
  298. data/lib/generators/geoblacklight_admin/jobs_generator.rb +21 -0
  299. data/lib/generators/geoblacklight_admin/models_generator.rb +23 -0
  300. data/lib/generators/geoblacklight_admin/templates/.env.development.example +28 -0
  301. data/lib/generators/geoblacklight_admin/templates/.solr_wrapper.yml +7 -0
  302. data/lib/generators/geoblacklight_admin/templates/_user_util_links.html.erb +30 -0
  303. data/lib/generators/geoblacklight_admin/templates/config/database.yml +18 -0
  304. data/lib/generators/geoblacklight_admin/templates/config/geomg_aardvark_schema.json +211 -0
  305. data/lib/generators/geoblacklight_admin/templates/config/initializers/geoblacklight_admin.rb +25 -0
  306. data/lib/generators/geoblacklight_admin/templates/config/initializers/kithe.rb +31 -0
  307. data/lib/generators/geoblacklight_admin/templates/config/initializers/pagy.rb +158 -0
  308. data/lib/generators/geoblacklight_admin/templates/config/initializers/statesman.rb +7 -0
  309. data/lib/generators/geoblacklight_admin/templates/javascript/channels/consumer.js +6 -0
  310. data/lib/generators/geoblacklight_admin/templates/javascript/channels/export_channel.js +30 -0
  311. data/lib/generators/geoblacklight_admin/templates/javascript/channels/index.js +5 -0
  312. data/lib/generators/geoblacklight_admin/templates/javascript/controllers/application_controller.js +17 -0
  313. data/lib/generators/geoblacklight_admin/templates/javascript/controllers/document_controller.js +26 -0
  314. data/lib/generators/geoblacklight_admin/templates/javascript/controllers/index.js +10 -0
  315. data/lib/generators/geoblacklight_admin/templates/javascript/controllers/results_controller.js +310 -0
  316. data/lib/generators/geoblacklight_admin/templates/javascript/packs/application.js +23 -0
  317. data/lib/generators/geoblacklight_admin/templates/javascript/src/js/admin/qa_autocomplete.js +1134 -0
  318. data/lib/generators/geoblacklight_admin/templates/package.json +32 -0
  319. data/lib/generators/geoblacklight_admin/templates/solr/README-geoblacklight-solr-development.txt +3 -0
  320. data/lib/generators/geoblacklight_admin/templates/solr/conf/_rest_managed.json +3 -0
  321. data/lib/generators/geoblacklight_admin/templates/solr/conf/admin-extra.html +31 -0
  322. data/lib/generators/geoblacklight_admin/templates/solr/conf/core.properties +5 -0
  323. data/lib/generators/geoblacklight_admin/templates/solr/conf/elevate.xml +36 -0
  324. data/lib/generators/geoblacklight_admin/templates/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  325. data/lib/generators/geoblacklight_admin/templates/solr/conf/protwords.txt +21 -0
  326. data/lib/generators/geoblacklight_admin/templates/solr/conf/schema.xml +229 -0
  327. data/lib/generators/geoblacklight_admin/templates/solr/conf/scripts.conf +24 -0
  328. data/lib/generators/geoblacklight_admin/templates/solr/conf/solrconfig.xml +266 -0
  329. data/lib/generators/geoblacklight_admin/templates/solr/conf/spellings.txt +2 -0
  330. data/lib/generators/geoblacklight_admin/templates/solr/conf/stopwords.txt +58 -0
  331. data/lib/generators/geoblacklight_admin/templates/solr/conf/stopwords_en.txt +58 -0
  332. data/lib/generators/geoblacklight_admin/templates/solr/conf/synonyms.txt +43 -0
  333. data/lib/generators/geoblacklight_admin/templates/solr/conf/xslt/example.xsl +132 -0
  334. data/lib/generators/geoblacklight_admin/templates/solr/conf/xslt/example_atom.xsl +67 -0
  335. data/lib/generators/geoblacklight_admin/templates/solr/conf/xslt/example_rss.xsl +66 -0
  336. data/lib/generators/geoblacklight_admin/templates/solr/conf/xslt/luke.xsl +337 -0
  337. data/lib/generators/geoblacklight_admin/templates/solr/snapshots/.keep +0 -0
  338. data/lib/generators/geoblacklight_admin/views_generator.rb +19 -0
  339. data/lib/geoblacklight_admin/engine.rb +20 -0
  340. data/lib/geoblacklight_admin/version.rb +5 -0
  341. data/lib/geoblacklight_admin.rb +7 -0
  342. data/lib/tasks/.keep +0 -0
  343. data/lib/tasks/geoblacklight_admin.rake +209 -0
  344. data/spec/test_app_templates/lib/generators/test_app_generator.rb +35 -0
  345. data/template.rb +16 -0
  346. metadata +1037 -0
@@ -0,0 +1,211 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "dct_title_s": { "type": "string" },
6
+ "dct_alternative_sm": {
7
+ "type": "array",
8
+ "items": {
9
+ "type": "string"
10
+ }
11
+ },
12
+ "dct_description_sm": {
13
+ "type": "array",
14
+ "items": {
15
+ "type": "string"
16
+ }
17
+ },
18
+ "dct_language_sm": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "string"
22
+ }
23
+ },
24
+ "dct_creator_sm": {
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string"
28
+ }
29
+ },
30
+ "dct_publisher_sm": {
31
+ "type": "array",
32
+ "items": {
33
+ "type": "string"
34
+ }
35
+ },
36
+ "schema_provider_s": { "type": "string" },
37
+ "gbl_resourceClass_sm": {
38
+ "type": "array",
39
+ "items": {
40
+ "type": "string"
41
+ }
42
+ },
43
+ "gbl_resourceType_sm": {
44
+ "type": "array",
45
+ "items": {
46
+ "type": "string"
47
+ }
48
+ },
49
+ "dct_subject_sm": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string"
53
+ }
54
+ },
55
+ "dcat_theme_sm": {
56
+ "type": "array",
57
+ "items": {
58
+ "type": "string"
59
+ }
60
+ },
61
+ "dcat_keyword_sm": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string"
65
+ }
66
+ },
67
+ "dct_temporal_sm": {
68
+ "type": "array",
69
+ "items": {
70
+ "type": "string"
71
+ }
72
+ },
73
+ "dct_issued_s": { "type": "string" },
74
+ "gbl_indexYear_im": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "integer"
78
+ }
79
+ },
80
+ "gbl_dateRange_drsim": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string"
84
+ }
85
+ },
86
+ "dct_spatial_sm": {
87
+ "type": "array",
88
+ "items": {
89
+ "type": "string"
90
+ }
91
+ },
92
+ "locn_geometry": { "type": "string" },
93
+ "dcat_centroid_ss": { "type": "string" },
94
+ "dct_relation_sm": {
95
+ "type": "array",
96
+ "items": {
97
+ "type": "string"
98
+ }
99
+ },
100
+ "pcdm_memberOf_sm": {
101
+ "type": "array",
102
+ "items": {
103
+ "type": "string"
104
+ }
105
+ },
106
+ "dct_isPartOf_sm": {
107
+ "type": "array",
108
+ "items": {
109
+ "type": "string"
110
+ }
111
+ },
112
+ "dct_source_sm": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "string"
116
+ }
117
+ },
118
+ "dct_isVersionOf_sm": {
119
+ "type": "array",
120
+ "items": {
121
+ "type": "string"
122
+ }
123
+ },
124
+ "dct_replaces_sm": {
125
+ "type": "array",
126
+ "items": {
127
+ "type": "string"
128
+ }
129
+ },
130
+ "dct_isReplacedBy_sm": {
131
+ "type": "array",
132
+ "items": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "dct_accessRights_s": { "type": "string" },
137
+ "dct_rightsHolder_sm": {
138
+ "type": "array",
139
+ "items": {
140
+ "type": "string"
141
+ }
142
+ },
143
+ "dct_license_sm": {
144
+ "type": "array",
145
+ "items": {
146
+ "type": "string"
147
+ }
148
+ },
149
+ "dct_rights_sm": {
150
+ "type": "array",
151
+ "items": {
152
+ "type": "string"
153
+ }
154
+ },
155
+ "dct_format_s": { "type": "string" },
156
+ "gbl_fileSize_s": { "type": "string" },
157
+ "gbl_wxsIdentifier_s": { "type": "string" },
158
+ "dct_references_s": {
159
+ "type": "array",
160
+ "items": {
161
+ "type": "object"
162
+ }
163
+ },
164
+ "id": { "type": "string" },
165
+ "geomg_id_s": { "type": "string" },
166
+ "dct_identifier_sm": {
167
+ "type": "array",
168
+ "items": {
169
+ "type": "string"
170
+ }
171
+ },
172
+ "gbl_mdModified_dt": {
173
+ "type": "string",
174
+ "format": "date-time"
175
+ },
176
+ "gbl_mdVersion_s": { "type": "string" },
177
+ "gbl_suppressed_b": { "type": "boolean" },
178
+ "gbl_georeferenced_b": { "type": "boolean" },
179
+ "b1g_image_ss": { "type": "string" },
180
+ "b1g_geonames_sm": {
181
+ "type": "array",
182
+ "items": {
183
+ "type": "string"
184
+ }
185
+ },
186
+ "b1g_dct_accrualMethod_s": { "type": "string" },
187
+ "b1g_dct_accrualPeriodicity_s": { "type": "string" },
188
+ "b1g_dateAccessioned_sm": {
189
+ "type": "array",
190
+ "items": {
191
+ "type": "string",
192
+ "format": "date"
193
+ }
194
+ },
195
+ "b1g_dateRetired_s": {
196
+ "type": "string",
197
+ "format": "date"
198
+ },
199
+ "b1g_child_record_b": { "type": "boolean" },
200
+ "b1g_status_s": { "type": "string" },
201
+ "b1g_dct_mediator_sm": {
202
+ "type": "array",
203
+ "items": {
204
+ "type": "string"
205
+ }
206
+ },
207
+ "b1g_access_s": { "type": "string" },
208
+ "b1g_code_s": { "type": "string" }
209
+ },
210
+ "required": ["dct_title_s", "gbl_resourceClass_sm", "dct_accessRights_s", "geomg_id_s"]
211
+ }
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ GEOMG_SCHEMA = HashWithIndifferentAccess.new(
6
+ JSON.parse(
7
+ File.read(
8
+ Rails.root.join("config/geomg_aardvark_schema.json")
9
+ )
10
+ )
11
+ )
12
+
13
+ # GEOMG_SCHEMA_TIMESTAMP
14
+ # This constant hold the Time of the last changes to the Element table.
15
+ # If the timestamp changes, the rails server and sidekiq will need to be restarted.
16
+ if File.exist?(Rails.root.join("tmp/schema_timestamp.txt").to_s)
17
+ else
18
+ File.write(Rails.root.join("tmp/schema_timestamp.txt").to_s, Time.now.to_s)
19
+ end
20
+ GEOMG_SCHEMA_TIMESTAMP = File.read(Rails.root.join("tmp/schema_timestamp.txt").to_s)
21
+
22
+ BLACKLIGHT_URL = ENV["BLACKLIGHT_URL"]
23
+ BLACKLIGHT_JSON_API = ENV["BLACKLIGHT_JSON_API"]
24
+ BLACKLIGHT_JSON_API_IDS = ENV["BLACKLIGHT_JSON_API_IDS"]
25
+ BLACKLIGHT_JSON_API_FACETS = ENV["BLACKLIGHT_JSON_API_FACETS"]
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ traject_logger = ActiveSupport::Logger.new("#{Rails.root}/log/traject.log")
4
+
5
+ Kithe.indexable_settings.solr_url = ENV["SOLR_URL"]
6
+
7
+ # Index to solr with solr `id` field being our friendlier_id
8
+ Kithe.indexable_settings.solr_id_value_attribute = :friendlier_id
9
+
10
+ # Traject settings
11
+ Kithe.indexable_settings.writer_settings.merge!({
12
+ "solr_writer.thread_pool" => 0,
13
+ "solr_writer.batch_size" => 1,
14
+ "solr_writer.solr_update_args" => {softCommit: true},
15
+ "solr_writer.http_timeout" => 3,
16
+ "solr_writer.max_skipped" => -1,
17
+ "logger" => traject_logger
18
+ })
19
+
20
+ # Traject with Basic Auth support
21
+ if ENV["SOLR_BASIC_AUTH_USER"].present?
22
+ Kithe.indexable_settings.writer_settings.merge!({
23
+ "solr_writer.basic_auth_user" => ENV["SOLR_BASIC_AUTH_USER"],
24
+ "solr_writer.basic_auth_password" => ENV["SOLR_BASIC_AUTH_PASSWORD"],
25
+ "solr_writer.thread_pool" => 0,
26
+ "solr_writer.batch_size" => 1,
27
+ "solr_writer.solr_update_args" => {softCommit: true}, "solr_writer.http_timeout" => 3,
28
+ "solr_writer.max_skipped" => -1,
29
+ "logger" => traject_logger
30
+ })
31
+ end
@@ -0,0 +1,158 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Pagy initializer file (3.8.3)
4
+ # Customize only what you really need and notice that Pagy works also without any of the following lines.
5
+ # Should you just cherry pick part of this file, please maintain the require-order of the extras
6
+
7
+ # Extras
8
+ # See https://ddnexus.github.io/pagy/extras
9
+
10
+ # Backend Extras
11
+
12
+ # Array extra: Paginate arrays efficiently, avoiding expensive array-wrapping and without overriding
13
+ # See https://ddnexus.github.io/pagy/extras/array
14
+ # require 'pagy/extras/array'
15
+
16
+ # Countless extra: Paginate without any count, saving one query per rendering
17
+ # See https://ddnexus.github.io/pagy/extras/countless
18
+ # require 'pagy/extras/countless'
19
+ # Pagy::VARS[:cycle] = false # default
20
+
21
+ # Elasticsearch Rails extra: Paginate `ElasticsearchRails::Results` objects
22
+ # See https://ddnexus.github.io/pagy/extras/elasticsearch_rails
23
+ # require 'pagy/extras/elasticsearch_rails'
24
+
25
+ # Searchkick extra: Paginate `Searchkick::Results` objects
26
+ # See https://ddnexus.github.io/pagy/extras/searchkick
27
+ # require 'pagy/extras/searchkick'
28
+
29
+ # Frontend Extras
30
+
31
+ # Bootstrap extra: Add nav, nav_js and combo_nav_js helpers and templates for Bootstrap pagination
32
+ # See https://ddnexus.github.io/pagy/extras/bootstrap
33
+ require "pagy/extras/bootstrap"
34
+
35
+ # Bulma extra: Add nav, nav_js and combo_nav_js helpers and templates for Bulma pagination
36
+ # See https://ddnexus.github.io/pagy/extras/bulma
37
+ # require 'pagy/extras/bulma'
38
+
39
+ # Foundation extra: Add nav, nav_js and combo_nav_js helpers and templates for Foundation pagination
40
+ # See https://ddnexus.github.io/pagy/extras/foundation
41
+ # require 'pagy/extras/foundation'
42
+
43
+ # Materialize extra: Add nav, nav_js and combo_nav_js helpers for Materialize pagination
44
+ # See https://ddnexus.github.io/pagy/extras/materialize
45
+ # require 'pagy/extras/materialize'
46
+
47
+ # Navs extra: Add nav_js and combo_nav_js javascript helpers
48
+ # Notice: the other frontend extras add their own framework-styled versions,
49
+ # so require this extra only if you need the unstyled version
50
+ # See https://ddnexus.github.io/pagy/extras/navs
51
+ # require 'pagy/extras/navs'
52
+
53
+ # Semantic extra: Add nav, nav_js and combo_nav_js helpers for Semantic UI pagination
54
+ # See https://ddnexus.github.io/pagy/extras/semantic
55
+ # require 'pagy/extras/semantic'
56
+
57
+ # UIkit extra: Add nav helper and templates for UIkit pagination
58
+ # See https://ddnexus.github.io/pagy/extras/uikit
59
+ # require 'pagy/extras/uikit'
60
+
61
+ # Multi size var used by the *_nav_js helpers
62
+ # See https://ddnexus.github.io/pagy/extras/navs#steps
63
+ # Pagy::VARS[:steps] = { 0 => [2,3,3,2], 540 => [3,5,5,3], 720 => [5,7,7,5] } # example
64
+
65
+ # Feature Extras
66
+
67
+ # Headers extra: http response headers (and other helpers) useful for API pagination
68
+ # See http://ddnexus.github.io/pagy/extras/headers
69
+ # require 'pagy/extras/headers'
70
+ # Pagy::VARS[:headers] = { page: 'Current-Page', items: 'Page-Items', count: 'Total-Count', pages: 'Total-Pages' } # default
71
+
72
+ # Support extra: Extra support for features like: incremental, infinite, auto-scroll pagination
73
+ # See https://ddnexus.github.io/pagy/extras/support
74
+ # require 'pagy/extras/support'
75
+
76
+ # Items extra: Allow the client to request a custom number of items per page with an optional selector UI
77
+ # See https://ddnexus.github.io/pagy/extras/items
78
+ # require 'pagy/extras/items'
79
+ # Pagy::VARS[:items_param] = :items # default
80
+ # Pagy::VARS[:max_items] = 100 # default
81
+
82
+ # Overflow extra: Allow for easy handling of overflowing pages
83
+ # See https://ddnexus.github.io/pagy/extras/overflow
84
+ # require 'pagy/extras/overflow'
85
+ # Pagy::VARS[:overflow] = :empty_page # default (other options: :last_page and :exception)
86
+
87
+ # Metadata extra: Provides the pagination metadata to Javascript frameworks like Vue.js, react.js, etc.
88
+ # See https://ddnexus.github.io/pagy/extras/metadata
89
+ # you must require the shared internal extra (BEFORE the metadata extra) ONLY if you need also the :sequels
90
+ # require 'pagy/extras/shared'
91
+ # require 'pagy/extras/metadata'
92
+ # For performance reason, you should explicitly set ONLY the metadata you use in the frontend
93
+ # Pagy::VARS[:metadata] = [:scaffold_url, :count, :page, :prev, :next, :last] # example
94
+
95
+ # Trim extra: Remove the page=1 param from links
96
+ # See https://ddnexus.github.io/pagy/extras/trim
97
+ # require 'pagy/extras/trim'
98
+
99
+ # Pagy Variables
100
+ # See https://ddnexus.github.io/pagy/api/pagy#variables
101
+ # All the Pagy::VARS are set for all the Pagy instances but can be overridden
102
+ # per instance by just passing them to Pagy.new or the #pagy controller method
103
+
104
+ # Instance variables
105
+ # See https://ddnexus.github.io/pagy/api/pagy#instance-variables
106
+ Pagy::VARS[:items] = 10 # default
107
+
108
+ # Other Variables
109
+ # See https://ddnexus.github.io/pagy/api/pagy#other-variables
110
+ # Pagy::VARS[:size] = [1,4,4,1] # default
111
+ # Pagy::VARS[:page_param] = :page # default
112
+ # Pagy::VARS[:params] = {} # default
113
+ # Pagy::VARS[:anchor] = '#anchor' # example
114
+ # Pagy::VARS[:link_extra] = 'data-remote="true"' # example
115
+
116
+ # Rails
117
+
118
+ # Rails: extras assets path required by the helpers that use javascript
119
+ # (pagy*_nav_js, pagy*_combo_nav_js, and pagy_items_selector_js)
120
+ # See https://ddnexus.github.io/pagy/extras#javascript
121
+ # Rails.application.config.assets.paths << Pagy.root.join('javascripts')
122
+
123
+ # I18n
124
+
125
+ # Pagy internal I18n: ~18x faster using ~10x less memory than the i18n gem
126
+ # See https://ddnexus.github.io/pagy/api/frontend#i18n
127
+ # Notice: No need to configure anything in this section if your app uses only "en"
128
+ # or if you use the i18n extra below
129
+ #
130
+ # Examples:
131
+ # load the "de" built-in locale:
132
+ # Pagy::I18n.load(locale: 'de')
133
+ #
134
+ # load the "de" locale defined in the custom file at :filepath:
135
+ # Pagy::I18n.load(locale: 'de', filepath: 'path/to/pagy-de.yml')
136
+ #
137
+ # load the "de", "en" and "es" built-in locales:
138
+ # (the first passed :locale will be used also as the default_locale)
139
+ # Pagy::I18n.load({locale: 'de'},
140
+ # {locale: 'en'},
141
+ # {locale: 'es'})
142
+ #
143
+ # load the "en" built-in locale, a custom "es" locale,
144
+ # and a totally custom locale complete with a custom :pluralize proc:
145
+ # (the first passed :locale will be used also as the default_locale)
146
+ # Pagy::I18n.load({locale: 'en'},
147
+ # {locale: 'es', filepath: 'path/to/pagy-es.yml'},
148
+ # {locale: 'xyz', # not built-in
149
+ # filepath: 'path/to/pagy-xyz.yml',
150
+ # pluralize: lambda{|count| ... } )
151
+
152
+ # I18n extra: uses the standard i18n gem which is ~18x slower using ~10x more memory
153
+ # than the default pagy internal i18n (see above)
154
+ # See https://ddnexus.github.io/pagy/extras/i18n
155
+ # require 'pagy/extras/i18n'
156
+
157
+ # Default i18n key
158
+ # Pagy::VARS[:i18n_key] = 'pagy.item_name' # default
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "statesman"
4
+
5
+ Statesman.configure do
6
+ storage_adapter(Statesman::Adapters::ActiveRecord)
7
+ end
@@ -0,0 +1,6 @@
1
+ // Action Cable provides the framework to deal with WebSockets in Rails.
2
+ // You can generate new channels where WebSocket features live using the `bin/rails generate channel` command.
3
+
4
+ import { createConsumer } from "@rails/actioncable"
5
+
6
+ export default createConsumer()
@@ -0,0 +1,30 @@
1
+ import consumer from "./consumer"
2
+
3
+ consumer.subscriptions.create({ channel: "ExportChannel" }, {
4
+ connected() {
5
+ // Called when the subscription is ready for use on the server
6
+ console.log('Export Channel Connected');
7
+ },
8
+
9
+ disconnected() {
10
+ // Called when the subscription has been terminated by the server
11
+ console.log('Export Channel Disconnected');
12
+ },
13
+
14
+ received(data) {
15
+ console.log('Export Channel Received');
16
+ console.log(data);
17
+
18
+ if (data['progress']) {
19
+ console.log(data['progress']);
20
+ }
21
+
22
+ if (data['actions']) {
23
+ for (let index = 0; index < data.actions.length; ++index) {
24
+ var fnstring = data.actions[index].method;
25
+ var fn = window["GBLADMIN"][fnstring];
26
+ if (typeof fn === "function") fn(data.actions[index].payload);
27
+ }
28
+ }
29
+ }
30
+ });
@@ -0,0 +1,5 @@
1
+ // Load all the channels within this directory and all subdirectories.
2
+ // Channel files must be named *_channel.js.
3
+
4
+ const channels = require.context('.', true, /_channel\.js$/)
5
+ channels.keys().forEach(channels)
@@ -0,0 +1,17 @@
1
+ import { Controller } from 'stimulus'
2
+
3
+ /* This is your application's ApplicationController.
4
+ * All StimulusReflex controllers should inherit from this class.
5
+ *
6
+ * Example:
7
+ *
8
+ * import ApplicationController from './application_controller'
9
+ *
10
+ * export default class extends ApplicationController { ... }
11
+ *
12
+ * Learn more at: https://docs.stimulusreflex.com
13
+ */
14
+ export default class extends Controller {
15
+ connect () {
16
+ }
17
+ }
@@ -0,0 +1,26 @@
1
+ // Visit The Stimulus Handbook for more details
2
+ // https://stimulusjs.org/handbook/introduction
3
+ //
4
+ // This example controller works with specially annotated HTML like:
5
+ //
6
+ // <div data-controller="results">
7
+ // <h1 data-target="results.selectAll"></h1>
8
+ // </div>
9
+
10
+ import { Application } from "stimulus"
11
+ import ScrollTo from "stimulus-scroll-to"
12
+
13
+ export default class extends ScrollTo {
14
+ connect() {
15
+ }
16
+
17
+ // You can set default options in this getter for all your anchors.
18
+ get defaultOptions () {
19
+ return {
20
+ behavior: 'smooth'
21
+ }
22
+ }
23
+ }
24
+
25
+ const application = Application.start()
26
+ application.register("scroll-to", ScrollTo)
@@ -0,0 +1,10 @@
1
+ // Load all the controllers within this directory and all subdirectories.
2
+ // Controller files must be named *_controller.js.
3
+
4
+ import { Application } from "stimulus"
5
+ import { definitionsFromContext } from "stimulus/webpack-helpers"
6
+ import controller from './application_controller'
7
+
8
+ const application = Application.start()
9
+ const context = require.context("controllers", true, /_controller\.js$/)
10
+ application.load(definitionsFromContext(context))