commonwealth-vlr-engine 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 (361) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +91 -0
  3. data/.gitmodules +3 -0
  4. data/Gemfile +20 -0
  5. data/LICENSE +202 -0
  6. data/README.md +38 -0
  7. data/Rakefile +43 -0
  8. data/app/assets/images/commonwealth-vlr-engine/bplLoginButton.png +0 -0
  9. data/app/assets/images/commonwealth-vlr-engine/dc_audio-icon.png +0 -0
  10. data/app/assets/images/commonwealth-vlr-engine/dc_collection-icon.png +0 -0
  11. data/app/assets/images/commonwealth-vlr-engine/dc_image-icon.png +0 -0
  12. data/app/assets/images/commonwealth-vlr-engine/dc_institution-icon.png +0 -0
  13. data/app/assets/images/commonwealth-vlr-engine/dc_moving-image-icon.png +0 -0
  14. data/app/assets/images/commonwealth-vlr-engine/dc_text-icon.png +0 -0
  15. data/app/assets/images/commonwealth-vlr-engine/facebookLoginButton.png +0 -0
  16. data/app/assets/images/commonwealth-vlr-engine/loading-wdl-grid.gif +0 -0
  17. data/app/assets/images/commonwealth-vlr-engine/loading-wdl.gif +0 -0
  18. data/app/assets/images/commonwealth-vlr-engine/loading.gif +0 -0
  19. data/app/assets/images/commonwealth-vlr-engine/openseadragon/fullpage_grouphover.png +0 -0
  20. data/app/assets/images/commonwealth-vlr-engine/openseadragon/fullpage_hover.png +0 -0
  21. data/app/assets/images/commonwealth-vlr-engine/openseadragon/fullpage_pressed.png +0 -0
  22. data/app/assets/images/commonwealth-vlr-engine/openseadragon/fullpage_rest.png +0 -0
  23. data/app/assets/images/commonwealth-vlr-engine/openseadragon/home_grouphover.png +0 -0
  24. data/app/assets/images/commonwealth-vlr-engine/openseadragon/home_hover.png +0 -0
  25. data/app/assets/images/commonwealth-vlr-engine/openseadragon/home_pressed.png +0 -0
  26. data/app/assets/images/commonwealth-vlr-engine/openseadragon/home_rest.png +0 -0
  27. data/app/assets/images/commonwealth-vlr-engine/openseadragon/next_grouphover.png +0 -0
  28. data/app/assets/images/commonwealth-vlr-engine/openseadragon/next_hover.png +0 -0
  29. data/app/assets/images/commonwealth-vlr-engine/openseadragon/next_pressed.png +0 -0
  30. data/app/assets/images/commonwealth-vlr-engine/openseadragon/next_rest.png +0 -0
  31. data/app/assets/images/commonwealth-vlr-engine/openseadragon/previous_grouphover.png +0 -0
  32. data/app/assets/images/commonwealth-vlr-engine/openseadragon/previous_hover.png +0 -0
  33. data/app/assets/images/commonwealth-vlr-engine/openseadragon/previous_pressed.png +0 -0
  34. data/app/assets/images/commonwealth-vlr-engine/openseadragon/previous_rest.png +0 -0
  35. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateleft_grouphover.png +0 -0
  36. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateleft_hover.png +0 -0
  37. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateleft_pressed.png +0 -0
  38. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateleft_rest.png +0 -0
  39. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateright_grouphover.png +0 -0
  40. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateright_hover.png +0 -0
  41. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateright_pressed.png +0 -0
  42. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateright_rest.png +0 -0
  43. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomin_grouphover.png +0 -0
  44. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomin_hover.png +0 -0
  45. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomin_pressed.png +0 -0
  46. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomin_rest.png +0 -0
  47. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomout_grouphover.png +0 -0
  48. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomout_hover.png +0 -0
  49. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomout_pressed.png +0 -0
  50. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomout_rest.png +0 -0
  51. data/app/assets/images/commonwealth-vlr-engine/vlr_logo_img.png +0 -0
  52. data/app/assets/javascripts/blacklight_gallery.js +1 -0
  53. data/app/assets/javascripts/blacklight_google_analytics/blacklight_google_analytics.js.erb +165 -0
  54. data/app/assets/javascripts/bootstrap-accessibility-plugin/bootstrap-accessibility.js +586 -0
  55. data/app/assets/javascripts/commonwealth-vlr-engine.js +22 -0
  56. data/app/assets/javascripts/commonwealth-vlr-engine/collection_facets.js +5 -0
  57. data/app/assets/javascripts/commonwealth-vlr-engine/disable_dropdown_nav.js +21 -0
  58. data/app/assets/javascripts/commonwealth-vlr-engine/feedback_alerts.js.erb +19 -0
  59. data/app/assets/javascripts/commonwealth-vlr-engine/folder_tools.js +26 -0
  60. data/app/assets/javascripts/commonwealth-vlr-engine/multi_img_viewer.js.erb +20 -0
  61. data/app/assets/javascripts/commonwealth-vlr-engine/ocr_search_utils.js.erb +32 -0
  62. data/app/assets/javascripts/commonwealth-vlr-engine/volumes_list.js +5 -0
  63. data/app/assets/javascripts/openseadragon.js +2 -0
  64. data/app/assets/javascripts/respond/respond.min.js +6 -0
  65. data/app/assets/javascripts/wdl-viewer/fd-slider.js +1303 -0
  66. data/app/assets/javascripts/wdl-viewer/jquery-deparam.js +113 -0
  67. data/app/assets/javascripts/wdl-viewer/jquery.ba-throttle-debounce.min.js +9 -0
  68. data/app/assets/javascripts/wdl-viewer/jquery.hammer.min.js +7 -0
  69. data/app/assets/javascripts/wdl-viewer/modernizr-wdl.min.js +3 -0
  70. data/app/assets/javascripts/wdl-viewer/wdl-search.js +33 -0
  71. data/app/assets/javascripts/wdl-viewer/wdl-viewer_commonwealth.js +1147 -0
  72. data/app/assets/stylesheets/blacklight_advanced_search.css +5 -0
  73. data/app/assets/stylesheets/blacklight_gallery.css +1 -0
  74. data/app/assets/stylesheets/blacklight_maps.css +1 -0
  75. data/app/assets/stylesheets/bootstrap-accessibility-plugin/bootstrap-accessibility.css +105 -0
  76. data/app/assets/stylesheets/commonwealth-vlr-engine/advanced_search.scss +139 -0
  77. data/app/assets/stylesheets/commonwealth-vlr-engine/basic_search.scss +47 -0
  78. data/app/assets/stylesheets/commonwealth-vlr-engine/book_viewer.scss +576 -0
  79. data/app/assets/stylesheets/commonwealth-vlr-engine/carousel.scss +94 -0
  80. data/app/assets/stylesheets/commonwealth-vlr-engine/cmmnwlth_defaults.scss +45 -0
  81. data/app/assets/stylesheets/commonwealth-vlr-engine/cmmnwlth_shared.scss +75 -0
  82. data/app/assets/stylesheets/commonwealth-vlr-engine/collections.scss +563 -0
  83. data/app/assets/stylesheets/commonwealth-vlr-engine/commonwealth-vlr-engine.css +32 -0
  84. data/app/assets/stylesheets/commonwealth-vlr-engine/facets.scss +111 -0
  85. data/app/assets/stylesheets/commonwealth-vlr-engine/feedback.scss +10 -0
  86. data/app/assets/stylesheets/commonwealth-vlr-engine/folders.scss +276 -0
  87. data/app/assets/stylesheets/commonwealth-vlr-engine/footer.scss +47 -0
  88. data/app/assets/stylesheets/commonwealth-vlr-engine/header.scss +329 -0
  89. data/app/assets/stylesheets/commonwealth-vlr-engine/home.scss +269 -0
  90. data/app/assets/stylesheets/commonwealth-vlr-engine/index.scss +580 -0
  91. data/app/assets/stylesheets/commonwealth-vlr-engine/institutions.scss +246 -0
  92. data/app/assets/stylesheets/commonwealth-vlr-engine/pages.scss +31 -0
  93. data/app/assets/stylesheets/commonwealth-vlr-engine/search_inside.scss +172 -0
  94. data/app/assets/stylesheets/commonwealth-vlr-engine/searches.scss +55 -0
  95. data/app/assets/stylesheets/commonwealth-vlr-engine/show.scss +840 -0
  96. data/app/assets/stylesheets/commonwealth-vlr-engine/signin.scss +43 -0
  97. data/app/assets/stylesheets/commonwealth-vlr-engine/users.scss +18 -0
  98. data/app/assets/stylesheets/commonwealth-vlr-engine/vlr_dependencies.css +8 -0
  99. data/app/assets/stylesheets/ie_fixes.css +16 -0
  100. data/app/assets/stylesheets/openseadragon.css +1 -0
  101. data/app/assets/stylesheets/wdl-viewer/fd-slider.min.css +2 -0
  102. data/app/controllers/blacklight_advanced_search/advanced_controller.rb +66 -0
  103. data/app/controllers/bookmarks_controller.rb +38 -0
  104. data/app/controllers/collections_controller.rb +128 -0
  105. data/app/controllers/commonwealth_vlr_engine/application_controller.rb +8 -0
  106. data/app/controllers/feedback_controller.rb +39 -0
  107. data/app/controllers/folder_items_actions_controller.rb +72 -0
  108. data/app/controllers/folder_items_controller.rb +90 -0
  109. data/app/controllers/folders_controller.rb +132 -0
  110. data/app/controllers/iiif_manifest_controller.rb +74 -0
  111. data/app/controllers/image_viewer_controller.rb +34 -0
  112. data/app/controllers/institutions_controller.rb +62 -0
  113. data/app/controllers/ocr_search_controller.rb +78 -0
  114. data/app/controllers/pages_controller.rb +5 -0
  115. data/app/controllers/users/omniauth_callbacks_controller.rb +10 -0
  116. data/app/controllers/users/registrations_controller.rb +3 -0
  117. data/app/controllers/users/sessions_controller.rb +3 -0
  118. data/app/controllers/users_controller.rb +27 -0
  119. data/app/helpers/blacklight_maps_helper.rb +3 -0
  120. data/app/helpers/collections_helper.rb +3 -0
  121. data/app/helpers/commonwealth_vlr_engine/application_helper.rb +200 -0
  122. data/app/helpers/commonwealth_vlr_engine/blacklight_helper.rb +35 -0
  123. data/app/helpers/commonwealth_vlr_engine/blacklight_url_helper.rb +53 -0
  124. data/app/helpers/commonwealth_vlr_engine/catalog_helper.rb +414 -0
  125. data/app/helpers/commonwealth_vlr_engine/collections_helper_behavior.rb +19 -0
  126. data/app/helpers/commonwealth_vlr_engine/component_helper.rb +22 -0
  127. data/app/helpers/commonwealth_vlr_engine/facets_helper.rb +20 -0
  128. data/app/helpers/commonwealth_vlr_engine/feedback_helper_behavior.rb +14 -0
  129. data/app/helpers/commonwealth_vlr_engine/folders_helper_behavior.rb +9 -0
  130. data/app/helpers/commonwealth_vlr_engine/image_viewer_helper_behavior.rb +14 -0
  131. data/app/helpers/commonwealth_vlr_engine/institutions_helper_behavior.rb +31 -0
  132. data/app/helpers/commonwealth_vlr_engine/layout_helper.rb +22 -0
  133. data/app/helpers/commonwealth_vlr_engine/ocr_search_helper_behavior.rb +48 -0
  134. data/app/helpers/commonwealth_vlr_engine/pages_helper_behavior.rb +38 -0
  135. data/app/helpers/commonwealth_vlr_engine/vlr_blacklight_maps_helper_behavior.rb +59 -0
  136. data/app/helpers/feedback_helper.rb +3 -0
  137. data/app/helpers/folders_helper.rb +3 -0
  138. data/app/helpers/image_viewer_helper.rb +3 -0
  139. data/app/helpers/institutions_helper.rb +3 -0
  140. data/app/helpers/ocr_search_helper.rb +3 -0
  141. data/app/helpers/pages_helper.rb +3 -0
  142. data/app/mailers/notifier.rb +5 -0
  143. data/app/models/carousel_slide.rb +7 -0
  144. data/app/models/record_mailer.rb +18 -0
  145. data/app/models/user.rb +15 -0
  146. data/app/views/advanced/_advanced_search_date.html.erb +23 -0
  147. data/app/views/advanced/_advanced_search_facets.html.erb +5 -0
  148. data/app/views/advanced/_advanced_search_fields.html.erb +39 -0
  149. data/app/views/advanced/_advanced_search_form.html.erb +51 -0
  150. data/app/views/advanced/_advanced_search_help.html.erb +13 -0
  151. data/app/views/advanced/_facet_layout.html.erb +9 -0
  152. data/app/views/advanced/_facet_limit.html.erb +15 -0
  153. data/app/views/advanced/index.html.erb +29 -0
  154. data/app/views/blacklight_advanced_search/_facet_limit.html.erb +12 -0
  155. data/app/views/bookmarks/_tools.html.erb +25 -0
  156. data/app/views/bookmarks/index.html.erb +64 -0
  157. data/app/views/bookmarks/update.js.erb +1 -0
  158. data/app/views/bpluser/folders/_folder.html.erb +36 -0
  159. data/app/views/catalog/_add_this.html.erb +10 -0
  160. data/app/views/catalog/_az_links.html.erb +15 -0
  161. data/app/views/catalog/_basic_search.html.erb +67 -0
  162. data/app/views/catalog/_citation.html.erb +50 -0
  163. data/app/views/catalog/_constraints.html.erb +26 -0
  164. data/app/views/catalog/_document_collections_gallery.html.erb +7 -0
  165. data/app/views/catalog/_facet_limit_series.html.erb +21 -0
  166. data/app/views/catalog/_facets.html.erb +31 -0
  167. data/app/views/catalog/_facets_series.html.erb +4 -0
  168. data/app/views/catalog/_folder_item_control.html.erb +64 -0
  169. data/app/views/catalog/_index_collections_gallery.html.erb +12 -0
  170. data/app/views/catalog/_index_gallery.html.erb +11 -0
  171. data/app/views/catalog/_index_header_default.html.erb +22 -0
  172. data/app/views/catalog/_index_list_collection.html.erb +33 -0
  173. data/app/views/catalog/_index_list_default.html.erb +13 -0
  174. data/app/views/catalog/_index_map_institutions.html.erb +10 -0
  175. data/app/views/catalog/_index_masonry.html.erb +8 -0
  176. data/app/views/catalog/_index_slideshow.html.erb +18 -0
  177. data/app/views/catalog/_more_like_this.html.erb +9 -0
  178. data/app/views/catalog/_opengraph.html.erb +16 -0
  179. data/app/views/catalog/_previous_next_doc.html.erb +22 -0
  180. data/app/views/catalog/_results_pagination.html.erb +9 -0
  181. data/app/views/catalog/_search_form.html.erb +23 -0
  182. data/app/views/catalog/_search_header.html.erb +5 -0
  183. data/app/views/catalog/_show_default.html.erb +75 -0
  184. data/app/views/catalog/_show_main_content.html.erb +27 -0
  185. data/app/views/catalog/_show_more_like_this.html.erb +15 -0
  186. data/app/views/catalog/_show_partials/_show_book_viewer_link.html.erb +25 -0
  187. data/app/views/catalog/_show_partials/_show_default_img.html.erb +32 -0
  188. data/app/views/catalog/_show_partials/_show_default_metadata.html.erb +486 -0
  189. data/app/views/catalog/_show_partials/_show_default_simple_img_viewer.html.erb +45 -0
  190. data/app/views/catalog/_show_partials/_show_downloads.html.erb +14 -0
  191. data/app/views/catalog/_show_partials/_show_flagged_notice.html.erb +29 -0
  192. data/app/views/catalog/_show_partials/_show_multi_img.html.erb +42 -0
  193. data/app/views/catalog/_show_partials/_show_multi_img_pagination.html.erb +20 -0
  194. data/app/views/catalog/_show_partials/_show_oai_item_img.html.erb +5 -0
  195. data/app/views/catalog/_show_partials/_show_oai_item_link.html.erb +8 -0
  196. data/app/views/catalog/_show_partials/_show_prev_next_carousel_links.html.erb +17 -0
  197. data/app/views/catalog/_show_partials/_show_volumes.html.erb +52 -0
  198. data/app/views/catalog/_show_sidebar.html.erb +1 -0
  199. data/app/views/catalog/_show_tools.html.erb +42 -0
  200. data/app/views/catalog/_zero_results.html.erb +20 -0
  201. data/app/views/catalog/email.html.erb +6 -0
  202. data/app/views/catalog/index.html.erb +17 -0
  203. data/app/views/catalog/metadata_view.html.erb +7 -0
  204. data/app/views/catalog/show.html.erb +13 -0
  205. data/app/views/collections/_search_form_collection.html.erb +23 -0
  206. data/app/views/collections/index.html.erb +30 -0
  207. data/app/views/collections/show.html.erb +116 -0
  208. data/app/views/devise/confirmations/new.html.erb +14 -0
  209. data/app/views/devise/mailer/reset_password_instructions.html.erb +13 -0
  210. data/app/views/devise/passwords/edit.html.erb +33 -0
  211. data/app/views/devise/passwords/new.html.erb +31 -0
  212. data/app/views/devise/registrations/edit.html.erb +83 -0
  213. data/app/views/devise/registrations/new.html.erb +53 -0
  214. data/app/views/devise/sessions/new.html.erb +75 -0
  215. data/app/views/devise/shared/_links.erb +29 -0
  216. data/app/views/feedback/complete.html.erb +9 -0
  217. data/app/views/feedback/show.html.erb +61 -0
  218. data/app/views/folder_items/create.js.erb +1 -0
  219. data/app/views/folder_items/destroy.js.erb +1 -0
  220. data/app/views/folder_items/item_actions.js.erb +2 -0
  221. data/app/views/folder_items/update.js.erb +1 -0
  222. data/app/views/folders/_in_folder.html.erb +2 -0
  223. data/app/views/folders/_new_edit_form_fields.html.erb +36 -0
  224. data/app/views/folders/edit.html.erb +25 -0
  225. data/app/views/folders/index.html.erb +73 -0
  226. data/app/views/folders/new.html.erb +27 -0
  227. data/app/views/folders/public_list.html.erb +44 -0
  228. data/app/views/folders/show.html.erb +98 -0
  229. data/app/views/image_viewer/_book_viewer_help.html.erb +125 -0
  230. data/app/views/image_viewer/_render_book_viewer.html.erb +185 -0
  231. data/app/views/image_viewer/book_viewer.html.erb +57 -0
  232. data/app/views/image_viewer/show.js.erb +19 -0
  233. data/app/views/institutions/_intro_text.html.erb +1 -0
  234. data/app/views/institutions/_map_institutions_search.html.erb +9 -0
  235. data/app/views/institutions/_search_form_institution.html.erb +24 -0
  236. data/app/views/institutions/index.html.erb +31 -0
  237. data/app/views/institutions/show.html.erb +104 -0
  238. data/app/views/layouts/_google_analytics.html.erb +9 -0
  239. data/app/views/layouts/book_viewer.html.erb +37 -0
  240. data/app/views/layouts/commonwealth-vlr-engine.html.erb +59 -0
  241. data/app/views/notifier/feedback.text.erb +6 -0
  242. data/app/views/ocr_search/_index_ocr_list.html.erb +17 -0
  243. data/app/views/ocr_search/_search_form_ocr.html.erb +23 -0
  244. data/app/views/ocr_search/_snippets_more.html.erb +15 -0
  245. data/app/views/ocr_search/_zero_results_ocr.html.erb +9 -0
  246. data/app/views/ocr_search/index.html.erb +49 -0
  247. data/app/views/pages/_carousel.html.erb +46 -0
  248. data/app/views/pages/_home_partials/_banner.html.erb +23 -0
  249. data/app/views/pages/_home_partials/_browse.html.erb +55 -0
  250. data/app/views/pages/_home_partials/_context.html.erb +24 -0
  251. data/app/views/pages/_home_partials/_home_content.html.erb +14 -0
  252. data/app/views/pages/about.html.erb +10 -0
  253. data/app/views/pages/about_site.html.erb +6 -0
  254. data/app/views/pages/explore.html.erb +32 -0
  255. data/app/views/pages/home.html.erb +3 -0
  256. data/app/views/record_mailer/email_record.text.erb +7 -0
  257. data/app/views/saved_searches/index.html.erb +60 -0
  258. data/app/views/search_history/index.html.erb +59 -0
  259. data/app/views/shared/_error_messages.html.erb +9 -0
  260. data/app/views/shared/_flash_msg_maintenance.html.erb +6 -0
  261. data/app/views/shared/_folder_item_actions.html.erb +66 -0
  262. data/app/views/shared/_folder_tools.html.erb +4 -0
  263. data/app/views/shared/_footer.html.erb +14 -0
  264. data/app/views/shared/_header_navbar.html.erb +34 -0
  265. data/app/views/shared/_nav_links.html.erb +58 -0
  266. data/app/views/shared/_search_form_header.html.erb +16 -0
  267. data/app/views/shared/_tools.html.erb +14 -0
  268. data/app/views/shared/_user_util_links.html.erb +43 -0
  269. data/app/views/users/show.html.erb +33 -0
  270. data/commonwealth-vlr-engine.gemspec +47 -0
  271. data/config/initializers/patch_blacklight_advanced_search.rb +74 -0
  272. data/config/initializers/patch_blacklight_maps.rb +20 -0
  273. data/config/jetty.yml +7 -0
  274. data/config/locales/commonwealth-vlr-engine.en.yml +463 -0
  275. data/config/routes.rb +92 -0
  276. data/lib/commonwealth-vlr-engine.rb +55 -0
  277. data/lib/commonwealth-vlr-engine/commonwealth_search_builder.rb +66 -0
  278. data/lib/commonwealth-vlr-engine/controller.rb +69 -0
  279. data/lib/commonwealth-vlr-engine/controller_override.rb +238 -0
  280. data/lib/commonwealth-vlr-engine/engine.rb +40 -0
  281. data/lib/commonwealth-vlr-engine/finder.rb +285 -0
  282. data/lib/commonwealth-vlr-engine/iiif_manifest.rb +189 -0
  283. data/lib/commonwealth-vlr-engine/notifier.rb +33 -0
  284. data/lib/commonwealth-vlr-engine/pages.rb +33 -0
  285. data/lib/commonwealth-vlr-engine/render_constraints_override.rb +57 -0
  286. data/lib/commonwealth-vlr-engine/route_sets.rb +49 -0
  287. data/lib/commonwealth-vlr-engine/routes.rb +21 -0
  288. data/lib/commonwealth-vlr-engine/version.rb +3 -0
  289. data/lib/generators/commonwealth_vlr_engine/controller_generator.rb +92 -0
  290. data/lib/generators/commonwealth_vlr_engine/environment_generator.rb +49 -0
  291. data/lib/generators/commonwealth_vlr_engine/install_generator.rb +57 -0
  292. data/lib/generators/commonwealth_vlr_engine/localassets_generator.rb +29 -0
  293. data/lib/generators/commonwealth_vlr_engine/model_generator.rb +65 -0
  294. data/lib/generators/commonwealth_vlr_engine/routes_generator.rb +39 -0
  295. data/lib/generators/commonwealth_vlr_engine/templates/commonwealth_vlr_engine.css.scss +4 -0
  296. data/lib/generators/commonwealth_vlr_engine/templates/config/contact_emails.yml.sample +13 -0
  297. data/lib/generators/commonwealth_vlr_engine/templates/config/fedora.yml.sample +6 -0
  298. data/lib/generators/commonwealth_vlr_engine/templates/config/geojson_static_file.yml.sample +11 -0
  299. data/lib/generators/commonwealth_vlr_engine/templates/config/google_analytics.yml.sample +10 -0
  300. data/lib/generators/commonwealth_vlr_engine/templates/config/iiif_server.yml.sample +10 -0
  301. data/lib/generators/commonwealth_vlr_engine/templates/config/initializers/a_load_commonwealth_vlr_configs.rb +14 -0
  302. data/lib/generators/commonwealth_vlr_engine/templates/config/initializers/devise.rb +269 -0
  303. data/lib/generators/commonwealth_vlr_engine/templates/config/initializers/secret_token.rb +8 -0
  304. data/lib/generators/commonwealth_vlr_engine/templates/config/locales/blacklight.en.yml +44 -0
  305. data/lib/generators/commonwealth_vlr_engine/templates/config/locales/devise.en.yml +12 -0
  306. data/lib/generators/commonwealth_vlr_engine/templates/config/omniauth-facebook.yml.sample +14 -0
  307. data/lib/generators/commonwealth_vlr_engine/templates/config/omniauth-polaris.yml.sample +20 -0
  308. data/lib/generators/commonwealth_vlr_engine/templates/config/vlr.yml +13 -0
  309. data/lib/generators/commonwealth_vlr_engine/yml_generator.rb +29 -0
  310. data/lib/railties/commonwealth_vlr_engine.rake +6 -0
  311. data/solr_conf/conf/schema.xml +476 -0
  312. data/solr_conf/conf/solrconfig.xml +286 -0
  313. data/spec/controllers/catalog_controller_spec.rb +67 -0
  314. data/spec/controllers/collections_controller_spec.rb +127 -0
  315. data/spec/controllers/feedback_controller_spec.rb +51 -0
  316. data/spec/controllers/folder_items_actions_controller_spec.rb +99 -0
  317. data/spec/controllers/folder_items_controller_spec.rb +90 -0
  318. data/spec/controllers/folders_controller_spec.rb +368 -0
  319. data/spec/controllers/iiif_manifest_controller_spec.rb +85 -0
  320. data/spec/controllers/image_viewer_controller_spec.rb +50 -0
  321. data/spec/controllers/institutions_controller_spec.rb +64 -0
  322. data/spec/controllers/ocr_search_controller_spec.rb +71 -0
  323. data/spec/controllers/pages_controller_spec.rb +58 -0
  324. data/spec/controllers/users_controller_spec.rb +62 -0
  325. data/spec/features/catalog/_az_links_spec.rb +27 -0
  326. data/spec/features/catalog/_show_partials/_show_book_viewer_link_spec.rb +47 -0
  327. data/spec/features/catalog/_show_partials/_show_default_simple_img_viewer_spec.rb +19 -0
  328. data/spec/features/catalog/_show_partials/_show_flagged_notice_spec.rb +23 -0
  329. data/spec/features/catalog/_show_partials/_show_multi_img_spec.rb +18 -0
  330. data/spec/features/catalog/_show_partials/_show_volumes_spec.rb +24 -0
  331. data/spec/features/collections/index_spec.rb +35 -0
  332. data/spec/features/feedback/show_spec.rb +47 -0
  333. data/spec/features/image_viewer/book_viewer_spec.rb +67 -0
  334. data/spec/features/institutions/index_spec.rb +31 -0
  335. data/spec/features/institutions/map_view_spec.rb +37 -0
  336. data/spec/features/more_like_this_search_spec.rb +23 -0
  337. data/spec/features/ocr_search/index_spec.rb +89 -0
  338. data/spec/fixtures/sample_rss_feed.xml +56 -0
  339. data/spec/fixtures/sample_solr_documents.yml +2748 -0
  340. data/spec/helpers/application_helper_spec.rb +114 -0
  341. data/spec/helpers/catalog_helper_spec.rb +386 -0
  342. data/spec/helpers/collections_helper_spec.rb +28 -0
  343. data/spec/helpers/component_helper_spec.rb +34 -0
  344. data/spec/helpers/folders_helper_spec.rb +31 -0
  345. data/spec/helpers/image_viewer_helper_spec.rb +15 -0
  346. data/spec/helpers/institutions_helper_spec.rb +53 -0
  347. data/spec/helpers/ocr_search_helper_spec.rb +70 -0
  348. data/spec/helpers/pages_helper_spec.rb +21 -0
  349. data/spec/lib/commonwealth-vlr-engine/commonwealth_search_builder_spec.rb +101 -0
  350. data/spec/lib/commonwealth-vlr-engine/controller_override_spec.rb +41 -0
  351. data/spec/lib/commonwealth-vlr-engine/controller_spec.rb +33 -0
  352. data/spec/lib/commonwealth-vlr-engine/finder_spec.rb +140 -0
  353. data/spec/lib/commonwealth-vlr-engine/iiif_manifest_spec.rb +157 -0
  354. data/spec/lib/commonwealth-vlr-engine/render_constraints_override_spec.rb +97 -0
  355. data/spec/mailers/notifier_spec.rb +31 -0
  356. data/spec/models/carousel_slide_spec.rb +38 -0
  357. data/spec/spec_helper.rb +40 -0
  358. data/spec/tasks/vlr_engine_rake_spec.rb +28 -0
  359. data/spec/test_app_templates/lib/generators/test_app_generator.rb +23 -0
  360. data/tasks/vlr_engine.rake +46 -0
  361. metadata +788 -0
