commonwealth-vlr-engine 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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,4 @@
1
+ <script language="javascript" type="text/javascript">
2
+ // render the tool buttons
3
+ $('#folderItemTools').html("<%= escape_javascript(render('shared/tools')) %>");
4
+ </script>
@@ -0,0 +1,14 @@
1
+ <div id="footer" class="container">
2
+ <div class="row">
3
+ <div id="footer_logo" class="col-sm-3 hidden-xs">
4
+ <%= link_to application_name, root_path, :id => 'footer_logo_link' %>
5
+ </div>
6
+ <div id="footer_address" class="col-sm-9">
7
+ <strong><%= t('blacklight.application_name') %></strong><br />
8
+ <%= t('blacklight.footer.address') %><br />
9
+ <%= link_to t('blacklight.pages.contact.title'), feedback_path %>
10
+ </div>
11
+ </div>
12
+ </div>
13
+
14
+ <%= debug(params) if Rails.env.development? %>
@@ -0,0 +1,34 @@
1
+ <div id="header-navbar" class="navbar" role="navigation">
2
+ <div class="container">
3
+ <div class="navbar-header">
4
+ <button id="nav_collapse_button" type="button" class="navbar-toggle btn collapsed" data-toggle="collapse" data-target="#user-util-collapse">
5
+ <span class="glyphicon glyphicon-search"></span>
6
+ <div id="icon-bar-wrapper">
7
+ <span class="sr-only">Toggle navigation</span>
8
+ <span class="icon-bar"></span>
9
+ <span class="icon-bar"></span>
10
+ <span class="icon-bar"></span>
11
+ </div>
12
+ </button>
13
+
14
+ <%= link_to application_name,
15
+ root_path,
16
+ :id => 'header_logo_link',
17
+ :class => 'navbar-brand' %>
18
+
19
+ <div class="collapse navbar-collapse" id="user-util-collapse">
20
+
21
+ <%= render :partial=>'shared/user_util_links' %>
22
+
23
+ <div id="header_main_nav" class="navbar">
24
+ <ul class="nav">
25
+ <%= render :partial=>'shared/nav_links' %>
26
+ </ul>
27
+ </div>
28
+
29
+ </div>
30
+
31
+
32
+ </div>
33
+ </div>
34
+ </div>
@@ -0,0 +1,58 @@
1
+ <% nav_links = {
2
+ :search => {
3
+ :basic => {:nav_link_title => t('blacklight.search.nav.basic'),
4
+ :nav_link_path => catalog_index_path},
5
+ :advanced => {:nav_link_title => t('blacklight.search.nav.advanced'),
6
+ :nav_link_path => advanced_search_path}
7
+ },
8
+ :explore => {},
9
+ :about => {
10
+ :overview => {:nav_link_title => t('blacklight.home.context.about.title'),
11
+ :nav_link_path => about_site_path},
12
+ :news=> {:nav_link_title => t('blacklight.home.context.news.title'),
13
+ :nav_link_path => t('blacklight.home.context.news.blog_url')},
14
+ :contact => {:nav_link_title => t('blacklight.pages.contact.title'),
15
+ :nav_link_path => feedback_path}
16
+ }
17
+ } %>
18
+
19
+ <%
20
+ # add the explore options
21
+ if t('blacklight.home.browse.maps.enabled')
22
+ nav_links[:explore][:map] = {:nav_link_title => t('blacklight.maps.title'),
23
+ :nav_link_path => map_path}
24
+ end
25
+
26
+ if t('blacklight.home.browse.collections.enabled')
27
+ nav_links[:explore][:collections] = {:nav_link_title => t('blacklight.collections.nav'),
28
+ :nav_link_path => collections_path}
29
+ end
30
+
31
+ if t('blacklight.home.browse.institutions.enabled')
32
+ nav_links[:explore][:institutions] = {:nav_link_title => t('blacklight.institutions.nav'),
33
+ :nav_link_path => institutions_path}
34
+ end
35
+
36
+ if t('blacklight.home.browse.formats.enabled')
37
+ nav_links[:explore][:formats] = {:nav_link_title => t('blacklight.navigation.format'),
38
+ :nav_link_path => formats_facet_path}
39
+ end
40
+ %>
41
+
42
+ <% nav_links.each_with_index do |(k, v), index| %>
43
+ <li class="dropdown<%= ' last_nav' if index == nav_links.length-1 %>">
44
+ <a id="<%= k.to_s + '_dropdown' %>" class="dropdown-toggle<%= @nav_li_active == k.to_s ? ' active' : '' %>" href="/<%= k.to_s %>" role="button" data-toggle="dropdown">
45
+ <%= k.to_s.titleize %><!-- <span class="caret"></span> -->
46
+ </a>
47
+ <ul class="dropdown-menu<%= ' pull-right' if index == nav_links.length-1 %>" role="menu" aria-labelledby="<%= k.to_s + '_dropdown' %>">
48
+ <% v.each do |k,v| %>
49
+ <%= content_tag(:li,
50
+ link_to(v[:nav_link_title],
51
+ v[:nav_link_path]),
52
+ :tabindex => '-1') %>
53
+ <% end %>
54
+ </ul>
55
+ </li>
56
+
57
+ <% end %>
58
+
@@ -0,0 +1,16 @@
1
+ <%= form_tag search_action_url, :method => :get, :class => 'header-search-form form-inline' do %>
2
+ <%= render_hash_as_hidden_fields(params_for_search(:search_field => default_search_field[:key]).except('q', 'qt', 'page', 'utf8', 'f', 'sort', 'mlt_id', 'coordinates', 'spatial_search_type', 'view')) %>
3
+
4
+ <div class="input-group pull-left">
5
+ <label for="q" class="sr-only"><%= t('blacklight.search.form.q') %></label>
6
+ <%= text_field_tag :q, nil, :placeholder => t('blacklight.search.form.q'), :class => 'search_q q form-control input-sm', :id => 'q'%>
7
+ <span class="input-group-btn">
8
+ <button type="submit" class="btn btn-primary search-btn btn-xs" id="search">
9
+ <span class="submit-search-text"><%=t('blacklight.search.form.submit')%></span>
10
+ <span class="glyphicon glyphicon-search glyphicon-white"></span>
11
+ </button>
12
+ </span>
13
+
14
+ </div>
15
+
16
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <input type="checkbox" name="selectAll" id="selectAllItems" />
2
+ <ul class="folderItemToolsList">
3
+ <li class="cite">
4
+ <%= link_to content_tag(:span, '', :class => 'glyphicon glyphicon-list-alt') + ' ' + t('blacklight.tools.citation'),
5
+ citation_catalog_path(:id => ''),
6
+ {:id => 'citeLink', :name => 'citation', :class => 'lightboxLink btn btn-default'} %>
7
+ </li>
8
+ <li class="email">
9
+ <%= link_to content_tag(:span, '', :class => 'glyphicon glyphicon-envelope') + ' ' + t('blacklight.tools.email'),
10
+ email_catalog_path(:id => ''),
11
+ :class => 'lightboxLink btn btn-default',
12
+ :id => 'emailLink' %>
13
+ </li>
14
+ </ul>
@@ -0,0 +1,43 @@
1
+ <div id="user-util-links">
2
+
3
+ <% if current_user %>
4
+
5
+ <div id="user-nav-btn" class="btn-group">
6
+ <%= "#{ link_to content_tag(:span, '', :class => 'glyphicon glyphicon-user') + ' ' + current_user.first_name,
7
+ current_user, :class =>'btn btn-default btn-xs' }".html_safe unless current_user.to_s.blank? %>
8
+ <button class="btn btn-default dropdown-toggle btn-xs hidden-xs" data-toggle="dropdown">
9
+ <span class="caret"></span>
10
+ </button>
11
+ <ul id="user-util-links-list" class="dropdown-menu">
12
+ <li><%= link_to t('blacklight.header_links.folders'), folders_path %></li>
13
+ <li><%= link_to t('blacklight.header_links.saved_searches'), saved_searches_path %></li>
14
+ <li><%= link_to t('blacklight.header_links.search_history'), search_history_path %></li>
15
+ <li><%= link_to t('devise.registrations.edit'), edit_user_registration_path %></li>
16
+ <li><%= link_to t('blacklight.header_links.logout'), destroy_user_session_path %></li>
17
+ </ul>
18
+ </div>
19
+
20
+ <% else %>
21
+ <div id="util-links-nologin">
22
+ <ul id="user-util-links-list" class="list-inline">
23
+ <% unless @searches.blank? && session[:history].blank? %>
24
+ <% if current_or_guest_user %>
25
+ <li><%= link_to t('blacklight.header_links.folders'), folders_path %></li>
26
+ <% end %>
27
+ <!-- <li><%# link_to t('blacklight.header_links.search_history'), search_history_path %></li> -->
28
+ <% end %>
29
+ <% if has_user_authentication_provider? %>
30
+ <li><%= link_to t('blacklight.header_links.login'), new_user_session_path %></li>
31
+ <% end %>
32
+ </ul>
33
+ </div>
34
+
35
+ <% end %>
36
+
37
+ <% unless params[:controller] == 'pages' && params[:action] == 'home' %>
38
+ <div id="header-search">
39
+ <%= render :partial=>'shared/search_form_header' %>
40
+ </div>
41
+ <% end %>
42
+
43
+ </div>
@@ -0,0 +1,33 @@
1
+ <% @page_title = t('blacklight.users.account_heading') + " - " + application_name %>
2
+ <div class="col-sm-9">
3
+ <h2>
4
+ <%= t('blacklight.users.account_heading') %>
5
+ </h2>
6
+
7
+ <ul id="user_account_links_list">
8
+ <li>
9
+ <h4><%= link_to t('blacklight.header_links.folders'), folders_path %></h4>
10
+ <%= t('blacklight.folders.intro') %>
11
+ </li>
12
+ <li>
13
+ <h4><%= link_to t('blacklight.header_links.saved_searches'), saved_searches_path %></h4>
14
+ <%= t('blacklight.saved_searches.intro') %>
15
+ </li>
16
+ <li>
17
+ <h4><%= link_to t('blacklight.header_links.search_history'), search_history_path %></h4>
18
+ <%= t('blacklight.search_history.intro') %>
19
+ </li>
20
+ <li>
21
+ <h4><%= link_to t('devise.registrations.edit'), edit_user_registration_path %></h4>
22
+ Change your email or password, or cancel your account.
23
+ </li>
24
+ </ul>
25
+
26
+ </div>
27
+ <div class="col-sm-3">
28
+ <div class="well sidebar-right">
29
+ <ul class="list-unstyled">
30
+ <li><%= link_to t('blacklight.header_links.logout'), destroy_user_session_path, :class => 'btn btn-default' %></li>
31
+ </ul>
32
+ </div>
33
+ </div>
@@ -0,0 +1,47 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'commonwealth-vlr-engine/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'commonwealth-vlr-engine'
8
+ spec.version = CommonwealthVlrEngine::VERSION
9
+ spec.authors = ['Eben English', 'Steven Anderson']
10
+ spec.email = ['eenglish@bpl.org', 'sanderson@bpl.org']
11
+ spec.summary = %q{Blacklight plugin for virtual local repositories from Digital Commonwealth}
12
+ spec.homepage = ''
13
+ spec.license = 'Apache 2.0'
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_dependency 'rails', '~>4.2.0'
21
+ spec.add_dependency 'blacklight', '~>5.14.0'
22
+ spec.add_dependency 'blacklight_advanced_search', '5.1.4'
23
+ spec.add_dependency 'blacklight-gallery', '0.4.0'
24
+ spec.add_dependency 'blacklight-maps', '0.4.0'
25
+ spec.add_dependency 'bootstrap-sass', '~> 3.0'
26
+ spec.add_dependency 'font-awesome-sass', '4.1.0'
27
+ spec.add_dependency 'bpluser'
28
+ #, '~> 0.0.7'
29
+ spec.add_dependency 'typhoeus'
30
+ spec.add_dependency 'devise-guests', '0.3.3'
31
+ spec.add_dependency 'omniauth'
32
+ spec.add_dependency 'omniauth-ldap'
33
+ spec.add_dependency 'omniauth-facebook'
34
+ spec.add_dependency 'unicode'
35
+ spec.add_dependency 'omniauth-polaris'
36
+ spec.add_dependency 'madison', '~> 0.5.0'
37
+ spec.add_dependency 'osullivan'
38
+
39
+
40
+ spec.add_development_dependency 'bundler', '~> 1.5'
41
+ spec.add_development_dependency 'rake'
42
+ spec.add_development_dependency 'rspec-rails', '~> 3.0'
43
+ spec.add_development_dependency 'jettywrapper'
44
+ spec.add_development_dependency 'engine_cart', '~> 0.4.0'
45
+ spec.add_development_dependency 'capybara'
46
+ spec.add_development_dependency 'poltergeist', '>= 1.5.0'
47
+ end
@@ -0,0 +1,74 @@
1
+ # have to override some methods from BlacklightAdvancedSearch
2
+ # to provide search-field drop-down options and date limiter
3
+ # and modify query constraints checking for mlt and geographic searches
4
+
5
+ require BlacklightAdvancedSearch::Engine.root.join(CommonwealthVlrEngine::Engine.root, 'config','initializers','patch_blacklight_advanced_search')
6
+
7
+ class BlacklightAdvancedSearch::QueryParser
8
+
9
+ # LOCAL OVERRIDE of BlacklightAdvancedSearch::ParsingNestingParser#process_query
10
+ def process_query(params,config)
11
+ queries = []
12
+ keyword_queries.each do |field,query|
13
+ queries << ParsingNesting::Tree.parse(query, config.advanced_search[:query_parser]).to_query( local_param_hash(field, config) )
14
+ end
15
+ if params[:date_start].blank? && params[:date_end].blank?
16
+ queries.join( ' ' + keyword_op + ' ')
17
+ else
18
+ queries.join( ' ' + keyword_op + ' ') + ' AND ' + add_date_range_to_queries(params)
19
+ end
20
+ end
21
+
22
+ # LOCAL ADDITION format date input for Solr
23
+ def add_date_range_to_queries(params)
24
+ range_start = params[:date_start].blank? || params[:date_start].match(/[\D]+/) ? '*' : params[:date_start] + '-01-01T00:00:00.000Z'
25
+ range_end = params[:date_end].blank? || params[:date_end].match(/[\D]+/) ? '*' : params[:date_end] + '-12-31T23:59:59.999Z'
26
+ date_query = '(date_start_dtsi:[' + range_start + ' TO ' + range_end + '] OR
27
+ (date_start_dtsi:[* TO ' + range_end + '] AND date_end_dtsi:[' + range_start + ' TO *]))'
28
+ date_query
29
+ end
30
+
31
+ # LOCAL ADDITION change params to be what's expected by gem
32
+ def prepare_params(params)
33
+ if params[:search_index]
34
+ params[:search_index].each_with_index do |field,index|
35
+ if params[field.to_sym] # check if field is set
36
+ unless params[:query][index].empty?
37
+ if params[:op] == 'OR'
38
+ params[field.to_sym] = params[field.to_sym] + ' OR ' + params[:query][index]
39
+ else
40
+ params[field.to_sym] = params[field.to_sym] + ' AND ' + params[:query][index]
41
+ end
42
+ else
43
+ params[field.to_sym] = params[field.to_sym]
44
+ end
45
+ else
46
+ params[field.to_sym] = params[:query][index]
47
+ end
48
+ end
49
+ params.delete(:search_index)
50
+ params.delete(:query)
51
+ end
52
+ params
53
+ end
54
+
55
+ # LOCAL OVERRIDE of BlacklightAdvancedSearch::QueryParser#initialize
56
+ def initialize(params,config)
57
+ @params = HashWithIndifferentAccess.new(prepare_params(params))
58
+ @config = config
59
+ end
60
+
61
+ end
62
+
63
+ module BlacklightAdvancedSearch::RenderConstraintsOverride
64
+
65
+ # LOCAL OVERRIDE for mlt and geo searches
66
+ def query_has_constraints?(localized_params = params)
67
+ if is_advanced_search? localized_params
68
+ true
69
+ else
70
+ !(localized_params[:q].blank? and localized_params[:f].blank? and localized_params[:f_inclusive].blank? and localized_params[:mlt_id].blank? and localized_params[:coordinates].blank?)
71
+ end
72
+ end
73
+
74
+ end
@@ -0,0 +1,20 @@
1
+ # need to override some methods from BlacklightMaps
2
+
3
+ require Blacklight::Maps::Engine.root.join(CommonwealthVlrEngine::Engine.root, 'config','initializers','patch_blacklight_maps')
4
+
5
+ class BlacklightMaps::GeojsonExport
6
+
7
+ # LOCAL OVERRIDE - set partial to be rendered via options hash
8
+ def render_leaflet_popup_content(geojson_hash, hits=nil)
9
+ partial_to_render = @options[:partial].presence
10
+ if search_mode == 'placename' && geojson_hash[:properties][placename_property.to_sym]
11
+ @controller.render_to_string partial: partial_to_render || 'catalog/map_placename_search',
12
+ locals: { geojson_hash: geojson_hash, hits: hits }
13
+ else
14
+ @controller.render_to_string partial: partial_to_render || 'catalog/map_spatial_search',
15
+ locals: { coordinates: geojson_hash[:bbox].presence || geojson_hash[:geometry][:coordinates],
16
+ hits: hits }
17
+ end
18
+ end
19
+
20
+ end
data/config/jetty.yml ADDED
@@ -0,0 +1,7 @@
1
+ development:
2
+ startup_wait: 15
3
+ jetty_port: 8983
4
+ test:
5
+ startup_wait: 60
6
+ jetty_port: <%= ENV['TEST_JETTY_PORT'] || 8888 %>
7
+ <%= ENV['TEST_JETTY_PATH'] ? "jetty_home: " + ENV['TEST_JETTY_PATH'] : '' %>
@@ -0,0 +1,463 @@
1
+ en:
2
+
3
+ blacklight:
4
+
5
+ advanced_search:
6
+ page_title: 'Search'
7
+ title: 'Search - %{application_name}'
8
+ limit: 'Narrow your search:'
9
+
10
+ application_name: 'SITE_NAME'
11
+ application_desc: 'SITE DESCRIPTION'
12
+
13
+ ark:
14
+ prefix: 'http://ark.digitalcommonwealth.org/ark:/50959/'
15
+
16
+ book_viewer:
17
+ controls:
18
+ grid: 'Pages List'
19
+ help: 'Help'
20
+ next: 'Next Page'
21
+ previous: 'Previous Page'
22
+ read: 'Read'
23
+ rotate:
24
+ left: 'Rotate Left'
25
+ right: 'Rotate Right'
26
+ zoom: 'Zoom'
27
+ item_link: 'Back to item'
28
+ link_to_reader: 'Read online'
29
+
30
+
31
+ bookmarks:
32
+ collection:
33
+ add:
34
+ button: 'Add to Bookmarks'
35
+ title: 'Bookmarks'
36
+ description: 'The default folder for creating a list of items.'
37
+ no_bookmarks: 'This folder does not currently have any items.'
38
+ add:
39
+ button: 'Bookmark'
40
+ success:
41
+ one: 'Item added to folder.'
42
+ other: 'Items added to folder.'
43
+ failure: 'Item could not be added.'
44
+ remove:
45
+ button: 'Remove bookmark'
46
+ success: 'Item removed from folder.'
47
+ failure: 'Item could not be removed.'
48
+ action_confirm: 'Remove this item?'
49
+ clear:
50
+ action_title: 'Remove all items'
51
+ action_confirm: 'Are you sure you want to remove all items?'
52
+ success: 'All items removed.'
53
+ failure: 'Items could not be removed. Please try again later.'
54
+ need_login: 'Please log in to create and manage folders.'
55
+ list_title: 'Your Bookmarks'
56
+ delete: 'Remove'
57
+
58
+ breadcrumb:
59
+ separator: ' > '
60
+
61
+ citation:
62
+ chicago: 'Chicago Style:'
63
+
64
+ collections:
65
+ browse:
66
+ all: 'View All Items'
67
+ facets:
68
+ title: 'Browse by:'
69
+ index:
70
+ a-z_label: 'Browse by title:'
71
+ page_title: 'Collections - %{application_name}'
72
+ title: 'Collections'
73
+ map:
74
+ title: 'Locations in this Collection:'
75
+ nav: 'Collections'
76
+ series:
77
+ title: 'Series in this Collection:'
78
+
79
+ did_you_mean: 'Search for %{options} instead?'
80
+
81
+ downloads:
82
+ link_info: '(links open in new window)'
83
+ title: 'Downloads'
84
+
85
+ email:
86
+ form:
87
+ title: 'Email'
88
+ message: 'Comments:'
89
+ reply_to: 'somebody@example.org'
90
+ record_mailer:
91
+ name: 'Totally Awesome Library'
92
+ email: 'somebody@example.org'
93
+ text:
94
+ subject: 'Totally Awesome Library E-mail: link to item'
95
+ url: 'Link: %{url}'
96
+ message: 'Comments: %{message}'
97
+
98
+ feedback:
99
+ form:
100
+ name: 'Your Name:'
101
+ email: 'Your Email:'
102
+ message: 'Your Message:'
103
+ topic:
104
+ label: 'Topic'
105
+ options:
106
+ default:
107
+ option: 'please select a topic'
108
+ help_text: ''
109
+ repro:
110
+ option: 'image reproduction'
111
+ help_text: '<i aria-hidden=\"true\" class=\"fa fa-exclamation-triangle fa-2x\"></i> Please be sure to include a link to the image in your message.'
112
+ account:
113
+ option: 'login / sign up for account'
114
+ help_text: 'Choose this option if you have questions about signing in or signing up for a user account.'
115
+ research:
116
+ option: 'research question'
117
+ help_text: '<i aria-hidden=\"true\" class=\"fa fa-exclamation-triangle fa-2x\"></i> Please be advised we can only answer research questions related to materials found on this web site.'
118
+ error:
119
+ option: 'broken link / site error'
120
+ help_text: '<i aria-hidden=\"true\" class=\"fa fa-exclamation-triangle fa-2x\"></i> Please include a link to the page with the broken link or incorrect information, or the specific error message, if possible.'
121
+ feature:
122
+ option: 'site feature suggestion'
123
+ help_text: 'We welcome suggestions for improved functionality for this site. Please include as much detail as possible with your suggestion.'
124
+ other:
125
+ option: 'other'
126
+ help_text: ''
127
+ blurb: 'We welcome your comments and feedback.'
128
+ title: 'Contact Us'
129
+ valid_name: 'Please enter your name.'
130
+ valid_email: 'Please enter a valid email address.'
131
+ need_message: 'Please enter a message.'
132
+ submit: 'Send'
133
+ errors:
134
+ title: 'The message could not be sent:'
135
+ complete:
136
+ title: 'Your message has been sent. Thank you for contacting us!'
137
+ text:
138
+ subject: 'SITE_NAME: contact email'
139
+ name: 'Name: '
140
+ email: 'Email: '
141
+ message: 'Message: '
142
+ topic: 'Topic: '
143
+
144
+ folders:
145
+ intro: 'Folders can be used to create, organize, and share your own personal collections of items.'
146
+ list_title: 'Folders'
147
+ no_folders: 'You do not currently have any folders.'
148
+ need_login: 'Please log in to create and view folders.'
149
+ create:
150
+ error:
151
+ no_title: 'Title cannot be blank.'
152
+ no_save: 'The folder could not be created. Please try again later.'
153
+ delete:
154
+ delete: 'Delete folder'
155
+ success: 'Folder deleted.'
156
+ confirm: 'Are you sure you want to delete this folder?'
157
+ edit: 'Edit folder'
158
+ add_folder: 'Create a New Folder'
159
+ edit_folder: 'Edit Folder'
160
+ empty: 'This folder does not currently have any items.'
161
+ private: 'You do not have access to this folder.'
162
+ public_list:
163
+ intro: 'Lists of items created and shared by Digital Commonwealth users.'
164
+ title: 'Shared Folders'
165
+ update_items:
166
+ copy:
167
+ success: "Items copied to '%{folder_name}' folder."
168
+ failure: 'Items could not be copied. Make sure the destination folder does not already include the items. If you are still unable to copy the items, please use the Contact link to report the problem.'
169
+ remove:
170
+ success: 'Items removed.'
171
+ failure: 'Items could not be removed. Please try again later.'
172
+ no_items: 'No items selected!'
173
+ help:
174
+ add_items: 'To add items to your folder, click the "Add to Folder" button in the "Tools" section
175
+ of the item detail page.'
176
+
177
+ folder_items:
178
+ item_in_folder: 'In Folder'
179
+ add:
180
+ button: 'Add to Folder'
181
+ success: 'Item added to folder.'
182
+ failure: 'Item could not be added.'
183
+ submit: 'Add'
184
+ remove:
185
+ button: 'Remove from folder'
186
+ success: 'Item removed from folder.'
187
+ failure: 'Item could not be removed.'
188
+ clear:
189
+ action: 'Remove all items'
190
+ confirm: 'Are you sure you want to remove all items?'
191
+ success: 'All items removed.'
192
+ failure: 'Items could not be removed. Please try again later.'
193
+
194
+ footer:
195
+ address: '123 Main Street, Anywhere, MA 01234'
196
+
197
+ header_links:
198
+ logout: 'Log Out'
199
+ login: 'Sign Up / Log In'
200
+ profile: 'Profile'
201
+ folders: 'Folders'
202
+ bookmarks: 'Folders'
203
+ saved_searches: 'Saved Searches'
204
+ search_history: 'Search History'
205
+ selected_items: 'Selected Items'
206
+
207
+ home:
208
+ banner:
209
+ center_text: 'Explore historical collections from this totally awesome library.'
210
+ browse:
211
+ collections:
212
+ enabled: true
213
+ tagline: 'Explore curated collections of historic materials grouped by topic, date, location, or format.'
214
+ formats:
215
+ enabled: true
216
+ tagline: 'Photographs, maps, postcards, manuscripts, books, artifacts, and more.'
217
+ institutions:
218
+ enabled: false
219
+ tagline: 'View materials from libraries, historical societies, museums, and other cultural institutions.'
220
+ maps:
221
+ enabled: true
222
+ tagline: 'Use the map to search for materials from locations across the globe.'
223
+ context:
224
+ about:
225
+ text: 'This site provides access to materials of historical interest from this totally awesome library.'
226
+ title: 'About This Site'
227
+ news:
228
+ title: 'News & Announcements'
229
+ rss_link: 'http://awesomelibrary.org/blog?feed=rss2'
230
+ blog_title: 'This Awesome Library Blog'
231
+ blog_url: 'https://awesomelibrary.org/blog'
232
+
233
+ images:
234
+ zoom: 'Click to zoom in on this image.'
235
+ next: 'View next image'
236
+ prev: 'View previous image'
237
+
238
+ institutions:
239
+ browse:
240
+ all: 'View all items'
241
+ facets:
242
+ title: 'Browse by:'
243
+ index:
244
+ page_title: 'Institutions - %{application_name}'
245
+ a-z_label: 'Browse by name:'
246
+ nav: 'Institutions'
247
+ title: 'Institutions'
248
+
249
+ maps:
250
+ interactions:
251
+ institutions_search: 'View institutions from this location'
252
+
253
+ metadata_display:
254
+ date_range_connector: '–'
255
+ fields:
256
+ abstract: 'Description'
257
+ access: 'Restrictions'
258
+ classification: 'Classification'
259
+ collection: 'Collection (local)'
260
+ creator: 'Creator'
261
+ date: 'Date'
262
+ edition: 'Edition'
263
+ extent: 'Extent'
264
+ location: 'Location'
265
+ genre_basic: 'Format'
266
+ genre_specific: 'Genre'
267
+ id_isbn: 'ISBN'
268
+ id_lccn: 'LCCN'
269
+ id_local_acc: 'Accession #'
270
+ id_local_barcode: 'Barcode'
271
+ id_local_call: 'Call #'
272
+ id_local_other: 'Identifier'
273
+ id_local_other_invalid: '(no longer used)'
274
+ id_uri_ark: 'Permalink'
275
+ id_uri_oai: 'Link to Item'
276
+ institution: 'Institution'
277
+ language: 'Language'
278
+ note: 'Notes'
279
+ note_acquisition: 'Notes (acquisition)'
280
+ note_citation: 'Preferred Citation'
281
+ note_date: 'Notes (date)'
282
+ note_ownership: 'Notes (ownership)'
283
+ note_performers: 'Performers'
284
+ note_reference: 'Notes (citation)'
285
+ note_resp: 'Name on Item'
286
+ publisher: 'Publisher'
287
+ pubplace: 'Place of origin'
288
+ referenced_by: 'Referenced by'
289
+ rights: 'Terms of Use'
290
+ scale: 'Scale'
291
+ series: 'Series'
292
+ shelf_locator: 'Shelf Locator'
293
+ subject_geo: 'Places'
294
+ subject_topic: 'Subjects'
295
+ toc: 'Table of Contents'
296
+ title: 'Title'
297
+ title_alt: 'Title (alt.)'
298
+ title_uniform: 'Title (uniform)'
299
+ title_translated: 'Title (translated)'
300
+ type_of_resource: 'Type of Resource'
301
+
302
+
303
+ more_like_this:
304
+ constraint_label: 'More Like'
305
+ heading: 'More Like This'
306
+ more_mlt_link: 'Find More Like This >>'
307
+
308
+ navigation:
309
+ format: 'Formats'
310
+
311
+ oai_objects:
312
+ default_inst_name: 'the contributing institution'
313
+ link_to_item: 'View this item at %{institution_name}'
314
+ link_to_item_label: 'Link to Item'
315
+
316
+ ocr:
317
+ search:
318
+ form:
319
+ q: 'Search inside this item...'
320
+ link: 'Search inside'
321
+ results:
322
+ snippets:
323
+ less: 'view less'
324
+ more: 'view more matches'
325
+ term_freq:
326
+ start: 'match'
327
+ title: 'Search inside'
328
+ zero_results:
329
+ message: 'No results found for "%{terms}" in the text of this item. Please try another search.'
330
+ no_quotes: 'Remove any quotation marks from your search terms.'
331
+ use_fewer_keywords: 'Try using fewer keywords in your search.'
332
+
333
+
334
+ pages:
335
+ about:
336
+ title: 'About'
337
+ contact:
338
+ title: 'Contact Us'
339
+ explore:
340
+ title: 'Explore'
341
+
342
+ saved_searches:
343
+ clear:
344
+ action_title: 'clear all'
345
+ delete: 'Delete this search.'
346
+ intro: 'Saved searches allow you to quickly re-search for items of interest.'
347
+ no_searches: "You don't have any saved searches at the moment."
348
+ remove:
349
+ success: 'Search removed.'
350
+ save: 'Save Search'
351
+
352
+ search:
353
+ basic_search:
354
+ form:
355
+ q: 'Enter search terms...'
356
+ search_indexes: 'Search by title, subject, place, etc.'
357
+ select: 'in'
358
+ change_views:
359
+ label: 'View as %{view}'
360
+ action: 'View as'
361
+ submit: 'Update'
362
+ constraints:
363
+ az_search: 'Starts with'
364
+ form:
365
+ collection: 'Search this collection...'
366
+ search:
367
+ label: 'Search for'
368
+ facets:
369
+ home: 'Explore the Collections'
370
+ nav:
371
+ basic: 'Basic'
372
+ advanced: 'Advanced'
373
+ pagination_info:
374
+ no_items_found: 'No items found. Please go back and try a different search.'
375
+ title: 'Search Results - %{application_name}'
376
+ view_title: "View results as: "
377
+ view:
378
+ list: 'list view'
379
+ maps: 'map view'
380
+ gallery: 'grid view'
381
+ masonry: 'wall view'
382
+ slideshow: 'slideshow view'
383
+ zero_results:
384
+ search_fields: "You searched by %{search_fields}"
385
+ search_everything: "try again searching All Fields"
386
+ use_fewer_keywords: "Try using fewer keywords in your search, then refine the results using the 'Limit Your Search' options."
387
+
388
+ search_history:
389
+ intro: 'View and save your recent searches.'
390
+ no_history: 'You have no search history for this session yet.'
391
+
392
+ tools:
393
+ copy_to: 'Copy to'
394
+ librarian_view:
395
+ link: 'View MODS XML'
396
+ title: 'View MODS XML metadata'
397
+ remove: 'Remove'
398
+
399
+ users:
400
+ account_heading: 'My Account'
401
+
402
+ errors:
403
+ messages:
404
+ expired: "has expired, please request a new one"
405
+ not_found: "not found"
406
+ already_confirmed: "was already confirmed, please try signing in"
407
+ not_locked: "was not locked"
408
+ not_saved:
409
+ one: "1 error prohibited this %{resource} from being saved:"
410
+ other: "%{count} errors prohibited this %{resource} from being saved:"
411
+
412
+ devise:
413
+ failure:
414
+ already_authenticated: 'You are already signed in.'
415
+ unauthenticated: 'You need to sign in or sign up before continuing.'
416
+ unconfirmed: 'You have to confirm your account before continuing.'
417
+ locked: 'Your account is locked.'
418
+ invalid: 'Invalid email or password.'
419
+ invalid_token: 'Invalid authentication token.'
420
+ timeout: 'Your session expired, please sign in again to continue.'
421
+ inactive: 'Your account was not activated yet.'
422
+ sessions:
423
+ signed_in: ''
424
+ signed_out: ''
425
+ passwords:
426
+ send_instructions: 'You will receive an email with instructions about how to reset your password in a few minutes.'
427
+ updated: 'Your password was changed successfully. You are now signed in.'
428
+ updated_not_active: 'Your password was changed successfully.'
429
+ send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
430
+ no_token: "You can't access this page without a password reset email. If you did use the link from a password reset email, please make sure you used the full URL provided."
431
+ confirmations:
432
+ send_instructions: 'You will receive an email with instructions about how to confirm your account in a few minutes.'
433
+ send_paranoid_instructions: 'If your email address exists in our database, you will receive an email with instructions about how to confirm your account in a few minutes.'
434
+ confirmed: 'Your account was successfully confirmed. You are now signed in.'
435
+ registrations:
436
+ edit: 'Edit My Account'
437
+ sign_up: "Sign up."
438
+ signed_up: 'Welcome! You can now access your bookmarks, folders, and searches using the menu at the top right.'
439
+ signed_up_but_unconfirmed: 'A message with a confirmation link has been sent to your email address. Please open the link to activate your account.'
440
+ signed_up_but_inactive: 'You have signed up successfully. However, we could not sign you in because your account is not yet activated.'
441
+ signed_up_but_locked: 'You have signed up successfully. However, we could not sign you in because your account is locked.'
442
+ updated: 'You updated your account successfully.'
443
+ update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and click on the confirm link to finalize confirming your new email address."
444
+ destroyed: 'Bye! Your account was successfully cancelled. We hope to see you again soon.'
445
+ unlocks:
446
+ send_instructions: 'You will receive an email with instructions about how to unlock your account in a few minutes.'
447
+ unlocked: 'Your account has been unlocked successfully. Please sign in to continue.'
448
+ send_paranoid_instructions: 'If your account exists, you will receive an email with instructions about how to unlock it in a few minutes.'
449
+ omniauth_callbacks:
450
+ # success: 'Successfully authenticated from %{kind} account.'
451
+ success: 'You are now signed in.'
452
+ failure: 'Could not authenticate you from %{kind} because "%{reason}".'
453
+ mailer:
454
+ confirmation_instructions:
455
+ subject: 'SITE_NAME - Confirmation instructions'
456
+ reset_password_instructions:
457
+ subject: 'SITE_NAME - Reset password instructions'
458
+ unlock_instructions:
459
+ subject: 'SITE_NAME - Unlock Instructions'
460
+
461
+ views:
462
+ pagination_compact:
463
+ previous: '« Prev.'