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,51 @@
1
+ require 'spec_helper'
2
+
3
+ describe FeedbackController do
4
+
5
+ render_views
6
+
7
+ describe "GET show" do
8
+
9
+ it "should render the contact form" do
10
+ get :show
11
+ expect(response).to be_success
12
+ expect(response.body).to have_selector("form[id='feedback_form']")
13
+ end
14
+
15
+ end
16
+
17
+ describe "POST show" do
18
+
19
+ describe "failure" do
20
+
21
+ it "should display an error message for blank submission" do
22
+ post :show
23
+ expect(response.body).to have_selector("div[id='error_explanation']")
24
+ expect(response).not_to redirect_to(feedback_complete_path)
25
+ end
26
+
27
+ it "should display an error message for invalid submission" do
28
+ post :show, :name => '%^*)(', :email => 'thisnotvalid', :topic => 'whatever', :message => '%^*)('
29
+ expect(response.body).to have_selector("div[id='error_explanation']")
30
+ expect(response).not_to redirect_to(feedback_complete_path)
31
+ end
32
+
33
+ end
34
+
35
+ describe "success" do
36
+
37
+ it "should redirect to the complete path" do
38
+ post :show, :name => 'Testy McGee', :email => 'test@test.edu', :topic => 'whatever', :message => 'Test message'
39
+ expect(response).to redirect_to(feedback_complete_path)
40
+ end
41
+
42
+ it "should create the email" do
43
+ post :show, :name => 'Testy McGee', :email => 'test@test.edu', :topic => 'whatever', :message => 'Test message'
44
+ expect(ActionMailer::Base.deliveries.last.body.encoded).to include('Test message')
45
+ end
46
+
47
+ end
48
+
49
+ end
50
+
51
+ end
@@ -0,0 +1,99 @@
1
+ require 'spec_helper'
2
+
3
+ describe FolderItemsActionsController do
4
+
5
+ render_views
6
+
7
+ before(:each) do
8
+ @test_user_attr = {
9
+ :email => "testy@example.com",
10
+ :password => "password"
11
+ }
12
+ @test_user = User.create!(@test_user_attr)
13
+ sign_in @test_user
14
+ @test_folder_attr = {:title => "Test Folder Title",:visibility => 'private'}
15
+ @folder = @test_user.folders.create!(@test_folder_attr)
16
+ @folder.folder_items.create!(:document_id => "bpl-dev:h702q6403")
17
+ @folder.folder_items.create!(:document_id => "bpl-dev:g445cd14k")
18
+ @folder.folder_items.create!(:document_id => "bpl-dev:df65v790j")
19
+ end
20
+
21
+ describe "folder_item_actions: remove" do
22
+
23
+ describe "success" do
24
+
25
+ it "should remove the selected items" do
26
+ expect {
27
+ put :folder_item_actions,
28
+ :commit => "Remove",
29
+ :origin => "folders",
30
+ :id => @folder,
31
+ :selected => ["bpl-dev:h702q6403", "bpl-dev:g445cd14k"]
32
+ expect(response).to be_redirect
33
+ }.to change(@folder.folder_items, :count).by(-2)
34
+ end
35
+
36
+ end
37
+
38
+ end
39
+
40
+ describe "folder_item_actions: copy" do
41
+
42
+ before(:each) do
43
+ @test_folder2_attr = {:title => "Other Test Folder Title",:visibility => 'private'}
44
+ @folder2 = @test_user.folders.create!(@test_folder2_attr)
45
+ end
46
+
47
+ describe "success" do
48
+
49
+ it "should copy the selected items to folder2" do
50
+ expect {
51
+ @request.env['HTTP_REFERER'] = '/folders/' + @folder.id.to_s
52
+ put :folder_item_actions,
53
+ :commit => "Copy to " + @folder2.id.to_s,
54
+ :origin => "folders",
55
+ :id => @folder,
56
+ :selected => ["bpl-dev:h702q6403", "bpl-dev:g445cd14k"]
57
+ expect(response).to be_redirect
58
+ }.to change(@folder2.folder_items, :count).by(2)
59
+ end
60
+
61
+ end
62
+
63
+ end
64
+
65
+ describe "folder_item_actions: cite" do
66
+
67
+ describe "success" do
68
+
69
+ it "should redirect to the cite url" do
70
+ put :folder_item_actions,
71
+ :commit => "Cite",
72
+ :origin => "folders",
73
+ :id => @folder,
74
+ :selected => ["bpl-dev:g445cd14k"]
75
+ expect(response).to redirect_to(citation_catalog_path(:id => ["bpl-dev:g445cd14k"]))
76
+ end
77
+
78
+ end
79
+
80
+ end
81
+
82
+ describe "folder_item_actions: email" do
83
+
84
+ describe "success" do
85
+
86
+ it "should redirect to the email url" do
87
+ put :folder_item_actions,
88
+ :commit => "Email",
89
+ :origin => "folders",
90
+ :id => @folder,
91
+ :selected => ["bpl-dev:g445cd14k"]
92
+ expect(response).to redirect_to(email_catalog_path(:id => ["bpl-dev:g445cd14k"]))
93
+ end
94
+
95
+ end
96
+
97
+ end
98
+
99
+ end
@@ -0,0 +1,90 @@
1
+ require 'spec_helper'
2
+
3
+ describe FolderItemsController do
4
+
5
+ #having trouble with POST create should create a new folder item using ajax when views rendered
6
+ #render_views
7
+
8
+ before(:each) do
9
+ @test_user_attr = {
10
+ :email => "testy@example.com",
11
+ :password => "password"
12
+ }
13
+ @test_user = User.create!(@test_user_attr)
14
+ sign_in @test_user
15
+ @test_folder_attr = {:title => "Test Folder Title", :visibility => 'private'}
16
+ @folder = @test_user.folders.create!(@test_folder_attr)
17
+ end
18
+
19
+
20
+ describe "POST create" do
21
+
22
+ describe "success" do
23
+
24
+ it "should create a new folder item" do
25
+ expect {
26
+ @request.env['HTTP_REFERER'] = '/folder_items/new'
27
+ post :create, :id => "bpl-dev:h702q6403", :folder_id => @folder.id
28
+ expect(response).to be_redirect
29
+ expect(@test_user.existing_folder_item_for("bpl-dev:h702q6403")).not_to be_nil
30
+ }.to change(Bpluser::FolderItem, :count).by(1)
31
+ end
32
+
33
+ it "should create a new folder item using ajax" do
34
+ expect {
35
+ xhr :post, :create, :id => "bpl-dev:g445cd14k", :folder_id => @folder.id
36
+ expect(response).to be_success
37
+ expect(@test_user.existing_folder_item_for("bpl-dev:g445cd14k")).not_to be_nil
38
+ }.to change(Bpluser::FolderItem, :count).by(1)
39
+ end
40
+
41
+ end
42
+
43
+ end
44
+
45
+ describe "DELETE destroy" do
46
+
47
+ describe "success" do
48
+
49
+ before(:each) do
50
+ @folder.folder_items.create!(:document_id => "bpl-dev:g445cd14k")
51
+ end
52
+
53
+ it "should delete a folder item" do
54
+ expect {
55
+ @request.env['HTTP_REFERER'] = '/folder_items'
56
+ delete :destroy, :id => "bpl-dev:g445cd14k"
57
+ expect(response).to be_redirect
58
+ }.to change(Bpluser::FolderItem, :count).by(-1)
59
+ end
60
+
61
+ it "should delete a folder item using ajax" do
62
+ expect {
63
+ xhr :delete, :destroy, :id => "bpl-dev:g445cd14k"
64
+ expect(response).to be_success
65
+ }.to change(Bpluser::FolderItem, :count).by(-1)
66
+ end
67
+
68
+ end
69
+
70
+ end
71
+
72
+ describe "DELETE clear" do
73
+
74
+ describe "success" do
75
+
76
+ before(:each) do
77
+ @folder.folder_items.create!(:document_id => "bpl-dev:g445cd14k")
78
+ end
79
+
80
+ it "should clear the folder's folder items" do
81
+ delete :clear, :id => @folder
82
+ expect(@folder.folder_items.count).to eq(0)
83
+ end
84
+
85
+ end
86
+
87
+ end
88
+
89
+
90
+ end
@@ -0,0 +1,368 @@
1
+ require 'spec_helper'
2
+
3
+ describe FoldersController do
4
+
5
+ render_views
6
+
7
+ before(:each) do
8
+ @test_user_attr = {
9
+ :email => "testy@example.com",
10
+ :password => "password"
11
+ }
12
+ @test_user = User.create!(@test_user_attr)
13
+ end
14
+
15
+ describe "GET index" do
16
+
17
+ describe "non-logged in user" do
18
+
19
+ it "should link to the bookmarks folder" do
20
+ get :index
21
+ expect(response.body).to have_selector("a[href='/bookmarks']")
22
+ end
23
+
24
+ it "should not show any folders" do
25
+ get :index
26
+ expect(@folders).to be_nil
27
+ end
28
+
29
+ end
30
+
31
+ describe "logged-in user" do
32
+
33
+ before(:each) do
34
+ sign_in @test_user
35
+ end
36
+
37
+ describe "user has no folders yet" do
38
+
39
+ it "should not show any folders" do
40
+ get :index
41
+ expect(@test_user.folders).to be_empty
42
+ expect(@folders).to be_nil
43
+ end
44
+
45
+ end
46
+
47
+ describe "user has folders" do
48
+
49
+ before(:each) do
50
+ @test_folder_attr = {:title => "Test Folder Title",:visibility => 'private'}
51
+ @test_user.folders.create!(@test_folder_attr)
52
+ end
53
+
54
+ it "should show the user's folders" do
55
+ get :index
56
+ expect(response.body).to have_selector("ul[id='user_folder_list']")
57
+ end
58
+
59
+ end
60
+
61
+ end
62
+
63
+ end
64
+
65
+ describe "DELETE destroy" do
66
+
67
+ before(:each) do
68
+ @test_folder_attr = {:title => "Test Folder Title",:visibility => 'private'}
69
+ @test_user.folders.create!(@test_folder_attr)
70
+ end
71
+
72
+ describe "non-logged in user" do
73
+
74
+ it "should redirect to the login page" do
75
+ delete :destroy, :id => @test_user.folders.first.id
76
+ expect(response).to be_redirect
77
+ end
78
+
79
+ end
80
+
81
+ describe "logged-in user" do
82
+
83
+ before(:each) do
84
+ sign_in @test_user
85
+ end
86
+
87
+ it "should delete the folder" do
88
+ expect {
89
+ delete :destroy, :id => @test_user.folders.first.id
90
+ }.to change(Bpluser::Folder, :count).by(-1)
91
+ end
92
+
93
+ it "should redirect to the folders page" do
94
+ delete :destroy, :id => @test_user.folders.first.id
95
+ expect(response).to redirect_to(:controller => 'folders', :action => 'index')
96
+ end
97
+
98
+ end
99
+
100
+ end
101
+
102
+ describe "GET new" do
103
+
104
+ before(:each) do
105
+ sign_in @test_user
106
+ end
107
+
108
+ it "should return http success" do
109
+ get :new
110
+ expect(response).to be_success
111
+ end
112
+
113
+ it "should display the form" do
114
+ get :new
115
+ expect(response.body).to have_selector("form[id='edit_folder_form']")
116
+ end
117
+
118
+ end
119
+
120
+ describe "GET show" do
121
+
122
+ before(:each) do
123
+ @test_folder_attr = {:title => "Test Folder Title",:visibility => 'private'}
124
+ @folder = @test_user.folders.create!(@test_folder_attr)
125
+ end
126
+
127
+ describe "non-logged in user" do
128
+
129
+ describe 'private folder' do
130
+
131
+ it "should redirect to the login page" do
132
+ get :show, :id => @folder.id
133
+ expect(response).to be_redirect
134
+ end
135
+
136
+ end
137
+
138
+ describe 'public folder' do
139
+
140
+ before(:each) do
141
+ @public_test_folder_attr = {:title => "Public Test Folder Title",:visibility => 'public'}
142
+ @public_folder = @test_user.folders.create!(@public_test_folder_attr)
143
+ end
144
+
145
+ it "should show the folder" do
146
+ get :show, :id => @public_folder.id
147
+ expect(response.body).to have_selector("h2", :text => @public_folder.title)
148
+ end
149
+
150
+ end
151
+
152
+ end
153
+
154
+ describe "logged-in user" do
155
+
156
+ before(:each) do
157
+ sign_in @test_user
158
+ end
159
+
160
+ it "should show the folder title" do
161
+ get :show, :id => @folder.id
162
+ expect(response.body).to have_selector("h2", :text => @folder.title)
163
+ end
164
+
165
+ describe "user has folder with items" do
166
+
167
+ before(:each) do
168
+ @test_folder_item = @folder.folder_items.create!(:document_id => 'bpl-dev:h702q6403')
169
+ end
170
+
171
+ it "should show a link to the folder item" do
172
+ get :show, :id => @folder.id
173
+ expect(response.body).to have_selector("a[href='/search/" + @test_folder_item.document_id + "']")
174
+ end
175
+
176
+ end
177
+
178
+ end
179
+
180
+ describe "wrong user" do
181
+
182
+ before(:each) do
183
+ sign_in @test_user
184
+ @test_folder_attr = {:title => "Test Folder Title",:visibility => 'private'}
185
+ @folder = @test_user.folders.create!(@test_folder_attr)
186
+ sign_out @test_user
187
+ @other_user_attr = {
188
+ :email => "testy@other.com",
189
+ :password => "password"
190
+ }
191
+ @other_user = User.create!(@other_user_attr)
192
+ sign_in @other_user
193
+ end
194
+
195
+ it "should not allow access to another user's folder" do
196
+ get :show, :id => @folder.id
197
+ expect(response).to redirect_to(root_path)
198
+ end
199
+
200
+ end
201
+
202
+ end
203
+
204
+ describe "POST create" do
205
+
206
+ describe "non-logged-in user" do
207
+
208
+ #it "should deny access to create" do
209
+ # post :create
210
+ # TODO: below doesn't work due to ?referer=%2Ffolders suffix on end of URL.
211
+ # not sure how to test for this.
212
+ # expect(response).to redirect_to(:controller => 'devise/sessions', :action => 'new' )
213
+ #end
214
+
215
+ end
216
+
217
+ describe "logged-in user" do
218
+
219
+ before(:each) do
220
+ sign_in @test_user
221
+ end
222
+
223
+ describe "failure" do
224
+
225
+ it "should not create a folder" do
226
+ expect {
227
+ post :create, :folder => {:title => ""}
228
+ }.not_to change(Bpluser::Folder, :count)
229
+ end
230
+
231
+ it "should re-render the create page" do
232
+ post :create, :folder => {:title => ""}
233
+ expect(response).to render_template('folders/new')
234
+ end
235
+
236
+ end
237
+
238
+ describe "success" do
239
+
240
+ it "should create a folder" do
241
+ expect do
242
+ post :create, :folder => {:title => "Whatever, man",:visibility => 'private'}
243
+ end.to change(Bpluser::Folder, :count).by(1)
244
+ end
245
+
246
+ it "should redirect to the folders page" do
247
+ post :create, :folder => {:title => "Whatever, man",:visibility => 'private'}
248
+ expect(response).to redirect_to(:controller => 'folders', :action => 'index')
249
+ end
250
+
251
+ end
252
+
253
+
254
+ end
255
+
256
+ end
257
+
258
+ describe "GET edit" do
259
+
260
+ before(:each) do
261
+ @test_folder_attr = {:title => "Test Folder Title",:visibility => 'private'}
262
+ @folder = @test_user.folders.create!(@test_folder_attr)
263
+ end
264
+
265
+ describe "non-logged-in user" do
266
+
267
+ #it "should deny access to edit" do
268
+ # get :edit, :id => @folder.id
269
+ # TODO: below doesn't work due to ?referer=%2Ffolders suffix on end of URL. not sure how to test for this.
270
+ # expect(response).to redirect_to(:controller => 'devise/sessions', :action => 'new' )
271
+ #end
272
+
273
+ end
274
+
275
+ describe "logged-in user" do
276
+
277
+ before(:each) do
278
+ sign_in @test_user
279
+ end
280
+
281
+ it "should show the edit form with the correct title value" do
282
+ get :edit, :id => @folder.id
283
+ expect(response.body).to have_field("folder_title", :with => @folder.title)
284
+ end
285
+
286
+ end
287
+
288
+ end
289
+
290
+ describe "PUT update" do
291
+
292
+ before(:each) do
293
+ @test_folder_attr = {:title => "Test Folder Title",:visibility => 'private'}
294
+ @folder = @test_user.folders.create!(@test_folder_attr)
295
+ end
296
+
297
+ describe "non-logged-in user" do
298
+
299
+ #it "should deny access to create" do
300
+ #put :update, :id => @folder.id
301
+ # TODO: below doesn't work due to ?referer=%2Ffolders suffix on end of URL. not sure how to test for this.
302
+ #expect(response).to redirect_to(:controller => 'devise/sessions', :action => 'new' )
303
+ #end
304
+
305
+ end
306
+
307
+ describe "logged-in user" do
308
+
309
+ before(:each) do
310
+ sign_in @test_user
311
+ end
312
+
313
+ describe "failure" do
314
+
315
+ it "should not update the folder" do
316
+ put :update, :id => @folder.id, :folder => {:title => ""}
317
+ @folder.reload
318
+ expect(@folder.title).not_to eq("")
319
+ end
320
+
321
+ it "should re-render the edit form" do
322
+ put :update, :id => @folder.id, :folder => {:title => ""}
323
+ expect(response).to render_template('folders/edit')
324
+ end
325
+
326
+ end
327
+
328
+ describe "success" do
329
+
330
+ it "should update the folder" do
331
+ put :update, :id => @folder.id, :folder => {:title => "New Folder Title"}
332
+ @folder.reload
333
+ expect(@folder.title).to eq("New Folder Title")
334
+ end
335
+
336
+ it "should redirect to the folders show page" do
337
+ put :update, :id => @folder.id, :folder => {:title => "New Folder Title"}
338
+ expect(response).to redirect_to(:controller => 'folders', :action => 'show')
339
+ end
340
+
341
+ end
342
+
343
+ end
344
+
345
+ end
346
+
347
+ describe 'GET public_list' do
348
+
349
+ before(:each) do
350
+ @test_folder_attr = {:title => "Test Folder Title",:visibility => 'public'}
351
+ @folder = @test_user.folders.create!(@test_folder_attr)
352
+ @folder.folder_items.create!(:document_id => 'bpl-test:gq67js019')
353
+ end
354
+
355
+ it 'should show the public list' do
356
+ get :public_list
357
+ expect(response).to be_success
358
+ expect(response.body).to have_css('body.blacklight-folders-public_list')
359
+ end
360
+
361
+ it 'should show the public folder in the list' do
362
+ get :public_list
363
+ expect(response.body).to have_selector('a', :text => @folder.title)
364
+ end
365
+
366
+ end
367
+
368
+ end