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.
Files changed (293) hide show
  1. data/LICENSE +7 -0
  2. data/README.md +49 -0
  3. data/Rakefile +37 -0
  4. data/app/assets/images/error.gif +0 -0
  5. data/app/assets/images/export_bg_bot.gif +0 -0
  6. data/app/assets/images/export_bg_mid.gif +0 -0
  7. data/app/assets/images/export_bg_top.gif +0 -0
  8. data/app/assets/images/famfamfam/book_open.png +0 -0
  9. data/app/assets/images/famfamfam/cross.png +0 -0
  10. data/app/assets/images/famfamfam/page_sound.gif +0 -0
  11. data/app/assets/images/famfamfam/page_text.gif +0 -0
  12. data/app/assets/images/famfamfam/page_up.gif +0 -0
  13. data/app/assets/images/famfamfam/page_white.png +0 -0
  14. data/app/assets/images/famfamfam/readme.html +1495 -0
  15. data/app/assets/images/famfamfam/tiny_cross.png +0 -0
  16. data/app/assets/images/frame_remove.gif +0 -0
  17. data/app/assets/images/ico_go.gif +0 -0
  18. data/app/assets/images/jhu_findit.gif +0 -0
  19. data/app/assets/images/list_closed.png +0 -0
  20. data/app/assets/images/list_open.png +0 -0
  21. data/app/assets/images/more_info.gif +0 -0
  22. data/app/assets/images/rails.png +0 -0
  23. data/app/assets/images/request.gif +0 -0
  24. data/app/assets/images/spinner.gif +0 -0
  25. data/app/assets/javascripts/umlaut/ajax_windows.js +35 -0
  26. data/app/assets/javascripts/umlaut/ensure_window_size.js.erb +34 -0
  27. data/app/assets/javascripts/umlaut/expand_contract_toggle.js +25 -0
  28. data/app/assets/javascripts/umlaut/search_autocomplete.js +46 -0
  29. data/app/assets/javascripts/umlaut/simple_visible_toggle.js +8 -0
  30. data/app/assets/javascripts/umlaut/update_html.js +152 -0
  31. data/app/assets/javascripts/umlaut.js +17 -0
  32. data/app/assets/stylesheets/umlaut.css +857 -0
  33. data/app/controllers/application_controller.rb +14 -0
  34. data/app/controllers/export_email_controller.rb +123 -0
  35. data/app/controllers/js_helper_controller.rb +10 -0
  36. data/app/controllers/link_router_controller.rb +87 -0
  37. data/app/controllers/open_search_controller.rb +9 -0
  38. data/app/controllers/resolve_controller.rb +288 -0
  39. data/app/controllers/resource_controller.rb +83 -0
  40. data/app/controllers/search_controller.rb +328 -0
  41. data/app/controllers/search_methods/sfx3.rb +148 -0
  42. data/app/controllers/search_methods/sfx4.rb +257 -0
  43. data/app/controllers/search_methods/sfx_api.rb +47 -0
  44. data/app/controllers/store_controller.rb +64 -0
  45. data/app/controllers/umlaut/controller_behavior.rb +20 -0
  46. data/app/controllers/umlaut/controller_logic.rb +96 -0
  47. data/app/controllers/umlaut/error_handling.rb +48 -0
  48. data/app/controllers/umlaut_controller.rb +112 -0
  49. data/app/helpers/application_helper.rb +4 -0
  50. data/app/helpers/emailer_helper.rb +43 -0
  51. data/app/helpers/export_email_helper.rb +34 -0
  52. data/app/helpers/open_search_helper.rb +7 -0
  53. data/app/helpers/resolve_helper.rb +225 -0
  54. data/app/helpers/search_helper.rb +50 -0
  55. data/app/helpers/umlaut/footer_helper.rb +64 -0
  56. data/app/helpers/umlaut/helper.rb +62 -0
  57. data/app/helpers/umlaut/html_head_helper.rb +37 -0
  58. data/app/helpers/umlaut/url_generation.rb +77 -0
  59. data/app/mailers/emailer.rb +48 -0
  60. data/app/models/clickthrough.rb +2 -0
  61. data/app/models/collection.rb +259 -0
  62. data/app/models/crossref_lookup.rb +2 -0
  63. data/app/models/dispatched_service.rb +58 -0
  64. data/app/models/permalink.rb +29 -0
  65. data/app/models/referent.rb +473 -0
  66. data/app/models/referent_value.rb +14 -0
  67. data/app/models/request.rb +449 -0
  68. data/app/models/service_response.rb +179 -0
  69. data/app/models/service_store.rb +59 -0
  70. data/app/models/service_type_value.rb +58 -0
  71. data/app/models/service_wave.rb +150 -0
  72. data/app/models/sfx_db/az_additional_title.rb +11 -0
  73. data/app/models/sfx_db/az_letter_group.rb +11 -0
  74. data/app/models/sfx_db/az_title.rb +38 -0
  75. data/app/models/sfx_db/az_title_v2.rb +34 -0
  76. data/app/models/sfx_db/isbn.rb +12 -0
  77. data/app/models/sfx_db/issn.rb +12 -0
  78. data/app/models/sfx_db/object.rb +35 -0
  79. data/app/models/sfx_db/object_portfolio.rb +6 -0
  80. data/app/models/sfx_db/publisher.rb +10 -0
  81. data/app/models/sfx_db/sfx_db_base.rb +54 -0
  82. data/app/models/sfx_db/target.rb +9 -0
  83. data/app/models/sfx_db/target_service.rb +10 -0
  84. data/app/models/sfx_db/title.rb +10 -0
  85. data/app/models/sfx_db.rb +10 -0
  86. data/app/models/sfx_url.rb +35 -0
  87. data/app/views/emailer/citation.text.erb +28 -0
  88. data/app/views/emailer/short_citation.text.erb +8 -0
  89. data/app/views/export_email/_email.html.erb +25 -0
  90. data/app/views/export_email/_send_email.html.erb +3 -0
  91. data/app/views/export_email/_send_txt.html.erb +3 -0
  92. data/app/views/export_email/_txt.html.erb +62 -0
  93. data/app/views/export_email/email.html.erb +3 -0
  94. data/app/views/export_email/send_email.html.erb +1 -0
  95. data/app/views/export_email/send_txt.html.erb +1 -0
  96. data/app/views/export_email/txt.html.erb +3 -0
  97. data/app/views/js_helper/loader.erb.js +13 -0
  98. data/app/views/layouts/umlaut.html.erb +52 -0
  99. data/app/views/open_search/index.html.erb +9 -0
  100. data/app/views/resolve/_api_in_progress.xml.erb +21 -0
  101. data/app/views/resolve/_background_progress.html.erb +51 -0
  102. data/app/views/resolve/_background_updater.html.erb +38 -0
  103. data/app/views/resolve/_citation.html.erb +87 -0
  104. data/app/views/resolve/_coins.html.erb +1 -0
  105. data/app/views/resolve/_compact_citation.html.erb +33 -0
  106. data/app/views/resolve/_cover_image.html.erb +35 -0
  107. data/app/views/resolve/_fulltext.html.erb +55 -0
  108. data/app/views/resolve/_help.html.erb +17 -0
  109. data/app/views/resolve/_holding.html.erb +91 -0
  110. data/app/views/resolve/_related_items.html.erb +35 -0
  111. data/app/views/resolve/_search_inside.html.erb +62 -0
  112. data/app/views/resolve/_section_display.html.erb +49 -0
  113. data/app/views/resolve/_service_errors.html.erb +29 -0
  114. data/app/views/resolve/_standard_response_item.html.erb +89 -0
  115. data/app/views/resolve/api.xml.builder +72 -0
  116. data/app/views/resolve/background_status.html.erb +26 -0
  117. data/app/views/resolve/index.html.erb +73 -0
  118. data/app/views/resolve/partial_html_sections.xml.erb +30 -0
  119. data/app/views/search/_a_to_z.html.erb +6 -0
  120. data/app/views/search/_citation.html.erb +94 -0
  121. data/app/views/search/_pager.html.erb +60 -0
  122. data/app/views/search/books.html.erb +103 -0
  123. data/app/views/search/journal_search.html.erb +90 -0
  124. data/app/views/search/journals.html.erb +167 -0
  125. data/app/views/search/opensearch_description.rxml +10 -0
  126. data/app/views/testing/index.html.erb +1 -0
  127. data/app/views/umlaut/README +5 -0
  128. data/app/views/umlaut/error.html.erb +45 -0
  129. data/db/migrate/01_umlaut_init.rb +113 -0
  130. data/db/orig_fixed_data/service_type_values.yml +120 -0
  131. data/db/seeds.rb +7 -0
  132. data/lib/CronTab.rb +192 -0
  133. data/lib/aws_product_sign.rb +146 -0
  134. data/lib/exlibris/aleph/patron.rb +64 -0
  135. data/lib/exlibris/aleph/record.rb +54 -0
  136. data/lib/exlibris/aleph/rest_api.rb +29 -0
  137. data/lib/exlibris/primo/holding.rb +192 -0
  138. data/lib/exlibris/primo/rsrc.rb +17 -0
  139. data/lib/exlibris/primo/searcher.rb +276 -0
  140. data/lib/exlibris/primo/source/aleph.rb +46 -0
  141. data/lib/exlibris/primo/source/distribution/nyu_aleph.rb +323 -0
  142. data/lib/exlibris/primo/toc.rb +17 -0
  143. data/lib/exlibris/primo_ws.rb +140 -0
  144. data/lib/generators/templates/umlaut_services.yml +237 -0
  145. data/lib/generators/umlaut/asset_hooks_generator.rb +44 -0
  146. data/lib/generators/umlaut/install_generator.rb +110 -0
  147. data/lib/hip3/bib.rb +291 -0
  148. data/lib/hip3/bib_searcher.rb +302 -0
  149. data/lib/hip3/custom_field_lookup.rb +44 -0
  150. data/lib/hip3/holding.rb +50 -0
  151. data/lib/hip3/item.rb +65 -0
  152. data/lib/hip3/receipt.rb +7 -0
  153. data/lib/hip3/serial_copy.rb +82 -0
  154. data/lib/holding.rb +32 -0
  155. data/lib/marc_helper.rb +254 -0
  156. data/lib/metadata_helper.rb +312 -0
  157. data/lib/opensearch_feed.rb +398 -0
  158. data/lib/opensearch_query.rb +98 -0
  159. data/lib/referent_filter.rb +16 -0
  160. data/lib/referent_filters/dissertation_catch.rb +45 -0
  161. data/lib/section_renderer.rb +503 -0
  162. data/lib/service.rb +336 -0
  163. data/lib/service_adaptors/ajax_export.rb +37 -0
  164. data/lib/service_adaptors/amazon.rb +412 -0
  165. data/lib/service_adaptors/blacklight.rb +327 -0
  166. data/lib/service_adaptors/book_finder.rb +40 -0
  167. data/lib/service_adaptors/bx.rb +51 -0
  168. data/lib/service_adaptors/cover_thing.rb +73 -0
  169. data/lib/service_adaptors/elsevier_cover.rb +57 -0
  170. data/lib/service_adaptors/email_export.rb +10 -0
  171. data/lib/service_adaptors/ezproxy.rb +171 -0
  172. data/lib/service_adaptors/google_book_search.rb +442 -0
  173. data/lib/service_adaptors/gpo.rb +124 -0
  174. data/lib/service_adaptors/hathi_trust.rb +308 -0
  175. data/lib/service_adaptors/hip3_service.rb +150 -0
  176. data/lib/service_adaptors/hip_holding_search.rb +237 -0
  177. data/lib/service_adaptors/internet_archive.rb +488 -0
  178. data/lib/service_adaptors/isbn_db.rb +86 -0
  179. data/lib/service_adaptors/isi.rb +258 -0
  180. data/lib/service_adaptors/jcr.rb +146 -0
  181. data/lib/service_adaptors/opac.rb +351 -0
  182. data/lib/service_adaptors/open_library.rb +316 -0
  183. data/lib/service_adaptors/open_library_cover.rb +73 -0
  184. data/lib/service_adaptors/primo_service.rb +392 -0
  185. data/lib/service_adaptors/primo_source.rb +78 -0
  186. data/lib/service_adaptors/pubmed.rb +133 -0
  187. data/lib/service_adaptors/request_to_fixture.rb +68 -0
  188. data/lib/service_adaptors/scopus.rb +295 -0
  189. data/lib/service_adaptors/sfx-new.rb +557 -0
  190. data/lib/service_adaptors/sfx.rb +566 -0
  191. data/lib/service_adaptors/sfx_backchannel_record.rb +69 -0
  192. data/lib/service_adaptors/txt_holding_export.rb +32 -0
  193. data/lib/service_adaptors/ulrichs_cover.rb +57 -0
  194. data/lib/service_adaptors/ulrichs_link.rb +47 -0
  195. data/lib/service_adaptors/worldcat.rb +116 -0
  196. data/lib/service_adaptors/worldcat_identities.rb +591 -0
  197. data/lib/tasks/umlaut.rake +134 -0
  198. data/lib/umlaut/default_configuration.rb +5 -0
  199. data/lib/umlaut/routes.rb +136 -0
  200. data/lib/umlaut/version.rb +3 -0
  201. data/lib/umlaut.rb +37 -0
  202. data/lib/umlaut_configurable.rb +343 -0
  203. data/lib/umlaut_http.rb +100 -0
  204. data/lib/xml_schema_helper.rb +109 -0
  205. data/test/dummy/Rakefile +7 -0
  206. data/test/dummy/app/assets/javascripts/application.js +13 -0
  207. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  208. data/test/dummy/app/controllers/application_controller.rb +3 -0
  209. data/test/dummy/app/controllers/umlaut_controller.rb +112 -0
  210. data/test/dummy/app/helpers/application_helper.rb +2 -0
  211. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  212. data/test/dummy/config/application.rb +45 -0
  213. data/test/dummy/config/boot.rb +10 -0
  214. data/test/dummy/config/database-jhu.yml +44 -0
  215. data/test/dummy/config/database.yml +25 -0
  216. data/test/dummy/config/environment.rb +5 -0
  217. data/test/dummy/config/environments/development.rb +34 -0
  218. data/test/dummy/config/environments/production.rb +60 -0
  219. data/test/dummy/config/environments/test.rb +39 -0
  220. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  221. data/test/dummy/config/initializers/inflections.rb +10 -0
  222. data/test/dummy/config/initializers/mime_types.rb +5 -0
  223. data/test/dummy/config/initializers/secret_token.rb +7 -0
  224. data/test/dummy/config/initializers/session_store.rb +8 -0
  225. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  226. data/test/dummy/config/locales/en.yml +5 -0
  227. data/test/dummy/config/routes.rb +61 -0
  228. data/test/dummy/config/umlaut_services.yml +237 -0
  229. data/test/dummy/config.ru +4 -0
  230. data/test/dummy/db/migrate/20111228211210_umlaut_init.rb +113 -0
  231. data/test/dummy/db/schema.rb +124 -0
  232. data/test/dummy/log/development.log +12981 -0
  233. data/test/dummy/log/production.log +0 -0
  234. data/test/dummy/public/404.html +26 -0
  235. data/test/dummy/public/422.html +26 -0
  236. data/test/dummy/public/500.html +26 -0
  237. data/test/dummy/public/favicon.ico +0 -0
  238. data/test/dummy/script/rails +6 -0
  239. data/test/dummy/tmp/cache/assets/C5F/340/sprockets%2F99692920160b7a279b86a80415b79db7 +0 -0
  240. data/test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80 +0 -0
  241. data/test/dummy/tmp/cache/assets/C73/920/sprockets%2Fd371318f22900492fd180f17c5e2a504 +9268 -0
  242. data/test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41 +0 -0
  243. data/test/dummy/tmp/cache/assets/C8F/780/sprockets%2Fe47e28558116fb5f8038754e60d1961d +11769 -0
  244. data/test/dummy/tmp/cache/assets/CAA/EB0/sprockets%2F1d179210e8b76f1ea63c802688a015e4 +9271 -0
  245. data/test/dummy/tmp/cache/assets/CBB/9C0/sprockets%2F706f28923fb754cad04b9107c89986a1 +0 -0
  246. data/test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f +0 -0
  247. data/test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d +0 -0
  248. data/test/dummy/tmp/cache/assets/CF6/F20/sprockets%2F5b2ffa1103079dfd555197838f87a99f +0 -0
  249. data/test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46 +862 -0
  250. data/test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398 +0 -0
  251. data/test/dummy/tmp/cache/assets/D22/060/sprockets%2F9aec77b768e91a802d284271c58e2f7e +21357 -0
  252. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  253. data/test/dummy/tmp/cache/assets/D33/6D0/sprockets%2F500129c57f1146e556ec3aacd6cd38c1 +0 -0
  254. data/test/dummy/tmp/cache/assets/D33/FD0/sprockets%2F2ba0b4e6334a77b923e5f770381bb2bf +0 -0
  255. data/test/dummy/tmp/cache/assets/D42/C20/sprockets%2Fbcf14e437b1582bf93b77670acf8e090 +21353 -0
  256. data/test/dummy/tmp/cache/assets/D50/A30/sprockets%2F7d8b294ac433db5d056538f8cf7c66b9 +0 -0
  257. data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +872 -0
  258. data/test/dummy/tmp/cache/assets/D65/590/sprockets%2Fc1bb92fc3406a126b7dd302edc96d629 +0 -0
  259. data/test/dummy/tmp/cache/assets/D71/6B0/sprockets%2Fde558b71b494cf09b1bf055c8dff0353 +0 -0
  260. data/test/dummy/tmp/cache/assets/D72/610/sprockets%2Fa8c708eeb30ef93de34d755d4f45d023 +859 -0
  261. data/test/dummy/tmp/cache/assets/D76/AD0/sprockets%2Fe2158cde93188cf5ab6457bc6d6602ec +0 -0
  262. data/test/dummy/tmp/cache/assets/D7A/E40/sprockets%2F9622ffcc499a57627cd1bb18fe31b8e4 +11772 -0
  263. data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
  264. data/test/dummy/tmp/cache/assets/D9B/770/sprockets%2F8aacf02eb7dbb0949704b28f27b87e0b +0 -0
  265. data/test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1 +0 -0
  266. data/test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8 +0 -0
  267. data/test/dummy/tmp/cache/assets/DF7/F30/sprockets%2F7bc16c4109b17fabe29f8ddbbf732d1c +374 -0
  268. data/test/dummy/tmp/cache/assets/E03/570/sprockets%2F493bdc0ac14cd4f57fdfe4253f992bde +0 -0
  269. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  270. data/test/dummy/tmp/cache/assets/E0B/4B0/sprockets%2F7988df51a61c81ce6ede4a2d4c8cce4f +377 -0
  271. data/test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6 +0 -0
  272. data/test/fixtures/dispatched_services.yml +5 -0
  273. data/test/fixtures/permalinks.yml +5 -0
  274. data/test/fixtures/referent_values.yml +1734 -0
  275. data/test/fixtures/referents.yml +156 -0
  276. data/test/fixtures/requests.yml +284 -0
  277. data/test/fixtures/service_responses.yml +5 -0
  278. data/test/fixtures/sfx_urls.yml +4 -0
  279. data/test/performance/browsing_test.rb +9 -0
  280. data/test/test_helper.rb +10 -0
  281. data/test/umlaut_test.rb +7 -0
  282. data/test/unit/aleph_patron_test.rb +39 -0
  283. data/test/unit/aleph_record_benchmarks.rb +28 -0
  284. data/test/unit/aleph_record_test.rb +30 -0
  285. data/test/unit/aws_product_sign_test.rb +93 -0
  286. data/test/unit/collection_test.rb +76 -0
  287. data/test/unit/google_book_search_test.rb +101 -0
  288. data/test/unit/primo_searcher_test.rb +403 -0
  289. data/test/unit/primo_service_test.rb +939 -0
  290. data/test/unit/primo_ws_test.rb +131 -0
  291. data/test/unit/service_response_test.rb +9 -0
  292. data/test/unit/service_test.rb +33 -0
  293. metadata +580 -0
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
+