umlaut 3.0.0alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +7 -0
- data/README.md +49 -0
- data/Rakefile +37 -0
- data/app/assets/images/error.gif +0 -0
- 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/book_open.png +0 -0
- data/app/assets/images/famfamfam/cross.png +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/famfamfam/page_white.png +0 -0
- data/app/assets/images/famfamfam/readme.html +1495 -0
- data/app/assets/images/famfamfam/tiny_cross.png +0 -0
- data/app/assets/images/frame_remove.gif +0 -0
- data/app/assets/images/ico_go.gif +0 -0
- data/app/assets/images/jhu_findit.gif +0 -0
- data/app/assets/images/list_closed.png +0 -0
- data/app/assets/images/list_open.png +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/images/spinner.gif +0 -0
- data/app/assets/javascripts/umlaut/ajax_windows.js +35 -0
- data/app/assets/javascripts/umlaut/ensure_window_size.js.erb +34 -0
- data/app/assets/javascripts/umlaut/expand_contract_toggle.js +25 -0
- data/app/assets/javascripts/umlaut/search_autocomplete.js +46 -0
- data/app/assets/javascripts/umlaut/simple_visible_toggle.js +8 -0
- data/app/assets/javascripts/umlaut/update_html.js +152 -0
- data/app/assets/javascripts/umlaut.js +17 -0
- data/app/assets/stylesheets/umlaut.css +857 -0
- data/app/controllers/application_controller.rb +14 -0
- data/app/controllers/export_email_controller.rb +123 -0
- data/app/controllers/js_helper_controller.rb +10 -0
- data/app/controllers/link_router_controller.rb +87 -0
- data/app/controllers/open_search_controller.rb +9 -0
- data/app/controllers/resolve_controller.rb +288 -0
- data/app/controllers/resource_controller.rb +83 -0
- data/app/controllers/search_controller.rb +328 -0
- data/app/controllers/search_methods/sfx3.rb +148 -0
- data/app/controllers/search_methods/sfx4.rb +257 -0
- data/app/controllers/search_methods/sfx_api.rb +47 -0
- data/app/controllers/store_controller.rb +64 -0
- data/app/controllers/umlaut/controller_behavior.rb +20 -0
- data/app/controllers/umlaut/controller_logic.rb +96 -0
- data/app/controllers/umlaut/error_handling.rb +48 -0
- data/app/controllers/umlaut_controller.rb +112 -0
- data/app/helpers/application_helper.rb +4 -0
- data/app/helpers/emailer_helper.rb +43 -0
- data/app/helpers/export_email_helper.rb +34 -0
- data/app/helpers/open_search_helper.rb +7 -0
- data/app/helpers/resolve_helper.rb +225 -0
- data/app/helpers/search_helper.rb +50 -0
- data/app/helpers/umlaut/footer_helper.rb +64 -0
- data/app/helpers/umlaut/helper.rb +62 -0
- data/app/helpers/umlaut/html_head_helper.rb +37 -0
- data/app/helpers/umlaut/url_generation.rb +77 -0
- data/app/mailers/emailer.rb +48 -0
- data/app/models/clickthrough.rb +2 -0
- data/app/models/collection.rb +259 -0
- data/app/models/crossref_lookup.rb +2 -0
- data/app/models/dispatched_service.rb +58 -0
- data/app/models/permalink.rb +29 -0
- data/app/models/referent.rb +473 -0
- data/app/models/referent_value.rb +14 -0
- data/app/models/request.rb +449 -0
- data/app/models/service_response.rb +179 -0
- data/app/models/service_store.rb +59 -0
- data/app/models/service_type_value.rb +58 -0
- data/app/models/service_wave.rb +150 -0
- data/app/models/sfx_db/az_additional_title.rb +11 -0
- data/app/models/sfx_db/az_letter_group.rb +11 -0
- data/app/models/sfx_db/az_title.rb +38 -0
- data/app/models/sfx_db/az_title_v2.rb +34 -0
- data/app/models/sfx_db/isbn.rb +12 -0
- data/app/models/sfx_db/issn.rb +12 -0
- data/app/models/sfx_db/object.rb +35 -0
- data/app/models/sfx_db/object_portfolio.rb +6 -0
- data/app/models/sfx_db/publisher.rb +10 -0
- data/app/models/sfx_db/sfx_db_base.rb +54 -0
- data/app/models/sfx_db/target.rb +9 -0
- data/app/models/sfx_db/target_service.rb +10 -0
- data/app/models/sfx_db/title.rb +10 -0
- data/app/models/sfx_db.rb +10 -0
- data/app/models/sfx_url.rb +35 -0
- data/app/views/emailer/citation.text.erb +28 -0
- data/app/views/emailer/short_citation.text.erb +8 -0
- data/app/views/export_email/_email.html.erb +25 -0
- data/app/views/export_email/_send_email.html.erb +3 -0
- data/app/views/export_email/_send_txt.html.erb +3 -0
- data/app/views/export_email/_txt.html.erb +62 -0
- data/app/views/export_email/email.html.erb +3 -0
- data/app/views/export_email/send_email.html.erb +1 -0
- data/app/views/export_email/send_txt.html.erb +1 -0
- data/app/views/export_email/txt.html.erb +3 -0
- data/app/views/js_helper/loader.erb.js +13 -0
- data/app/views/layouts/umlaut.html.erb +52 -0
- data/app/views/open_search/index.html.erb +9 -0
- data/app/views/resolve/_api_in_progress.xml.erb +21 -0
- data/app/views/resolve/_background_progress.html.erb +51 -0
- data/app/views/resolve/_background_updater.html.erb +38 -0
- data/app/views/resolve/_citation.html.erb +87 -0
- data/app/views/resolve/_coins.html.erb +1 -0
- data/app/views/resolve/_compact_citation.html.erb +33 -0
- data/app/views/resolve/_cover_image.html.erb +35 -0
- data/app/views/resolve/_fulltext.html.erb +55 -0
- data/app/views/resolve/_help.html.erb +17 -0
- data/app/views/resolve/_holding.html.erb +91 -0
- data/app/views/resolve/_related_items.html.erb +35 -0
- data/app/views/resolve/_search_inside.html.erb +62 -0
- data/app/views/resolve/_section_display.html.erb +49 -0
- data/app/views/resolve/_service_errors.html.erb +29 -0
- data/app/views/resolve/_standard_response_item.html.erb +89 -0
- data/app/views/resolve/api.xml.builder +72 -0
- data/app/views/resolve/background_status.html.erb +26 -0
- data/app/views/resolve/index.html.erb +73 -0
- data/app/views/resolve/partial_html_sections.xml.erb +30 -0
- data/app/views/search/_a_to_z.html.erb +6 -0
- data/app/views/search/_citation.html.erb +94 -0
- data/app/views/search/_pager.html.erb +60 -0
- data/app/views/search/books.html.erb +103 -0
- data/app/views/search/journal_search.html.erb +90 -0
- data/app/views/search/journals.html.erb +167 -0
- data/app/views/search/opensearch_description.rxml +10 -0
- data/app/views/testing/index.html.erb +1 -0
- data/app/views/umlaut/README +5 -0
- data/app/views/umlaut/error.html.erb +45 -0
- data/db/migrate/01_umlaut_init.rb +113 -0
- data/db/orig_fixed_data/service_type_values.yml +120 -0
- data/db/seeds.rb +7 -0
- data/lib/CronTab.rb +192 -0
- data/lib/aws_product_sign.rb +146 -0
- data/lib/exlibris/aleph/patron.rb +64 -0
- data/lib/exlibris/aleph/record.rb +54 -0
- data/lib/exlibris/aleph/rest_api.rb +29 -0
- data/lib/exlibris/primo/holding.rb +192 -0
- data/lib/exlibris/primo/rsrc.rb +17 -0
- data/lib/exlibris/primo/searcher.rb +276 -0
- data/lib/exlibris/primo/source/aleph.rb +46 -0
- data/lib/exlibris/primo/source/distribution/nyu_aleph.rb +323 -0
- data/lib/exlibris/primo/toc.rb +17 -0
- data/lib/exlibris/primo_ws.rb +140 -0
- data/lib/generators/templates/umlaut_services.yml +237 -0
- data/lib/generators/umlaut/asset_hooks_generator.rb +44 -0
- data/lib/generators/umlaut/install_generator.rb +110 -0
- data/lib/hip3/bib.rb +291 -0
- data/lib/hip3/bib_searcher.rb +302 -0
- data/lib/hip3/custom_field_lookup.rb +44 -0
- data/lib/hip3/holding.rb +50 -0
- data/lib/hip3/item.rb +65 -0
- data/lib/hip3/receipt.rb +7 -0
- data/lib/hip3/serial_copy.rb +82 -0
- data/lib/holding.rb +32 -0
- data/lib/marc_helper.rb +254 -0
- data/lib/metadata_helper.rb +312 -0
- data/lib/opensearch_feed.rb +398 -0
- data/lib/opensearch_query.rb +98 -0
- data/lib/referent_filter.rb +16 -0
- data/lib/referent_filters/dissertation_catch.rb +45 -0
- data/lib/section_renderer.rb +503 -0
- data/lib/service.rb +336 -0
- data/lib/service_adaptors/ajax_export.rb +37 -0
- data/lib/service_adaptors/amazon.rb +412 -0
- data/lib/service_adaptors/blacklight.rb +327 -0
- data/lib/service_adaptors/book_finder.rb +40 -0
- data/lib/service_adaptors/bx.rb +51 -0
- data/lib/service_adaptors/cover_thing.rb +73 -0
- data/lib/service_adaptors/elsevier_cover.rb +57 -0
- data/lib/service_adaptors/email_export.rb +10 -0
- data/lib/service_adaptors/ezproxy.rb +171 -0
- data/lib/service_adaptors/google_book_search.rb +442 -0
- data/lib/service_adaptors/gpo.rb +124 -0
- data/lib/service_adaptors/hathi_trust.rb +308 -0
- data/lib/service_adaptors/hip3_service.rb +150 -0
- data/lib/service_adaptors/hip_holding_search.rb +237 -0
- data/lib/service_adaptors/internet_archive.rb +488 -0
- data/lib/service_adaptors/isbn_db.rb +86 -0
- data/lib/service_adaptors/isi.rb +258 -0
- data/lib/service_adaptors/jcr.rb +146 -0
- data/lib/service_adaptors/opac.rb +351 -0
- data/lib/service_adaptors/open_library.rb +316 -0
- data/lib/service_adaptors/open_library_cover.rb +73 -0
- data/lib/service_adaptors/primo_service.rb +392 -0
- data/lib/service_adaptors/primo_source.rb +78 -0
- data/lib/service_adaptors/pubmed.rb +133 -0
- data/lib/service_adaptors/request_to_fixture.rb +68 -0
- data/lib/service_adaptors/scopus.rb +295 -0
- data/lib/service_adaptors/sfx-new.rb +557 -0
- data/lib/service_adaptors/sfx.rb +566 -0
- data/lib/service_adaptors/sfx_backchannel_record.rb +69 -0
- data/lib/service_adaptors/txt_holding_export.rb +32 -0
- data/lib/service_adaptors/ulrichs_cover.rb +57 -0
- data/lib/service_adaptors/ulrichs_link.rb +47 -0
- data/lib/service_adaptors/worldcat.rb +116 -0
- data/lib/service_adaptors/worldcat_identities.rb +591 -0
- data/lib/tasks/umlaut.rake +134 -0
- data/lib/umlaut/default_configuration.rb +5 -0
- data/lib/umlaut/routes.rb +136 -0
- data/lib/umlaut/version.rb +3 -0
- data/lib/umlaut.rb +37 -0
- data/lib/umlaut_configurable.rb +343 -0
- data/lib/umlaut_http.rb +100 -0
- data/lib/xml_schema_helper.rb +109 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/umlaut_controller.rb +112 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config/application.rb +45 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database-jhu.yml +44 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +34 -0
- data/test/dummy/config/environments/production.rb +60 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +61 -0
- data/test/dummy/config/umlaut_services.yml +237 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/migrate/20111228211210_umlaut_init.rb +113 -0
- data/test/dummy/db/schema.rb +124 -0
- data/test/dummy/log/development.log +12981 -0
- data/test/dummy/log/production.log +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -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/C73/920/sprockets%2Fd371318f22900492fd180f17c5e2a504 +9268 -0
- data/test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41 +0 -0
- data/test/dummy/tmp/cache/assets/C8F/780/sprockets%2Fe47e28558116fb5f8038754e60d1961d +11769 -0
- data/test/dummy/tmp/cache/assets/CAA/EB0/sprockets%2F1d179210e8b76f1ea63c802688a015e4 +9271 -0
- data/test/dummy/tmp/cache/assets/CBB/9C0/sprockets%2F706f28923fb754cad04b9107c89986a1 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f +0 -0
- data/test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d +0 -0
- data/test/dummy/tmp/cache/assets/CF6/F20/sprockets%2F5b2ffa1103079dfd555197838f87a99f +0 -0
- data/test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46 +862 -0
- data/test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398 +0 -0
- data/test/dummy/tmp/cache/assets/D22/060/sprockets%2F9aec77b768e91a802d284271c58e2f7e +21357 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D33/6D0/sprockets%2F500129c57f1146e556ec3aacd6cd38c1 +0 -0
- data/test/dummy/tmp/cache/assets/D33/FD0/sprockets%2F2ba0b4e6334a77b923e5f770381bb2bf +0 -0
- data/test/dummy/tmp/cache/assets/D42/C20/sprockets%2Fbcf14e437b1582bf93b77670acf8e090 +21353 -0
- data/test/dummy/tmp/cache/assets/D50/A30/sprockets%2F7d8b294ac433db5d056538f8cf7c66b9 +0 -0
- data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +872 -0
- data/test/dummy/tmp/cache/assets/D65/590/sprockets%2Fc1bb92fc3406a126b7dd302edc96d629 +0 -0
- data/test/dummy/tmp/cache/assets/D71/6B0/sprockets%2Fde558b71b494cf09b1bf055c8dff0353 +0 -0
- data/test/dummy/tmp/cache/assets/D72/610/sprockets%2Fa8c708eeb30ef93de34d755d4f45d023 +859 -0
- data/test/dummy/tmp/cache/assets/D76/AD0/sprockets%2Fe2158cde93188cf5ab6457bc6d6602ec +0 -0
- data/test/dummy/tmp/cache/assets/D7A/E40/sprockets%2F9622ffcc499a57627cd1bb18fe31b8e4 +11772 -0
- data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
- data/test/dummy/tmp/cache/assets/D9B/770/sprockets%2F8aacf02eb7dbb0949704b28f27b87e0b +0 -0
- data/test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1 +0 -0
- data/test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8 +0 -0
- data/test/dummy/tmp/cache/assets/DF7/F30/sprockets%2F7bc16c4109b17fabe29f8ddbbf732d1c +374 -0
- data/test/dummy/tmp/cache/assets/E03/570/sprockets%2F493bdc0ac14cd4f57fdfe4253f992bde +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E0B/4B0/sprockets%2F7988df51a61c81ce6ede4a2d4c8cce4f +377 -0
- data/test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6 +0 -0
- data/test/fixtures/dispatched_services.yml +5 -0
- data/test/fixtures/permalinks.yml +5 -0
- data/test/fixtures/referent_values.yml +1734 -0
- data/test/fixtures/referents.yml +156 -0
- data/test/fixtures/requests.yml +284 -0
- data/test/fixtures/service_responses.yml +5 -0
- data/test/fixtures/sfx_urls.yml +4 -0
- data/test/performance/browsing_test.rb +9 -0
- data/test/test_helper.rb +10 -0
- data/test/umlaut_test.rb +7 -0
- data/test/unit/aleph_patron_test.rb +39 -0
- data/test/unit/aleph_record_benchmarks.rb +28 -0
- data/test/unit/aleph_record_test.rb +30 -0
- data/test/unit/aws_product_sign_test.rb +93 -0
- data/test/unit/collection_test.rb +76 -0
- data/test/unit/google_book_search_test.rb +101 -0
- data/test/unit/primo_searcher_test.rb +403 -0
- data/test/unit/primo_service_test.rb +939 -0
- data/test/unit/primo_ws_test.rb +131 -0
- data/test/unit/service_response_test.rb +9 -0
- data/test/unit/service_test.rb +33 -0
- metadata +580 -0
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,35 @@
|
|
1
|
+
/* ajax_windows.js. Support for modal popup windows in Umlaut items. */
|
2
|
+
jQuery(document).ready(function($) {
|
3
|
+
|
4
|
+
var shared_modal_d = $("<div></div>").dialog({autoOpen: false, modal: true, width: "400px"}) ;
|
5
|
+
|
6
|
+
$("a.ajax_window").live("click", function(event) {
|
7
|
+
|
8
|
+
$(shared_modal_d).load( this.href, function() {
|
9
|
+
var heading = shared_modal_d.find("h1, h2, h3, h4, h5, h6").eq(0).remove();
|
10
|
+
$(shared_modal_d).dialog("option", "title", heading.text());
|
11
|
+
$(shared_modal_d).dialog("open");
|
12
|
+
});
|
13
|
+
return false;
|
14
|
+
});
|
15
|
+
|
16
|
+
function ajax_form_catch(event) {
|
17
|
+
$(shared_modal_d).load( $(event.target).closest("form").attr("action"), $(event.target).closest("form").serialize(), function() {
|
18
|
+
var heading = shared_modal_d.find("h1, h2, h3, h4, h5, h6").eq(0).remove();
|
19
|
+
$(shared_modal_d).dialog("option", "title", heading.text());
|
20
|
+
$(shared_modal_d).dialog("open");
|
21
|
+
|
22
|
+
});
|
23
|
+
return false;
|
24
|
+
}
|
25
|
+
|
26
|
+
//Trapping two events, click on the submit button or submit on the form
|
27
|
+
//is strangely needed in IE7 to trap both return-in-field submits
|
28
|
+
//and click-on-button submits. In FF just the second "submit" version
|
29
|
+
//is sufficient.
|
30
|
+
$("form.modal_dialog_form input[type=submit]").live("click", ajax_form_catch );
|
31
|
+
$("form.modal_dialog_form").live( "submit", ajax_form_catch);
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
});
|
@@ -0,0 +1,34 @@
|
|
1
|
+
// Some code to re-size our window to config defined minimum height/width
|
2
|
+
// We have little control over what size a content provider generates a
|
3
|
+
// window for a link resolver. Often it's too small. So we resize in
|
4
|
+
// js.
|
5
|
+
|
6
|
+
// Some browsers won't let us resize the window though. Oh well, we try.
|
7
|
+
// Those that wont' let us just silently no-op.
|
8
|
+
|
9
|
+
jQuery(document).ready(function($) {
|
10
|
+
var min_width = <%= UmlautController.umlaut_config.lookup!('minimum_window_width', 0).to_i %>;
|
11
|
+
var min_height = <%= UmlautController.umlaut_config.lookup!('minimum_window_height', 0).to_i %>;
|
12
|
+
|
13
|
+
// Default to something huge, so if we fail in getting dimensions,
|
14
|
+
// we won't resize.
|
15
|
+
var orig_width = 100000;
|
16
|
+
var orig_height = 100000;
|
17
|
+
|
18
|
+
// JQuery document viewport width/height
|
19
|
+
|
20
|
+
orig_width = $(window).width();
|
21
|
+
orig_height = $(window).height();
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
width_diff = min_width - orig_width;
|
26
|
+
height_diff = min_height - orig_height;
|
27
|
+
|
28
|
+
if (width_diff < 0) { width_diff = 0 }
|
29
|
+
if (height_diff < 0) { height_diff = 0 }
|
30
|
+
|
31
|
+
if (width_diff >0 || height_diff > 0) {
|
32
|
+
window.resizeBy(width_diff, height_diff)
|
33
|
+
}
|
34
|
+
});
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/* expand_contract_toggle.js: Support for show more/hide more in lists of umlaut content. */
|
2
|
+
jQuery(document).ready(function($) {
|
3
|
+
|
4
|
+
$(".expand_contract_toggle").live("click", function() {
|
5
|
+
var content = $(this).next(".expand_contract_content");
|
6
|
+
var icon = $(this).parent().find('img.toggle_icon');
|
7
|
+
|
8
|
+
if (content.is(":visible")) {
|
9
|
+
icon.attr("src", icon.attr("src").replace("list_open.png", "list_closed.png"));
|
10
|
+
$(this).find(".expand_contract_action_label").text("Show ");
|
11
|
+
|
12
|
+
content.hide();
|
13
|
+
|
14
|
+
}
|
15
|
+
else {
|
16
|
+
icon.attr("src", icon.attr("src").replace("list_closed.png", "list_open.png"));
|
17
|
+
$(this).find(".expand_contract_action_label").text("Hide ");
|
18
|
+
content.show();
|
19
|
+
}
|
20
|
+
|
21
|
+
return false;
|
22
|
+
});
|
23
|
+
|
24
|
+
|
25
|
+
});
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/* search_autocomplete.js. Add autocomplete to Umlaut journal title search. */
|
2
|
+
jQuery(document).ready(function($) {
|
3
|
+
|
4
|
+
$("form.OpenURL").live("submit", function() {
|
5
|
+
var form = $(this);
|
6
|
+
if ( form.find(".rft_title").val() != $(this).val()) {
|
7
|
+
form.find(".rft_object_id").val("");
|
8
|
+
form.find(".rft_title").val("");
|
9
|
+
}
|
10
|
+
});
|
11
|
+
|
12
|
+
$("input.title_search").autocomplete({
|
13
|
+
minLength: 3,
|
14
|
+
source: function(request, response) {
|
15
|
+
var form = $(this.element).closest("form");
|
16
|
+
$.ajax({
|
17
|
+
url: form.attr("action").replace("journal_search", "auto_complete_for_journal_title"),
|
18
|
+
dataType: "json",
|
19
|
+
data: form.serialize(),
|
20
|
+
success: function(data) {
|
21
|
+
response($.map(data, function(item) {
|
22
|
+
return {
|
23
|
+
label: item.title,
|
24
|
+
id: item.object_id
|
25
|
+
}
|
26
|
+
}));
|
27
|
+
}
|
28
|
+
});
|
29
|
+
},
|
30
|
+
select: function(event, ui) {
|
31
|
+
var form = $(event.target).closest("form");
|
32
|
+
|
33
|
+
form.find("input.rft_object_id").val(ui.item.id);
|
34
|
+
form.find("input.rft_title").val( ui.item.label );
|
35
|
+
form.find("select.sfx_title_search").val("exact");
|
36
|
+
}
|
37
|
+
});
|
38
|
+
|
39
|
+
});
|
40
|
+
|
41
|
+
|
42
|
+
/* select: function(event, ui) {
|
43
|
+
log(ui.item ? ("Selected: " + ui.item.value + ", geonameId: " + ui.item.id) : "Nothing selected, input was " + this.value);
|
44
|
+
}
|
45
|
+
});
|
46
|
+
*/
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/* simple_visible_toggle.js. Used for toggling visibility of error information. Can possibly be combined with more powerful expand_contract_toggle.js */
|
2
|
+
jQuery(document).ready(function($) {
|
3
|
+
|
4
|
+
$("a.simple_visible_toggle").live("click", function() {
|
5
|
+
$(this).next().toggle();
|
6
|
+
});
|
7
|
+
|
8
|
+
});
|
@@ -0,0 +1,152 @@
|
|
1
|
+
/* update_html.js: Provide functions to update content on page with background responses from Umlaut. Used by Umlaut itself, as well as by third party callers.*/
|
2
|
+
(function($) {
|
3
|
+
|
4
|
+
function SectionTarget(config) {
|
5
|
+
//Add properties from config to ourself
|
6
|
+
$.extend(this, config);
|
7
|
+
|
8
|
+
//Defaults
|
9
|
+
if (this.selector == undefined)
|
10
|
+
this.selector = "#" + this.umlaut_section_id;
|
11
|
+
if (this.position == undefined)
|
12
|
+
this.position = "html";
|
13
|
+
|
14
|
+
}
|
15
|
+
//Callback default to no-op function please.
|
16
|
+
var noop = function() {};
|
17
|
+
SectionTarget.prototype.before_update = noop;
|
18
|
+
SectionTarget.prototype.after_update = noop;
|
19
|
+
SectionTarget.prototype.complete = noop;
|
20
|
+
|
21
|
+
SectionTarget.prototype.ensure_placement_destination = function() {
|
22
|
+
if ( this.selector == undefined) {
|
23
|
+
return null;
|
24
|
+
}
|
25
|
+
|
26
|
+
//Already have it cached?
|
27
|
+
if ( this.host_div_element ) {
|
28
|
+
return this.host_div_element;
|
29
|
+
}
|
30
|
+
|
31
|
+
var new_div = $('<div class="umlaut" style="display:none"></div>');
|
32
|
+
// Find the first thing matched by selector, and call the
|
33
|
+
// method specified in "action" string on it, giving it our
|
34
|
+
// HTML to replace. This works because our actions are
|
35
|
+
// all arguments that will take one method: html, before, after, append,
|
36
|
+
// prepend.
|
37
|
+
$(this.selector).eq(0)[ this.position ]( new_div );
|
38
|
+
|
39
|
+
//Cache for later
|
40
|
+
this.host_div_element = new_div;
|
41
|
+
return this.host_div_element;
|
42
|
+
};
|
43
|
+
|
44
|
+
|
45
|
+
// Define an object constructor on the global window object
|
46
|
+
// For our UmlautHtmlUpdater object.
|
47
|
+
function HtmlUpdater(umlaut_base, context_object) {
|
48
|
+
if (context_object == undefined)
|
49
|
+
context_object = "";
|
50
|
+
|
51
|
+
umlaut_base = umlaut_base.replace(/\/$/,'');
|
52
|
+
this.umlaut_uri = umlaut_base + '/resolve/partial_html_sections?umlaut.response_format=json&' + context_object;
|
53
|
+
|
54
|
+
this.section_targets = [];
|
55
|
+
|
56
|
+
this.add_section_target = function(config) {
|
57
|
+
this.section_targets.push( new SectionTarget(config) );
|
58
|
+
};
|
59
|
+
|
60
|
+
//default no-op call-backs
|
61
|
+
this.complete = function() {};
|
62
|
+
|
63
|
+
//Code for seeing if a URI is same origin or not borrowed from jQuery
|
64
|
+
this.is_remote_url = function(url) {
|
65
|
+
var regexp = /^(\w+:)?\/\/([^\/?#]+)/;
|
66
|
+
var parts = regexp.exec( url );
|
67
|
+
return (parts && (parts[1] && parts[1] !== location.protocol || parts[2] !== location.host));
|
68
|
+
}
|
69
|
+
|
70
|
+
this.update = function() {
|
71
|
+
// Need to capture because we won't have 'this' inside the ajax
|
72
|
+
// success handler.
|
73
|
+
var myself = this;
|
74
|
+
var dataType = this.is_remote_url( this.umlaut_uri ) ? "jsonp" : "json";
|
75
|
+
$.ajax({
|
76
|
+
url: myself.umlaut_uri,
|
77
|
+
dataType: dataType,
|
78
|
+
jsonp: "umlaut.jsonp",
|
79
|
+
error: function() {
|
80
|
+
$.error("Problem loading background elements.");
|
81
|
+
},
|
82
|
+
success: function(umlaut_response) {
|
83
|
+
for (var i = 0; i < myself.section_targets.length; i++) {
|
84
|
+
var section_target = myself.section_targets[i];
|
85
|
+
|
86
|
+
var umlaut_html_section = myself.find_umlaut_response_section(umlaut_response, section_target.umlaut_section_id);
|
87
|
+
|
88
|
+
if (umlaut_html_section == undefined) {
|
89
|
+
continue;
|
90
|
+
}
|
91
|
+
var count = null;
|
92
|
+
if (typeof umlaut_html_section.response_count != "undefined") {
|
93
|
+
count = parseInt(umlaut_html_section.response_count.value);
|
94
|
+
}
|
95
|
+
var existing_element = section_target.ensure_placement_destination();
|
96
|
+
var new_element = $('<div class="umlaut" style="display:none" class="' + section_target.umlaut_section_id +'"></div>');
|
97
|
+
new_element.html(umlaut_html_section.html_content);
|
98
|
+
|
99
|
+
|
100
|
+
var should_continue = section_target.before_update(new_element, count, section_target);
|
101
|
+
|
102
|
+
if (should_continue != false) {
|
103
|
+
existing_element.replaceWith(new_element);
|
104
|
+
|
105
|
+
section_target.host_div_element = new_element;
|
106
|
+
|
107
|
+
new_element.show();
|
108
|
+
|
109
|
+
section_target.after_update(new_element, count, section_target)
|
110
|
+
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
//Do we need to update again?
|
115
|
+
if (umlaut_response.partial_html_sections.in_progress) {
|
116
|
+
//Fix our update URI to be the one umlaut suggests
|
117
|
+
//Except strip out the umlaut.jsonp parameter, jquery is
|
118
|
+
//going to add that back in as desired.
|
119
|
+
myself.umlaut_uri =
|
120
|
+
umlaut_response.partial_html_sections.in_progress.refresh_url.replace(/[?;&]umlaut\.jsonp=[^;&]+/, '');
|
121
|
+
|
122
|
+
|
123
|
+
var refresh_seconds =
|
124
|
+
umlaut_response.partial_html_sections.in_progress.requested_wait_seconds;
|
125
|
+
window.setTimeout(function() { myself.update(); }, refresh_seconds * 1000);
|
126
|
+
|
127
|
+
} else {
|
128
|
+
myself.complete();
|
129
|
+
for (var i = 0; i < myself.section_targets.length; i++) {
|
130
|
+
var section_target = myself.section_targets[i];
|
131
|
+
section_target.complete(section_target);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
135
|
+
}
|
136
|
+
});
|
137
|
+
};
|
138
|
+
this.find_umlaut_response_section = function(response, id) {
|
139
|
+
return $.grep(response.partial_html_sections.html_section, function(section) {
|
140
|
+
return section.id == id;
|
141
|
+
})[0];
|
142
|
+
};
|
143
|
+
|
144
|
+
};
|
145
|
+
|
146
|
+
//Put it in a global object, leave space for other things in "Umlaut" later.
|
147
|
+
if (window.Umlaut == undefined)
|
148
|
+
window.Umlaut = new Object();
|
149
|
+
window.Umlaut.HtmlUpdater = HtmlUpdater;
|
150
|
+
|
151
|
+
})(jQuery);
|
152
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into including all
|
2
|
+
// umlaut files. It can be included in a rails application.js manifest
|
3
|
+
// as:
|
4
|
+
// require 'umlaut'
|
5
|
+
// to include all umlaut js.
|
6
|
+
|
7
|
+
|
8
|
+
// jquery and jquery-ui are required for umlaut, it's okay
|
9
|
+
// if the manifest chain ends up 'require'ing twice because
|
10
|
+
// it's mentioned in local manifest, sprockets is smart enough.
|
11
|
+
//= require jquery
|
12
|
+
//= require jquery-ui
|
13
|
+
|
14
|
+
// Require all js files inside the 'umlaut' subdir next to this file.
|
15
|
+
//= require_tree './umlaut'
|
16
|
+
|
17
|
+
|
@@ -0,0 +1,857 @@
|
|
1
|
+
/* TODO: Clean up this CSS a LOT to make it easier for local apps to
|
2
|
+
* selectively override. Quite likely turn it into one or more sass-ified .scss
|
3
|
+
* in ./umlaut, with "umlaut.css" being a manifest file that includes
|
4
|
+
* them in a way that can be over-ridden. See Blacklight.
|
5
|
+
*/
|
6
|
+
|
7
|
+
/*********************/
|
8
|
+
/* GENERAL RESET CSS */
|
9
|
+
/*********************/
|
10
|
+
|
11
|
+
html, body, ul, ol, li, p, h1, h2, h3, h4, h5, h6, form, fieldset{
|
12
|
+
margin: 0;
|
13
|
+
padding: 0;
|
14
|
+
border: 0;
|
15
|
+
}
|
16
|
+
|
17
|
+
body {
|
18
|
+
font-size:12px;
|
19
|
+
}
|
20
|
+
|
21
|
+
/* Not sure why we're forcing scroll bars, but that's what this
|
22
|
+
does */
|
23
|
+
/* hide from IE mac \*/
|
24
|
+
html {
|
25
|
+
min-height: 100%;
|
26
|
+
margin-bottom: 1px;
|
27
|
+
}
|
28
|
+
/* end hiding from IE5 mac */
|
29
|
+
/* But on some pages, we definitely do NOT want to force
|
30
|
+
vertical scroll bar */
|
31
|
+
html.noscroll {
|
32
|
+
margin-bottom: 0;
|
33
|
+
min-height: auto;
|
34
|
+
/* Make IE7 hide that annoying grayed out scrollbar, when we REALLY
|
35
|
+
don't want a scrollbar */
|
36
|
+
overflow: auto;
|
37
|
+
}
|
38
|
+
body {
|
39
|
+
font-family: Verdana, Arial, Helvetica, sans-serif;
|
40
|
+
}
|
41
|
+
ul {
|
42
|
+
list-style-type: none;
|
43
|
+
}
|
44
|
+
h1 {
|
45
|
+
font-size: 1.5em;
|
46
|
+
font-style:italic;
|
47
|
+
font-weight:bold;
|
48
|
+
margin-bottom:1em;
|
49
|
+
}
|
50
|
+
h2 {
|
51
|
+
font-size: 1.25em;
|
52
|
+
font-weight:bold;
|
53
|
+
margin-bottom:0.8em;
|
54
|
+
}
|
55
|
+
h3 {
|
56
|
+
font-size: 1em;
|
57
|
+
font-weight:bold;
|
58
|
+
margin-bottom:0.7em;
|
59
|
+
}
|
60
|
+
h4 {
|
61
|
+
font-size: 1em;
|
62
|
+
font-weight:bold;
|
63
|
+
margin-bottom: 0.125em;
|
64
|
+
}
|
65
|
+
|
66
|
+
/********************/
|
67
|
+
/* PAGE LAYOUT */
|
68
|
+
/********************/
|
69
|
+
|
70
|
+
.container {
|
71
|
+
width: 780px;
|
72
|
+
position: relative;
|
73
|
+
margin-top: 10px;
|
74
|
+
margin-bottom: 10px;
|
75
|
+
margin-left: auto;
|
76
|
+
margin-right: auto;
|
77
|
+
padding:0;
|
78
|
+
display: block;
|
79
|
+
border: 1px solid #eeb211;
|
80
|
+
background-color: #FFFDEA;
|
81
|
+
}
|
82
|
+
|
83
|
+
.main_column {
|
84
|
+
width: 545px;
|
85
|
+
padding: 10px;
|
86
|
+
margin:0;
|
87
|
+
float: left;
|
88
|
+
font-size:12px;
|
89
|
+
background-color: #FFFDEA;
|
90
|
+
}
|
91
|
+
|
92
|
+
.main_column ol, .main_column ul{
|
93
|
+
margin-left: 20px;
|
94
|
+
}
|
95
|
+
|
96
|
+
.sidebar {
|
97
|
+
background-color: #FCF1D4;
|
98
|
+
margin-left:575px;
|
99
|
+
padding-top: 4em;
|
100
|
+
padding-bottom: 2em;
|
101
|
+
font-size:90%;
|
102
|
+
/* For reasons I can not explain, giving this thing a border
|
103
|
+
with the same color as it's bg keeps IE7 happier; without the
|
104
|
+
border, IE7 doesn't really display the div right. */
|
105
|
+
border: 1px solid #FCF1D4;
|
106
|
+
}
|
107
|
+
|
108
|
+
.headerStatusBar {
|
109
|
+
border-bottom: 1px solid #eeb211;
|
110
|
+
background-color: #FCF1D4;
|
111
|
+
padding: .25em;
|
112
|
+
}
|
113
|
+
.header {
|
114
|
+
background-color: #FFFDEA;
|
115
|
+
padding: 5px 10px;
|
116
|
+
border-bottom: 1px solid #eeb211;
|
117
|
+
}
|
118
|
+
|
119
|
+
.footer {
|
120
|
+
clear: both;
|
121
|
+
font-size: 80%;
|
122
|
+
border-top: 1px solid #eeb211;
|
123
|
+
padding: 10px;
|
124
|
+
}
|
125
|
+
|
126
|
+
|
127
|
+
.umlaut_resolve {
|
128
|
+
font-size: 12px;
|
129
|
+
/* for reasons not clear, IE7 started freaking out if this bg color
|
130
|
+
was there. Shouldn't be neccesary anyway, it was overkill. */
|
131
|
+
/*background-color: #FFFDEA;*/
|
132
|
+
}
|
133
|
+
|
134
|
+
.umlaut_resolve a {
|
135
|
+
text-decoration: none;
|
136
|
+
font-weight: bold;
|
137
|
+
color: #0066CC
|
138
|
+
}
|
139
|
+
|
140
|
+
.umlaut_resolve a:hover {
|
141
|
+
color: #EEB211;
|
142
|
+
}
|
143
|
+
|
144
|
+
/* used on search screen */
|
145
|
+
.oneColumn {
|
146
|
+
padding: 10px;
|
147
|
+
}
|
148
|
+
|
149
|
+
/****************************************************/
|
150
|
+
/* Styles for individual section boxes, and parent */
|
151
|
+
/* areas, on resolve screen. */
|
152
|
+
/****************************************************/
|
153
|
+
|
154
|
+
.main_response_list {
|
155
|
+
margin: 10px 0 10px 30px;
|
156
|
+
}
|
157
|
+
|
158
|
+
.main_response_list .umlaut_section {
|
159
|
+
padding: .125em .25em;
|
160
|
+
margin-top: 1.25em;
|
161
|
+
margin-bottom: .5em;
|
162
|
+
}
|
163
|
+
|
164
|
+
.resource_info {
|
165
|
+
font-size:11px;
|
166
|
+
padding: 2px;
|
167
|
+
}
|
168
|
+
|
169
|
+
.resource_info_sections .umlaut_section {
|
170
|
+
margin-top: 12px;
|
171
|
+
margin-bottom: 4px;
|
172
|
+
padding-top: 6px;
|
173
|
+
padding-left: 4px;
|
174
|
+
margin-left: 8px;
|
175
|
+
}
|
176
|
+
|
177
|
+
.sidebar .umlaut_section {
|
178
|
+
/*border:1px solid #e9e9e9;*/
|
179
|
+
margin: .5em 1em .75em .5em;
|
180
|
+
padding: 0.5em;
|
181
|
+
}
|
182
|
+
|
183
|
+
.umlaut_section .response_list {
|
184
|
+
margin-left:20px;
|
185
|
+
line-height:110%;
|
186
|
+
}
|
187
|
+
|
188
|
+
.sidebar .umlaut_section .response_list {
|
189
|
+
margin-left:10px;
|
190
|
+
}
|
191
|
+
|
192
|
+
|
193
|
+
.response_list .response_item {
|
194
|
+
padding-bottom: 5px;
|
195
|
+
}
|
196
|
+
|
197
|
+
/*******************************/
|
198
|
+
/* Standard inteface devices */
|
199
|
+
/*******************************/
|
200
|
+
|
201
|
+
.background_progress_spinner {
|
202
|
+
line-height: 1.5em;
|
203
|
+
color: gray;
|
204
|
+
}
|
205
|
+
|
206
|
+
.background_progress_spinner img {
|
207
|
+
vertical-align: bottom;
|
208
|
+
}
|
209
|
+
|
210
|
+
.main_response_list .background_progress_spinner {
|
211
|
+
padding-left: 18px;
|
212
|
+
}
|
213
|
+
|
214
|
+
.sidebar .background_progress_spinner {
|
215
|
+
padding-left: 10px;
|
216
|
+
}
|
217
|
+
|
218
|
+
.resource_info .background_progress_spinner {
|
219
|
+
padding-left: 24px;
|
220
|
+
padding-top: 8px;
|
221
|
+
}
|
222
|
+
|
223
|
+
.pagination {
|
224
|
+
border: 1px solid #e9e9e9;
|
225
|
+
font-size: 125%;
|
226
|
+
margin-top: .75em;
|
227
|
+
margin-bottom: .75em;
|
228
|
+
padding: .25em;
|
229
|
+
}
|
230
|
+
|
231
|
+
.expand_contract_toggle {
|
232
|
+
margin-top: 4px;
|
233
|
+
margin-bottom: 4px;
|
234
|
+
margin-left: -18px;
|
235
|
+
}
|
236
|
+
|
237
|
+
/* IE-only, IE doesn't like our negative margin
|
238
|
+
inside a table. Use that crazy '*' so only IE will see it. */
|
239
|
+
table .expand_contract_toggle {
|
240
|
+
*margin-left: 0;
|
241
|
+
}
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
.section_subheading {
|
246
|
+
margin-top: .75em;
|
247
|
+
margin-bottom: .75em;
|
248
|
+
}
|
249
|
+
|
250
|
+
.expand_contract_content {
|
251
|
+
margin-top: 0.5em;
|
252
|
+
}
|
253
|
+
|
254
|
+
div.expand_contract_section {
|
255
|
+
margin-top: 0.25em;
|
256
|
+
}
|
257
|
+
|
258
|
+
li.expand_contract_section {
|
259
|
+
margin: 0;
|
260
|
+
padding: 0;
|
261
|
+
background: none;
|
262
|
+
}
|
263
|
+
|
264
|
+
|
265
|
+
|
266
|
+
img.toggle_icon {
|
267
|
+
border: none;
|
268
|
+
vertical-align: middle;
|
269
|
+
margin-right: 2px;
|
270
|
+
}
|
271
|
+
|
272
|
+
|
273
|
+
/******************************/
|
274
|
+
/* Errors and notices */
|
275
|
+
/******************************/
|
276
|
+
|
277
|
+
.formError {
|
278
|
+
font-weight: bold;
|
279
|
+
color: #EA0000;
|
280
|
+
font-style: italic;
|
281
|
+
margin-top: 1em;
|
282
|
+
margin-bottom: 1em;
|
283
|
+
}
|
284
|
+
|
285
|
+
.error {
|
286
|
+
color:#CC0000;
|
287
|
+
font-size:14px;
|
288
|
+
font-weight:bold;
|
289
|
+
}
|
290
|
+
|
291
|
+
.notice {
|
292
|
+
background-color: #FCF1D4;
|
293
|
+
}
|
294
|
+
|
295
|
+
.heading img {
|
296
|
+
float: left;
|
297
|
+
}
|
298
|
+
|
299
|
+
|
300
|
+
/****************************************/
|
301
|
+
/* Special looks for particular sections */
|
302
|
+
/****************************************/
|
303
|
+
|
304
|
+
.umlaut_section.fulltext .response_list {
|
305
|
+
margin-left: 4px;
|
306
|
+
}
|
307
|
+
.umlaut_section.fulltext .response_item {
|
308
|
+
background: url(famfamfam/page_text.gif) no-repeat 0px 0px;
|
309
|
+
padding: 0px 18px 8px 22px;
|
310
|
+
}
|
311
|
+
|
312
|
+
.umlaut_section.fulltext .expand_contract_toggle,
|
313
|
+
.umlaut_section.audio .expand_contract_toggle,
|
314
|
+
.umlaut_section.excerpts .expand_contract_toggle {
|
315
|
+
margin-left: 8px;
|
316
|
+
}
|
317
|
+
|
318
|
+
|
319
|
+
.umlaut_section.audio .response_item {
|
320
|
+
background: url(famfamfam/page_sound.gif) no-repeat 0px 0px;
|
321
|
+
padding: 0px 18px 8px 22px;
|
322
|
+
}
|
323
|
+
|
324
|
+
.sidebar .umlaut_section.coins {
|
325
|
+
border: none;
|
326
|
+
}
|
327
|
+
|
328
|
+
.umlaut_section.excerpts .response_item {
|
329
|
+
background: url(famfamfam/book_open.png) no-repeat 0px 0px;
|
330
|
+
padding: 0px 18px 8px 22px;
|
331
|
+
}
|
332
|
+
|
333
|
+
|
334
|
+
#service_errors_content {
|
335
|
+
background-color: white;
|
336
|
+
padding: 5px;
|
337
|
+
margin: 6px;
|
338
|
+
border: 1px solid #E9E9E9;
|
339
|
+
}
|
340
|
+
|
341
|
+
#service_errors_content li {
|
342
|
+
margin-bottom: 0.5em;
|
343
|
+
}
|
344
|
+
|
345
|
+
.sidebar .umlaut_section.help {
|
346
|
+
background-color: #FFFDEA;
|
347
|
+
border:1px solid #e9e9e9;
|
348
|
+
padding: 0.5em;
|
349
|
+
padding-bottom: 10px;
|
350
|
+
}
|
351
|
+
|
352
|
+
#helpicon {
|
353
|
+
font-size: 45px;
|
354
|
+
font-weight: bold;
|
355
|
+
float: left;
|
356
|
+
background-color: #FCF1D4;
|
357
|
+
margin-right: 12px;
|
358
|
+
padding-right: 6px;
|
359
|
+
padding-left: 6px;
|
360
|
+
}
|
361
|
+
|
362
|
+
.error_icon {
|
363
|
+
font-size: 22px;
|
364
|
+
font-weight: bold;
|
365
|
+
float: left;
|
366
|
+
background-color: #FFFF66;
|
367
|
+
color: #CC3333;
|
368
|
+
margin-right: 4px;
|
369
|
+
}
|
370
|
+
|
371
|
+
.content {
|
372
|
+
font-size: 12px;
|
373
|
+
padding: 10px;
|
374
|
+
}
|
375
|
+
|
376
|
+
|
377
|
+
.holding_heading_row {
|
378
|
+
border-top: 1px solid #E9E9E9;
|
379
|
+
padding-right: 18px;
|
380
|
+
padding-top: 4px;
|
381
|
+
padding-bottom: 0px;
|
382
|
+
}
|
383
|
+
.holding tr:first-child > td.holding_heading_row {
|
384
|
+
border-top: none;
|
385
|
+
padding-top: 0px;
|
386
|
+
}
|
387
|
+
|
388
|
+
|
389
|
+
/*******************************************/
|
390
|
+
/* Little semantic pieces on resolve page */
|
391
|
+
/*******************************************/
|
392
|
+
|
393
|
+
.highlighted_section {
|
394
|
+
background-color: white;
|
395
|
+
border: 1px solid #e9e9e9;
|
396
|
+
margin: -1px;
|
397
|
+
padding: 4px;
|
398
|
+
}
|
399
|
+
|
400
|
+
.link_source {
|
401
|
+
color: gray;
|
402
|
+
padding-left: 10px;
|
403
|
+
margin-top: .25em;
|
404
|
+
}
|
405
|
+
|
406
|
+
.response_notes {
|
407
|
+
margin-top: .5em;
|
408
|
+
}
|
409
|
+
|
410
|
+
.sidebar .response_notes {
|
411
|
+
margin-left: 10px;
|
412
|
+
}
|
413
|
+
|
414
|
+
.available {
|
415
|
+
color: #00CC33;
|
416
|
+
font-style: italic;
|
417
|
+
font-size: 12px;
|
418
|
+
}
|
419
|
+
|
420
|
+
.notAvailable {
|
421
|
+
color: #FF0000;
|
422
|
+
font-style: italic;
|
423
|
+
font-size:12px;
|
424
|
+
}
|
425
|
+
.fulltext .notAvailable {
|
426
|
+
margin-left: 16px;
|
427
|
+
padding-left: 0;
|
428
|
+
}
|
429
|
+
|
430
|
+
.section_prompt {
|
431
|
+
font-style: italic;
|
432
|
+
margin-left: 22px;
|
433
|
+
margin-bottom: 8px;
|
434
|
+
}
|
435
|
+
|
436
|
+
.response_coverage_statement {
|
437
|
+
margin-bottom: .5em;
|
438
|
+
margin-top: .25em;
|
439
|
+
}
|
440
|
+
|
441
|
+
.edition_warning {
|
442
|
+
color: gray;
|
443
|
+
margin-top: 6px;
|
444
|
+
margin-bottom: 6px;
|
445
|
+
}
|
446
|
+
|
447
|
+
.edition_warning > .label {
|
448
|
+
font-style: normal;
|
449
|
+
font-weight: bold;
|
450
|
+
}
|
451
|
+
|
452
|
+
.debug_info {
|
453
|
+
margin-top: 5px;
|
454
|
+
margin-bottom: 5px;
|
455
|
+
padding: 4px;
|
456
|
+
background-color: #FCF1D4;
|
457
|
+
overflow: auto;
|
458
|
+
}
|
459
|
+
|
460
|
+
|
461
|
+
/* For disabled inline text */
|
462
|
+
.grayedOut {
|
463
|
+
color: #999999;
|
464
|
+
text-decoration: none;
|
465
|
+
}
|
466
|
+
|
467
|
+
/*************************************/
|
468
|
+
/* hacky presentation-related markup */
|
469
|
+
/*************************************/
|
470
|
+
|
471
|
+
.clear {
|
472
|
+
clear: both;
|
473
|
+
}
|
474
|
+
|
475
|
+
hr {
|
476
|
+
border: 0;
|
477
|
+
height: 1px;
|
478
|
+
color: #E9E9E9;
|
479
|
+
}
|
480
|
+
|
481
|
+
.line {
|
482
|
+
width: 100%;
|
483
|
+
border-bottom: 1px solid #e9e9e9;
|
484
|
+
margin: 4px 0px 0px;
|
485
|
+
}
|
486
|
+
|
487
|
+
.line2 {
|
488
|
+
width: 100%;
|
489
|
+
border-bottom: 1px solid #eeb211;
|
490
|
+
margin: 10px 0px 15px;}
|
491
|
+
|
492
|
+
ul.smallText li.fulltextlink {
|
493
|
+
padding-top: 2px;
|
494
|
+
clear: both;
|
495
|
+
}
|
496
|
+
|
497
|
+
.small_indent {
|
498
|
+
margin-left: 10px;
|
499
|
+
}
|
500
|
+
|
501
|
+
.section_content_indent {
|
502
|
+
margin-left: 20px;
|
503
|
+
}
|
504
|
+
|
505
|
+
.largeText { font-size:12px;}
|
506
|
+
.largeTextb { font-size:12px; font-weight:bold;}
|
507
|
+
.smallText { font-size:10px;}
|
508
|
+
.smallTextb { font-size:10px; font-weight:bold;}
|
509
|
+
.smallTextlink { font-size:10px; color:#0066CC}
|
510
|
+
|
511
|
+
/***********************/
|
512
|
+
/* Autocomplete styles */
|
513
|
+
/***********************/
|
514
|
+
|
515
|
+
div.auto_complete {
|
516
|
+
width: 350px;
|
517
|
+
background: #fff;
|
518
|
+
}
|
519
|
+
div.auto_complete ul {
|
520
|
+
border:1px solid #888;
|
521
|
+
margin:0;
|
522
|
+
padding:0;
|
523
|
+
width:100%;
|
524
|
+
list-style-type:none;
|
525
|
+
}
|
526
|
+
div.auto_complete ul li {
|
527
|
+
margin:0;
|
528
|
+
padding:3px;
|
529
|
+
}
|
530
|
+
div.auto_complete ul li.selected {
|
531
|
+
background-color: #ffb;
|
532
|
+
}
|
533
|
+
div.auto_complete ul strong.highlight {
|
534
|
+
color: #800;
|
535
|
+
margin:0;
|
536
|
+
padding:0;
|
537
|
+
}
|
538
|
+
|
539
|
+
|
540
|
+
|
541
|
+
/**********************/
|
542
|
+
/* Search controller */
|
543
|
+
/**********************/
|
544
|
+
|
545
|
+
.citationLinker {
|
546
|
+
font-size:11px;
|
547
|
+
padding: 2px;
|
548
|
+
border: 1px solid #ebb211;
|
549
|
+
background-color: #eee;
|
550
|
+
margin-bottom: 12px;
|
551
|
+
margin-top: 12px;
|
552
|
+
}
|
553
|
+
.citationLinker a:link {
|
554
|
+
/*text-decoration:underline;*/
|
555
|
+
color : #666;
|
556
|
+
}
|
557
|
+
|
558
|
+
.azNav {
|
559
|
+
text-align: center;
|
560
|
+
margin-top: 10px;
|
561
|
+
margin-bottom: 10px;
|
562
|
+
}
|
563
|
+
.azNav a {
|
564
|
+
font-size: 1.1em;
|
565
|
+
font-weight: bold;
|
566
|
+
padding:.15em .3em .15em .3em;
|
567
|
+
border: 1px solid #bbb;
|
568
|
+
text-decoration: none;
|
569
|
+
color : #0066CC;
|
570
|
+
line-height: 2em;
|
571
|
+
}
|
572
|
+
.azNav a:hover {
|
573
|
+
background-color: #eee;
|
574
|
+
}
|
575
|
+
|
576
|
+
.journalList {
|
577
|
+
line-height:18px;
|
578
|
+
}
|
579
|
+
.journalList a {color: #0066CC; }
|
580
|
+
|
581
|
+
/* search results */
|
582
|
+
|
583
|
+
.search_citation {
|
584
|
+
border-bottom: 1px solid #e9e9e9;
|
585
|
+
padding: 10px;
|
586
|
+
position: relative;
|
587
|
+
overflow: auto;
|
588
|
+
clear: both;
|
589
|
+
}
|
590
|
+
|
591
|
+
ul.citation {
|
592
|
+
width: 80%;
|
593
|
+
float: left;
|
594
|
+
clear: both;
|
595
|
+
position: relative;
|
596
|
+
}
|
597
|
+
|
598
|
+
ul.citation li {
|
599
|
+
padding-bottom: 0.66em;
|
600
|
+
float: left;
|
601
|
+
}
|
602
|
+
|
603
|
+
.citation .label {
|
604
|
+
display: block;
|
605
|
+
text-align: right;
|
606
|
+
width: 100px;
|
607
|
+
font-weight: bold;
|
608
|
+
float: left;
|
609
|
+
clear: left;
|
610
|
+
}
|
611
|
+
|
612
|
+
.citation .value {
|
613
|
+
display: block;
|
614
|
+
float: left;
|
615
|
+
width: 400px;
|
616
|
+
margin-left: 20px;
|
617
|
+
}
|
618
|
+
|
619
|
+
.citation .issn, .citation .isbn, .citation .cite, .citation .pub {
|
620
|
+
font-size: 80%;
|
621
|
+
}
|
622
|
+
.citation .cite {
|
623
|
+
margin-left: 120px;
|
624
|
+
clear: left;
|
625
|
+
|
626
|
+
}
|
627
|
+
|
628
|
+
.citation_link {
|
629
|
+
float: left;
|
630
|
+
width: 18%;
|
631
|
+
text-align: right;
|
632
|
+
}
|
633
|
+
|
634
|
+
|
635
|
+
|
636
|
+
|
637
|
+
/***************************************************************/
|
638
|
+
/* Banner page */
|
639
|
+
/* Styles used for banner frame page with tiny menu in banner.
|
640
|
+
These styles used both for frameset and iframe version.
|
641
|
+
Styles used for just iframe version come later. */
|
642
|
+
|
643
|
+
|
644
|
+
#banner_fulltext li.fulltextlink {
|
645
|
+
padding-bottom: 4px;
|
646
|
+
}
|
647
|
+
|
648
|
+
#banner_fulltext li.frameescaping {
|
649
|
+
background: url(famfamfam/page_up.gif) no-repeat 0px 0px;
|
650
|
+
/* Special icon override */
|
651
|
+
}
|
652
|
+
|
653
|
+
|
654
|
+
|
655
|
+
body.banner {
|
656
|
+
background-color: #E6D19A;
|
657
|
+
}
|
658
|
+
|
659
|
+
.banner_menu {
|
660
|
+
position: absolute;
|
661
|
+
top: 8px;
|
662
|
+
bottom: 8px;
|
663
|
+
left: 0;
|
664
|
+
right: 0;
|
665
|
+
width: 100%;
|
666
|
+
_height: 88%; /* IE6 only */
|
667
|
+
font-size: 10px;
|
668
|
+
}
|
669
|
+
|
670
|
+
.banner_menu_inner_container {
|
671
|
+
position: absolute;
|
672
|
+
top: 0;
|
673
|
+
bottom: 0;
|
674
|
+
width: 100%;
|
675
|
+
height: 100%;
|
676
|
+
}
|
677
|
+
|
678
|
+
.banner_section {
|
679
|
+
float: left;
|
680
|
+
overflow-y: auto;
|
681
|
+
overflow-x: hidden;
|
682
|
+
height: 100%;
|
683
|
+
font-size:10px;
|
684
|
+
margin-left: 6px;
|
685
|
+
padding-left: 4px;
|
686
|
+
padding-right: 2px;
|
687
|
+
}
|
688
|
+
|
689
|
+
|
690
|
+
.banner_menu h3 {
|
691
|
+
font-size:10px;
|
692
|
+
font-weight:bold;
|
693
|
+
margin-bottom: 2px;
|
694
|
+
margin-top: 1px;
|
695
|
+
}
|
696
|
+
|
697
|
+
.banner_section li {
|
698
|
+
padding-bottom: 3px;
|
699
|
+
}
|
700
|
+
|
701
|
+
.banner_section #helpicon {
|
702
|
+
font-size: 18px;
|
703
|
+
}
|
704
|
+
|
705
|
+
#banner_controls {
|
706
|
+
width: 140px;
|
707
|
+
}
|
708
|
+
|
709
|
+
#banner_citation {
|
710
|
+
width: 200px;
|
711
|
+
overflow-y: auto;
|
712
|
+
border: 1px solid #e9e9e9;
|
713
|
+
background-color: white;
|
714
|
+
margin-left: 22px;
|
715
|
+
}
|
716
|
+
|
717
|
+
#banner_fulltext {
|
718
|
+
width: 260px;
|
719
|
+
overflow-y: auto;
|
720
|
+
border: 1px solid #e9e9e9;
|
721
|
+
background-color: white;
|
722
|
+
}
|
723
|
+
|
724
|
+
#banner_help {
|
725
|
+
width: 130px;
|
726
|
+
}
|
727
|
+
|
728
|
+
/* Styles used specifically for new iframe version of banner page.
|
729
|
+
Note that page using iframe version styles must include the
|
730
|
+
special banner_with_iframe_ie6.css file in conditional
|
731
|
+
comments for IE less than 7 only, for IE6 and under compatibility. */
|
732
|
+
#banner_with_iframe #frame {
|
733
|
+
padding: 0;
|
734
|
+
margin: 0;
|
735
|
+
display: block;
|
736
|
+
position: absolute;
|
737
|
+
height: 100%;
|
738
|
+
width: 100%;
|
739
|
+
top: 0;
|
740
|
+
right: 0;
|
741
|
+
bottom: 0;
|
742
|
+
border: 0;
|
743
|
+
}
|
744
|
+
#banner_with_iframe #content {
|
745
|
+
position: absolute;
|
746
|
+
padding: 0;
|
747
|
+
margin: 0;
|
748
|
+
top: 98px;
|
749
|
+
left: 0px;
|
750
|
+
right: 0px;
|
751
|
+
bottom: 0;
|
752
|
+
}
|
753
|
+
/* new iframe style banner frameset */
|
754
|
+
#banner_with_iframe #banner_header {
|
755
|
+
background-color: #E6D19A;
|
756
|
+
position: absolute;
|
757
|
+
/* Ie6 likes it better when height/width comes before top, left, right, no idea why. */
|
758
|
+
height: 94px;
|
759
|
+
top: 0;
|
760
|
+
left: 0;
|
761
|
+
right: 0;
|
762
|
+
padding: 0;
|
763
|
+
margin: 0;
|
764
|
+
border-bottom: 4px gray solid;
|
765
|
+
overflow-y: auto;
|
766
|
+
overflow-x: hidden;
|
767
|
+
}
|
768
|
+
|
769
|
+
|
770
|
+
|
771
|
+
/*************************************/
|
772
|
+
/* Ajax (and non) popup modal window */
|
773
|
+
/*************************************/
|
774
|
+
|
775
|
+
.ajax_modal_dialog {
|
776
|
+
border: 1px solid #999999;
|
777
|
+
background-color: white;
|
778
|
+
position:absolute;
|
779
|
+
left: 25%;
|
780
|
+
top: 20%;
|
781
|
+
z-index: 1000;
|
782
|
+
font-size: 12px;
|
783
|
+
}
|
784
|
+
|
785
|
+
.ajax_modal_bg_overlay {
|
786
|
+
background-color: gray;
|
787
|
+
position: absolute;
|
788
|
+
top: 0;
|
789
|
+
left: 0;
|
790
|
+
right: 0;
|
791
|
+
bottom: 0;
|
792
|
+
width: 99.9%;
|
793
|
+
height: 99.9%;
|
794
|
+
z-index: 999;
|
795
|
+
opacity: 0.6;
|
796
|
+
-moz-opacity: 0.6;
|
797
|
+
filter: alpha(opacity=60);
|
798
|
+
}
|
799
|
+
|
800
|
+
.ajax_modal_dialog .inner_modal_dialog {
|
801
|
+
background-color: #FCF1D4;
|
802
|
+
margin: 1px;
|
803
|
+
padding: 1em;
|
804
|
+
}
|
805
|
+
|
806
|
+
.ajax_modal_dialog .modal_dialog_form {
|
807
|
+
width:395px;
|
808
|
+
}
|
809
|
+
|
810
|
+
.ajax_modal_dialog h2, .ajax_modal_dialog h3 {
|
811
|
+
font-weight: normal;
|
812
|
+
font-size: 1em;
|
813
|
+
}
|
814
|
+
|
815
|
+
.success_status {
|
816
|
+
position: absolute;
|
817
|
+
left: 15%;
|
818
|
+
top: 2em;
|
819
|
+
z-index: 100;
|
820
|
+
background-color: #e6e6e6;
|
821
|
+
border: 1px solid #999999;
|
822
|
+
padding: 1em;
|
823
|
+
}
|
824
|
+
|
825
|
+
.inner_modal_dialog .section {
|
826
|
+
padding-top: 0.8em;
|
827
|
+
padding-bottom: 0.8em;
|
828
|
+
}
|
829
|
+
|
830
|
+
.inner_modal_dialog li {
|
831
|
+
margin-bottom: 0.33em;
|
832
|
+
}
|
833
|
+
|
834
|
+
.inner_modal_dialog ul {
|
835
|
+
margin-top: 0.5em;
|
836
|
+
margin-bottom: 0.5em;
|
837
|
+
}
|
838
|
+
|
839
|
+
.inner_modal_dialog .collection {
|
840
|
+
font-weight: bold;
|
841
|
+
}
|
842
|
+
|
843
|
+
.inner_modal_dialog .status {
|
844
|
+
font-style: italic;
|
845
|
+
}
|
846
|
+
|
847
|
+
.no_js .inner_modal_dialog {
|
848
|
+
margin: 2em;
|
849
|
+
}
|
850
|
+
|
851
|
+
.no_js .inner_modal_dialog .cancel {
|
852
|
+
display: none;
|
853
|
+
}
|
854
|
+
|
855
|
+
|
856
|
+
|
857
|
+
|