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.
- checksums.yaml +15 -0
- data/README.md +48 -5
- data/app/assets/images/umlaut_icons.png +0 -0
- data/app/assets/images/umlaut_icons/famfamfam-book-go.png +0 -0
- data/app/assets/images/{famfamfam/book_open.png → umlaut_icons/famfamfam-book-open.png} +0 -0
- data/app/assets/images/umlaut_icons/famfamfam-book.png +0 -0
- data/app/assets/images/{famfamfam/cross.png → umlaut_icons/famfamfam-cross.png} +0 -0
- data/app/assets/images/umlaut_icons/famfamfam-error.png +0 -0
- data/app/assets/images/umlaut_icons/famfamfam-help.png +0 -0
- data/app/assets/images/umlaut_icons/famfamfam-information.png +0 -0
- data/app/assets/images/umlaut_icons/famfamfam-link.png +0 -0
- data/app/assets/images/umlaut_icons/famfamfam-page-sound.png +0 -0
- data/app/assets/images/umlaut_icons/famfamfam-page-text.png +0 -0
- data/app/assets/images/umlaut_icons/famfamfam-page-up.png +0 -0
- data/app/assets/images/{famfamfam/page_white.png → umlaut_icons/famfamfam-page-white.png} +0 -0
- data/app/assets/images/{famfamfam/readme.html → umlaut_icons/famfamfam-readme.html} +0 -0
- data/app/assets/images/{famfamfam/tiny_cross.png → umlaut_icons/famfamfam-tiny-cross.png} +0 -0
- data/app/assets/images/{list_closed.png → umlaut_icons/list-closed.png} +0 -0
- data/app/assets/images/{list_open.png → umlaut_icons/list-open.png} +0 -0
- data/app/assets/javascripts/umlaut.js +5 -4
- data/app/assets/javascripts/umlaut/ajax_windows.js +41 -23
- data/app/assets/javascripts/umlaut/expand_contract_toggle.js +21 -29
- data/app/assets/javascripts/umlaut/load_permalink.js +26 -0
- data/app/assets/javascripts/umlaut/search_autocomplete.js +103 -44
- data/app/assets/stylesheets/umlaut.css.scss +19 -0
- data/app/assets/stylesheets/umlaut/_admin.scss +14 -0
- data/app/assets/stylesheets/umlaut/_az.scss +29 -0
- data/app/assets/stylesheets/umlaut/_forms.scss +31 -0
- data/app/assets/stylesheets/umlaut/_icons.scss +64 -0
- data/app/assets/stylesheets/umlaut/_layout.scss +52 -0
- data/app/assets/stylesheets/umlaut/_misc.scss +59 -0
- data/app/assets/stylesheets/umlaut/_mixins.scss +65 -0
- data/app/assets/stylesheets/umlaut/_modal.scss +4 -0
- data/app/assets/stylesheets/umlaut/_resolve.scss +308 -0
- data/app/assets/stylesheets/umlaut/_results.scss +34 -0
- data/app/assets/stylesheets/umlaut/_search.scss +14 -0
- data/app/assets/stylesheets/umlaut/_spinner.scss +12 -0
- data/app/assets/stylesheets/umlaut/_variables.scss +72 -0
- data/app/controllers/export_email_controller.rb +22 -39
- data/app/controllers/journal_tocs_controller +90 -0
- data/app/controllers/js_helper_controller.rb +2 -3
- data/app/controllers/link_router_controller.rb +32 -43
- data/app/controllers/open_search_controller.rb +3 -4
- data/app/controllers/resolve_controller.rb +68 -107
- data/app/controllers/resource_controller.rb +14 -20
- data/app/controllers/search_controller.rb +75 -94
- data/app/controllers/search_methods/README.md +28 -0
- data/app/controllers/search_methods/sfx4.rb +50 -119
- data/app/controllers/search_methods/sfx4_solr/README.md +57 -0
- data/app/controllers/search_methods/sfx4_solr/local.rb +40 -0
- data/app/controllers/search_methods/sfx4_solr/searcher.rb +90 -0
- data/app/controllers/store_controller.rb +24 -30
- data/app/controllers/umlaut/controller_behavior.rb +45 -17
- data/app/controllers/umlaut/error_handling.rb +20 -25
- data/{lib → app/controllers}/umlaut_configurable.rb +35 -21
- data/app/controllers/umlaut_controller.rb +43 -46
- data/app/helpers/emailer_helper.rb +9 -16
- data/app/helpers/export_email_helper.rb +8 -8
- data/app/helpers/open_search_helper.rb +2 -3
- data/app/helpers/resolve_helper.rb +130 -100
- data/app/helpers/search_helper.rb +17 -5
- data/app/helpers/umlaut/footer_helper.rb +1 -1
- data/app/helpers/umlaut/helper.rb +34 -0
- data/app/helpers/umlaut/html_head_helper.rb +12 -21
- data/{lib → app/mixin_logic}/marc_helper.rb +1 -1
- data/{lib → app/mixin_logic}/metadata_helper.rb +6 -5
- data/{lib → app/mixin_logic}/umlaut_http.rb +0 -0
- data/{lib → app/mixin_logic}/xml_schema_helper.rb +0 -0
- data/app/models/collection.rb +97 -95
- data/{lib → app/models}/hip3/bib.rb +0 -0
- data/{lib → app/models}/hip3/bib_searcher.rb +0 -0
- data/{lib → app/models}/hip3/custom_field_lookup.rb +0 -0
- data/{lib → app/models}/hip3/holding.rb +0 -0
- data/{lib → app/models}/hip3/item.rb +0 -0
- data/{lib → app/models}/hip3/receipt.rb +0 -0
- data/{lib → app/models}/hip3/serial_copy.rb +0 -0
- data/app/models/permalink.rb +3 -8
- data/app/models/referent.rb +29 -21
- data/app/models/request.rb +19 -8
- data/app/models/service_response.rb +24 -3
- data/app/models/service_store.rb +108 -39
- data/app/models/service_store.rb-NEW +73 -0
- data/app/models/service_wave.rb +2 -0
- data/app/models/sfx4/abstract/README.md +68 -0
- data/app/models/sfx4/abstract/az_extra_info.rb +44 -0
- data/app/models/sfx4/abstract/az_letter_group.rb +24 -0
- data/app/models/sfx4/abstract/az_title.rb +96 -0
- data/app/models/sfx4/abstract/az_title_search.rb +24 -0
- data/app/models/sfx4/abstract/base.rb +77 -0
- data/app/models/sfx4/global/base.rb +24 -0
- data/app/models/sfx4/global/kb_objects.rb +34 -0
- data/app/models/sfx4/local/az_extra_info.rb +7 -0
- data/app/models/sfx4/local/az_letter_group.rb +7 -0
- data/app/models/sfx4/local/az_title.rb +7 -0
- data/app/models/sfx4/local/az_title_search.rb +7 -0
- data/app/models/sfx4/local/base.rb +26 -0
- data/{lib → app/presentation}/section_renderer.rb +0 -12
- data/app/referent_filters/dissertation_catch.rb +67 -0
- data/{lib → app/referent_filters}/referent_filter.rb +0 -0
- data/{lib → app}/service_adaptors/ajax_export.rb +0 -0
- data/{lib → app}/service_adaptors/amazon.rb +2 -0
- data/{lib → app}/service_adaptors/blacklight.rb +22 -10
- data/{lib → app}/service_adaptors/book_finder.rb +0 -0
- data/{lib → app}/service_adaptors/bx.rb +0 -0
- data/{lib → app}/service_adaptors/cover_thing.rb +0 -0
- data/{lib → app}/service_adaptors/dummy_service.rb +0 -0
- data/{lib → app}/service_adaptors/elsevier_cover.rb +0 -0
- data/{lib → app}/service_adaptors/email_export.rb +0 -0
- data/{lib → app}/service_adaptors/ezproxy.rb +0 -0
- data/{lib → app}/service_adaptors/google_book_search.rb +0 -0
- data/app/service_adaptors/google_scholar_link.rb +71 -0
- data/{lib → app}/service_adaptors/gpo.rb +0 -0
- data/{lib → app}/service_adaptors/hathi_trust.rb +0 -0
- data/{lib → app}/service_adaptors/hip3_service.rb +0 -0
- data/{lib → app}/service_adaptors/hip_holding_search.rb +0 -0
- data/{lib → app}/service_adaptors/internet_archive.rb +0 -0
- data/{lib → app}/service_adaptors/isbn_db.rb +0 -0
- data/{lib → app}/service_adaptors/isi.rb +22 -13
- data/{lib → app}/service_adaptors/jcr.rb +0 -0
- data/{lib → app}/service_adaptors/opac.rb +0 -0
- data/{lib → app}/service_adaptors/open_library.rb +0 -0
- data/{lib → app}/service_adaptors/open_library_cover.rb +0 -0
- data/{lib → app}/service_adaptors/pubmed.rb +0 -0
- data/{lib → app}/service_adaptors/request_to_fixture.rb +0 -0
- data/{lib → app}/service_adaptors/scopus.rb +0 -0
- data/{lib → app/service_adaptors}/service.rb +3 -3
- data/{lib → app}/service_adaptors/sfx.rb +154 -11
- data/{lib → app}/service_adaptors/sfx_backchannel_record.rb +0 -0
- data/app/service_adaptors/tr_link.rb +267 -0
- data/app/service_adaptors/tr_links.rb +278 -0
- data/{lib → app}/service_adaptors/txt_holding_export.rb +0 -0
- data/{lib → app}/service_adaptors/ulrichs_cover.rb +0 -0
- data/{lib → app}/service_adaptors/ulrichs_link.rb +0 -0
- data/{lib → app}/service_adaptors/worldcat.rb +0 -0
- data/{lib → app}/service_adaptors/worldcat_identities.rb +0 -0
- data/app/views/admin/service_errors/_dispatched_service.html.erb +13 -13
- data/app/views/admin/service_errors/index.html.erb +11 -21
- data/app/views/export_email/email.html.erb +17 -2
- data/app/views/export_email/send_email.html.erb +2 -1
- data/app/views/export_email/send_txt.html.erb +2 -1
- data/app/views/export_email/txt.html.erb +30 -2
- data/app/views/layouts/umlaut.html.erb +29 -49
- data/app/views/resolve/_background_progress.html.erb +43 -50
- data/app/views/resolve/_background_updater.html.erb +23 -36
- data/app/views/resolve/_citation.html.erb +63 -87
- data/app/views/resolve/_compact_citation.html.erb +15 -33
- data/app/views/resolve/_cover_image.html.erb +34 -43
- data/app/views/resolve/_fulltext.html.erb +29 -50
- data/app/views/resolve/_help.html.erb +17 -14
- data/app/views/resolve/_holding.html.erb +65 -82
- data/app/views/resolve/_manually_entered_warning.html.erb +7 -0
- data/app/views/resolve/_modal.html.erb +19 -0
- data/app/views/resolve/_related_items.html.erb +20 -35
- data/app/views/resolve/_search_inside.html.erb +34 -57
- data/app/views/resolve/_section_display.html.erb +34 -46
- data/app/views/resolve/_section_heading.html.erb +17 -0
- data/app/views/resolve/_service_errors.html.erb +27 -28
- data/app/views/resolve/_standard_response_item.html.erb +42 -72
- data/app/views/resolve/background_status.html.erb +19 -23
- data/app/views/resolve/get_permalink.html.erb +6 -0
- data/app/views/resolve/index.html.erb +47 -73
- data/app/views/search/_a_to_z.html.erb +9 -6
- data/app/views/search/_citation.html.erb +73 -94
- data/app/views/search/_pager.html.erb +6 -6
- data/app/views/search/books.html.erb +34 -102
- data/app/views/search/journal_search.html.erb +53 -90
- data/app/views/search/journals.html.erb +73 -167
- data/app/views/umlaut/_header.html.erb +9 -0
- data/app/views/umlaut/error.html.erb +44 -44
- data/config/locales/en.yml +5 -0
- data/lib/{CronTab.rb → cron_tab.rb} +0 -0
- data/lib/generators/templates/umlaut_services.yml +57 -43
- data/lib/generators/umlaut/install_generator.rb +12 -0
- data/lib/service_adaptors/README.md +0 -0
- data/lib/tasks/umlaut.rake +8 -24
- data/lib/umlaut.rb +1 -21
- data/lib/umlaut/version.rb +1 -1
- data/test/README.md +75 -0
- data/test/dummy/app/controllers/umlaut_controller.rb +3 -3
- data/test/dummy/config/application.rb +3 -0
- data/test/dummy/config/sunspot.yml +20 -0
- data/test/dummy/config/travis_database.yml +96 -0
- data/test/dummy/config/umlaut_services.yml +16 -23
- data/test/dummy/db/migrate/20120927163304_sfx4_global.rb +26 -0
- data/test/dummy/db/migrate/20120927164040_sfx4_local.rb +54 -0
- data/test/dummy/tmp/cache/assets/BBA/6A0/sprockets%2F2a335471966f33256b321f8324041981 +0 -0
- data/test/dummy/tmp/cache/assets/C2A/410/sprockets%2Fd654b74912b4773a2534616863fb6565 +0 -0
- data/test/dummy/tmp/cache/assets/C45/A30/sprockets%2F39494895e462697b478d3d0c79298a26 +0 -0
- data/test/dummy/tmp/cache/assets/C49/730/sprockets%2F212d35831188417b5131e3e693aa69a6 +0 -0
- data/test/dummy/tmp/cache/assets/C55/1D0/sprockets%2F5af2f2a3403040f736981863fd278529 +0 -0
- data/test/dummy/tmp/cache/assets/C5A/A80/sprockets%2F2328c7370b56b4151776981a5f6d394e +0 -0
- data/test/dummy/tmp/cache/assets/C5F/340/sprockets%2F99692920160b7a279b86a80415b79db7 +0 -0
- data/test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80 +0 -0
- data/test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41 +0 -0
- data/test/dummy/tmp/cache/assets/C94/E20/sprockets%2F19579abc248373f419b1c3e287d74598 +0 -0
- data/test/dummy/tmp/cache/assets/C98/330/sprockets%2F0c81574ba94abc10657315d4190c201f +0 -0
- data/test/dummy/tmp/cache/assets/CA4/440/sprockets%2F0feb4425db6319d7d0582192a503671b +0 -0
- data/test/dummy/tmp/cache/assets/CA7/E80/sprockets%2F33310f455a870eaedd6d938e30620714 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/3C0/sprockets%2F697cd846490fda9f0e20c558320610f8 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f +0 -0
- data/test/dummy/tmp/cache/assets/CC7/F10/sprockets%2F939637f806eef3f0f21584659458ab2e +0 -0
- data/test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46 +0 -0
- data/test/dummy/tmp/cache/assets/CF8/DA0/sprockets%2Ff5b8c8499d3da954d392fa57739503c5 +0 -0
- data/test/dummy/tmp/cache/assets/CF9/590/sprockets%2F096bcc45cd31b3796fa2121cd203215f +0 -0
- data/test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398 +0 -0
- data/test/dummy/tmp/cache/assets/D04/CC0/sprockets%2Fe9c1b92f2e437e1bbbe020d718739220 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/090/sprockets%2F58009091c95e3ac328c91c68fca30e0e +0 -0
- data/test/dummy/tmp/cache/assets/D1A/B50/sprockets%2F2db5892438129fe94da8429b8be114ec +0 -0
- data/test/dummy/tmp/cache/assets/D2D/1A0/sprockets%2F376426b4896a3cff7969ce6c7b387e0e +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F40834fb07d7318c1fddd5003bd9e04f6 +0 -0
- data/test/dummy/tmp/cache/assets/D43/0D0/sprockets%2F682843a8d0795a5fbcfeb2f0c81727d0 +0 -0
- data/test/dummy/tmp/cache/assets/D46/F80/sprockets%2Fb15c08e749067d7aad9baf5e9388221c +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/7D0/sprockets%2F8a05d6981ec0d38c51739bef0b3a9c2b +0 -0
- data/test/dummy/tmp/cache/assets/D6E/CF0/sprockets%2F5661c6e4f0cea86fe4523f27261aade5 +0 -0
- data/test/dummy/tmp/cache/assets/D94/FF0/sprockets%2F3b56a1aa77de0d570c38a4a9d5f4b1d6 +0 -0
- data/test/dummy/tmp/cache/assets/D97/6B0/sprockets%2Fb070e8c799d1a4ad5e62e0a1ae3b83e6 +0 -0
- data/test/dummy/tmp/cache/assets/D9A/2F0/sprockets%2Fbba0f4b972dc53c15ce6c8c1993b82a4 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/860/sprockets%2Fec2d9f20b270d70e698ff33e53c21fca +0 -0
- data/test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1 +0 -0
- data/test/dummy/tmp/cache/assets/DA8/BB0/sprockets%2F0cf1c7e9f966dce425517c0e2a844efe +0 -0
- data/test/dummy/tmp/cache/assets/DA9/BC0/sprockets%2Fcb9062b73291befe5e5bf2a70978dec8 +0 -0
- data/test/dummy/tmp/cache/assets/DB6/ED0/sprockets%2Ff4482d9b9f76fb65eef16430bde2f8e6 +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8 +0 -0
- data/test/dummy/tmp/cache/assets/DF7/960/sprockets%2F99ac6db10b44a64fbba4ee847b35ba8b +0 -0
- data/test/dummy/tmp/cache/assets/DFD/300/sprockets%2Fabac9489cf7f1db8ef00d72a1571ee1e +0 -0
- data/test/dummy/tmp/cache/assets/E02/C10/sprockets%2F1463cadfce3fc70e61d482f9fcb75ac7 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E38/FE0/sprockets%2Fe1fc875efa817cbb94a5d8de25ea4e6b +0 -0
- data/test/dummy/tmp/cache/assets/E50/F00/sprockets%2Fec61afdbb1cc4df075e3dad46f0af571 +0 -0
- data/test/dummy/tmp/cache/assets/E5E/5F0/sprockets%2Feffaeb4d7f9bf4c0cc840ff320fde046 +0 -0
- data/test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6 +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_accordion.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_alerts.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_breadcrumbs.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_button-groups.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_buttons.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_carousel.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_close.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_code.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_component-animations.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_dropdowns.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_forms.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_grid.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_hero-unit.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_labels-badges.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_layouts.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_media.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_mixins.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_modals.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_navbar.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_navs.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_pager.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_pagination.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_popovers.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_progress-bars.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_reset.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-1200px-min.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-767px-max.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-768px-979px.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-navbar.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_responsive-utilities.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_scaffolding.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_sprites.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_tables.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_thumbnails.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_tooltip.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_type.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_utilities.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_variables.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/_wells.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/bootstrap.scssc +0 -0
- data/test/dummy/tmp/cache/sass/310d901c169042855feb8cf3903e1e2821d27f13/responsive.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_admin.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_az.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_base.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_forms.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_icons.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_misc.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_mixins.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_modal.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_resolve.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_results.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_search.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_spinner.scssc +0 -0
- data/test/dummy/tmp/cache/sass/3af72421a0fbed39d3047687ca0ad6e6e5545041/_variables.scssc +0 -0
- data/test/dummy/tmp/cache/sass/93d65682d6bddb0b2e6788c1232f4849af20a35e/bootstrap-responsive.scssc +0 -0
- data/test/dummy/tmp/cache/sass/93d65682d6bddb0b2e6788c1232f4849af20a35e/bootstrap.scssc +0 -0
- data/test/dummy/tmp/cache/sass/fb58c04fd15fcc38a8c4d91b7070bcfeaf1c3799/umlaut.css.scssc +0 -0
- data/test/fixtures/dispatched_services.yml +0 -4
- data/test/fixtures/permalinks.yml +23 -4
- data/test/fixtures/referent_values.yml +226 -1493
- data/test/fixtures/referents.yml +14 -137
- data/test/fixtures/requests.yml +22 -260
- data/test/fixtures/service_responses.yml +169 -5
- data/test/fixtures/sfx4/global/KB_OBJECTS.yml +46 -0
- data/test/fixtures/sfx4/local/AZ_EXTRA_INFO.yml +4802 -0
- data/test/fixtures/sfx4/local/AZ_LETTER_GROUP.yml +105 -0
- data/test/fixtures/sfx4/local/AZ_TITLE.yml +165 -0
- data/test/fixtures/sfx4/local/AZ_TITLE_SEARCH.yml +341 -0
- data/test/fixtures/sfx_urls.yml +3 -0
- data/test/functional/export_email_controller_test.rb +43 -0
- data/test/functional/link_router_controller_test.rb +16 -0
- data/test/functional/resolve_controller_test.rb +102 -0
- data/test/functional/search_controller_test.rb +40 -0
- data/test/functional/store_controller_test.rb +29 -0
- data/test/helper/list_with_limit_test.rb +90 -0
- data/test/integration/permalinks_test.rb +14 -0
- data/test/support/search_methods/test_case.rb +0 -0
- data/test/support/service_adaptors/test_case.rb +0 -0
- data/test/support/test_with_cassette.rb +37 -0
- data/test/test_helper.rb +76 -30
- data/test/unit/aws_product_sign_test.rb +2 -0
- data/test/unit/determine_services_test.rb +163 -0
- data/test/unit/google_book_search_test.rb +8 -25
- data/test/unit/google_scholar_link_test.rb +81 -0
- data/test/unit/internet_archive_test.rb +33 -0
- data/test/unit/permalink_test.rb +15 -0
- data/test/unit/service_store_test.rb +47 -0
- data/test/unit/service_test.rb +28 -13
- data/test/unit/sfx/sfx_target_roll_up_test.rb +369 -0
- data/test/unit/sfx4_search_test.rb +102 -0
- data/test/unit/sfx4_solr_search_test.rb +77 -0
- data/test/unit/sfx_test.rb +38 -0
- data/test/unit/worldcat_test.rb +7 -0
- data/test/vcr_cassettes/google_book_search/frankenstein_by_OCLC_number.yml +107 -0
- data/test/vcr_cassettes/internet_archive/momo_by_title_author.yml +116 -0
- data/test/vcr_cassettes/resolve/fulltext_with_edition_warning.yml +44 -0
- data/test/vcr_cassettes/resolve/no_holdings.yml +649 -0
- data/test/vcr_cassettes/resolve/nytimes_by_issn.yml +224 -0
- data/test/vcr_cassettes/sfx/nytimes_by_issn.yml +1395 -0
- data/test/vcr_cassettes/sfx4_solr/find_by_group.yml +109 -0
- data/test/vcr_cassettes/sfx4_solr/find_by_title_begins_with.yml +33 -0
- data/test/vcr_cassettes/sfx4_solr/find_by_title_contains.yml +34 -0
- data/test/vcr_cassettes/sfx4_solr/find_by_title_exact.yml +32 -0
- data/test/view/holding_test.rb +30 -0
- metadata +435 -179
- data/app/assets/images/export_bg_bot.gif +0 -0
- data/app/assets/images/export_bg_mid.gif +0 -0
- data/app/assets/images/export_bg_top.gif +0 -0
- data/app/assets/images/famfamfam/page_sound.gif +0 -0
- data/app/assets/images/famfamfam/page_text.gif +0 -0
- data/app/assets/images/famfamfam/page_up.gif +0 -0
- data/app/assets/images/ico_go.gif +0 -0
- data/app/assets/images/more_info.gif +0 -0
- data/app/assets/images/rails.png +0 -0
- data/app/assets/images/request.gif +0 -0
- data/app/assets/javascripts/umlaut/simple_visible_toggle.js +0 -8
- data/app/assets/stylesheets/umlaut.css +0 -900
- data/app/assets/stylesheets/umlaut/_background_progress_spinner.scss +0 -21
- data/app/assets/stylesheets/umlaut/_expand_contract.scss +0 -28
- data/app/controllers/search_methods/sfx3.rb +0 -148
- data/app/models/sfx_db.rb +0 -10
- data/app/models/sfx_db/az_additional_title.rb +0 -11
- data/app/models/sfx_db/az_letter_group.rb +0 -11
- data/app/models/sfx_db/az_title.rb +0 -40
- data/app/models/sfx_db/az_title_v2.rb +0 -34
- data/app/models/sfx_db/isbn.rb +0 -12
- data/app/models/sfx_db/issn.rb +0 -12
- data/app/models/sfx_db/object.rb +0 -35
- data/app/models/sfx_db/object_portfolio.rb +0 -6
- data/app/models/sfx_db/publisher.rb +0 -10
- data/app/models/sfx_db/sfx_db_base.rb +0 -58
- data/app/models/sfx_db/target.rb +0 -10
- data/app/models/sfx_db/target_service.rb +0 -10
- data/app/models/sfx_db/title.rb +0 -10
- data/app/views/export_email/_email.html.erb +0 -25
- data/app/views/export_email/_send_email.html.erb +0 -3
- data/app/views/export_email/_send_txt.html.erb +0 -3
- data/app/views/export_email/_txt.html.erb +0 -62
- data/lib/holding.rb +0 -32
- data/lib/opensearch_feed.rb +0 -398
- data/lib/opensearch_query.rb +0 -98
- data/lib/referent_filters/dissertation_catch.rb +0 -45
- data/lib/service_adaptors/journal_tocs.progress +0 -68
- data/lib/service_adaptors/primo_service.rb +0 -452
- data/lib/service_adaptors/primo_source.rb +0 -82
- data/lib/umlaut/default_configuration.rb +0 -5
- data/test/dummy/config/primo.yml +0 -271
- 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
|
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 (
|
18
|
+
if (perm.referent)
|
16
19
|
referent = perm.referent
|
17
|
-
elsif (perm
|
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(
|
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
|
-
|
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(
|
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
|
-
|
20
|
-
|
21
|
-
|
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
|
-
#
|
25
|
-
#
|
26
|
-
#
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
35
|
+
# ¨aut.service_group may be used to customize which services are loaded,
|
36
|
+
# else default. ¨aut.service_group=-default turns off default. Can also
|
37
|
+
# list other groups: NOTE: Needs to be submitted as a rails array,
|
38
|
+
# ¨aut.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
|
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
|
-
|
28
|
-
#
|
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
|
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
|
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,
|
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::
|
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 "
|
252
|
-
|
253
|
-
|
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 "
|
259
|
-
section_title "#{ServiceTypeValue[:fulltext].display_name} via:"
|
274
|
+
div_id "search_inside"
|
260
275
|
html_area :main
|
261
|
-
partial
|
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,
|
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::
|
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
|