umlaut 3.0.5 → 3.1.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (385) hide show
  1. checksums.yaml +15 -0
  2. data/README.md +48 -5
  3. data/app/assets/images/umlaut_icons.png +0 -0
  4. data/app/assets/images/umlaut_icons/famfamfam-book-go.png +0 -0
  5. data/app/assets/images/{famfamfam/book_open.png → umlaut_icons/famfamfam-book-open.png} +0 -0
  6. data/app/assets/images/umlaut_icons/famfamfam-book.png +0 -0
  7. data/app/assets/images/{famfamfam/cross.png → umlaut_icons/famfamfam-cross.png} +0 -0
  8. data/app/assets/images/umlaut_icons/famfamfam-error.png +0 -0
  9. data/app/assets/images/umlaut_icons/famfamfam-help.png +0 -0
  10. data/app/assets/images/umlaut_icons/famfamfam-information.png +0 -0
  11. data/app/assets/images/umlaut_icons/famfamfam-link.png +0 -0
  12. data/app/assets/images/umlaut_icons/famfamfam-page-sound.png +0 -0
  13. data/app/assets/images/umlaut_icons/famfamfam-page-text.png +0 -0
  14. data/app/assets/images/umlaut_icons/famfamfam-page-up.png +0 -0
  15. data/app/assets/images/{famfamfam/page_white.png → umlaut_icons/famfamfam-page-white.png} +0 -0
  16. data/app/assets/images/{famfamfam/readme.html → umlaut_icons/famfamfam-readme.html} +0 -0
  17. data/app/assets/images/{famfamfam/tiny_cross.png → umlaut_icons/famfamfam-tiny-cross.png} +0 -0
  18. data/app/assets/images/{list_closed.png → umlaut_icons/list-closed.png} +0 -0
  19. data/app/assets/images/{list_open.png → umlaut_icons/list-open.png} +0 -0
  20. data/app/assets/javascripts/umlaut.js +5 -4
  21. data/app/assets/javascripts/umlaut/ajax_windows.js +41 -23
  22. data/app/assets/javascripts/umlaut/expand_contract_toggle.js +21 -29
  23. data/app/assets/javascripts/umlaut/load_permalink.js +26 -0
  24. data/app/assets/javascripts/umlaut/search_autocomplete.js +103 -44
  25. data/app/assets/stylesheets/umlaut.css.scss +19 -0
  26. data/app/assets/stylesheets/umlaut/_admin.scss +14 -0
  27. data/app/assets/stylesheets/umlaut/_az.scss +29 -0
  28. data/app/assets/stylesheets/umlaut/_forms.scss +31 -0
  29. data/app/assets/stylesheets/umlaut/_icons.scss +64 -0
  30. data/app/assets/stylesheets/umlaut/_layout.scss +52 -0
  31. data/app/assets/stylesheets/umlaut/_misc.scss +59 -0
  32. data/app/assets/stylesheets/umlaut/_mixins.scss +65 -0
  33. data/app/assets/stylesheets/umlaut/_modal.scss +4 -0
  34. data/app/assets/stylesheets/umlaut/_resolve.scss +308 -0
  35. data/app/assets/stylesheets/umlaut/_results.scss +34 -0
  36. data/app/assets/stylesheets/umlaut/_search.scss +14 -0
  37. data/app/assets/stylesheets/umlaut/_spinner.scss +12 -0
  38. data/app/assets/stylesheets/umlaut/_variables.scss +72 -0
  39. data/app/controllers/export_email_controller.rb +22 -39
  40. data/app/controllers/journal_tocs_controller +90 -0
  41. data/app/controllers/js_helper_controller.rb +2 -3
  42. data/app/controllers/link_router_controller.rb +32 -43
  43. data/app/controllers/open_search_controller.rb +3 -4
  44. data/app/controllers/resolve_controller.rb +68 -107
  45. data/app/controllers/resource_controller.rb +14 -20
  46. data/app/controllers/search_controller.rb +75 -94
  47. data/app/controllers/search_methods/README.md +28 -0
  48. data/app/controllers/search_methods/sfx4.rb +50 -119
  49. data/app/controllers/search_methods/sfx4_solr/README.md +57 -0
  50. data/app/controllers/search_methods/sfx4_solr/local.rb +40 -0
  51. data/app/controllers/search_methods/sfx4_solr/searcher.rb +90 -0
  52. data/app/controllers/store_controller.rb +24 -30
  53. data/app/controllers/umlaut/controller_behavior.rb +45 -17
  54. data/app/controllers/umlaut/error_handling.rb +20 -25
  55. data/{lib → app/controllers}/umlaut_configurable.rb +35 -21
  56. data/app/controllers/umlaut_controller.rb +43 -46
  57. data/app/helpers/emailer_helper.rb +9 -16
  58. data/app/helpers/export_email_helper.rb +8 -8
  59. data/app/helpers/open_search_helper.rb +2 -3
  60. data/app/helpers/resolve_helper.rb +130 -100
  61. data/app/helpers/search_helper.rb +17 -5
  62. data/app/helpers/umlaut/footer_helper.rb +1 -1
  63. data/app/helpers/umlaut/helper.rb +34 -0
  64. data/app/helpers/umlaut/html_head_helper.rb +12 -21
  65. data/{lib → app/mixin_logic}/marc_helper.rb +1 -1
  66. data/{lib → app/mixin_logic}/metadata_helper.rb +6 -5
  67. data/{lib → app/mixin_logic}/umlaut_http.rb +0 -0
  68. data/{lib → app/mixin_logic}/xml_schema_helper.rb +0 -0
  69. data/app/models/collection.rb +97 -95
  70. data/{lib → app/models}/hip3/bib.rb +0 -0
  71. data/{lib → app/models}/hip3/bib_searcher.rb +0 -0
  72. data/{lib → app/models}/hip3/custom_field_lookup.rb +0 -0
  73. data/{lib → app/models}/hip3/holding.rb +0 -0
  74. data/{lib → app/models}/hip3/item.rb +0 -0
  75. data/{lib → app/models}/hip3/receipt.rb +0 -0
  76. data/{lib → app/models}/hip3/serial_copy.rb +0 -0
  77. data/app/models/permalink.rb +3 -8
  78. data/app/models/referent.rb +29 -21
  79. data/app/models/request.rb +19 -8
  80. data/app/models/service_response.rb +24 -3
  81. data/app/models/service_store.rb +108 -39
  82. data/app/models/service_store.rb-NEW +73 -0
  83. data/app/models/service_wave.rb +2 -0
  84. data/app/models/sfx4/abstract/README.md +68 -0
  85. data/app/models/sfx4/abstract/az_extra_info.rb +44 -0
  86. data/app/models/sfx4/abstract/az_letter_group.rb +24 -0
  87. data/app/models/sfx4/abstract/az_title.rb +96 -0
  88. data/app/models/sfx4/abstract/az_title_search.rb +24 -0
  89. data/app/models/sfx4/abstract/base.rb +77 -0
  90. data/app/models/sfx4/global/base.rb +24 -0
  91. data/app/models/sfx4/global/kb_objects.rb +34 -0
  92. data/app/models/sfx4/local/az_extra_info.rb +7 -0
  93. data/app/models/sfx4/local/az_letter_group.rb +7 -0
  94. data/app/models/sfx4/local/az_title.rb +7 -0
  95. data/app/models/sfx4/local/az_title_search.rb +7 -0
  96. data/app/models/sfx4/local/base.rb +26 -0
  97. data/{lib → app/presentation}/section_renderer.rb +0 -12
  98. data/app/referent_filters/dissertation_catch.rb +67 -0
  99. data/{lib → app/referent_filters}/referent_filter.rb +0 -0
  100. data/{lib → app}/service_adaptors/ajax_export.rb +0 -0
  101. data/{lib → app}/service_adaptors/amazon.rb +2 -0
  102. data/{lib → app}/service_adaptors/blacklight.rb +22 -10
  103. data/{lib → app}/service_adaptors/book_finder.rb +0 -0
  104. data/{lib → app}/service_adaptors/bx.rb +0 -0
  105. data/{lib → app}/service_adaptors/cover_thing.rb +0 -0
  106. data/{lib → app}/service_adaptors/dummy_service.rb +0 -0
  107. data/{lib → app}/service_adaptors/elsevier_cover.rb +0 -0
  108. data/{lib → app}/service_adaptors/email_export.rb +0 -0
  109. data/{lib → app}/service_adaptors/ezproxy.rb +0 -0
  110. data/{lib → app}/service_adaptors/google_book_search.rb +0 -0
  111. data/app/service_adaptors/google_scholar_link.rb +71 -0
  112. data/{lib → app}/service_adaptors/gpo.rb +0 -0
  113. data/{lib → app}/service_adaptors/hathi_trust.rb +0 -0
  114. data/{lib → app}/service_adaptors/hip3_service.rb +0 -0
  115. data/{lib → app}/service_adaptors/hip_holding_search.rb +0 -0
  116. data/{lib → app}/service_adaptors/internet_archive.rb +0 -0
  117. data/{lib → app}/service_adaptors/isbn_db.rb +0 -0
  118. data/{lib → app}/service_adaptors/isi.rb +22 -13
  119. data/{lib → app}/service_adaptors/jcr.rb +0 -0
  120. data/{lib → app}/service_adaptors/opac.rb +0 -0
  121. data/{lib → app}/service_adaptors/open_library.rb +0 -0
  122. data/{lib → app}/service_adaptors/open_library_cover.rb +0 -0
  123. data/{lib → app}/service_adaptors/pubmed.rb +0 -0
  124. data/{lib → app}/service_adaptors/request_to_fixture.rb +0 -0
  125. data/{lib → app}/service_adaptors/scopus.rb +0 -0
  126. data/{lib → app/service_adaptors}/service.rb +3 -3
  127. data/{lib → app}/service_adaptors/sfx.rb +154 -11
  128. data/{lib → app}/service_adaptors/sfx_backchannel_record.rb +0 -0
  129. data/app/service_adaptors/tr_link.rb +267 -0
  130. data/app/service_adaptors/tr_links.rb +278 -0
  131. data/{lib → app}/service_adaptors/txt_holding_export.rb +0 -0
  132. data/{lib → app}/service_adaptors/ulrichs_cover.rb +0 -0
  133. data/{lib → app}/service_adaptors/ulrichs_link.rb +0 -0
  134. data/{lib → app}/service_adaptors/worldcat.rb +0 -0
  135. data/{lib → app}/service_adaptors/worldcat_identities.rb +0 -0
  136. data/app/views/admin/service_errors/_dispatched_service.html.erb +13 -13
  137. data/app/views/admin/service_errors/index.html.erb +11 -21
  138. data/app/views/export_email/email.html.erb +17 -2
  139. data/app/views/export_email/send_email.html.erb +2 -1
  140. data/app/views/export_email/send_txt.html.erb +2 -1
  141. data/app/views/export_email/txt.html.erb +30 -2
  142. data/app/views/layouts/umlaut.html.erb +29 -49
  143. data/app/views/resolve/_background_progress.html.erb +43 -50
  144. data/app/views/resolve/_background_updater.html.erb +23 -36
  145. data/app/views/resolve/_citation.html.erb +63 -87
  146. data/app/views/resolve/_compact_citation.html.erb +15 -33
  147. data/app/views/resolve/_cover_image.html.erb +34 -43
  148. data/app/views/resolve/_fulltext.html.erb +29 -50
  149. data/app/views/resolve/_help.html.erb +17 -14
  150. data/app/views/resolve/_holding.html.erb +65 -82
  151. data/app/views/resolve/_manually_entered_warning.html.erb +7 -0
  152. data/app/views/resolve/_modal.html.erb +19 -0
  153. data/app/views/resolve/_related_items.html.erb +20 -35
  154. data/app/views/resolve/_search_inside.html.erb +34 -57
  155. data/app/views/resolve/_section_display.html.erb +34 -46
  156. data/app/views/resolve/_section_heading.html.erb +17 -0
  157. data/app/views/resolve/_service_errors.html.erb +27 -28
  158. data/app/views/resolve/_standard_response_item.html.erb +42 -72
  159. data/app/views/resolve/background_status.html.erb +19 -23
  160. data/app/views/resolve/get_permalink.html.erb +6 -0
  161. data/app/views/resolve/index.html.erb +47 -73
  162. data/app/views/search/_a_to_z.html.erb +9 -6
  163. data/app/views/search/_citation.html.erb +73 -94
  164. data/app/views/search/_pager.html.erb +6 -6
  165. data/app/views/search/books.html.erb +34 -102
  166. data/app/views/search/journal_search.html.erb +53 -90
  167. data/app/views/search/journals.html.erb +73 -167
  168. data/app/views/umlaut/_header.html.erb +9 -0
  169. data/app/views/umlaut/error.html.erb +44 -44
  170. data/config/locales/en.yml +5 -0
  171. data/lib/{CronTab.rb → cron_tab.rb} +0 -0
  172. data/lib/generators/templates/umlaut_services.yml +57 -43
  173. data/lib/generators/umlaut/install_generator.rb +12 -0
  174. data/lib/service_adaptors/README.md +0 -0
  175. data/lib/tasks/umlaut.rake +8 -24
  176. data/lib/umlaut.rb +1 -21
  177. data/lib/umlaut/version.rb +1 -1
  178. data/test/README.md +75 -0
  179. data/test/dummy/app/controllers/umlaut_controller.rb +3 -3
  180. data/test/dummy/config/application.rb +3 -0
  181. data/test/dummy/config/sunspot.yml +20 -0
  182. data/test/dummy/config/travis_database.yml +96 -0
  183. data/test/dummy/config/umlaut_services.yml +16 -23
  184. data/test/dummy/db/migrate/20120927163304_sfx4_global.rb +26 -0
  185. data/test/dummy/db/migrate/20120927164040_sfx4_local.rb +54 -0
  186. data/test/dummy/tmp/cache/assets/BBA/6A0/sprockets%2F2a335471966f33256b321f8324041981 +0 -0
  187. data/test/dummy/tmp/cache/assets/C2A/410/sprockets%2Fd654b74912b4773a2534616863fb6565 +0 -0
  188. data/test/dummy/tmp/cache/assets/C45/A30/sprockets%2F39494895e462697b478d3d0c79298a26 +0 -0
  189. data/test/dummy/tmp/cache/assets/C49/730/sprockets%2F212d35831188417b5131e3e693aa69a6 +0 -0
  190. data/test/dummy/tmp/cache/assets/C55/1D0/sprockets%2F5af2f2a3403040f736981863fd278529 +0 -0
  191. data/test/dummy/tmp/cache/assets/C5A/A80/sprockets%2F2328c7370b56b4151776981a5f6d394e +0 -0
  192. data/test/dummy/tmp/cache/assets/C5F/340/sprockets%2F99692920160b7a279b86a80415b79db7 +0 -0
  193. data/test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80 +0 -0
  194. data/test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41 +0 -0
  195. data/test/dummy/tmp/cache/assets/C94/E20/sprockets%2F19579abc248373f419b1c3e287d74598 +0 -0
  196. data/test/dummy/tmp/cache/assets/C98/330/sprockets%2F0c81574ba94abc10657315d4190c201f +0 -0
  197. data/test/dummy/tmp/cache/assets/CA4/440/sprockets%2F0feb4425db6319d7d0582192a503671b +0 -0
  198. data/test/dummy/tmp/cache/assets/CA7/E80/sprockets%2F33310f455a870eaedd6d938e30620714 +0 -0
  199. data/test/dummy/tmp/cache/assets/CB8/3C0/sprockets%2F697cd846490fda9f0e20c558320610f8 +0 -0
  200. data/test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f +0 -0
  201. data/test/dummy/tmp/cache/assets/CC7/F10/sprockets%2F939637f806eef3f0f21584659458ab2e +0 -0
  202. data/test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d +0 -0
  203. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  204. data/test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46 +0 -0
  205. data/test/dummy/tmp/cache/assets/CF8/DA0/sprockets%2Ff5b8c8499d3da954d392fa57739503c5 +0 -0
  206. data/test/dummy/tmp/cache/assets/CF9/590/sprockets%2F096bcc45cd31b3796fa2121cd203215f +0 -0
  207. data/test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398 +0 -0
  208. data/test/dummy/tmp/cache/assets/D04/CC0/sprockets%2Fe9c1b92f2e437e1bbbe020d718739220 +0 -0
  209. data/test/dummy/tmp/cache/assets/D0B/090/sprockets%2F58009091c95e3ac328c91c68fca30e0e +0 -0
  210. data/test/dummy/tmp/cache/assets/D1A/B50/sprockets%2F2db5892438129fe94da8429b8be114ec +0 -0
  211. data/test/dummy/tmp/cache/assets/D2D/1A0/sprockets%2F376426b4896a3cff7969ce6c7b387e0e +0 -0
  212. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  213. data/test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F40834fb07d7318c1fddd5003bd9e04f6 +0 -0
  214. data/test/dummy/tmp/cache/assets/D43/0D0/sprockets%2F682843a8d0795a5fbcfeb2f0c81727d0 +0 -0
  215. data/test/dummy/tmp/cache/assets/D46/F80/sprockets%2Fb15c08e749067d7aad9baf5e9388221c +0 -0
  216. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  217. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  218. data/test/dummy/tmp/cache/assets/D6C/7D0/sprockets%2F8a05d6981ec0d38c51739bef0b3a9c2b +0 -0
  219. data/test/dummy/tmp/cache/assets/D6E/CF0/sprockets%2F5661c6e4f0cea86fe4523f27261aade5 +0 -0
  220. data/test/dummy/tmp/cache/assets/D94/FF0/sprockets%2F3b56a1aa77de0d570c38a4a9d5f4b1d6 +0 -0
  221. data/test/dummy/tmp/cache/assets/D97/6B0/sprockets%2Fb070e8c799d1a4ad5e62e0a1ae3b83e6 +0 -0
  222. data/test/dummy/tmp/cache/assets/D9A/2F0/sprockets%2Fbba0f4b972dc53c15ce6c8c1993b82a4 +0 -0
  223. data/test/dummy/tmp/cache/assets/D9C/860/sprockets%2Fec2d9f20b270d70e698ff33e53c21fca +0 -0
  224. data/test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1 +0 -0
  225. data/test/dummy/tmp/cache/assets/DA8/BB0/sprockets%2F0cf1c7e9f966dce425517c0e2a844efe +0 -0
  226. data/test/dummy/tmp/cache/assets/DA9/BC0/sprockets%2Fcb9062b73291befe5e5bf2a70978dec8 +0 -0
  227. data/test/dummy/tmp/cache/assets/DB6/ED0/sprockets%2Ff4482d9b9f76fb65eef16430bde2f8e6 +0 -0
  228. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  229. data/test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8 +0 -0
  230. data/test/dummy/tmp/cache/assets/DF7/960/sprockets%2F99ac6db10b44a64fbba4ee847b35ba8b +0 -0
  231. data/test/dummy/tmp/cache/assets/DFD/300/sprockets%2Fabac9489cf7f1db8ef00d72a1571ee1e +0 -0
  232. data/test/dummy/tmp/cache/assets/E02/C10/sprockets%2F1463cadfce3fc70e61d482f9fcb75ac7 +0 -0
  233. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  234. data/test/dummy/tmp/cache/assets/E38/FE0/sprockets%2Fe1fc875efa817cbb94a5d8de25ea4e6b +0 -0
  235. data/test/dummy/tmp/cache/assets/E50/F00/sprockets%2Fec61afdbb1cc4df075e3dad46f0af571 +0 -0
  236. data/test/dummy/tmp/cache/assets/E5E/5F0/sprockets%2Feffaeb4d7f9bf4c0cc840ff320fde046 +0 -0
  237. data/test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6 +0 -0
  238. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_accordion.scssc +0 -0
  239. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_alerts.scssc +0 -0
  240. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_breadcrumbs.scssc +0 -0
  241. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_button-groups.scssc +0 -0
  242. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_buttons.scssc +0 -0
  243. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_carousel.scssc +0 -0
  244. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_close.scssc +0 -0
  245. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_code.scssc +0 -0
  246. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_component-animations.scssc +0 -0
  247. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_dropdowns.scssc +0 -0
  248. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_forms.scssc +0 -0
  249. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_grid.scssc +0 -0
  250. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_hero-unit.scssc +0 -0
  251. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_labels-badges.scssc +0 -0
  252. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_layouts.scssc +0 -0
  253. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_media.scssc +0 -0
  254. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_mixins.scssc +0 -0
  255. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_modals.scssc +0 -0
  256. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_navbar.scssc +0 -0
  257. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_navs.scssc +0 -0
  258. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_pager.scssc +0 -0
  259. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_pagination.scssc +0 -0
  260. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_popovers.scssc +0 -0
  261. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_progress-bars.scssc +0 -0
  262. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_reset.scssc +0 -0
  263. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-1200px-min.scssc +0 -0
  264. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-767px-max.scssc +0 -0
  265. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-768px-979px.scssc +0 -0
  266. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-navbar.scssc +0 -0
  267. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-utilities.scssc +0 -0
  268. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_scaffolding.scssc +0 -0
  269. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_sprites.scssc +0 -0
  270. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_tables.scssc +0 -0
  271. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_thumbnails.scssc +0 -0
  272. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_tooltip.scssc +0 -0
  273. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_type.scssc +0 -0
  274. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_utilities.scssc +0 -0
  275. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_variables.scssc +0 -0
  276. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_wells.scssc +0 -0
  277. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/bootstrap.scssc +0 -0
  278. data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/responsive.scssc +0 -0
  279. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_admin.scssc +0 -0
  280. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_az.scssc +0 -0
  281. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_base.scssc +0 -0
  282. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_forms.scssc +0 -0
  283. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_icons.scssc +0 -0
  284. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_misc.scssc +0 -0
  285. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_mixins.scssc +0 -0
  286. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_modal.scssc +0 -0
  287. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_resolve.scssc +0 -0
  288. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_results.scssc +0 -0
  289. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_search.scssc +0 -0
  290. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_spinner.scssc +0 -0
  291. data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_variables.scssc +0 -0
  292. data/test/dummy/tmp/cache/sass/93d65682d6bddb0b2e6788c1232f4849af20a35e/bootstrap-responsive.scssc +0 -0
  293. data/test/dummy/tmp/cache/sass/93d65682d6bddb0b2e6788c1232f4849af20a35e/bootstrap.scssc +0 -0
  294. data/test/dummy/tmp/cache/sass/fb58c04fd15fcc38a8c4d91b7070bcfeaf1c3799/umlaut.css.scssc +0 -0
  295. data/test/fixtures/dispatched_services.yml +0 -4
  296. data/test/fixtures/permalinks.yml +23 -4
  297. data/test/fixtures/referent_values.yml +226 -1493
  298. data/test/fixtures/referents.yml +14 -137
  299. data/test/fixtures/requests.yml +22 -260
  300. data/test/fixtures/service_responses.yml +169 -5
  301. data/test/fixtures/sfx4/global/KB_OBJECTS.yml +46 -0
  302. data/test/fixtures/sfx4/local/AZ_EXTRA_INFO.yml +4802 -0
  303. data/test/fixtures/sfx4/local/AZ_LETTER_GROUP.yml +105 -0
  304. data/test/fixtures/sfx4/local/AZ_TITLE.yml +165 -0
  305. data/test/fixtures/sfx4/local/AZ_TITLE_SEARCH.yml +341 -0
  306. data/test/fixtures/sfx_urls.yml +3 -0
  307. data/test/functional/export_email_controller_test.rb +43 -0
  308. data/test/functional/link_router_controller_test.rb +16 -0
  309. data/test/functional/resolve_controller_test.rb +102 -0
  310. data/test/functional/search_controller_test.rb +40 -0
  311. data/test/functional/store_controller_test.rb +29 -0
  312. data/test/helper/list_with_limit_test.rb +90 -0
  313. data/test/integration/permalinks_test.rb +14 -0
  314. data/test/support/search_methods/test_case.rb +0 -0
  315. data/test/support/service_adaptors/test_case.rb +0 -0
  316. data/test/support/test_with_cassette.rb +37 -0
  317. data/test/test_helper.rb +76 -30
  318. data/test/unit/aws_product_sign_test.rb +2 -0
  319. data/test/unit/determine_services_test.rb +163 -0
  320. data/test/unit/google_book_search_test.rb +8 -25
  321. data/test/unit/google_scholar_link_test.rb +81 -0
  322. data/test/unit/internet_archive_test.rb +33 -0
  323. data/test/unit/permalink_test.rb +15 -0
  324. data/test/unit/service_store_test.rb +47 -0
  325. data/test/unit/service_test.rb +28 -13
  326. data/test/unit/sfx/sfx_target_roll_up_test.rb +369 -0
  327. data/test/unit/sfx4_search_test.rb +102 -0
  328. data/test/unit/sfx4_solr_search_test.rb +77 -0
  329. data/test/unit/sfx_test.rb +38 -0
  330. data/test/unit/worldcat_test.rb +7 -0
  331. data/test/vcr_cassettes/google_book_search/frankenstein_by_OCLC_number.yml +107 -0
  332. data/test/vcr_cassettes/internet_archive/momo_by_title_author.yml +116 -0
  333. data/test/vcr_cassettes/resolve/fulltext_with_edition_warning.yml +44 -0
  334. data/test/vcr_cassettes/resolve/no_holdings.yml +649 -0
  335. data/test/vcr_cassettes/resolve/nytimes_by_issn.yml +224 -0
  336. data/test/vcr_cassettes/sfx/nytimes_by_issn.yml +1395 -0
  337. data/test/vcr_cassettes/sfx4_solr/find_by_group.yml +109 -0
  338. data/test/vcr_cassettes/sfx4_solr/find_by_title_begins_with.yml +33 -0
  339. data/test/vcr_cassettes/sfx4_solr/find_by_title_contains.yml +34 -0
  340. data/test/vcr_cassettes/sfx4_solr/find_by_title_exact.yml +32 -0
  341. data/test/view/holding_test.rb +30 -0
  342. metadata +435 -179
  343. data/app/assets/images/export_bg_bot.gif +0 -0
  344. data/app/assets/images/export_bg_mid.gif +0 -0
  345. data/app/assets/images/export_bg_top.gif +0 -0
  346. data/app/assets/images/famfamfam/page_sound.gif +0 -0
  347. data/app/assets/images/famfamfam/page_text.gif +0 -0
  348. data/app/assets/images/famfamfam/page_up.gif +0 -0
  349. data/app/assets/images/ico_go.gif +0 -0
  350. data/app/assets/images/more_info.gif +0 -0
  351. data/app/assets/images/rails.png +0 -0
  352. data/app/assets/images/request.gif +0 -0
  353. data/app/assets/javascripts/umlaut/simple_visible_toggle.js +0 -8
  354. data/app/assets/stylesheets/umlaut.css +0 -900
  355. data/app/assets/stylesheets/umlaut/_background_progress_spinner.scss +0 -21
  356. data/app/assets/stylesheets/umlaut/_expand_contract.scss +0 -28
  357. data/app/controllers/search_methods/sfx3.rb +0 -148
  358. data/app/models/sfx_db.rb +0 -10
  359. data/app/models/sfx_db/az_additional_title.rb +0 -11
  360. data/app/models/sfx_db/az_letter_group.rb +0 -11
  361. data/app/models/sfx_db/az_title.rb +0 -40
  362. data/app/models/sfx_db/az_title_v2.rb +0 -34
  363. data/app/models/sfx_db/isbn.rb +0 -12
  364. data/app/models/sfx_db/issn.rb +0 -12
  365. data/app/models/sfx_db/object.rb +0 -35
  366. data/app/models/sfx_db/object_portfolio.rb +0 -6
  367. data/app/models/sfx_db/publisher.rb +0 -10
  368. data/app/models/sfx_db/sfx_db_base.rb +0 -58
  369. data/app/models/sfx_db/target.rb +0 -10
  370. data/app/models/sfx_db/target_service.rb +0 -10
  371. data/app/models/sfx_db/title.rb +0 -10
  372. data/app/views/export_email/_email.html.erb +0 -25
  373. data/app/views/export_email/_send_email.html.erb +0 -3
  374. data/app/views/export_email/_send_txt.html.erb +0 -3
  375. data/app/views/export_email/_txt.html.erb +0 -62
  376. data/lib/holding.rb +0 -32
  377. data/lib/opensearch_feed.rb +0 -398
  378. data/lib/opensearch_query.rb +0 -98
  379. data/lib/referent_filters/dissertation_catch.rb +0 -45
  380. data/lib/service_adaptors/journal_tocs.progress +0 -68
  381. data/lib/service_adaptors/primo_service.rb +0 -452
  382. data/lib/service_adaptors/primo_source.rb +0 -82
  383. data/lib/umlaut/default_configuration.rb +0 -5
  384. data/test/dummy/config/primo.yml +0 -271
  385. data/test/unit/primo_service_test.rb +0 -947
