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,286 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!-- COPIED FROM https://github.com/boston-library/solr-core-conf/master/solrconfig.xml -->
3
+ <config>
4
+ <!-- NOTE: various comments and unused configuration possibilities have been purged
5
+ from this file. Please refer to http://wiki.apache.org/solr/SolrConfigXml,
6
+ as well as the default solrconfig file included with Solr -->
7
+
8
+ <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
9
+
10
+ <luceneMatchVersion>LUCENE_40</luceneMatchVersion>
11
+
12
+ <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
13
+
14
+ <!-- solr lib dirs -->
15
+ <lib dir="../lib/contrib/analysis-extras/lib" />
16
+ <lib dir="../lib/contrib/analysis-extras/lucene-libs" />
17
+
18
+ <dataDir>${solr.data.dir:}</dataDir>
19
+
20
+ <requestHandler name="search" class="solr.SearchHandler" default="true">
21
+ <!-- default values for query parameters can be specified, these
22
+ will be overridden by parameters in the request
23
+ -->
24
+ <lst name="defaults">
25
+ <str name="defType">edismax</str>
26
+ <str name="echoParams">explicit</str>
27
+ <str name="q.alt">*:*</str>
28
+ <str name="mm">2&lt;-1 5&lt;-2 6&lt;90%</str>
29
+ <int name="qs">1</int>
30
+ <int name="ps">2</int>
31
+ <float name="tie">0.01</float>
32
+ <!-- this qf and pf are used by default, if not otherwise specified by
33
+ client. The default blacklight_config will use these for the
34
+ "keywords" search. See the author_qf/author_pf, title_qf, etc
35
+ below, which the default blacklight_config will specify for
36
+ those searches. You may also be interested in:
37
+ http://wiki.apache.org/solr/LocalParams
38
+ -->
39
+ <str name="qf">
40
+ id
41
+ all_text_timv
42
+ active_fedora_model_ssim
43
+ object_type_si
44
+ title_info_primary_tsi^100
45
+ title_info_primary_trans_tsim^80
46
+ title_info_alternative_tsim^80
47
+ title_info_translated_tsim^80
48
+ subtitle_tsim^80
49
+ name_personal_tsim^20
50
+ name_personal_role_tsim
51
+ name_corporate_tsim^20
52
+ name_corporate_role_tsim
53
+ name_generic_tsim^20
54
+ abstract_tsim^30
55
+ genre_basic_tsim
56
+ genre_specific_tsim
57
+ publisher_tsim^20
58
+ edition_tsim
59
+ issuance_tsim
60
+ date_start_tsim
61
+ date_end_tsim
62
+ table_of_contents_tsi^30
63
+ note_tsim^10
64
+ note_resp_tsim^20
65
+ note_date_tsim
66
+ note_performers_tsim^10
67
+ note_acquisition_tsim^10
68
+ note_ownership_tsim^10
69
+ note_citation_tsim^10
70
+ note_reference_tsim^10
71
+ collection_name_tsim^10
72
+ physical_location_tsim^20
73
+ sub_location_tsim
74
+ shelf_locator_tsim
75
+ subject_topic_tsim^50
76
+ subject_name_corporate_tsim^50
77
+ subject_name_personal_tsim^50
78
+ subject_geographic_tsim^50
79
+ subject_scale_tsim
80
+ subject_temporal_start_tsim
81
+ subject_temporal_end_tsim
82
+ subject_title_tsim^50
83
+ related_item_host_tsim^10
84
+ related_item_series_tsim^10
85
+ related_item_subseries_tsim^10
86
+ related_item_subsubseries_tsim^10
87
+ identifier_local_other_tsim
88
+ identifier_local_other_invalid_tsim
89
+ local_accession_id_tsim
90
+ identifier_local_call_tsim
91
+ identifier_local_barcode_tsim
92
+ classification_tsim
93
+ extent_tsi
94
+ institution_name_tsim^10
95
+ institution_pid_ssi
96
+ ocr_tiv^0.5
97
+ ocr_tsiv^0.5
98
+ </str>
99
+ <str name="pf">
100
+ all_text_timv^10
101
+ </str>
102
+
103
+ <str name="author_qf">
104
+ name_personal_tsim^20
105
+ name_corporate_tsim^20
106
+ name_generic_tsim^20
107
+ note_resp_tsim^20
108
+ </str>
109
+ <str name="author_pf">
110
+ </str>
111
+ <str name="title_qf">
112
+ title_info_primary_tsi^100
113
+ title_info_primary_trans_tsim^80
114
+ title_info_alternative_tsim^80
115
+ title_info_translated_tsim^80
116
+ subtitle_tsim^80
117
+ </str>
118
+ <str name="title_pf">
119
+ </str>
120
+ <str name="subject_qf">
121
+ subject_topic_tsim^50
122
+ subject_name_corporate_tsim^50
123
+ subject_name_personal_tsim^50
124
+ subject_geographic_tsim^50
125
+ subject_temporal_start_tsim
126
+ subject_temporal_end_tsim
127
+ subject_title_tsim^50
128
+ </str>
129
+ <str name="subject_pf">
130
+ </str>
131
+ <str name="place_qf">
132
+ subject_geographic_tsim^50
133
+ subject_topic_tsim^20
134
+ title_info_primary_tsi^10
135
+ subtitle_tsim^5
136
+ abstract_tsim^5
137
+ table_of_contents_tsi^5
138
+ note_tsim^5
139
+ institution_name_tsim^10
140
+ physical_location_tsim^10
141
+ </str>
142
+ <str name="place_pf">
143
+ </str>
144
+
145
+ <str name="fl">
146
+ *,
147
+ score
148
+ </str>
149
+
150
+ <str name="facet">true</str>
151
+ <str name="facet.mincount">1</str>
152
+ <str name="facet.limit">10</str>
153
+ <str name="facet.field">active_fedora_model_ssi</str>
154
+ <str name="facet.field">object_type_si</str>
155
+
156
+ <str name="spellcheck">true</str>
157
+ <str name="spellcheck.dictionary">default</str>
158
+ <str name="spellcheck.onlyMorePopular">true</str>
159
+ <str name="spellcheck.extendedResults">false</str>
160
+ <str name="spellcheck.collate">false</str>
161
+ <str name="spellcheck.count">5</str>
162
+
163
+ </lst>
164
+ <arr name="last-components">
165
+ <str>spellcheck</str>
166
+ </arr>
167
+ </requestHandler>
168
+
169
+ <requestHandler name="permissions" class="solr.SearchHandler" >
170
+ <lst name="defaults">
171
+ <str name="facet">off</str>
172
+ <str name="echoParams">all</str>
173
+ <str name="rows">1</str>
174
+ <str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
175
+ <str name="fl">
176
+ id,
177
+ access_ssim,
178
+ discover_access_group_ssim,discover_access_person_ssim,
179
+ read_access_group_ssim,read_access_person_ssim,
180
+ edit_access_group_ssim,edit_access_person_ssim,
181
+ depositor_ti,
182
+ embargo_release_date_dtsi
183
+ inheritable_access_ssim,
184
+ inheritable_discover_access_group_ssim,inheritable_discover_access_person_ssim,
185
+ inheritable_read_access_group_ssim,inheritable_read_access_person_ssim,
186
+ inheritable_edit_access_group_ssim,inheritable_edit_access_person_ssim,
187
+ inheritable_embargo_release_date_dtsi
188
+ </str>
189
+ </lst>
190
+ </requestHandler>
191
+
192
+ <requestHandler name="standard" class="solr.SearchHandler">
193
+ <lst name="defaults">
194
+ <str name="echoParams">explicit</str>
195
+ <str name="defType">lucene</str>
196
+ </lst>
197
+ </requestHandler>
198
+
199
+ <!-- for requests to get a single document; use id=666 instead of q=id:666 -->
200
+ <requestHandler name="document" class="solr.SearchHandler" >
201
+ <lst name="defaults">
202
+ <str name="echoParams">all</str>
203
+ <str name="fl">*</str>
204
+ <str name="rows">1</str>
205
+ <str name="mlt">true</str>
206
+ <str name="mlt.fl">subject_facet_ssim,subject_geo_city_ssim,related_item_host_ssim,title_info_primary_tsi</str>
207
+ <str name="mlt.count">4</str>
208
+ <str name="mlt.mintf">1</str>
209
+ <str name="mlt.qf">subject_facet_ssim^10 subject_geo_city_ssim^5 related_item_host_ssim^3</str>
210
+ <str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
211
+ </lst>
212
+ </requestHandler>
213
+
214
+ <!-- totally experimental, for "more like this" link in catalog#show -->
215
+ <requestHandler name="mlt" class="solr.MoreLikeThisHandler">
216
+ <lst name="defaults">
217
+ <str name="fl">
218
+ *,
219
+ score
220
+ </str>
221
+ <str name="facet">true</str>
222
+ <str name="facet.mincount">1</str>
223
+ <str name="echoParams">explicit</str>
224
+ <str name="mlt.match.include">false</str>
225
+ <str name="mlt.mintf">1</str>
226
+ <str name="mlt.fl">subject_facet_ssim,subject_geo_city_ssim,related_item_host_ssim</str>
227
+ <str name="mlt.qf">subject_facet_ssim^5</str>
228
+ <str name="q">{!raw f=id v=$id}</str>
229
+ </lst>
230
+ </requestHandler>
231
+
232
+ <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
233
+ <str name="queryAnalyzerFieldType">textSpell</str>
234
+ <!-- Multiple "Spell Checkers" can be declared and used by this component
235
+ (e.g. for title_spell field)
236
+ -->
237
+ <lst name="spellchecker">
238
+ <str name="name">default</str>
239
+ <!-- using DirectSolrSpellChecker as doesn't require rebuilds -->
240
+ <str name="classname">solr.DirectSolrSpellChecker</str>
241
+ <str name="field">spell</str>
242
+ <!-- don't need separate index or build with DirectSolrSpellChecker -->
243
+ <!-- <str name="spellcheckIndexDir">./spell</str> -->
244
+ <!-- <str name="buildOnOptimize">true</str> -->
245
+ </lst>
246
+ </searchComponent>
247
+
248
+ <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
249
+
250
+ <requestDispatcher handleSelect="true" >
251
+ <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
252
+ </requestDispatcher>
253
+
254
+ <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
255
+ <requestHandler name="/update" class="solr.UpdateRequestHandler" />
256
+ <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
257
+
258
+ <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
259
+ <lst name="invariants">
260
+ <str name="q">solrpingquery</str>
261
+ </lst>
262
+ <lst name="defaults">
263
+ <str name="echoParams">all</str>
264
+ </lst>
265
+ </requestHandler>
266
+
267
+ <!-- config for the admin interface -->
268
+ <admin>
269
+ <defaultQuery>search</defaultQuery>
270
+ </admin>
271
+
272
+ <updateHandler class="solr.DirectUpdateHandler2">
273
+
274
+ <updateLog>
275
+ <str name="dir">${solr.ulog.dir:}</str>
276
+ </updateLog>
277
+
278
+ <autoCommit>
279
+ <maxTime>86400000</maxTime>
280
+ <maxDocs>2000</maxDocs>
281
+ <openSearcher>true</openSearcher>
282
+ </autoCommit>
283
+
284
+ </updateHandler>
285
+
286
+ </config>
@@ -0,0 +1,67 @@
1
+ require 'spec_helper'
2
+
3
+ # tests for controller actions added to CatalogController via CommonwealthVlrEngine::ControllerOverride
4
+ describe CatalogController do
5
+
6
+ render_views
7
+
8
+ #include CommonwealthVlrEngine::Finder
9
+
10
+ describe 'GET "metadata_view"' do
11
+
12
+ before { get :metadata_view, :id => 'bpl-dev:h702q6403'}
13
+
14
+ it 'should respond to the #metadata_view action' do
15
+ expect(response).to be_success
16
+ expect(assigns(:document)).to_not be_nil
17
+ end
18
+
19
+ it 'should render the page' do
20
+ expect(response.body).to include('&lt;mods:title&gt;Beauregard&lt;/mods:title&gt;')
21
+ end
22
+
23
+ end
24
+
25
+ describe 'GET "formats_facet"' do
26
+
27
+ before { get :formats_facet }
28
+
29
+ it 'should respond to the #formats_facet action' do
30
+ expect(response).to be_success
31
+ expect(assigns(:display_facet)).to_not be_nil
32
+ end
33
+
34
+ it 'should render the page' do
35
+ expect(response.body).to have_css('.facet_extended_list')
36
+ end
37
+
38
+ end
39
+
40
+ describe 'mlt_search' do
41
+
42
+ it 'should include :set_solr_id_for_mlt in search_params_logic' do
43
+ get :index, :mlt_id => 'bpl-dev:df65v790j'
44
+ expect(CatalogController.search_params_logic).to include(:set_solr_id_for_mlt)
45
+ end
46
+
47
+ end
48
+
49
+ describe 'get_object_files' do
50
+
51
+ it 'should retrieve the files for the item' do
52
+ get :show, :id => 'bpl-dev:df65v790j'
53
+ expect(assigns(:object_files)).to_not be_nil
54
+ end
55
+
56
+ end
57
+
58
+ describe 'set_nav_context' do
59
+
60
+ it 'should set the nav context' do
61
+ get :index
62
+ expect(assigns(:nav_li_active)).to eq('search')
63
+ end
64
+
65
+ end
66
+
67
+ end
@@ -0,0 +1,127 @@
1
+ require 'spec_helper'
2
+
3
+ describe CollectionsController do
4
+
5
+ render_views
6
+
7
+ include BlacklightMapsHelper
8
+
9
+ def blacklight_config
10
+ CatalogController.blacklight_config
11
+ end
12
+
13
+ describe 'GET "index"' do
14
+ it 'should show the collections page' do
15
+ get :index
16
+ expect(response).to be_success
17
+ expect(assigns(:document_list)).not_to be_nil
18
+ expect(response.body).to have_selector('.blacklight-collection')
19
+ end
20
+ end
21
+
22
+ describe 'GET "show"' do
23
+
24
+ before(:each) do
25
+ get :show, :id => 'bpl-dev:h702q636h'
26
+ end
27
+
28
+ it 'should show the collection page' do
29
+ expect(response).to be_success
30
+ expect(assigns(:document)).not_to be_nil
31
+ expect(response.body).to have_selector('.blacklight-collection')
32
+ end
33
+
34
+ it 'should show some facets' do
35
+ expect(response.body).to have_selector('#facets')
36
+ end
37
+
38
+ it 'should show the collection image and title' do
39
+ expect(response.body).to have_selector('.collection_img_show')
40
+ expect(response.body).to have_selector('#collection_img_caption')
41
+ end
42
+
43
+ it 'should show the series list' do
44
+ expect(response.body).to have_selector('#facet-related_item_series_ssim')
45
+ expect(assigns(:document_list)).not_to be_nil
46
+ end
47
+
48
+ it 'should show the map' do
49
+ expect(response.body).to have_selector('#blacklight-collection-map-container')
50
+ expect(assigns(:response).aggregations[map_facet_field].items).not_to be_empty
51
+ end
52
+
53
+ end
54
+
55
+ describe 'private methods and before_filters' do
56
+
57
+ # for testing private methods
58
+ class CollectionsControllerTestClass < CollectionsController
59
+ attr_accessor :params
60
+ end
61
+
62
+ before(:each) do
63
+ @mock_controller = CollectionsControllerTestClass.new
64
+ @mock_controller.params = {}
65
+ @mock_controller.request = ActionDispatch::TestRequest.new
66
+ @mock_controller.send(:add_institution_fields)
67
+ @collection_pid = 'bpl-dev:h702q636h'
68
+ @collection_image_pid = 'bpl-dev:h702q642n'
69
+ @document = {blacklight_config.institution_field.to_sym => 'Boston Public Library'}
70
+ end
71
+
72
+ describe 'add_series_facet' do
73
+ it 'should add the series facet to the Solr request' do
74
+ @mock_controller.send(:add_series_facet)
75
+ expect(@mock_controller.blacklight_config.facet_fields['related_item_series_ssim'].include_in_request).to eq(true)
76
+ end
77
+ end
78
+
79
+ describe 'collapse_institution_facet' do
80
+ it 'should collapse the institution facet' do
81
+ @mock_controller.send(:collapse_institution_facet)
82
+ expect(@mock_controller.blacklight_config.facet_fields['physical_location_ssim'].collapse).to eq(true)
83
+ end
84
+ end
85
+
86
+ describe 'collections_limit' do
87
+ it 'should add :collections filter to search_params_logic' do
88
+ @mock_controller.send(:collections_limit)
89
+ expect(@mock_controller.search_params_logic).to include(:collections_filter)
90
+ end
91
+ end
92
+
93
+ describe 'get_collection_image_info' do
94
+ it 'should return a hash with the collection image object title and pid' do
95
+ expect(@mock_controller.send(:get_collection_image_info,@collection_image_pid,@collection_pid)).to eq({title:'Beauregard', pid:'bpl-dev:h702q6403', access_master:true})
96
+ end
97
+ end
98
+
99
+ describe 'get_series_image_obj' do
100
+ it 'should return the series object' do
101
+ expect(@mock_controller.send(:get_series_image_obj,'Test Series','Carte de Visite Collection')[:exemplary_image_ssi]).to eq('bpl-dev:h702q641c')
102
+ end
103
+ end
104
+
105
+ describe 'set_collection_facet_params' do
106
+ it 'should set the correct facet params' do
107
+ expect(@mock_controller.send(:set_collection_facet_params,'Carte de Visite Collection', @document)[blacklight_config.collection_field][0]).to eq('Carte de Visite Collection')
108
+ end
109
+ end
110
+
111
+ describe 'relation_base_blacklight_config' do
112
+
113
+ before { @mock_controller.send(:relation_base_blacklight_config) }
114
+
115
+ it 'should set the collection_name_ssim facet :show property to false' do
116
+ expect(@mock_controller.blacklight_config.facet_fields['collection_name_ssim'].show).not_to be_truthy
117
+ end
118
+
119
+ it 'should set the collapse property to true for all displayed facets' do
120
+ expect(@mock_controller.blacklight_config.facet_fields['subject_facet_ssim'].collapse).to be_truthy
121
+ end
122
+
123
+ end
124
+
125
+ end
126
+
127
+ end