umlaut 3.0.0alpha1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|