@@ -1,52 +1,50 @@
1
1
  class StoreController < UmlautController
2
2
  #require 'open_url'
3
3
  require 'openurl'
4
+
5
+ # Add resolve layout for handling errors.
6
+ layout :resolve_layout
7
+
4
8
  def index
5
-
6
- perm = Permalink.find(params[:id])
7
-
8
- co = OpenURL::ContextObject.new
9
+ perm = Permalink.where(:id => params[:id]).first
10
+ handle_404_error and return unless perm # not in our db
9
11
 
12
+ co = OpenURL::ContextObject.new
10
13
  # We might have a link to a Referent in our db, or we might
11
14
  # instead have to rely on an XML serialized ContextObject in
12
15
  # the permalink, if the Referent has been purged. Either way
13
- # we're good.
16
+ # we're good.
14
17
  referent = nil
15
- if ( perm && perm.referent)
18
+ if (perm.referent)
16
19
  referent = perm.referent
17
- elsif (perm && perm.context_obj_serialized)
20
+ elsif (perm.context_obj_serialized)
18
21
  stored_co = perm.restore_context_object
19
- # And a referrent, no referrer for now, we'll restore it later.
20
- referent = Referent.create_by_context_object( stored_co, :permalink => false )
22
+ # And a referrent, no referrer for now, we'll restore it later.
23
+ referent = Referent.create_by_context_object(stored_co, :permalink => false)
21
24
  perm.referent = referent
