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,12 @@
1
+ # specific text fields for devise sign-in/account views
2
+
3
+ en:
4
+
5
+ devise:
6
+ mailer:
7
+ confirmation_instructions:
8
+ subject: 'Awesome Library - Confirmation instructions'
9
+ reset_password_instructions:
10
+ subject: 'Awesome Library - Reset password instructions'
11
+ unlock_instructions:
12
+ subject: 'Awesome Library - Unlock Instructions'
@@ -0,0 +1,14 @@
1
+ test:
2
+ facebook_key: yourfacebookkey
3
+ facebook_secret: yourfacebooksecret
4
+ facebook_scp: email
5
+
6
+ development:
7
+ facebook_key:
8
+ facebook_secret:
9
+ facebook_scp: email
10
+
11
+ production:
12
+ facebook_key:
13
+ facebook_secret:
14
+ facebook_scp: email
@@ -0,0 +1,20 @@
1
+ test:
2
+ title: BPL Polaris Login
3
+ http_uri: ####
4
+ access_key: ####
5
+ access_id: ####
6
+ method: GET
7
+
8
+ development:
9
+ title: BPL Polaris Login
10
+ http_uri: ####
11
+ access_key: ####
12
+ access_id: ####
13
+ method: GET
14
+
15
+ production:
16
+ title: BPL Polaris Login
17
+ http_uri: ####
18
+ access_key: ####
19
+ access_id: ####
20
+ method: GET
@@ -0,0 +1,13 @@
1
+ # stores VLR settings
2
+
3
+ development:
4
+ institution:
5
+ pid: bpl-dev:abcd12345
6
+
7
+ test:
8
+ institution:
9
+ pid: bpl-dev:abcd12345
10
+
11
+ production:
12
+ institution:
13
+ pid: commonwealth:abcd12345
@@ -0,0 +1,29 @@
1
+ require 'rails/generators'
2
+
3
+ module CommonwealthVlrEngine
4
+ class YmlGenerator < Rails::Generators::Base
5
+
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ desc 'YmlGenerator Commonwealth VLR Engine'
9
+
10
+ def config_yml_copy
11
+ #copy_file 'config/solr.yml.sample', 'config/solr.yml' unless File::exists?('config/solr.yml')
12
+ copy_file 'config/geojson_static_file.yml.sample', 'config/geojson_static_file.yml' unless File::exists?('config/geojson_static_file.yml')
13
+ copy_file 'config/google_analytics.yml.sample', 'config/google_analytics.yml' unless File::exists?('config/google_analytics.yml')
14
+ copy_file 'config/contact_emails.yml.sample', 'config/contact_emails.yml' unless File::exists?('config/contact_emails.yml')
15
+ #copy_file 'config/predicate_mappings.yml', 'config/predicate_mappings.yml' unless File::exists?('config/predicate_mappings.yml')
16
+ copy_file 'config/fedora.yml.sample', 'config/fedora.yml' unless File::exists?('config/fedora.yml')
17
+ copy_file 'config/iiif_server.yml.sample', 'config/iiif_server.yml' unless File::exists?('config/iiif_server.yml')
18
+ copy_file 'config/omniauth-facebook.yml.sample', 'config/omniauth-facebook.yml' unless File::exists?('config/omniauth-facebook.yml')
19
+ copy_file 'config/omniauth-polaris.yml.sample', 'config/omniauth-polaris.yml' unless File::exists?('config/omniauth-polaris.yml')
20
+ copy_file 'config/vlr.yml', 'config/vlr.yml' unless File::exists?('config/vlr.yml')
21
+ end
22
+
23
+ def locale_yml_copy
24
+ copy_file('config/locales/blacklight.en.yml', 'config/locales/blacklight.en.yml', :force => true)
25
+ copy_file 'config/locales/devise.en.yml', 'config/locales/devise.en.yml'
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,6 @@
1
+ #require 'rails/generators'
2
+ #require 'generators/commonwealth_vlr_engine/install_generator'
3
+
4
+ #namespace :commonwealth_vlr_engine do
5
+
6
+ #end
@@ -0,0 +1,476 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- COPIED FROM https://github.com/boston-library/solr-core-conf/master/schema.xml -->
3
+ <schema name="Hydra" version="1.5">
4
+ <!-- NOTE: various comments and unused configuration possibilities have been purged
5
+ from this file. Please refer to http://wiki.apache.org/solr/SchemaXml,
6
+ as well as the default schema file included with Solr -->
7
+
8
+ <uniqueKey>id</uniqueKey>
9
+
10
+ <fields>
11
+ <field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>
12
+ <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
13
+
14
+ <field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/>
15
+ <field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/>
16
+
17
+ <!--these fields are hard coded in places in hydra-head -->
18
+ <field name="active_fedora_model_s" type="string" stored="true" indexed="true"/>
19
+ <field name="object_profile_display" type="string" stored="true" indexed="true"/>
20
+ <field name="has_model_s" type="string" stored="true" indexed="true"/>
21
+ <field name="is_governed_by_s" type="string" stored="true" indexed="true"/>
22
+
23
+ <!-- defining these fields explicitly so termVectors can be used for better mlt results -->
24
+ <field name="subject_facet_ssim" type="string" stored="true" indexed="true" multiValued="true" termVectors="true"/>
25
+ <field name="subject_geo_city_ssim" type="string" stored="true" indexed="true" multiValued="true" termVectors="true"/>
26
+
27
+ <!-- _version_ field is needed for transaction logging -->
28
+ <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
29
+
30
+ <!--
31
+ These are hard coded in places in hydra-head, but we hope to fix that.
32
+ <field name="inheritable_discover_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
33
+ <field name="inheritable_read_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
34
+ <field name="inheritable_edit_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
35
+ <field name="inheritable_discover_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
36
+ <field name="inheritable_read_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
37
+ <field name="inheritable_edit_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
38
+ <field name="read_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
39
+ <field name="discover_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
40
+ <field name="edit_access_person_t" type="string" stored="true" indexed="true" multiValued="true"/>
41
+ <field name="read_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
42
+ <field name="edit_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
43
+ <field name="discover_access_group_t" type="string" stored="true" indexed="true" multiValued="true"/>
44
+ -->
45
+
46
+
47
+ <!-- NOTE: not all possible Solr field types are represented in the dynamic fields -->
48
+
49
+ <!-- text (_t...) -->
50
+ <dynamicField name="*_ti" type="text" stored="false" indexed="true" multiValued="false"/>
51
+ <dynamicField name="*_tim" type="text" stored="false" indexed="true" multiValued="true"/>
52
+ <dynamicField name="*_ts" type="text" stored="true" indexed="false" multiValued="false"/>
53
+ <dynamicField name="*_tsm" type="text" stored="true" indexed="false" multiValued="true"/>
54
+ <dynamicField name="*_tsi" type="text" stored="true" indexed="true" multiValued="false"/>
55
+ <dynamicField name="*_tsim" type="text" stored="true" indexed="true" multiValued="true"/>
56
+ <dynamicField name="*_tiv" type="text" stored="false" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
57
+ <dynamicField name="*_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
58
+ <dynamicField name="*_tsiv" type="text" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
59
+ <dynamicField name="*_tsimv" type="text" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
60
+
61
+ <!-- English text (_te...) -->
62
+ <dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false"/>
63
+ <dynamicField name="*_teim" type="text_en" stored="false" indexed="true" multiValued="true"/>
64
+ <dynamicField name="*_tes" type="text_en" stored="true" indexed="false" multiValued="false"/>
65
+ <dynamicField name="*_tesm" type="text_en" stored="true" indexed="false" multiValued="true"/>
66
+ <dynamicField name="*_tesi" type="text_en" stored="true" indexed="true" multiValued="false"/>
67
+ <dynamicField name="*_tesim" type="text_en" stored="true" indexed="true" multiValued="true"/>
68
+ <dynamicField name="*_teiv" type="text_en" stored="false" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
69
+ <dynamicField name="*_teimv" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
70
+ <dynamicField name="*_tesiv" type="text_en" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
71
+ <dynamicField name="*_tesimv" type="text_en" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
72
+
73
+ <!-- string (_s...) -->
74
+ <dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false"/>
75
+ <dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true"/>
76
+ <dynamicField name="*_ss" type="string" stored="true" indexed="false" multiValued="false"/>
77
+ <dynamicField name="*_ssm" type="string" stored="true" indexed="false" multiValued="true"/>
78
+ <dynamicField name="*_ssi" type="string" stored="true" indexed="true" multiValued="false"/>
79
+ <dynamicField name="*_ssim" type="string" stored="true" indexed="true" multiValued="true"/>
80
+ <dynamicField name="*_ssort" type="alphaSortNoPunc" stored="false" indexed="true" multiValued="false"/>
81
+
82
+ <!-- integer (_i...) -->
83
+ <dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false"/>
84
+ <dynamicField name="*_iim" type="int" stored="false" indexed="true" multiValued="true"/>
85
+ <dynamicField name="*_is" type="int" stored="true" indexed="false" multiValued="false"/>
86
+ <dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true"/>
87
+ <dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false"/>
88
+ <dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true"/>
89
+
90
+ <!-- trie integer (_it...) (for faster range queries) -->
91
+ <dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false"/>
92
+ <dynamicField name="*_itim" type="tint" stored="false" indexed="true" multiValued="true"/>
93
+ <dynamicField name="*_its" type="tint" stored="true" indexed="false" multiValued="false"/>
94
+ <dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true"/>
95
+ <dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false"/>
96
+ <dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true"/>
97
+
98
+ <!-- date (_dt...) -->
99
+ <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
100
+ Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z -->
101
+ <dynamicField name="*_dti" type="date" stored="false" indexed="true" multiValued="false"/>
102
+ <dynamicField name="*_dtim" type="date" stored="false" indexed="true" multiValued="true"/>
103
+ <dynamicField name="*_dts" type="date" stored="true" indexed="false" multiValued="false"/>
104
+ <dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true"/>
105
+ <dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false"/>
106
+ <dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true"/>
107
+
108
+ <!-- trie date (_dtt...) (for faster range queries) -->
109
+ <dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false"/>
110
+ <dynamicField name="*_dttim" type="tdate" stored="false" indexed="true" multiValued="true"/>
111
+ <dynamicField name="*_dtts" type="tdate" stored="true" indexed="false" multiValued="false"/>
112
+ <dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true"/>
113
+ <dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false"/>
114
+ <dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true"/>
115
+
116
+ <!-- long (_l...) -->
117
+ <dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/>
118
+ <dynamicField name="*_lim" type="long" stored="false" indexed="true" multiValued="true"/>
119
+ <dynamicField name="*_ls" type="long" stored="true" indexed="false" multiValued="false"/>
120
+ <dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true"/>
121
+ <dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false"/>
122
+ <dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true"/>
123
+
124
+ <!-- trie long (_lt...) (for faster range queries) -->
125
+ <dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false"/>
126
+ <dynamicField name="*_ltim" type="tlong" stored="false" indexed="true" multiValued="true"/>
127
+ <dynamicField name="*_lts" type="tlong" stored="true" indexed="false" multiValued="false"/>
128
+ <dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true"/>
129
+ <dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false"/>
130
+ <dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true"/>
131
+
132
+ <!-- double (_db...) -->
133
+ <dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false"/>
134
+ <dynamicField name="*_dbim" type="double" stored="false" indexed="true" multiValued="true"/>
135
+ <dynamicField name="*_dbs" type="double" stored="true" indexed="false" multiValued="false"/>
136
+ <dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true"/>
137
+ <dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false"/>
138
+ <dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true"/>
139
+
140
+ <!-- trie double (_dbt...) (for faster range queries) -->
141
+ <dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false"/>
142
+ <dynamicField name="*_dbtim" type="tdouble" stored="false" indexed="true" multiValued="true"/>
143
+ <dynamicField name="*_dbts" type="tdouble" stored="true" indexed="false" multiValued="false"/>
144
+ <dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true"/>
145
+ <dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false"/>
146
+ <dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true"/>
147
+
148
+ <!-- float (_f...) -->
149
+ <dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false"/>
150
+ <dynamicField name="*_fim" type="float" stored="false" indexed="true" multiValued="true"/>
151
+ <dynamicField name="*_fs" type="float" stored="true" indexed="false" multiValued="false"/>
152
+ <dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true"/>
153
+ <dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false"/>
154
+ <dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true"/>
155
+
156
+ <!-- trie float (_ft...) (for faster range queries) -->
157
+ <dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false"/>
158
+ <dynamicField name="*_ftim" type="tfloat" stored="false" indexed="true" multiValued="true"/>
159
+ <dynamicField name="*_fts" type="tfloat" stored="true" indexed="false" multiValued="false"/>
160
+ <dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true"/>
161
+ <dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false"/>
162
+ <dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true"/>
163
+
164
+ <!-- boolean (_b...) -->
165
+ <dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false"/>
166
+ <dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false"/>
167
+ <dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false"/>
168
+
169
+ <!-- Type used to index the lat and lon components for the "location" FieldType -->
170
+ <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />
171
+
172
+ <!-- Solr4 geospatial field for coordinates, shapes, etc. -->
173
+ <dynamicField name="*_geospatial" type="location_rpt" indexed="true" stored="true" multiValued="true" />
174
+
175
+ <!-- location (_ll...) -->
176
+ <dynamicField name="*_lli" type="location" stored="false" indexed="true" multiValued="false"/>
177
+ <dynamicField name="*_llim" type="location" stored="false" indexed="true" multiValued="true"/>
178
+ <dynamicField name="*_lls" type="location" stored="true" indexed="false" multiValued="false"/>
179
+ <dynamicField name="*_llsm" type="location" stored="true" indexed="false" multiValued="true"/>
180
+ <dynamicField name="*_llsi" type="location" stored="true" indexed="true" multiValued="false"/>
181
+ <dynamicField name="*_llsim" type="location" stored="true" indexed="true" multiValued="true"/>
182
+
183
+ <!-- you must define copyField source and dest fields explicity or schemaBrowser doesn't work -->
184
+ <field name="all_text_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
185
+
186
+ <!-- spellcheck field -->
187
+ <dynamicField name="*spell" type="textSpell" indexed="true" stored="false" multiValued="true" />
188
+
189
+ <!-- deprecated fields from pre-Solr 4.0 pre-hydra 5.0 -->
190
+ <!--
191
+ <field name="marc_display" type="string" indexed="false" stored="true" multiValued="false"/>
192
+ <field name="title_display" type="string" indexed="false" stored="true" multiValued="false"/>
193
+ <field name="title_vern_display" type="string" indexed="false" stored="true" multiValued="false"/>
194
+ <field name="subtitle_display" type="string" indexed="false" stored="true" multiValued="false"/>
195
+ <field name="subtitle_vern_display" type="string" indexed="false" stored="true" multiValued="false"/>
196
+ <field name="author_display" type="string" indexed="false" stored="true" multiValued="false"/>
197
+ <field name="author_vern_display" type="string" indexed="false" stored="true" multiValued="false"/>
198
+ -->
199
+ <!-- these fields are also used for display, so they must be stored -->
200
+ <!--
201
+ <field name="isbn_t" type="text" indexed="true" stored="true" multiValued="true"/>
202
+ <field name="language_facet" type="string" indexed="true" stored="true" multiValued="true" />
203
+ <field name="subject_topic_facet" type="string" indexed="true" stored="true" multiValued="true" />
204
+ <field name="subject_era_facet" type="string" indexed="true" stored="true" multiValued="true" />
205
+ <field name="subject_geo_facet" type="string" indexed="true" stored="true" multiValued="true" />
206
+ -->
207
+ <!-- pub_date is used for facet and display so it must be indexed and stored -->
208
+ <!--
209
+ <field name="pub_date" type="string" indexed="true" stored="true" multiValued="true"/>
210
+ -->
211
+ <!-- pub_date sort uses new trie-based int fields, which are recommended for any int and are displayable, sortable, and range-quer
212
+ we use 'tint' for faster range-queries. -->
213
+ <!--
214
+ <field name="pub_date_sort" type="tint" indexed="true" stored="true" multiValued="false"/>
215
+ -->
216
+ <!-- format is used for facet, display, and choosing which partial to use for the show view, so it must be stored and indexed -->
217
+ <!--
218
+ <field name="format" type="string" indexed="true" stored="true"/>
219
+
220
+ <dynamicField name="*_i" type="int" indexed="true" stored="true"/>
221
+ <dynamicField name="*_s" type="string" indexed="true" stored="true" multiValued="true"/>
222
+ <dynamicField name="*_l" type="long" indexed="true" stored="true"/>
223
+ <dynamicField name="*_t" type="text" indexed="true" stored="true" multiValued="true"/>
224
+ <dynamicField name="*_txt" type="text_general" indexed="true" stored="true" multiValued="true"/>
225
+ <dynamicField name="*_b" type="boolean" indexed="true" stored="true"/>
226
+ <dynamicField name="*_f" type="float" indexed="true" stored="true"/>
227
+ <dynamicField name="*_d" type="double" indexed="true" stored="true"/>
228
+
229
+ <dynamicField name="ignored_*" type="ignored" multiValued="true"/>
230
+ <dynamicField name="attr_*" type="text_general" indexed="true" stored="true" multiValued="true"/>
231
+
232
+ <dynamicField name="random_*" type="random" />
233
+
234
+ <dynamicField name="*_display" type="string" indexed="false" stored="true" multiValued="true" />
235
+ <dynamicField name="*_facet" type="string" indexed="true" stored="true" multiValued="true" />
236
+ <dynamicField name="*_sort" type="string" indexed="true" stored="false" multiValued="false" />
237
+ <dynamicField name="*_unstem_search" type="text_general" indexed="true" stored="false" multiValued="true" />
238
+ -->
239
+ <!-- uncomment the following to ignore any fields that don't already match an existing
240
+ field name or dynamic field, rather than reporting them as an error.
241
+ alternately, change the type="ignored" to some other type e.g. "text" if you want
242
+ unknown fields indexed and/or stored by default -->
243
+ <!--dynamicField name="*" type="ignored" multiValued="true" /-->
244
+
245
+ <!-- END hydra deprecated items -->
246
+
247
+ </fields>
248
+
249
+ <!-- START hydra deprecated items -->
250
+ <!--
251
+ <defaultSearchField>text</defaultSearchField>
252
+ -->
253
+ <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
254
+ <!--
255
+ <solrQueryParser defaultOperator="AND"/>
256
+
257
+ <copyField source="title_t" dest="title_unstem_search"/>
258
+ <copyField source="subtitle_t" dest="subtitle_unstem_search"/>
259
+ <copyField source="title_addl_t" dest="title_addl_unstem_search"/>
260
+ <copyField source="title_added_entry_t" dest="title_added_entry_unstem_search"/>
261
+ <copyField source="title_series_t" dest="title_series_unstem_search"/>
262
+ <copyField source="author_t" dest="author_unstem_search"/>
263
+ <copyField source="author_addl_t" dest="author_addl_unstem_search"/>
264
+ <copyField source="subject_t" dest="subject_unstem_search"/>
265
+ <copyField source="subject_addl_t" dest="subject_addl_unstem_search"/>
266
+ <copyField source="subject_topic_facet" dest="subject_topic_unstem_search"/>
267
+ -->
268
+ <!-- sort fields -->
269
+ <!--
270
+ <copyField source="pub_date" dest="pub_date_sort"/>
271
+ -->
272
+
273
+ <!-- spellcheck fields -->
274
+ <!-- default spell check; should match fields for default request handler -->
275
+ <!-- it won't work with a copy of a copy field -->
276
+
277
+ <copyField source="*_ti" dest="spell"/>
278
+ <copyField source="*_tim" dest="spell"/>
279
+ <copyField source="*_tsi" dest="spell"/>
280
+ <copyField source="*_tsim" dest="spell"/>
281
+
282
+ <!-- title spell check; should match fields for title request handler -->
283
+ <!--
284
+ <copyField source="title_t" dest="title_spell"/>
285
+ <copyField source="subtitle_t" dest="title_spell"/>
286
+ <copyField source="addl_titles_t" dest="title_spell"/>
287
+ <copyField source="title_added_entry_t" dest="title_spell"/>
288
+ <copyField source="title_series_t" dest="title_spell"/>
289
+ -->
290
+ <!-- author spell check; should match fields for author request handler -->
291
+ <!--
292
+ <copyField source="author_t" dest="author_spell"/>
293
+ <copyField source="author_addl_t" dest="author_spell"/>
294
+ -->
295
+ <!-- subject spell check; should match fields for subject request handler -->
296
+ <!--
297
+ <copyField source="subject_topic_facet" dest="subject_spell"/>
298
+ <copyField source="subject_t" dest="subject_spell"/>
299
+ <copyField source="subject_addl_t" dest="subject_spell"/>
300
+ -->
301
+
302
+ <!-- OpenSearch query field should match request handler search fields -->
303
+ <!--
304
+ <copyField source="title_t" dest="opensearch_display"/>
305
+ <copyField source="subtitle_t" dest="opensearch_display"/>
306
+ <copyField source="addl_titles_t" dest="opensearch_display"/>
307
+ <copyField source="title_added_entry_t" dest="opensearch_display"/>
308
+ <copyField source="title_series_t" dest="opensearch_display"/>
309
+ <copyField source="author_t" dest="opensearch_display"/>
310
+ <copyField source="author_addl_t" dest="opensearch_display"/>
311
+ <copyField source="subject_topic_facet" dest="opensearch_display"/>
312
+ <copyField source="subject_t" dest="opensearch_display"/>
313
+ <copyField source="subject_addl_t" dest="opensearch_display"/>
314
+ -->
315
+
316
+ <!-- Above, multiple source fields are copied to the [text] field.
317
+ Another way to map multiple source fields to the same
318
+ destination field is to use the dynamic field syntax.
319
+ copyField also supports a maxChars to copy setting. -->
320
+
321
+ <!-- <copyField source="*_t" dest="text" maxChars="3000"/> -->
322
+ <!--
323
+ <copyField source="*_s" dest="text"/>
324
+ <copyField source="*_t" dest="text"/>
325
+ <copyField source="*_facet" dest="text"/>
326
+ -->
327
+ <!-- copy name to alphaNameSort, a field designed for sorting by name -->
328
+ <!-- <copyField source="name" dest="alphaNameSort"/> -->
329
+
330
+ <!-- END hydra deprecated items -->
331
+
332
+ <!-- copy fields; note that you must define copyField source and dest fields explicity or schemaBrowser doesn't work -->
333
+ <!--
334
+ <copyField source="some_field" dest="all_text_timv" />
335
+ -->
336
+
337
+ <types>
338
+ <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
339
+ <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
340
+ <fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
341
+
342
+ <!-- Default numeric field types. -->
343
+ <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
344
+ <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
345
+ <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
346
+ <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
347
+
348
+ <!-- trie numeric field types for faster range queries -->
349
+ <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
350
+ <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
351
+ <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
352
+ <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
353
+
354
+ <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
355
+ Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
356
+ -->
357
+ <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
358
+ <!-- A Trie based date field for faster date range queries and date faceting. -->
359
+ <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
360
+
361
+
362
+ <!-- This point type indexes the coordinates as separate fields (subFields)
363
+ If subFieldType is defined, it references a type, and a dynamic field
364
+ definition is created matching *___<typename>. Alternately, if
365
+ subFieldSuffix is defined, that is used to create the subFields.
366
+ Example: if subFieldType="double", then the coordinates would be
367
+ indexed in fields myloc_0___double,myloc_1___double.
368
+ Example: if subFieldSuffix="_d" then the coordinates would be indexed
369
+ in fields myloc_0_d,myloc_1_d
370
+ The subFields are an implementation detail of the fieldType, and end
371
+ users normally should not need to know about them.
372
+ -->
373
+ <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
374
+
375
+ <!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
376
+ <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
377
+
378
+ <!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
379
+ For more information about this and other Spatial fields new to Solr 4, see:
380
+ http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
381
+ -->
382
+ <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
383
+ geo="true" distErrPct="0.025" maxDistErr="0.000009" units="degrees" />
384
+
385
+ <fieldType name="text" class="solr.TextField" omitNorms="false">
386
+ <analyzer>
387
+ <tokenizer class="solr.ICUTokenizerFactory"/>
388
+ <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
389
+ <filter class="solr.TrimFilterFactory"/>
390
+ </analyzer>
391
+ </fieldType>
392
+
393
+ <!-- A text field that only splits on whitespace for exact matching of words -->
394
+ <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
395
+ <analyzer>
396
+ <tokenizer class="solr.WhitespaceTokenizerFactory"/>
397
+ <filter class="solr.TrimFilterFactory"/>
398
+ </analyzer>
399
+ </fieldType>
400
+
401
+ <!-- single token analyzed text, for sorting. Punctuation is significant. -->
402
+ <fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
403
+ <analyzer>
404
+ <tokenizer class="solr.KeywordTokenizerFactory" />
405
+ <filter class="solr.ICUFoldingFilterFactory"/>
406
+ <filter class="solr.TrimFilterFactory" />
407
+ </analyzer>
408
+ </fieldtype>
409
+
410
+ <!-- single token analyzed text, for sorting. Punctuation is ignored. -->
411
+ <fieldType name="alphaSortNoPunc" class="solr.TextField" sortMissingLast="true" omitNorms="true">
412
+ <analyzer>
413
+ <tokenizer class="solr.KeywordTokenizerFactory"/>
414
+ <filter class="solr.ICUFoldingFilterFactory" />
415
+ <filter class="solr.TrimFilterFactory" />
416
+ <filter class="solr.PatternReplaceFilterFactory"
417
+ pattern="(^[^a-z0-9]*)|([^a-z0-9\s])" replacement="" replace="all"
418
+ />
419
+ </analyzer>
420
+ </fieldType>
421
+
422
+ <!-- A text field with defaults appropriate for English -->
423
+ <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
424
+ <analyzer>
425
+ <tokenizer class="solr.ICUTokenizerFactory"/>
426
+ <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
427
+ <filter class="solr.EnglishPossessiveFilterFactory"/>
428
+ <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: -->
429
+ <filter class="solr.EnglishMinimalStemFilterFactory"/>
430
+ <!--
431
+ <filter class="solr.PorterStemFilterFactory"/>
432
+ -->
433
+ <filter class="solr.TrimFilterFactory"/>
434
+ </analyzer>
435
+ </fieldType>
436
+
437
+ <!-- queries for paths match documents at that path, or in descendent paths -->
438
+ <fieldType name="descendent_path" class="solr.TextField">
439
+ <analyzer type="index">
440
+ <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
441
+ </analyzer>
442
+ <analyzer type="query">
443
+ <tokenizer class="solr.KeywordTokenizerFactory" />
444
+ </analyzer>
445
+ </fieldType>
446
+
447
+ <!-- queries for paths match documents at that path, or in ancestor paths -->
448
+ <fieldType name="ancestor_path" class="solr.TextField">
449
+ <analyzer type="index">
450
+ <tokenizer class="solr.KeywordTokenizerFactory" />
451
+ </analyzer>
452
+ <analyzer type="query">
453
+ <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
454
+ </analyzer>
455
+ </fieldType>
456
+
457
+ <!-- spellcheck fieldType -->
458
+ <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
459
+ <analyzer type="index">
460
+ <tokenizer class="solr.StandardTokenizerFactory"/>
461
+ <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
462
+ <filter class="solr.LowerCaseFilterFactory"/>
463
+ <filter class="solr.StandardFilterFactory"/>
464
+ </analyzer>
465
+ <analyzer type="query">
466
+ <tokenizer class="solr.StandardTokenizerFactory"/>
467
+ <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
468
+ <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
469
+ <filter class="solr.LowerCaseFilterFactory"/>
470
+ <filter class="solr.StandardFilterFactory"/>
471
+ </analyzer>
472
+ </fieldType>
473
+
474
+ </types>
475
+
476
+ </schema>