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,56 @@
1
+ <!-- Footer -->
2
+ <footer class="page-footer font-small pt-4 bg-secondary text-white">
3
+
4
+ <!-- Footer Links -->
5
+ <div class="container-fluid text-center text-md-left">
6
+
7
+ <!-- Grid row -->
8
+ <div class="row">
9
+ <div class="col-12 ">
10
+ <h4 style="margin-bottom:1.5rem;">
11
+ GeoBlacklight \\ Admin
12
+ </h4>
13
+ </div>
14
+
15
+ <!-- Grid column -->
16
+ <div class="col-md-6 mt-md-0 mt-3">
17
+
18
+ <!-- Content -->
19
+
20
+
21
+ </div>
22
+ <!-- Grid column -->
23
+
24
+ <hr class="clearfix w-100 d-md-none pb-3">
25
+
26
+ <!-- Grid column -->
27
+ <div class="col-md-3 mb-md-0 mb-3">
28
+
29
+ <!-- Links -->
30
+ <h5>Resources</h5>
31
+
32
+ <ul class="list-unstyled">
33
+ <li>
34
+ <a href="https://opengeometadata.org" class="text-white">OpenGeoMetadata</a>
35
+ </li>
36
+ </ul>
37
+
38
+ </div>
39
+ <!-- Grid column -->
40
+ <div class="col-md-3 mb-md-0 mb-3">
41
+ <!-- Links -->
42
+ <h5>Help</h5>
43
+ <ul class="list-unstyled">
44
+ <li>
45
+ <a href="#" class="text-white">Contact Support</a>
46
+ </li>
47
+ </ul>
48
+ </div>
49
+
50
+ </div>
51
+ <!-- Grid row -->
52
+
53
+ </div>
54
+ <!-- Footer Links -->
55
+
56
+ </footer>
@@ -0,0 +1,147 @@
1
+ <script>
2
+ $(function () {
3
+ if ($('[data-toggle="tooltip"]').length > 0) {
4
+ //$('[data-toggle="tooltip"]').tooltip();
5
+ }
6
+ });
7
+
8
+ // Date Range picker
9
+ $('#date-range').on('change', function(event){
10
+ GBLADMIN.DateRangeSelect();
11
+
12
+ if ($('#compare').length > 0) {
13
+ GBLADMIN.CompareRangeSelect();
14
+ }
15
+ });
16
+
17
+ // Compare Range checkbox toggle
18
+ $("input#compare").on('change', function(event){
19
+ GBLADMIN.DisplayCompareDateRange();
20
+ GBLADMIN.CompareRangeSelect();
21
+ GBLADMIN.ToggleCompare();
22
+ });
23
+
24
+ // Compare Range picker
25
+ $('#compare-options').on('change', function(event){
26
+ GBLADMIN.CompareRangeSelect();
27
+ });
28
+
29
+ // Bootstrap DateRangePicker
30
+ $('input[name="daterange"]').daterangepicker({
31
+ autoUpdateInput: false,
32
+ locale: { cancelLabel: 'Clear' }
33
+ });
34
+
35
+ $('input[name="daterange"]').on('apply.daterangepicker', function(ev, picker) {
36
+ $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY'));
37
+
38
+ });
39
+
40
+ $('input[name="daterange"]').on('cancel.daterangepicker', function(ev, picker) {
41
+ $(this).val('');
42
+ });
43
+
44
+ $(document).on('ready turbolinks:load', function() {
45
+ GBLADMIN.DisableIfPersisted();
46
+ });
47
+ </script>
48
+
49
+ <script type="module">
50
+ import {Uppy, Dashboard, XHRUpload} from "https://releases.transloadit.com/uppy/v3.6.1/uppy.min.mjs"
51
+
52
+ if (document.getElementsByClassName('uppy-dashboard-container').length > 0) {
53
+
54
+ var closest = function(el, fn) {
55
+ return el && (fn(el) ? el : closest(el.parentNode, fn));
56
+ }
57
+
58
+ var container = document.getElementsByClassName('uppy-dashboard-container')[0];
59
+ var containerForm = closest(container, function(el) { return el.tagName.toLowerCase() == "form" });
60
+ var cachedFileTableEl = containerForm.querySelector("*[data-toggle='cached-files-table']");
61
+ var browseEverythingButton = containerForm.querySelector('*[data-toggle="kithe-browse-everything"]');
62
+ var submitButton = containerForm.querySelector("*[data-toggle='kithe-upload-submit']");
63
+
64
+ var uppy = new Uppy()
65
+ .use(Dashboard, {
66
+ inline: true,
67
+ target: '.uppy-dashboard-container'
68
+ })
69
+ .use(XHRUpload, {
70
+ endpoint: '/direct_upload',
71
+ fieldName: 'file'
72
+ })
73
+
74
+ // Turns a number of bytes into human readable eg "12GB"
75
+ // https://stackoverflow.com/a/38897674
76
+ var fileSizeSI = function(size) {
77
+ var e = (Math.log(size) / Math.log(1e3)) | 0;
78
+ return +(size / Math.pow(1e3, e)).toFixed(1) + ' ' + ('kMGTPEZY'[e - 1] || '') + 'B';
79
+ }
80
+
81
+ // Returns the <input type="hidden"> representing a direct-uploaded
82
+ // file, to be sent to controller for attachment. Value will be a JSON
83
+ // serialization of the hash describing the uploaded-to-cache file,
84
+ // to be sent to the controller.
85
+ var makeHiddenFieldForCachedFile = function(shrineHash) {
86
+ var hidden = document.createElement("input");
87
+ hidden.setAttribute("type", "hidden");
88
+ hidden.setAttribute("name", "cached_files[]");
89
+ hidden.setAttribute("value", JSON.stringify(shrineHash));
90
+
91
+ return hidden;
92
+ }
93
+
94
+ // create a DOM element for a table row that will be the list of succesfully
95
+ // direct uploaded files, including hidden inputs to be submitted with form,
96
+ // and a remove button to remove it from list.
97
+ //
98
+ // With just browser API, yeah, it's a bit ugly code.
99
+ var makeCachedFileRow = function(shrineHash) {
100
+ var row = document.createElement("tr");
101
+
102
+ var firstCell = row.appendChild(document.createElement("td"));
103
+ firstCell.appendChild(makeHiddenFieldForCachedFile(shrineHash));
104
+ firstCell.appendChild(document.createTextNode(shrineHash.metadata.filename));
105
+
106
+ if (shrineHash.metadata.size) {
107
+ var size = fileSizeSI(shrineHash.metadata.size);
108
+ } else {
109
+ var size = "";
110
+ }
111
+
112
+ row.appendChild(document.createElement("td")).innerText = size;
113
+
114
+ // Storage type control, put in params keyed by file ID
115
+ row.appendChild(document.createElement("td")).innerHTML =
116
+ "<select name='storage_type_for[" + shrineHash.id + "]' class='form-control derivative-storage-type'>" +
117
+ "<option>public</option><option>restricted</option>" +
118
+ "</select>";
119
+
120
+ row.appendChild(document.createElement("td")).innerHTML =
121
+ "<button type='button' data-cached-file-remove='true' class='btn btn-link' aria-label='Remove' title='Remove'>" +
122
+ "<i class='fa fa-times-circle' style='font-size: 180%' aria-hidden='true'></i>" +
123
+ "</button>";
124
+
125
+ return row;
126
+ }
127
+
128
+ // Upload Success
129
+ // When a file is fully direct uploaded by uppy, we remove it from uppy dashboard,
130
+ // and instead list it in our list of files to be attached on form submit.
131
+ uppy.on("upload-success", function(file, response) {
132
+ var shrineHash = response.body;
133
+
134
+ // add the file to our list that will be submitted with form
135
+ cachedFileTableEl.appendChild(makeCachedFileRow(shrineHash));
136
+
137
+ // And remove from uppy dashboard, we're treating that just as the in-progress
138
+ // list. This means we won't get a `complete` callback though. :(
139
+ uppy.removeFile(file.id);
140
+ });
141
+
142
+ // Upload Complete
143
+ uppy.on('complete', (result) => {
144
+ console.log('Upload complete! We’ve uploaded these files:', result.successful)
145
+ })
146
+ }
147
+ </script>
@@ -0,0 +1,78 @@
1
+ <nav class="navbar fixed-top navbar-expand-lg navbar-light bg-light">
2
+ <a class="navbar-brand" href="<%=root_url%>">
3
+ <strong>G&middot;E&middot;O&middot;M&middot;G</strong>
4
+ </a>
5
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
6
+ <span class="navbar-toggler-icon"></span>
7
+ </button>
8
+ <%= form_tag(admin_documents_path, { method: :get, class: "form-inline my-2 my-lg-0" }) do %>
9
+
10
+ <div class="input-group">
11
+ <input name="q" class="form-control" type="search" placeholder="Search documents" aria-label="Search" value="<%= params[:q] ? params[:q] : ''%>">
12
+ <%- if params[:f].present? %>
13
+ <%= params_as_hidden_fields(
14
+ params
15
+ .to_hash
16
+ .with_indifferent_access
17
+ .except(:q, :controller, :action, :commit)
18
+ ) %>
19
+ <% end %>
20
+
21
+ <div class="input-group-append">
22
+ <button class="btn btn-outline-secondary my-2 my-sm-0" type="submit">Search</button>
23
+ <button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
24
+ <span class="sr-only">Toggle Dropdown</span>
25
+ </button>
26
+ <div class="dropdown-menu">
27
+ <%= link_to "Advanced", admin_advanced_search_path, { class: 'dropdown-item' } %>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ <% end %>
32
+
33
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
34
+ <ul class="navbar-nav flex-row ml-md-auto d-none d-md-flex">
35
+ <% if user_signed_in? %>
36
+ <li class="nav-item">
37
+ <%= link_to admin_notifications_url, { class: 'nav-link' } do %>
38
+ <%= "Notifications #{notifications_badge}".html_safe %>
39
+ <% end %>
40
+ </li>
41
+ <% end %>
42
+ <li class="nav-item dropdown">
43
+ <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
44
+ Admin Tools
45
+ </a>
46
+ <div class="dropdown-menu" aria-labelledby="navbarDropdown">
47
+ <%= link_to "Documents", admin_documents_path, {class: 'dropdown-item'} %>
48
+ <%= link_to "Imports", admin_imports_path, {class: 'dropdown-item'} %>
49
+ <%= link_to "Bulk Actions", admin_bulk_actions_path, {class: 'dropdown-item'} %>
50
+ <div class="dropdown-divider"></div>
51
+ <%= link_to "Access Links", admin_document_accesses_path, {class: 'dropdown-item'} %>
52
+ <%= link_to "Download Links", admin_document_downloads_path, {class: 'dropdown-item'} %>
53
+ <div class="dropdown-divider"></div>
54
+ <%= link_to "Blazer", '/blazer', {class: 'dropdown-item', data: { turbolinks: false }} %>
55
+ <div class="dropdown-divider"></div>
56
+ <%= link_to "Elements", admin_elements_path, {class: 'dropdown-item', data: { turbolinks: false }} %>
57
+ <%= link_to "Form Elements", admin_form_elements_path, {class: 'dropdown-item', data: { turbolinks: false }} %>
58
+ <div class="dropdown-divider"></div>
59
+ <%= link_to "Users", admin_users_index_path, {class: 'dropdown-item'} %>
60
+ </div>
61
+ <li class="nav-item">
62
+ <%= link_to "Bookmarks", admin_bookmarks_path, {class: 'nav-link'} if current_user %>
63
+ </li>
64
+ <% if user_signed_in? %>
65
+ <li class="nav-item">
66
+ <%= link_to(current_user.email, edit_user_registration_path, {class: 'nav-link'}) %>
67
+ </li>
68
+ <li class="nav-item">
69
+ <%= link_to "Sign out", destroy_user_session_path, { :method => :delete, class: 'nav-link'} %>
70
+ </li>
71
+ <% else %>
72
+ <li class="nav-item">
73
+ <%= link_to('Sign in', new_user_session_path, {class: 'nav-link'}) %>
74
+ </li>
75
+ <% end %>
76
+ </ul>
77
+ </div>
78
+ </nav>
@@ -0,0 +1,42 @@
1
+ <nav class="navbar fixed-top navbar-expand-lg navbar-light bg-light">
2
+ <a class="navbar-brand" href="/">
3
+ <strong>G&middot;E&middot;O&middot;M&middot;G</strong>
4
+ </a>
5
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
6
+ <span class="navbar-toggler-icon"></span>
7
+ </button>
8
+ <%= form_tag('/documents', { method: :get, class: "form-inline my-2 my-lg-0" }) do %>
9
+
10
+ <div class="input-group">
11
+ <input name="q" class="form-control" type="search" placeholder="Search documents" aria-label="Search" value="<%= params[:q] ? params[:q] : ''%>">
12
+ <%- if params[:f].present? %>
13
+ <%= params_as_hidden_fields(
14
+ params
15
+ .to_hash
16
+ .with_indifferent_access
17
+ .except(:q, :controller, :action, :commit)
18
+ ) %>
19
+ <% end %>
20
+
21
+ <div class="input-group-append">
22
+ <button class="btn btn-outline-secondary my-2 my-sm-0" type="submit">Search</button>
23
+ <button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
24
+ <span class="sr-only">Toggle Dropdown</span>
25
+ </button>
26
+ <div class="dropdown-menu">
27
+ <%= link_to "Advanced", '/search', { class: 'dropdown-item' } %>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ <% end %>
32
+
33
+ <!-- Collect the nav links, forms, and other content for toggling -->
34
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
35
+ <ul class="navbar-nav flex-row ml-md-auto d-none d-md-flex">
36
+ <li class="nav-item">
37
+ <%= link_to "Blazer &middot; Business Intelligence Tools".html_safe, '/blazer', {class: 'nav-link'} if current_user %>
38
+ </li>
39
+ </ul>
40
+ </div>
41
+ </div>
42
+ </nav>
@@ -0,0 +1,16 @@
1
+ <%-
2
+ schema_warning = false
3
+ if File.exist?(Rails.root.join("tmp/schema_timestamp.txt").to_s)
4
+ current_timestamp = File.read(Rails.root.join("tmp/schema_timestamp.txt").to_s)
5
+ if current_timestamp != GEOMG_SCHEMA_TIMESTAMP
6
+ schema_warning = true
7
+ end
8
+ end
9
+ %>
10
+
11
+ <%- if schema_warning %>
12
+ <div class="alert alert-danger" role="alert">
13
+ <strong>Warning:</strong> The project's metadata schema has changed. You need to restart the application server.
14
+ </div>
15
+ <%- end %>
16
+
@@ -0,0 +1,13 @@
1
+ <!-- Toast -->
2
+ <div class="toast" role="alert" aria-live="assertive" aria-atomic="true" style="position:relative; top:0; right:0;" data-delay="5000">
3
+ <div class="toast-header">
4
+ <strong class="mr-auto">GEOMG</strong>
5
+ <small class="text-muted">just now</small>
6
+ <button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
7
+ <span aria-hidden="true">&times;</span>
8
+ </button>
9
+ </div>
10
+ <div class="toast-body">
11
+ <%= toast %>
12
+ </div>
13
+ </div>
@@ -0,0 +1,21 @@
1
+ <%- @page_title = "GEOMG - Users" %>
2
+
3
+
4
+ <h1 style="width:100%; margin-bottom:2rem;">
5
+ Users
6
+ <%= link_to '+ New User', new_user_invitation_path, {class: 'btn btn-primary float-right'} %>
7
+ </h1>
8
+
9
+ <table class="table table-striped table-bordered sortable">
10
+ <thead class="thead-dark">
11
+ <tr>
12
+ <th class="header">Email</th>
13
+ <tr>
14
+ <tbody>
15
+ <% @users.each do |user| %>
16
+ <tr>
17
+ <td><%= user.email %><br/></td>
18
+ </tr>
19
+ <% end %>
20
+ </tbody>
21
+ </table>
@@ -0,0 +1,25 @@
1
+ # This is a configuration file for the `qa` (questioning authorities) gem, to create a local
2
+ # authority. It looks for the configuration file at this exact location.
3
+ #
4
+ # WARNING: Do not edit this data without changing existing metadata; additions are fine.
5
+ terms:
6
+ - ArcGRID
7
+ - DEM
8
+ - Feature Class
9
+ - Files
10
+ - GeoDatabase
11
+ - GeoJSON
12
+ - GeoPackage
13
+ - GeoTIFF
14
+ - Imagery
15
+ - JPEG
16
+ - JPEG2000
17
+ - Mixed
18
+ - MrSID
19
+ - PDF
20
+ - PNG
21
+ - Raster Dataset
22
+ - Shapefile
23
+ - Tabular Data
24
+ - TIFF
25
+ - Web Application
@@ -0,0 +1,50 @@
1
+ # This is a configuration file for the `qa` (questioning authorities) gem, to create a local
2
+ # authority. It looks for the configuration file at this exact location.
3
+ #
4
+ # WARNING: Do not edit this data without changing existing metadata; additions are fine.
5
+ terms:
6
+ - Afrikaans
7
+ - Arabic
8
+ - Bulgarian
9
+ - Catalan
10
+ - Chinese
11
+ - Croatian
12
+ - Czech
13
+ - Danish
14
+ - Dutch
15
+ - English
16
+ - Esperanto
17
+ - Estonian
18
+ - Finnish
19
+ - French
20
+ - Galician
21
+ - German
22
+ - German, Middle High
23
+ - Greek, Ancient (to 1453)
24
+ - Greek, Modern (1453-)
25
+ - Hebrew
26
+ - Hungarian
27
+ - Icelandic
28
+ - Indonesian
29
+ - Italian
30
+ - Japanese
31
+ - Latin
32
+ - Latvian
33
+ - Norwegian
34
+ - Polish
35
+ - Portuguese
36
+ - Romani
37
+ - Romanian
38
+ - Russian
39
+ - Serbian
40
+ - Slovak
41
+ - Slovenian
42
+ - Spanish
43
+ - Swazi
44
+ - Swedish
45
+ - Tahitian
46
+ - Tereno
47
+ - Thai
48
+ - Turkish
49
+ - Ukrainian
50
+ - Yiddish
@@ -0,0 +1,82 @@
1
+ # This is a configuration file for the `qa` (questioning authorities) gem, to create a local
2
+ # authority. It looks for the configuration file at this exact location.
3
+ #
4
+ # WARNING: Do not edit this data without changing existing metadata; additions are fine.
5
+ terms:
6
+ - Aerial photographs
7
+ - Aerial views
8
+ - Aeronautical charts
9
+ - Armillary spheres
10
+ - Astronautical charts
11
+ - Astronomical models
12
+ - Atlases
13
+ - Bathymetric maps
14
+ - Block diagrams
15
+ - Bottle-charts
16
+ - Cadastral maps
17
+ - Cartographic materials
18
+ - Cartographic materials for people with visual disabilities
19
+ - Celestial charts
20
+ - Celestial globes
21
+ - Census data
22
+ - Children's atlases
23
+ - Children's maps
24
+ - Comparative maps
25
+ - Composite atlases
26
+ - Digital elevation models
27
+ - Digital maps
28
+ - Early maps
29
+ - Ephemerides
30
+ - Ethnographic maps
31
+ - Fire insurance maps
32
+ - Flow maps
33
+ - Gazetteers
34
+ - Geological cross-sections
35
+ - Geological maps
36
+ - Globes
37
+ - Gores (Maps)
38
+ - Gravity anomaly maps
39
+ - Index maps
40
+ - LiDAR
41
+ - Line data
42
+ - Linguistic atlases
43
+ - Loran charts
44
+ - Manuscript maps
45
+ - Mappae mundi
46
+ - Mental maps
47
+ - Mesh data
48
+ - Meteorological charts
49
+ - Military maps
50
+ - Mine maps
51
+ - Miniature maps
52
+ - Multi-spectral data
53
+ - Nautical charts
54
+ - Outline maps
55
+ - Photogrammetric maps
56
+ - Photomaps
57
+ - Physical maps
58
+ - Pictorial maps
59
+ - Plotting charts
60
+ - Point cloud data
61
+ - Point data
62
+ - Polygon data
63
+ - Portolan charts
64
+ - Quadrangle maps
65
+ - Raster data
66
+ - Relief models
67
+ - Remote-sensing maps
68
+ - Road maps
69
+ - Satellite imagery
70
+ - Statistical maps
71
+ - Stick charts
72
+ - Strip maps
73
+ - Table data
74
+ - Thematic maps
75
+ - Topographic maps
76
+ - Tourist maps
77
+ - Upside-down maps
78
+ - Wall maps
79
+ - World atlases
80
+ - World maps
81
+ - Worm's-eye views
82
+ - Zoning maps
data/config/blazer.yml ADDED
@@ -0,0 +1,79 @@
1
+ # see https://github.com/ankane/blazer for more info
2
+
3
+ data_sources:
4
+ main:
5
+ url: <%= ENV["BLAZER_DATABASE_URL"] %>
6
+
7
+ # statement timeout, in seconds
8
+ # none by default
9
+ # timeout: 15
10
+
11
+ # caching settings
12
+ # can greatly improve speed
13
+ # off by default
14
+ # cache:
15
+ # mode: slow # or all
16
+ # expires_in: 60 # min
17
+ # slow_threshold: 15 # sec, only used in slow mode
18
+
19
+ # wrap queries in a transaction for safety
20
+ # not necessary if you use a read-only user
21
+ # true by default
22
+ # use_transaction: false
23
+
24
+ smart_variables:
25
+ # zone_id: "SELECT id, name FROM zones ORDER BY name ASC"
26
+ # period: ["day", "week", "month"]
27
+ # status: {0: "Active", 1: "Archived"}
28
+
29
+ linked_columns:
30
+ # user_id: "/admin/users/{value}"
31
+
32
+ smart_columns:
33
+ # user_id: "SELECT id, name FROM users WHERE id IN {value}"
34
+
35
+ # create audits
36
+ audit: true
37
+
38
+ # change the time zone
39
+ # time_zone: "Pacific Time (US & Canada)"
40
+
41
+ # class name of the user model
42
+ # user_class: User
43
+
44
+ # method name for the current user
45
+ # user_method: current_user
46
+
47
+ # method name for the display name
48
+ # user_name: name
49
+
50
+ # custom before_action to use for auth
51
+ # before_action_method: require_admin
52
+
53
+ # email to send checks from
54
+ # from_email: blazer@example.org
55
+
56
+ # webhook for Slack
57
+ # slack_webhook_url: <%= ENV["BLAZER_SLACK_WEBHOOK_URL"] %>
58
+
59
+ check_schedules:
60
+ - "1 day"
61
+ - "1 hour"
62
+ - "5 minutes"
63
+
64
+ # enable anomaly detection
65
+ # note: with trend, time series are sent to https://trendapi.org
66
+ # anomaly_checks: prophet / trend / anomaly_detection
67
+
68
+ # enable forecasting
69
+ # note: with trend, time series are sent to https://trendapi.org
70
+ # forecasting: prophet / trend
71
+
72
+ # enable map
73
+ mapbox_access_token: <%= ENV["MAPBOX_ACCESS_TOKEN"] %>
74
+
75
+ # enable uploads
76
+ uploads:
77
+ url: <%= ENV["BLAZER_DATABASE_URL"] %>
78
+ schema: blazer_uploads
79
+ data_source: main