22
25
  end
23
26
 
24
- perm.last_access = Time.now # keep track of when permalink last actually retrieved
27
+ # We can't find a referent or succesfully restore an xml context
28
+ # object to send the user to the request. We can not resolve
29
+ # this permalink!
30
+ handle_404_error and return unless referent
25
31
 
32
+ perm.last_access = Time.now # keep track of when permalink last actually retrieved
26
33
  # will catch possible new referent to be saved, as well as
27
34
  # update to last_access
28
35
  perm.save!
29
-
30
36
 
31
- unless ( referent )
32
- # We can't find a referent or succesfully restore an xml context
33
- # object to send the user to the request. We can not resolve
34
- # this permalink!
35
-
36
- raise NotFound.new("Permalink request could not be resolved. Returning 404. Permalink id: #{params[:id]}")
37
- end
38
-
39
37
  # Whether it was an already existing one, or a newly created one
40
- # turn it back to a co so we can add a few more things.
38
+ # turn it back to a co so we can add a few more things.
41
39
  co.import_context_object(referent.to_context_object)
42
-
40
+
43
41
  # We preserve original referrer. Even though this isn't entirely accurate
44
42
  # this is neccesary to get SFX to handle it properly when we call to SFX,
45
- # including handling source-specific private data, etc.
46
- co.referrer.add_identifier( perm.orig_rfr_id ) if perm.orig_rfr_id
43
+ # including handling source-specific private data, etc.
44
+ co.referrer.add_identifier(perm.orig_rfr_id) if perm.orig_rfr_id
47
45
 