@@ -0,0 +1,33 @@
1
+ module CommonwealthVlrEngine
2
+ module Notifier
3
+ extend ActiveSupport::Concern
4
+
5
+ def feedback(details)
6
+
7
+ @message = details[:message]
8
+ @topic = details[:topic]
9
+ @email = details[:email]
10
+ @name = details[:name]
11
+ @recipient = route_email(details[:topic])
12
+
13
+ mail(:to => @recipient,
14
+ :from => t('blacklight.email.record_mailer.name') + ' <' + t('blacklight.email.record_mailer.email') + '>',
15
+ :subject => t('blacklight.feedback.text.subject', identifier: Time.now.strftime('%s')))
16
+
17
+ end
18
+
19
+ private
20
+
21
+ def route_email(topic)
22
+ if topic == t('blacklight.feedback.form.topic.options.repro.option')
23
+ recipient_email = CONTACT_EMAILS['image_requests']
24
+ else
25
+ recipient_email = CONTACT_EMAILS['site_admin']
26
+ end
27
+ recipient_email
28
+ end
29
+
30
+
31
+
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ module CommonwealthVlrEngine
2
+ module Pages
3
+ extend ActiveSupport::Concern
4
+
5
+ def home
6
+ @carousel_slides = CarouselSlide.where(:context=>'root').order(:sequence)
7
+ section_active_count = 0
8
+ sections = ['maps', 'collections', 'institutions', 'formats']
9
+ sections.each do |section|
10
+ if t("blacklight.home.browse.#{section}.enabled")
11
+ section_active_count += 1
12
+ end
13
+ end
14
+
15
+ @middle_feature_columns = 12 / section_active_count
16
+
17
+ render 'pages/home'
18
+ end
19
+
20
+ def about
21
+ @nav_li_active = 'about'
22
+ end
23
+
24
+ def about_site
25
+ @nav_li_active = 'about'
26
+ end
27
+
28
+ def explore
29
+ @nav_li_active = 'explore'
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,57 @@
1
+ # Meant to be applied on top of Blacklight view helpers, to over-ride
2
+ # certain methods from RenderConstraintsHelper,
3
+ # to affect constraints rendering
4
+ module CommonwealthVlrEngine
5
+ module RenderConstraintsOverride
6
+
7
+ # override so we can inspect for other params, like :mlt_id
8
+ def has_search_parameters?
9
+ has_mlt_parameters? || super
10
+ #!params[:q].blank? or !params[:f].blank? or !params[:search_field].blank? or params[:mlt_id] or !params[:coordinates].blank?
11
+ end
12
+
13
+ # return true if :mlt_id is present
14
+ def has_mlt_parameters?
15
+ !params[:mlt_id].blank?
16
+ end
17
+
18
+ # override to deal with A-Z link result display
19
+ def render_constraint_element(label, value, options = {})
20
+ if value.match(/ssort:[A-Z]+\*/)
21
+ label = t('blacklight.search.constraints.az_search')
22
+ value = value.match(/[A-Z]+/)[0]
23
+ end
24
+ super
25
+ end
26
+
27
+ # override to add method to show constraint for 'more like this' search
28
+ def render_constraints(localized_params = params)
29
+ render_mlt_query(localized_params) + super
30
+ end
31
+
32
+ # Render the 'more like this' query constraints
33
+ def render_mlt_query(localized_params = params)
34
+ # So simple don't need a view template, we can just do it here.
35
+ scope = localized_params.delete(:route_set) || self
36
+ return ''.html_safe if localized_params[:mlt_id].blank?
37
+
38
+ render_constraint_element(t('blacklight.more_like_this.constraint_label'),
39
+ localized_params[:mlt_id],
40
+ :classes => ['mlt'],
41
+ :remove => scope.url_for(localized_params.merge(:mlt_id=>nil, :qt=>nil, :action=>'index')))
42
+ end
43
+
44
+ # include render_search_to_s_mlt() in rendered constraints
45
+ # Simpler textual version of constraints, used on Search History page.
46
+ def render_search_to_s(params)
47
+ render_search_to_s_mlt(params) + super
48
+ end
49
+
50
+ # render the MLT search query constraint, used on Search History page.
51
+ def render_search_to_s_mlt(params)
52
+ return "".html_safe if params[:mlt_id].blank?
53
+ render_search_to_s_element(t('blacklight.more_like_this.constraint_label'), render_filter_value(params[:mlt_id]) )
54
+ end
55
+
56
+ end
57
+ end
@@ -0,0 +1,49 @@
1
+ # monkey-patching Blacklight::Routes::RouteSets
2
+ # to use 'search' as path with Blacklight::CatalogController routes
3
+ # stopgap solution until patch can be submitted
4
+ # that will allow local app to provide :path option for resources passed as
5
+ # args to blacklight/lib/blacklight/rails/routes.rb#blacklight_for
6
+ module CommonwealthVlrEngine
7
+ module RouteSets
8
+
9
+ extend ActiveSupport::Concern
10
+ included do
11
+
12
+ def map_resource(key)
13
+ add_routes do |options|
14
+ get "search/facet/:id", :to => "#{key}#facet", :as => "#{key}_facet"
15
+ get "search", :to => "#{key}#index", :as => "#{key}_index"
16
+ end
17
+ end
18
+
19
+ def export(primary_resource)
20
+ add_routes do |options|
21
+ get "search/opensearch", :to => "#{primary_resource}#opensearch", :as => "opensearch_#{primary_resource}"
22
+ get "search/citation", :to => "#{primary_resource}#citation", :as => "citation_#{primary_resource}"
23
+ match 'search/email', :to => "#{primary_resource}#email", :as => "email_#{primary_resource}", :via => [:get, :post]
24
+ end
25
+ end
26
+
27
+ def solr_document(primary_resource)
28
+ add_routes do |options|
29
+
30
+ args = {only: [:show]}
31
+ args[:constraints] = options[:constraints] if options[:constraints]
32
+
33
+ resources :solr_document, args.merge(path: "search", controller: primary_resource) do
34
+ member do
35
+ post "track"
36
+ end
37
+ end
38
+
39
+ # :show and :update are for backwards-compatibility with catalog_url named routes
40
+ resources primary_resource, args
41
+ end
42
+ end
43
+
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+ Blacklight::Routes::RouteSets.send(:include, CommonwealthVlrEngine::RouteSets)
@@ -0,0 +1,21 @@
1
+ module CommonwealthVlrEngine
2
+ module Routes
3
+
4
+ extend ActiveSupport::Concern
5
+ included do |klass|
6
+ klass.default_route_sets.unshift(:bookmark_item_actions)
7
+ end
8
+
9
+ # route bookmark items actions (cite, email, delete) to folder_items_actions
10
+ # this needs to be before BL bookmarks stuff, so we add it at the beginning of
11
+ # the default_route_sets array
12
+ def bookmark_item_actions(_)
13
+ add_routes do |options|
14
+ put 'bookmarks/item_actions', :to => 'folder_items_actions#folder_item_actions', :as => 'selected_bookmarks_actions'
15
+ end
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+ Blacklight::Routes.send(:include, CommonwealthVlrEngine::Routes)
@@ -0,0 +1,3 @@
1
+ module CommonwealthVlrEngine
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,92 @@
1
+ require 'rails/generators'
2
+
3
+ module CommonwealthVlrEngine
4
+ class ControllerGenerator < Rails::Generators::Base
5
+
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ argument :controller_name , type: :string , default: "catalog"
9
+
10
+ desc """
11
+ This generator makes the following changes to your application:
12
+ 1. Injects behavior into your user application_controller.rb
13
+ 2. Configures your catalog_controller.rb and removes many values.
14
+ Thank you for Installing Commonwealth VLR.
15
+ """
16
+
17
+ # Add Commonwealth to the application controller
18
+ def inject_application_controller_behavior
19
+ unless IO.read("app/controllers/application_controller.rb").include?('CommonwealthVlrEngine::Controller')
20
+ marker = 'include Blacklight::Controller'
21
+ insert_into_file "app/controllers/application_controller.rb", :after => marker do
22
+ %q{
23
+
24
+ # adds some site-wide behavior into the application controller
25
+ include CommonwealthVlrEngine::Controller
26
+ layout 'commonwealth-vlr-engine'
27
+ }
28
+ end
29
+ remove_marker = "layout 'blacklight'"
30
+ gsub_file("app/controllers/application_controller.rb", remove_marker, "")
31
+
32
+ end
33
+ end
34
+
35
+ # Update the blacklight catalog controller
36
+ def inject_catalog_controller_behavior
37
+ unless IO.read("app/controllers/#{controller_name}_controller.rb").include?('CommonwealthVlrEngine')
38
+ marker = 'include Blacklight::Catalog'
39
+ insert_into_file "app/controllers/#{controller_name}_controller.rb", :after => marker do
40
+ %q{
41
+ # CatalogController-scope behavior and configuration for CommonwealthVlrEngine
42
+ include CommonwealthVlrEngine::ControllerOverride
43
+ CatalogController.search_params_logic += [:institution_limit]
44
+ }
45
+ end
46
+
47
+ marker = 'configure_blacklight do |config|'
48
+ insert_into_file "app/controllers/#{controller_name}_controller.rb", :after => marker do
49
+ %q{
50
+ # SearchBuilder contains logic for adding search params to Solr
51
+ config.search_builder_class = SearchBuilder
52
+
53
+ # limit Advanced Search facets to this institution
54
+ # can't call SearchBuilder.institution_limit because it's an instance method, not a class method
55
+ config.advanced_search[:form_solr_parameters]['fq'] = '+institution_pid_ssi:"' + CommonwealthVlrEngine.config[:institution][:pid] + '"'
56
+ }
57
+ end
58
+
59
+ #For config.default_solr_params
60
+ gsub_file("app/controllers/#{controller_name}_controller.rb", /config\.default_solr_params[\s\S]+?}/, "")
61
+
62
+ #For multi line fields
63
+ fields_to_remove = [/ +config.add_facet_field 'example_query_facet_field'[\s\S]+?}\n[ ]+}/,
64
+ / +config.add_search_field\([\s\S]+?end/
65
+ ]
66
+
67
+ fields_to_remove.each do |remove_marker|
68
+ #gsub_file("app/controllers/#{controller_name}_controller.rb", /#{comment_marker}/, "\##{comment_marker}")
69
+ gsub_file("app/controllers/#{controller_name}_controller.rb", /#{remove_marker}/, "")
70
+ end
71
+
72
+ #For single line fields
73
+ fields_to_remove = [/ +config.index.title_field +=.+?$\n*/,
74
+ / +config.index.display_type_field +=.+?$\n*/,
75
+ / +config.add_facet_field +'.+?$\n*/,
76
+ / +config.add_index_field +'.+?$\n*/,
77
+ / +config.add_show_field +'.+?$\n*/,
78
+ / +config.add_search_field +'.+?$\n*/,
79
+ / +config.add_sort_field +'.+?$\n*/
80
+ ]
81
+
82
+ fields_to_remove.each do |remove_marker|
83
+ #gsub_file("app/controllers/#{controller_name}_controller.rb", /#{comment_marker}/, "\##{comment_marker}")
84
+ gsub_file("app/controllers/#{controller_name}_controller.rb", /#{remove_marker}/, "")
85
+ end
86
+
87
+ end
88
+
89
+ end
90
+
91
+ end
92
+ end
@@ -0,0 +1,49 @@
1
+ require 'rails/generators'
2
+
3
+ module CommonwealthVlrEngine
4
+ class EnvironmentGenerator < Rails::Generators::Base
5
+
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ desc """
9
+ This generator makes the following changes to your application:
10
+ 1. Adds some settings for asset precompilation to config/initializers/assets.rb
11
+ 2. Adds some settings for security and mailers to config/application.rb
12
+ Thank you for installing Commonwealth VLR.
13
+ """
14
+
15
+ # add settings to application.rb
16
+ def inject_application_settings
17
+ unless IO.read('config/application.rb').include?('config.action_mailer.delivery_method')
18
+ marker = 'class Application < Rails::Application'
19
+ insert_into_file 'config/application.rb', :after => marker do
20
+ %q{
21
+
22
+ # don't log passwords
23
+ config.filter_parameters += [:password]
24
+ # mailer settings
25
+ config.action_mailer.delivery_method = :sendmail
26
+ config.action_mailer.default_url_options = { :host => 'awesomelibrary.org' }
27
+ }
28
+
29
+ end
30
+
31
+ end
32
+ end
33
+
34
+ # add settings to assets.rb
35
+ def inject_asset_settings
36
+ unless IO.read('config/initializers/assets.rb').match(/^[^#]*config.assets.precompile/)
37
+ marker = '# Precompile additional assets.'
38
+ insert_into_file 'config/initializers/assets.rb', :after => marker do
39
+ %q{
40
+ Rails.application.config.assets.precompile += %w(wdl-viewer/fd-slider.min.css ie_fixes.css *.js)
41
+ }
42
+
43
+ end
44
+
45
+ end
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,57 @@
1
+ require 'rails/generators'
2
+
3
+ module CommonwealthVlrEngine
4
+ class InstallGenerator < Rails::Generators::Base
5
+
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ argument :search_builder_name, type: :string , default: "search_builder"
9
+ argument :document_name, type: :string , default: "solr_document"
10
+ argument :controller_name, type: :string , default: "catalog"
11
+
12
+ desc "InstallGenerator Commonwealth VLR Engine"
13
+
14
+ def verify_blacklight_installed
15
+ if !IO.read('app/controllers/application_controller.rb').include?('include Blacklight::Controller')
16
+ raise "It doesn't look like you have Blacklight installed..."
17
+ end
18
+ end
19
+
20
+ def insert_to_assets
21
+ generate 'commonwealth_vlr_engine:localassets'
22
+ end
23
+
24
+ def copy_yml_files
25
+ generate 'commonwealth_vlr_engine:yml'
26
+ end
27
+
28
+ def insert_to_controllers
29
+ generate 'commonwealth_vlr_engine:controller', controller_name
30
+ end
31
+
32
+ def insert_to_models
33
+ generate 'commonwealth_vlr_engine:model', search_builder_name, document_name
34
+ end
35
+
36
+ def add_vlr_initializers
37
+ template 'config/initializers/a_load_commonwealth_vlr_configs.rb'
38
+ template 'config/initializers/devise.rb'
39
+ template 'config/initializers/secret_token.rb'
40
+ end
41
+
42
+ def insert_to_routes
43
+ generate 'commonwealth_vlr_engine:routes'
44
+ end
45
+
46
+ def insert_to_environments
47
+ generate 'commonwealth_vlr_engine:environment'
48
+ end
49
+
50
+ def bundle_install
51
+ Bundler.with_clean_env do
52
+ run 'bundle install'
53
+ end
54
+ end
55
+
56
+ end
57
+ end
@@ -0,0 +1,29 @@
1
+ require 'rails/generators'
2
+
3
+ module CommonwealthVlrEngine
4
+ class LocalassetsGenerator < Rails::Generators::Base
5
+
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ desc "AssetsGenerator Commonwealth VLR Engine"
9
+
10
+ def assets
11
+ unless IO.read("app/assets/javascripts/application.js").include?('commonwealth-vlr-engine')
12
+ marker = '//= require_tree .'
13
+ insert_into_file "app/assets/javascripts/application.js", :before => marker do
14
+ %q{
15
+ //
16
+ // Required by Commonwealth-VLR-Engine
17
+ //= require bootstrap/carousel
18
+ //= require commonwealth-vlr-engine
19
+
20
+ }
21
+ end
22
+ end
23
+
24
+ copy_file "commonwealth_vlr_engine.css.scss", "app/assets/stylesheets/commonwealth_vlr_engine.css.scss"
25
+
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,65 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ module CommonwealthVlrEngine
5
+ class ModelGenerator < Rails::Generators::Base
6
+ include Rails::Generators::Migration
7
+
8
+ source_root File.expand_path('../templates', __FILE__)
9
+
10
+ argument :search_builder_model, :type => :string , :default => "search_builder"
11
+ argument :document_model_name, :type => :string , :default => "solr_document"
12
+
13
+ desc """
14
+ This generator makes the following changes to your application:
15
+ 1. Injects the institution limiter into search_builder.rb
16
+ 2. Adds OpenSeadragon suppoer to solr_document.rb
17
+ Thank you for Installing Commonwealth VLR.
18
+ """
19
+
20
+ # Limit the institutions
21
+ def inject_search_builder_behavior
22
+ unless IO.read("app/models/#{search_builder_model}.rb").include?('def institutions_filter')
23
+ marker = 'Blacklight::Solr::SearchBuilderBehavior'
24
+ insert_into_file "app/models/#{search_builder_model}.rb", :after => marker do
25
+ %q{
26
+
27
+ # limit to a specific institution
28
+ def institution_limit(solr_parameters = {})
29
+ solr_parameters[:fq] ||= []
30
+ solr_parameters[:fq] << '+institution_pid_ssi:"' + CommonwealthVlrEngine.config[:institution][:pid] + '"'
31
+ end
32
+ }
33
+ end
34
+ end
35
+ end
36
+
37
+ # OpenSeadragon support?
38
+ def inject_solr_document_behavior
39
+ unless IO.read("app/models/#{document_model_name}.rb").include?('Blacklight::Gallery::OpenseadragonSolrDocument')
40
+ marker = 'include Blacklight::Solr::Document'
41
+ insert_into_file "app/models/#{document_model_name}.rb", :after => marker do
42
+ %q{
43
+
44
+ include Blacklight::Gallery::OpenseadragonSolrDocument
45
+ }
46
+ end
47
+ end
48
+ end
49
+
50
+ # get the database migrations from the submodule
51
+ # https://github.com/boston-library/commonwealth-db-migrations.git
52
+ def get_migrations_submodule
53
+ Dir.chdir(File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..'))) do
54
+ `git submodule init`
55
+ `git submodule update`
56
+ end
57
+ end
58
+
59
+ # Setup the database migrations
60
+ def copy_migrations
61
+ rake 'railties:install:migrations'
62
+ end
63
+
64
+ end
65
+ end