48
46
  # Let's add any supplementary umlaut params passed to us
49
- # Everything except the 'id' which we used for the Rails action.
47
+ # Everything except the 'id' which we used for the Rails action.
50
48
  new_params = params.clone
51
49
  new_params.delete(:id)
52
50
  # and add in our new action
@@ -60,10 +58,6 @@ class StoreController < UmlautController
60
58
  # You might think you can just merge these into a hash and use url_for,
61
59
  # but Rails redirect_to/url_for isn't happy with multiple query params
62
60
  # with same name.
63
-
64
- redirect_to( url_for_with_co( new_params, co) )
61
+ redirect_to(url_for_with_co(new_params, co))
65
62
  end
66
-
67
- class NotFound < Exception ; end
68
-
69
- end
63
+ end
@@ -1,35 +1,63 @@
1
1
  # All behavior from UmlautController is extracted into this module,
2
2
  # so that we can generate a local UmlautController that includes
3
- # this module, and local app can configure or over-ride default behavior.
4
- #
3
+ # this module, and local app can configure or over-ride default behavior.
4
+ #
5
5
  module Umlaut::ControllerBehavior
6
6
  extend ActiveSupport::Concern
7
-
7
+
8
8
  include UmlautConfigurable
9
9
  include Umlaut::ErrorHandling
10
10
  include Umlaut::ControllerLogic
11
-
11
+
12
12
  included do |controller|
13
13
  controller.helper Umlaut::Helper # global umlaut view helpers
14
-
15
14
  # init default configuration values
16
15
  UmlautConfigurable.set_default_configuration!(controller.umlaut_config)
17
16
  end
18
-
19
- protected
20
-
21
- # Returns a Collection object with currently configured services.
17
+
18
+ # Returns the search layout name unless this is an XML HTTP Request.
19
+ def search_layout_except_xhr
20
+ @layout_name ||= (request.xhr? || params["X-Requested-With"] == "XmlHttpRequest") ?
21
+ nil : umlaut_config.search_layout
22
+ end
23
+ protected :search_layout_except_xhr
24
+
25
+ # We intentionally use a method calculated at request-time for layout,
26
+ # so it can be changed in config at request-time.
27
+ def resolve_layout
28
+ umlaut_config.resolve_layout
29
+ end
30
+ protected :resolve_layout
31
+
32
+ # Returns a Collection object with currently configured services.
22
33
  # Loads from Rails.root/config/umlaut_services.yml
23
34
  #
24
- # Local app can in theory override in local UmlautController to have
25
- # different custom behavior for calculating the collection, but this
26
- # is not entirely tested yet.
27
- def create_collection
28
- # trim out ones with disabled:true
29
- services = ServiceStore.config["default"]["services"].reject {|id, hash| hash && hash["disabled"] == true}
30
-
35
+ # &umlaut.service_group may be used to customize which services are loaded,
36
+ # else default. &umlaut.service_group=-default turns off default. Can also
37
+ # list other groups: NOTE: Needs to be submitted as a rails array,
38
+ # &umlaut.service_group[]=
39
+ #
40
+ # Local app that wants to automatically set services based on IP or other
41
+ # implicit parameters, should add a before_filter that determines proper
42
+ # service_group argument, and then sets it in params (or redirects).
43
+ # Not entirely tested yet.
44
+ #
45
+ # See https://github.com/team-umlaut/umlaut/wiki/Alternate-service-groups
46
+ def create_collection
47
+ services = ServiceStore.global_service_store.determine_services( self.specified_service_groups.uniq )
31
48
  return Collection.new(@user_request, services)
32
49
  end
50
+ protected :create_collection
51
+
33
52
 
34
-
53
+ def specified_service_groups(arg_params = params)
54
+ specified_groups = params["umlaut.service_group"] || []
55
+ specified_groups = [specified_groups] if specified_groups.kind_of?(String)
56
+
57
+ return specified_groups
58
+ end
59
+ protected :specified_service_groups
60
+
61
+
62
+
35
63
  end
@@ -1,50 +1,45 @@
1
1
  # A mix-in for Rails controllers with some standard error recovery
2
- # logic.
2
+ # logic.
3
3
  module Umlaut::ErrorHandling
4
4
  extend ActiveSupport::Concern
5
-
5
+
6
6
  included do
7
7
  # Only custom errors in production
8
8
  unless Rails.application.config.consider_all_requests_local
9
-
10
9
  # generic catch-all comes first, later ones will take priority
11
10
  rescue_from Exception, :with => :handle_general_error
12
-
13
- rescue_from ::StoreController::NotFound, ActiveRecord::RecordNotFound, :with => :handle_404_error
11
+ rescue_from ActiveRecord::RecordNotFound, :with => :handle_404_error
14
12
  end
15
13
  end
16
-
17
-
18
- protected
19
-
14
+
20
15
  def handle_general_error(exception)
21
16
  log_error_with_context(exception)
22
-
23
17
  @page_title = "Error!"
24
- render "error", :status => 500
18
+ # Only render this if we haven't done anything else
19
+ # e.g. if some other gem may be handling its own errors
20
+ render "error", :status => 500 unless performed?
25
21
  end
26
-
27
- # Just returns a generic 404 page.
28
- # Uses generic 404 page already stored in public/404.html as rails convention.
22
+ protected :handle_general_error
23
+
24
+ # Just returns a generic 404 page.
25
+ # Uses generic 404 page already stored in public/404.html as rails convention.
29
26
  def handle_404_error(exception=nil)
30
- render :file=>File.join(Rails.root ,"public/404.html"), :layout=>false, :status=>404
27
+ render :file=>File.join(Rails.root ,"public/404"), :layout=>false, :status=>404
31
28
  end
32
-
33
-
29
+ protected :handle_404_error
30
+
34
31
  def log_error_with_context(exception, severity = :fatal)
35
32
  message = "\n#{exception.class} (#{exception.message}):\n"
36
33
  message << " uri: #{request.fullpath}\n\n"
37
- message << " params: #{params.inspect}\n\n"
34
+ message << " params: #{params.inspect}\n\n"
38
35
  message << " Referer: #{request.referer}\n" if request.referer
39
36
  message << " User-Agent: #{request.user_agent}\n"
40
37
  message << " Client IP: #{request.remote_addr}\n\n"
41
-
42
38
  message << exception.annoted_source_code.to_s if exception.respond_to?(:annoted_source_code)
43
39
  # mysterious :noise param seems to match how default rails does it, so
44
- # we actually get a backtrace.
45
- message << " " << Rails.backtrace_cleaner.clean(exception.backtrace, :noise).join("\n ")
46
-
47
- logger.send(severity, "#{message}\n\n")
40
+ # we actually get a backtrace.
41
+ message << " " << Rails.backtrace_cleaner.clean(exception.backtrace, :noise).join("\n ")
42
+ logger.send(severity, "#{message}\n\n")
48
43
  end
49
-
50
- end
44
+ protected :log_error_with_context
45
+ end
@@ -25,7 +25,9 @@ module UmlautConfigurable
25
25
  # to initialize
26
26
  def self.set_default_configuration!(configuration)
27
27
  configuration.configure do
28
- app_name 'Find It'
28
+ app_name 'Find It'
29
+ # Different navbar title? Defaults to app_name
30
+ header_title deferred! {|c| c.app_name}
29
31
  # URL to image to use for link resolver, OR name of image asset in local app.
30
32
  #link_img_url "http//something"
31
33
 
@@ -75,11 +77,7 @@ module UmlautConfigurable
75
77
  # hash, key is regexp to match a sid, value is filter object
76
78
  # (see lib/referent_filters )
77
79
  add_referent_filters!( :match => /.*/, :filter => DissertationCatch.new )
78
-
79
-
80
- # Create a permalink short URL for every request?
81
- create_permalinks true
82
-
80
+
83
81
  # skip_resolve_menu can be used to control 'direct' linking, skipping
84
82
  # the resolve menu to deliver a full text link or other resource
85
83
  # directly to the user.
@@ -115,7 +113,12 @@ module UmlautConfigurable
115
113
 
116
114
  # How many seconds between updates of the background updater for background
117
115
  # services?
118
- poll_wait_seconds 4
116
+ poll_wait_seconds 3
117
+ # The FIRST AJAX callback for bg tasks should be much quicker. So we
118
+ # get any bg tasks that executed nearly instantaneously, and on page
119
+ # refresh when bg is really all loaded on back-end, but still needs JS to
120
+ # fetch it.
121
+ initial_poll_wait_seconds 0.300
119
122
 
120
123
  # if a background service hasn't returned in this many seconds, consider
121
124
  # it failed. (May actually be slow, more likely raised an exception and
@@ -148,14 +151,20 @@ module UmlautConfigurable
148
151
 
149
152
  end
150
153
 
154
+ resolve_display do
155
+ # Where available, prefix links with year coverage summary
156
+ # using ResolveHelper#coverage_summery helper.
157
+ show_coverage_summary true
158
+ end
159
+
151
160
  # Configuration for the 'search' functions -- A-Z lookup
152
161
  # and citation entry.
153
162
  search do
154
163
  # Is your SFX database connection, defined in database.yml under
155
- # sfx_db and used for A-Z searches, Sfx3 or Sfx4? Other SearchMethods
156
- # in addition to SFX direct db may be provided later.
164
+ # sfx_db and used for A-Z searches, Sfx4 or do you want to use Sfx4Solr?
165
+ # Other SearchMethods in addition to SFX direct db may be provided later.
157
166
  az_search_method SearchMethods::Sfx4
158
- #az_search_method SearchMethods::Sfx3
167
+ #az_search_method SearchMethods::Sfx4Solr::Local
159
168
 
160
169
  # When talking directly to the SFX A-Z list database, you may
161
170
  # need to set this, if you have multiple A-Z profiles configured
@@ -198,6 +207,12 @@ module UmlautConfigurable
198
207
  #sfx_load_ignore_hosts [/.*\.archive\.org/, /www\.netlibrary\.com/, 'www.loc.gov']
199
208
  sfx_load_ignore_hosts []
200
209
  end
210
+
211
+ # config only relevant to holdings display
212
+ holdings do
213
+ # Holding statuses that should be styled as "Available"
214
+ available_statuses ["Not Charged", "Available"]
215
+ end
201
216
 
202
217
  # Output timing of service execution to logs
203
218
  log_service_timing (Rails.env == "development")
@@ -246,19 +261,19 @@ module UmlautConfigurable
246
261
  show_heading false
247
262
  show_spinner false
248
263
  end
249
-
264
+
250
265
  add_resolve_sections! do
251
- div_id "search_inside"
252
- html_area :resource_info
253
- partial "search_inside"
266
+ div_id "fulltext"
267
+ section_title "Online Access"
268
+ html_area :main
269
+ partial :fulltext
254
270
  show_partial_only true
255
271
  end
256
-
272
+
257
273
  add_resolve_sections! do
258
- div_id "fulltext"
259
- section_title "#{ServiceTypeValue[:fulltext].display_name} via:"
274
+ div_id "search_inside"
260
275
  html_area :main
261
- partial :fulltext
276
+ partial "search_inside"
262
277
  show_partial_only true
263
278
  end
264
279
 
@@ -271,8 +286,7 @@ module UmlautConfigurable
271
286
  end
272
287
 
273
288
  add_resolve_sections! do
274
- div_id "audio"
275
- section_title "#{ServiceTypeValue[:audio].display_name} via"
289
+ div_id "audio"
276
290
  html_area :main
277
291
  visibility :responses_exist
278
292
  end
@@ -290,7 +304,7 @@ module UmlautConfigurable
290
304
  section_title "Request a copy from Inter-Library Loan"
291
305
  html_area :main
292
306
  visibility :responses_exist
293
- bg_update false
307
+ #bg_update false
294
308
  end
295
309
 
296
310
  add_resolve_sections! do
@@ -7,41 +7,41 @@ require 'umlaut_configurable'
7
7
  # for general umlaut views. And also so local app can over-ride
8
8
  # methods here once, and have it apply to all Umlaut controllers.
9
9
  # But there's not much magic in here or anything, the
10
- # common behavior is ordinary methods available to be called, mostly.
10
+ # common behavior is ordinary methods available to be called, mostly.
11
11
  #
12
12
  # This class is copied into the local app -- the default implementation
13
13
  # does nothing but 'include Umlaut::ControllerBehavior'
14
14
  #
15
15
  # You will ordinarily set config here, and can also over-ride
16
16
  # methods from Umlaut::ControllerBehavior if desired. Or add
17
- # additional helpers to over-ride Umlaut helpers if needed.
17
+ # additional helpers to over-ride Umlaut helpers if needed.
18
18
  class UmlautController < ApplicationController
19
19
  include Umlaut::ControllerBehavior
20
-
20
+
21
21
  # Some suggested configuration. More config keys
22
22
  # are available, see UmlautConfigurable.set_default_configuration!
23
23
  # implementation for list. Configuration actually uses
24
- # a Confstruct object.
25
-
26
- umlaut_config.configure do
24
+ # a Confstruct object.
25
+
26
+ umlaut_config.configure do
27
27
  # app_name 'Find It'
28
-
29
- # URL to image to use for link resolver in some self-links,
30
- # OR name of image asset in local app.
28
+
29
+ # URL to image to use for link resolver in some self-links,
30
+ # OR name of image asset in local app.
31
31
  #link_img_url "http//something"
32
-
32
+
33
33
  # string used in standard layout footer to identify your app.
34
34
  # mark it html_safe if it includes html
35
35
  # footer_credit "Find It service provided by <a href='http://www.university.edu/'>My University</a>".html_safe
36
36
 
37
-
37
+
38
38
  # Sometimes Umlaut sends out email, what email addr should it be from?
39
39
  # from_email_addr 'no_reply@umlaut.example.com'
40
-
40
+
41
41
  # Local layout for UmlautController's, instead of
42
42
  # built in 'umlaut' layout?
43
43
  # layout "application"
44
-
44
+
45
45
  # A help url used on error page and a few other places.
46
46
  # help_url "http://www.library.jhu.edu/services/askalib/index.html"
47
47
 
@@ -49,56 +49,55 @@ class UmlautController < ApplicationController
49
49
  # link resolver knowledge base, display a warning to the user of potential
50
50
  # typo?
51
51
  # entry_not_in_kb_warning true
52
-
52
+
53
53
  # rfr_ids used for umlaut generated pages.
54
54
  # rfr_ids do
55
55
  # opensearch "info:sid/umlaut.code4lib.org:opensearch"
56
56
  # citation "info:sid/umlaut.code4lib.org:citation"
57
57
  # azlist 'info:sid/umlaut.code4lib.org:azlist'
58
58
  # end
59
-
59
+
60
60
  # Referent filters. Sort of like SFX source parsers.
61
61
  # hash, key is regexp to match a sid, value is filter object
62
- # (see lib/referent_filters )
63
- # add_referent_filters!( :match => /.*/, :filter => DissertationCatch.new )
64
-
62
+ # (see lib/referent_filters )
63
+ # add_referent_filters!( :match => /.*/, :filter => DissertationCatch.new )
64
+
65
65
  # Turn off permalink-generation? If you don't want it at all, or
66
66
  # don't want it temporarily because you are pointing at a database
67
- # that won't last.
67
+ # that won't last.
68
68
  # create_permalinks false
69
-
69
+
70
70
  # How many seconds between updates of the background updater for background
71
71
  # services?
72
72
  # poll_wait_seconds 4
73
-
73
+
74
74
  # Configuration for the 'search' functions -- A-Z lookup
75
- # and citation entry.
75
+ # and citation entry.
76
76
  search do
77
77
  # Is your SFX database connection, defined in database.yml under
78
- # sfx_db and used for A-Z searches, Sfx3 or Sfx4? Other SearchMethods
79
- # in addition to SFX direct db may be provided later.
78
+ # sfx_db and used for A-Z searches, Sfx4 or do you want to use Sfx4Solr?
79
+ # Other SearchMethods in addition to SFX direct db may be provided later.
80
80
  #az_search_method SearchMethods::Sfx4
81
- #az_search_method SearchMethods::Sfx3
82
-
81
+ #az_search_method SearchMethods::Sfx4Solr::Local
82
+
83
83
  # When talking directly to the SFX A-Z list database, you may
84
84
  # need to set this, if you have multiple A-Z profiles configured
85
85
  # and don't want to use the 'default.
86
- # sfx_az_profile "default"
87
-
88
- # can set to "_blank" etc.
89
- # result_link_target nil
86
+ # sfx_az_profile "default"
87
+
88
+ # can set to "_blank" etc.
89
+ # result_link_target nil
90
90
  end
91
-
92
- # config only relevant to SFX use
93
- sfx do
91
+
92
+ # config only relevant to SFX use
93
+ sfx do
94
94
  # base sfx url to use for search actions, error condition backup,
95
95
  # and some other purposes. For search actions (A-Z), direct database
96
96
  # connection to your SFX db also needs to be defined in database.yml
97
97
  # sfx_base_url 'http://sfx.library.jhu.edu:8000/jhu_sfx?'
98
- #
99
-
100
-
101
-
98
+ #
99
+
100
+
102
101
  # Umlaut tries to figure out from the SFX knowledge base
103
102
  # which hosts are "SFX controlled", to avoid duplicating SFX
104
103
  # urls with urls from catalog. But sometimes it misses some, or
@@ -106,17 +105,15 @@ class UmlautController < ApplicationController
106
105
  # urls can be included here. Eg,
107
106
  # additional_sfx_controlled_urls [
108
107
  # %r{^http://([^\.]\.)*pubmedcentral\.com}
109
- # ]
108
+ # ]
110
109
  # additional_sfx_controlled_urls []
111
-
112
-
110
+
111
+
113
112
  end
114
-
113
+
115
114
  # Advanced topic, you can declaratively configure
116
115
  # what sections of the resolve page are output where
117
- # and how using resolve_sections and add_resolve_sections!
118
-
116
+ # and how using resolve_sections and add_resolve_sections!
117
+
119
118
  end
120
-
121
-
122
- end
119
+ end