├── .byebug_history
├── .codeclimate.yml
├── .coveralls.yml
├── .gitignore
├── .gitmodules
├── .hooves
├── .rspec
├── .rubocop.yml
├── .travis.yml
├── Capfile
├── Gemfile
├── Gemfile.lock
├── Guardfile
├── README.md
├── Rakefile
├── VERSION
├── app
├── assets
│ ├── fonts
│ │ ├── TrajanPro-Bold.otf
│ │ ├── TrajanPro-Regular.otf
│ │ ├── trajanpro-regular-webfont.eot
│ │ ├── trajanpro-regular-webfont.svg
│ │ ├── trajanpro-regular-webfont.ttf
│ │ └── trajanpro-regular-webfont.woff
│ ├── images
│ │ ├── QuestionMark.png
│ │ ├── TrajanPro-Bold.otf
│ │ ├── TrajanPro-Regular.otf
│ │ ├── ajax-indicator.gif
│ │ ├── ajax-loader.gif
│ │ ├── apple-touch-icon-144x144.png
│ │ ├── blacklight
│ │ │ ├── bg.png
│ │ │ ├── border.png
│ │ │ ├── bul_sq_gry.gif
│ │ │ ├── checkmark.gif
│ │ │ ├── logo.png
│ │ │ ├── magnifying_glass.gif
│ │ │ ├── remove.gif
│ │ │ ├── separator.gif
│ │ │ └── start_over.gif
│ │ ├── clio-beta.png
│ │ ├── clio-logo.png
│ │ ├── clio-new-arrivals.png
│ │ ├── clio-spectrum.png
│ │ ├── clio_beta.jpg
│ │ ├── clio_beta_logos_4a_5.png
│ │ ├── clio_beta_logos_small.png
│ │ ├── colorbox
│ │ │ ├── border.png
│ │ │ ├── controls.png
│ │ │ ├── internet_explorer
│ │ │ │ ├── borderBottomCenter.png
│ │ │ │ ├── borderBottomLeft.png
│ │ │ │ ├── borderBottomRight.png
│ │ │ │ ├── borderMiddleLeft.png
│ │ │ │ ├── borderMiddleRight.png
│ │ │ │ ├── borderTopCenter.png
│ │ │ │ ├── borderTopLeft.png
│ │ │ │ └── borderTopRight.png
│ │ │ ├── loading.gif
│ │ │ ├── loading_background.png
│ │ │ └── overlay.png
│ │ ├── contact.png
│ │ ├── contactable
│ │ │ ├── ajax-loader.gif
│ │ │ └── contact.png
│ │ ├── ds_pointer.png
│ │ ├── elink.gif
│ │ ├── favicon-crown.png
│ │ ├── format_icons
│ │ │ ├── default.png
│ │ │ ├── doc.png
│ │ │ ├── mp3.png
│ │ │ ├── mp4.png
│ │ │ ├── pdf.png
│ │ │ ├── ppt.png
│ │ │ ├── xls.png
│ │ │ └── xlsx.png
│ │ ├── gb_preview.png
│ │ ├── help.png
│ │ ├── help_button.png
│ │ ├── icons
│ │ │ ├── 24-book-blue-add.png
│ │ │ ├── 24-book-blue-remove.png
│ │ │ ├── art-work.png
│ │ │ ├── article.png
│ │ │ ├── available.png
│ │ │ ├── book.png
│ │ │ ├── cancel.png
│ │ │ ├── cdc-burst.png
│ │ │ ├── cdc1.png
│ │ │ ├── checked_out.png
│ │ │ ├── computer-file.png
│ │ │ ├── conference.png
│ │ │ ├── database.png
│ │ │ ├── ebook.png
│ │ │ ├── facet_cancel.png
│ │ │ ├── facet_minus.png
│ │ │ ├── facet_plus.png
│ │ │ ├── facet_x.png
│ │ │ ├── govdoc.png
│ │ │ ├── image.png
│ │ │ ├── journal.png
│ │ │ ├── link-old.png
│ │ │ ├── link.png
│ │ │ ├── manuscript.png
│ │ │ ├── map-or-globe.png
│ │ │ ├── microform.png
│ │ │ ├── musical-recording.png
│ │ │ ├── musical-score.png
│ │ │ ├── newspaper.png
│ │ │ ├── non-musical-recording.png
│ │ │ ├── non_circulating.png
│ │ │ ├── noncirc.png
│ │ │ ├── none.png
│ │ │ ├── none_yellow_question_mark.png
│ │ │ ├── not_available.png
│ │ │ ├── online.png
│ │ │ ├── page.png
│ │ │ ├── serial.png
│ │ │ ├── some_available.png
│ │ │ ├── spacer12x12.png
│ │ │ ├── stock_inbox.png
│ │ │ ├── stock_spam.png
│ │ │ ├── thesis.png
│ │ │ ├── unavailable.png
│ │ │ ├── unknown.png
│ │ │ ├── video.png
│ │ │ └── volume.png
│ │ ├── information_icon.png
│ │ ├── ldpd-toolkit
│ │ │ ├── bg_stripes.gif
│ │ │ ├── clio_beta_logo.png
│ │ │ ├── clio_logo.png
│ │ │ ├── crown-bts-24x24.png
│ │ │ ├── cul-banner-txt-02.png
│ │ │ ├── cul-banner-txt-services.png
│ │ │ ├── cul-banner-txt-simple.png
│ │ │ ├── cul-banner-txt.png
│ │ │ ├── culblog-icon-sq.png
│ │ │ ├── engineering-banner-txt.png
│ │ │ ├── facebook-icon-sq.png
│ │ │ ├── foursquare-icon-sq.png
│ │ │ ├── glyphicons-halflings-white.png
│ │ │ ├── glyphicons-halflings.png
│ │ │ ├── math-banner-txt.png
│ │ │ ├── math-science-banner-txt.png
│ │ │ ├── request-it-banner-txt.png
│ │ │ ├── rss-icon-sq.png
│ │ │ ├── search-delivery-banner-txt.png
│ │ │ └── twitter-icon-sq.png
│ │ ├── level-blue.gif
│ │ ├── level-green.gif
│ │ ├── level-orange.gif
│ │ ├── level-red.gif
│ │ ├── orange-clock.png
│ │ ├── rails.png
│ │ ├── rss-feed-icon-14x14.png
│ │ ├── search.png
│ │ ├── select-arrow.png
│ │ ├── spacer-.png
│ │ ├── spacer.png
│ │ ├── start_over.gif
│ │ ├── warning-icon.png
│ │ └── warning_icon.png
│ ├── javascripts
│ │ ├── advanced.js.coffee
│ │ ├── application.js
│ │ ├── arrows.js.coffee
│ │ ├── articles.js
│ │ ├── astroids.js
│ │ ├── async-search.js.coffee
│ │ ├── best_bets.js
│ │ ├── bootstrap-datepicker.js
│ │ ├── catalog.js.coffee
│ │ ├── confetti.js
│ │ ├── datasources.js.coffee
│ │ ├── dropdown_select.js.coffee
│ │ ├── es6_bits.js
│ │ ├── google_analytics.js
│ │ ├── hathi.js.UNUSED
│ │ ├── holdings.js.coffee
│ │ ├── ie_warnings.js
│ │ ├── in_viewport.js
│ │ ├── item_actions.js.coffee
│ │ ├── item_alerts.js.coffee
│ │ ├── konami.js
│ │ ├── ldpd_feedback.js
│ │ ├── location.js
│ │ ├── location
│ │ │ ├── google_map.js
│ │ │ └── underscore-min.js
│ │ ├── log.js
│ │ ├── matomo.js
│ │ ├── modal_manager_override.js.coffee
│ │ ├── nearby.js.coffee
│ │ ├── preferences.coffee
│ │ ├── resolver.js
│ │ ├── saved_lists.js.coffee
│ │ ├── scroll_memory.js.coffee
│ │ └── xls.js
│ └── stylesheets
│ │ ├── _hours.sass
│ │ ├── _layout.sass
│ │ ├── _print.sass
│ │ ├── a_local_application.sass
│ │ ├── advanced_search.sass
│ │ ├── application.sass
│ │ ├── articles.sass
│ │ ├── best_bets.sass
│ │ ├── blacklight_range_limit_local.scss
│ │ ├── book_cover.sass
│ │ ├── bootstrap_bits.sass
│ │ ├── callouts.scss
│ │ ├── catalog.sass
│ │ ├── clio_last.scss
│ │ ├── datasources.sass
│ │ ├── datepicker.scss
│ │ ├── debug.sass
│ │ ├── donor_info_icon.sass
│ │ ├── facets.sass
│ │ ├── gmaps4rails.sass
│ │ ├── header.sass
│ │ ├── item_alerts.sass
│ │ ├── libraryh3lp.sass
│ │ ├── log.sass
│ │ ├── lweb.sass
│ │ ├── navbar.scss
│ │ ├── preferences.sass
│ │ ├── redesign.sass
│ │ ├── saved_lists.sass
│ │ ├── scaffolds.scss
│ │ └── search.sass
├── controllers
│ ├── admin_controller.rb
│ ├── application_controller.rb
│ ├── authorities_controller.rb
│ ├── backend_controller.rb
│ ├── best_bets_controller.rb
│ ├── browse_controller.rb
│ ├── catalog_controller.rb
│ ├── item_alerts_controller.rb
│ ├── local_subject_controller.rb
│ ├── locations_controller.rb
│ ├── logs_controller.rb
│ ├── preferences_controller.rb
│ ├── saved_list_items_controller.rb
│ ├── saved_lists_controller.rb
│ ├── search_history_controller.rb
│ ├── spectrum_controller.rb
│ └── users
│ │ ├── omniauth_callbacks_controller.rb
│ │ └── sessions_controller.rb
├── helpers
│ ├── advanced_helper.rb
│ ├── application_helper.rb
│ ├── articles_helper.rb
│ ├── browse_helper.rb
│ ├── cul_catalog_helper.rb
│ ├── cul_facets_helper.rb
│ ├── datasources_helper.rb
│ ├── display_helper.rb
│ ├── holdings_helper.rb
│ ├── item_alert_helper.rb
│ ├── local_solr_helper_extension.rb
│ ├── logs_helper.rb
│ ├── marc_helper.rb
│ ├── preferences_helper.rb
│ ├── saved_lists_helper.rb
│ └── search_helper.rb
├── lib
│ ├── clancy
│ │ └── caia_soft.rb
│ ├── recap
│ │ └── scsb_rest.rb
│ └── traject_utility.rb
├── mailers
│ ├── application_mailer.rb
│ ├── rake_mailer.rb
│ └── record_mailer.rb
├── models
│ ├── ability.rb
│ ├── ac_document.rb
│ ├── application_record.rb
│ ├── best_bet.rb
│ ├── hours_db
│ │ ├── calendar.rb
│ │ └── hours_library.rb
│ ├── item_alert.rb
│ ├── library.rb
│ ├── library_hours.rb
│ ├── library_web
│ │ └── document.rb
│ ├── local_subject.rb
│ ├── location.rb
│ ├── log.rb
│ ├── lweb_document.rb
│ ├── option.rb
│ ├── preference.rb
│ ├── saved_list.rb
│ ├── saved_list_item.rb
│ ├── search_builder.rb
│ ├── simplye_link.rb
│ ├── solr_document.rb
│ ├── spectrum
│ │ ├── queries
│ │ │ └── solr.rb
│ │ ├── search_engines
│ │ │ ├── ac.rb
│ │ │ ├── google_appliance.rb
│ │ │ ├── google_custom_search.rb
│ │ │ ├── solr.rb
│ │ │ └── summon.rb
│ │ └── solr_repository.rb
│ └── user.rb
└── views
│ ├── _ask_a_librarian.html.haml
│ ├── _async_setting.html.haml
│ ├── _authority_variants.html.haml
│ ├── _coins.html.haml
│ ├── _datasource_warning.html.haml
│ ├── _datasources_dropdown.html.haml
│ ├── _debug_mode.html.haml
│ ├── _display
│ ├── browse
│ │ ├── _compact_list.html.haml
│ │ └── _standard_list.html.haml
│ ├── catalog
│ │ ├── _compact_list.html.haml
│ │ ├── _show.html.haml
│ │ └── _standard_list.html.haml
│ └── databases
│ │ └── _a_to_z.html.haml
│ ├── _dropdown_select.html.haml
│ ├── _footer.html.haml
│ ├── _formats
│ ├── ac
│ │ ├── _ac.html.haml
│ │ ├── _aggregate.html.haml
│ │ └── _standard_list_item.html.haml
│ ├── art_work
│ │ └── _catalog_show.html.haml
│ ├── article
│ │ ├── _aggregate.html.haml
│ │ └── _summon.html.haml
│ ├── book-tbd
│ │ └── _catalog_show.html.haml.tbd
│ ├── clio
│ │ ├── _aggregate.html.haml
│ │ ├── _catalog_list_details.html.haml
│ │ ├── _catalog_show.html.haml
│ │ ├── _catalog_show_holdings.html.haml
│ │ ├── _catalog_show_holdings_clio.html.haml
│ │ ├── _catalog_show_holdings_display.html.haml
│ │ ├── _catalog_show_holdings_ebook.html.haml
│ │ ├── _catalog_show_holdings_google.html.haml
│ │ ├── _catalog_show_holdings_hathi.html.haml
│ │ ├── _catalog_show_holdings_online.html.haml
│ │ ├── _catalog_show_holdings_pegasus.haml
│ │ ├── _catalog_show_holdings_simplye.html.haml
│ │ ├── _catalog_show_nearby.html.haml
│ │ ├── _catalog_show_toolbar.html.haml
│ │ ├── _catalog_show_worldcat_link.haml
│ │ ├── _compact_browse_item.html.haml
│ │ ├── _compact_list_details.html.haml
│ │ ├── _compact_list_item.html.haml
│ │ ├── _standard_browse_item.html.haml
│ │ └── _standard_list_item.html.haml
│ ├── database
│ │ ├── _aggregate.html.haml
│ │ ├── _catalog_list.html.haml
│ │ ├── _catalog_list_details.html.haml
│ │ ├── _catalog_manage_alert.html.haml
│ │ └── _catalog_show.html.haml.tbd
│ ├── dlc
│ │ ├── _aggregate.html.haml
│ │ └── _standard_list_item.html.haml
│ ├── geo
│ │ ├── _aggregate.html.haml
│ │ └── _standard_list_item.html.haml
│ ├── lweb
│ │ ├── _aggregate.html.haml
│ │ └── _lweb.html.haml
│ ├── manuscript_archive
│ │ └── _catalog_show.html.haml
│ ├── map_globe
│ │ └── _catalog_show.html.haml.tbd
│ ├── music
│ │ └── _catalog_show.html.haml
│ ├── music_recording
│ │ └── _catalog_show.html.haml
│ ├── serial
│ │ └── _catalog_show.html.haml
│ ├── summon
│ │ └── _summon_show.html.haml
│ └── video
│ │ └── _catalog_show.html.haml
│ ├── _header_with_search.html.haml
│ ├── _item_number.haml
│ ├── _link_to_prod.html.haml
│ ├── _marc_view.html.haml
│ ├── _search
│ ├── _constraints.html.haml
│ ├── _facets.html.haml
│ └── _search_box.html.haml
│ ├── _summon_warning.html.haml
│ ├── _top_banner.html.haml
│ ├── _top_navigation_bar.html.haml
│ ├── admin
│ ├── format_icons.html.haml
│ ├── request_services.html.haml
│ └── system.html.haml
│ ├── authorities
│ ├── author.haml
│ ├── author_marc.haml
│ ├── index.haml
│ └── show.haml
│ ├── browse
│ ├── _browse_focus_bookmark.html.haml
│ ├── _browse_title.html.haml
│ ├── _browse_toolbar_full.haml
│ ├── _browse_toolbar_mini.haml
│ ├── _call_number_toggle.html.haml
│ ├── _mini_browse_panel.html.haml
│ ├── _per_page_widget.html.haml
│ ├── shelfkey_full.html.haml
│ └── shelfkey_mini.html.haml
│ ├── catalog
│ ├── _advanced_search.html.haml
│ ├── _atom_summary.html.haml
│ ├── _bound_with.html.haml
│ ├── _constraint_dropdown.html.haml
│ ├── _constraints.html.haml
│ ├── _constraints_delete.html.haml
│ ├── _donor_info.html.haml
│ ├── _download_menu.html.haml
│ ├── _email_form.html.erb
│ ├── _facet_callnumber.html.haml
│ ├── _facet_callnumber_letter.html.haml
│ ├── _facet_callnumber_subclass.html.haml
│ ├── _facet_layout.html.haml
│ ├── _facet_limit.html.haml
│ ├── _facets.html.haml
│ ├── _google_books_check.html.haml
│ ├── _holdings_check.html.haml
│ ├── _index_toolbar.haml
│ ├── _no_results_blurb.haml
│ ├── _per_page_widget.haml
│ ├── _results_pagination.html.haml
│ ├── _selections_widget.html.haml
│ ├── _sms_form.html.erb
│ ├── _sort_widget.html.erb
│ ├── email.html.erb
│ ├── facet.html.haml
│ ├── hathi_holdings.haml
│ ├── index.atom.builder
│ ├── index.csv.haml
│ ├── index.html.haml
│ ├── index.rss.builder
│ ├── index.xls.erb
│ ├── librarian_view.html.haml
│ ├── show.html.haml
│ ├── xls_form.html.erb
│ └── xlsx_form.html.erb
│ ├── item_alerts
│ ├── _form.html.haml
│ ├── _show_table_row.html.haml
│ ├── edit.html.haml
│ ├── index.html.haml
│ ├── new.html.haml
│ ├── show.html.haml
│ └── show_table_row.html.haml
│ ├── kaminari
│ └── blacklight_compact
│ │ └── _paginator.html.erb
│ ├── landing_pages
│ ├── _ac.html.haml
│ ├── _academic_commons.html.haml
│ ├── _archives.html.haml
│ ├── _articles.html.haml
│ ├── _catalog.html.haml
│ ├── _databases.html.haml
│ ├── _dissertations.html.haml
│ ├── _dlc.html.haml
│ ├── _ebooks.html.haml
│ ├── _geo.html.haml
│ ├── _govdocs.html.haml
│ ├── _journals.html.haml
│ ├── _library_web.html.haml
│ ├── _lweb.html.haml
│ ├── _new_arrivals.html.haml
│ ├── _quicksearch.html.haml
│ └── _research_data.html.haml
│ ├── layouts
│ ├── _best_bets.html.haml
│ ├── _common_head.html.haml
│ ├── _common_tail.html.haml
│ ├── _messages.html.haml
│ ├── blank.html.haml
│ ├── js_return.html.haml
│ ├── location.html.haml
│ ├── mailer.html.erb
│ ├── mailer.text.erb
│ ├── no_sidebar.html.haml
│ ├── no_sidebar_no_search.html.haml
│ └── quicksearch.html.haml
│ ├── locations
│ ├── _infowindow.html.haml
│ └── show.html.haml
│ ├── logs
│ ├── index.csv.erb
│ ├── index.html.erb
│ ├── month_list.html.erb
│ └── set_list.html.erb
│ ├── preferences
│ ├── _datasource_sidebar_form.haml
│ ├── _form.html.haml
│ ├── _quicksearch_bentos_form.haml
│ ├── _summon_facet_form.haml
│ ├── edit.html.haml
│ ├── index.html.haml
│ └── new.html.haml
│ ├── record_mailer
│ ├── email_record.html.haml
│ └── sms_record.text.erb
│ ├── saved_list_items
│ ├── _form.html.haml
│ ├── edit.html.haml
│ ├── index.html.haml
│ └── new.html.haml
│ ├── saved_lists
│ ├── _email_form.html.erb
│ ├── _form.html.haml
│ ├── _item_select_checkbox.html.haml
│ ├── _list_actions_widget.html.haml
│ ├── _menu_list.html.haml
│ ├── _move_or_copy_items.html.haml
│ ├── _savedlist_control_panel.html.haml
│ ├── edit.html.haml
│ ├── email.html.erb
│ ├── new.html.haml
│ ├── show.atom.builder
│ └── show.html.haml
│ ├── spectrum
│ ├── _ac.html.haml
│ ├── _aggregate.html.haml
│ ├── _lweb.html.erb
│ ├── _lweb.html.haml.OLD
│ ├── _summon.html.haml
│ ├── ac
│ │ ├── _constraints.html.haml
│ │ ├── _facets.html.haml
│ │ ├── _index_toolbar.haml
│ │ ├── _no_results_blurb.haml
│ │ └── _result_docs.html.haml
│ ├── aggregate
│ │ ├── _result_docs.html.haml
│ │ ├── _result_footer.html.haml
│ │ ├── _result_header.html.haml
│ │ ├── _result_header_async.html.haml
│ │ └── _result_set.html.haml
│ ├── checked_out_items.html.haml
│ ├── facet.html.haml
│ ├── hits.html.haml
│ ├── lweb
│ │ ├── _constraints.html.haml
│ │ ├── _index_toolbar.haml
│ │ ├── _no_results_blurb.haml
│ │ ├── _quicksearch_panel.html.haml
│ │ └── _result_docs.html.haml
│ ├── search.html.haml
│ ├── search.marc
│ ├── searchjson.html.haml
│ └── summon
│ │ ├── _advanced_search.html.haml
│ │ ├── _constraints.html.haml
│ │ ├── _facets.html.haml
│ │ ├── _index_toolbar.haml
│ │ ├── _no_results_blurb.haml
│ │ └── _result_docs.html.haml
│ └── top_nav
│ ├── _ask_a_librarian.html.haml
│ ├── _crown_menu.html.haml
│ ├── _help_menu.html.haml
│ └── _login_menu.html.haml
├── bin
├── bundle
├── rails
├── rake
├── setup
├── update
└── yarn
├── config.ru
├── config
├── app_config.yml.EXAMPLE
├── app_config.yml.travis
├── application.rb
├── blacklight.yml.EXAMPLE
├── blacklight.yml.travis
├── boot.rb
├── cable.yml
├── cas.yml.EXAMPLE
├── database.yml.EXAMPLE
├── database.yml.travis
├── database_browse.yml
├── datasources.yml
├── deploy.rb
├── deploy
│ ├── clio_app_prod.rb
│ ├── clio_batch_dev.rb
│ ├── clio_batch_prod.rb
│ ├── clio_batch_test.rb
│ ├── clio_dev.rb
│ ├── clio_prod.rb
│ ├── clio_test.rb
│ └── staging.rb
├── donor_info.yml
├── environment.rb
├── environments
│ ├── clio_dev.rb
│ ├── clio_prod.rb
│ ├── clio_test.rb
│ ├── development.rb
│ ├── production.rb
│ ├── spectrum_prod_master.rb
│ └── test.rb
├── initializers
│ ├── aaa_load_app_config.rb
│ ├── application_controller_renderer.rb
│ ├── assets.rb
│ ├── backtrace_silencers.rb
│ ├── cookies_serializer.rb
│ ├── devise.rb
│ ├── facets_override.rb
│ ├── filter_parameter_logging.rb
│ ├── footnotes.rb
│ ├── google_analytics.rb
│ ├── google_api_client.rb
│ ├── has_options.rb
│ ├── inflections.rb
│ ├── load_local_subjects.rb
│ ├── mime_types.rb
│ ├── new_framework_defaults_5_1.rb
│ ├── rack_attack.rb
│ ├── recaptcha.rb
│ ├── secret_token.rb
│ ├── session_store.rb
│ ├── uptime.rb
│ └── wrap_parameters.rb
├── item_status_codes.yml
├── locales
│ ├── blacklight.en.yml
│ ├── devise.en.yml
│ └── en.yml
├── locations_fixture.yml
├── marc_display_fields.yml
├── newrelic.yml
├── offsite.yml
├── opac_searches_sorted.txt
├── order_status_codes.yml
├── permissions.yml
├── puma.rb
├── routes.rb
├── schedule.rb
├── searches.yml
├── solr
│ ├── README.txt
│ └── configsets
│ │ └── clio
│ │ └── conf
│ │ ├── lang
│ │ ├── contractions_ca.txt
│ │ ├── contractions_fr.txt
│ │ ├── contractions_ga.txt
│ │ ├── contractions_it.txt
│ │ ├── hyphenations_ga.txt
│ │ ├── stemdict_nl.txt
│ │ ├── stoptags_ja.txt
│ │ ├── stopwords_ar.txt
│ │ ├── stopwords_bg.txt
│ │ ├── stopwords_ca.txt
│ │ ├── stopwords_cz.txt
│ │ ├── stopwords_da.txt
│ │ ├── stopwords_de.txt
│ │ ├── stopwords_el.txt
│ │ ├── stopwords_en.txt
│ │ ├── stopwords_es.txt
│ │ ├── stopwords_eu.txt
│ │ ├── stopwords_fa.txt
│ │ ├── stopwords_fi.txt
│ │ ├── stopwords_fr.txt
│ │ ├── stopwords_ga.txt
│ │ ├── stopwords_gl.txt
│ │ ├── stopwords_hi.txt
│ │ ├── stopwords_hu.txt
│ │ ├── stopwords_hy.txt
│ │ ├── stopwords_id.txt
│ │ ├── stopwords_it.txt
│ │ ├── stopwords_ja.txt
│ │ ├── stopwords_lv.txt
│ │ ├── stopwords_nl.txt
│ │ ├── stopwords_no.txt
│ │ ├── stopwords_pt.txt
│ │ ├── stopwords_ro.txt
│ │ ├── stopwords_ru.txt
│ │ ├── stopwords_sv.txt
│ │ ├── stopwords_th.txt
│ │ ├── stopwords_tr.txt
│ │ └── userdict_ja.txt
│ │ ├── managed-schema
│ │ ├── mapping-apostropheish.txt
│ │ ├── params.json
│ │ ├── protwords.txt
│ │ ├── solrconfig.xml
│ │ ├── stopwords.txt
│ │ └── synonyms.txt
├── spring.rb
├── traject
│ ├── authorities.rb
│ └── bibliographic.rb
└── wet_ranges.yml
├── db
├── migrate
│ ├── 20090611201815_create_options.rb
│ ├── 20101130172511_create_locations.rb
│ ├── 20101213160031_create_libraries.rb
│ ├── 20101213191638_create_library_hours.rb
│ ├── 20110512152511_create_searches.rb
│ ├── 20110512152512_create_bookmarks.rb
│ ├── 20110512152513_remove_editable_fields_from_bookmarks.rb
│ ├── 20110512152514_add_user_types_to_bookmarks_searches.rb
│ ├── 20120131170432_add_sessions_table.rb
│ ├── 20120713135411_create_users.rb
│ ├── 20120716182701_add_devise_to_users.rb
│ ├── 20120718165239_add_password_salt.rb
│ ├── 20121113211955_create_item_alerts.rb
│ ├── 20130614173623_create_saved_lists.rb
│ ├── 20130614173638_create_saved_list_items.rb
│ ├── 20130702170157_create_versions.rb
│ ├── 20150218220036_add_location_code_to_locations.rb
│ ├── 20150304151755_change_length_of_category_to_12.rb
│ ├── 20150604161023_add_polymorphic_type_to_bookmarks.blacklight.rb
│ ├── 20160930143849_create_preferences.rb
│ ├── 20180101010101_library_code.rb
│ ├── 20180401010101_best_bets.rb
│ ├── 20181001010101_logs.rb
│ ├── 20181101010101_affils.rb
│ ├── 20190601010101_add_tags_to_best_bets.rb
│ ├── 20210101010101_create_local_subjects.rb
│ └── 20210201010101_create_simplye.rb
├── schema.rb
└── seeds.rb
├── doc
└── README_FOR_APP
├── lib
├── browse_support.rb
├── covid.rb
├── format_macro.rb
├── has_options.rb
├── hathi_macro.rb
├── holdings
│ ├── collection.rb
│ ├── item.rb
│ └── record.rb
├── monkey_patches.rb
├── nearby_on_shelf.rb
├── preference_support.rb
├── response_timer.rb
├── tasks
│ ├── .gitkeep
│ ├── authorities.rake
│ ├── bibliographic.rake
│ ├── foia.rake
│ ├── hathi.rake
│ ├── load_locations.rake
│ ├── recap.rake
│ ├── sessions.rake
│ ├── shared_support.rake
│ ├── simplye.rake
│ └── sync_hours.rake
└── translation_maps
│ ├── callnumber_full_map.properties
│ ├── callnumber_map.properties
│ ├── country_map.rb
│ ├── database_discipline_map.properties
│ ├── database_resource_type_map.properties
│ ├── language_map.properties
│ └── location_map.properties
├── public
├── 404.html
├── 422.html
├── 500.html
├── apple-touch-icon-114x114-precomposed.png
├── apple-touch-icon-120x120-precomposed.png
├── apple-touch-icon-120x120.png
├── apple-touch-icon-144x144-precomposed.png
├── apple-touch-icon-72x72-precomposed.png
├── apple-touch-icon-precomposed.png
├── apple-touch-icon.png
├── colors.css
├── demo.html
├── favicon.ico
├── googleb46478bf96590e15.html
├── img
│ └── cul-mob-topbanner_crown.png
├── r.html
├── sitemap.xml
├── static-icons
│ ├── available.png
│ ├── crown-bts-24x24.png
│ ├── default.png
│ ├── doc.png
│ ├── mp3.png
│ ├── mp4.png
│ ├── none.png
│ ├── pdf.png
│ ├── ppt.png
│ ├── some_available.png
│ ├── unavailable.png
│ ├── xls.png
│ └── xlsx.png
└── stylesheets
│ ├── .gitkeep
│ └── colorbox
│ ├── colorbox.css
│ └── images
│ ├── border.png
│ ├── controls.png
│ ├── internet_explorer
│ ├── borderBottomCenter.png
│ ├── borderBottomLeft.png
│ ├── borderBottomRight.png
│ ├── borderMiddleLeft.png
│ ├── borderMiddleRight.png
│ ├── borderTopCenter.png
│ ├── borderTopLeft.png
│ └── borderTopRight.png
│ ├── loading.gif
│ ├── loading_background.png
│ └── overlay.png
└── spec
├── controllers
├── application_controller_spec.rb
├── backend_controller_spec.rb
├── catalog_controller_spec.rb
├── google_appliance_controller_spec.rb
├── item_alerts_controller_spec.rb
├── locations_controller_spec.rb
├── preferences_controller_spec.rb
├── saved_lists_controller_spec.rb
└── spectrum_controller_spec.rb
├── factories
├── item_alert.rb
├── library_web_apis.rb
├── library_web_documents.rb
└── user.rb
├── features
├── academic_commons
│ ├── ac_dissertations_spec.rb
│ └── academic_commons_interface_spec.rb
├── archives
│ └── archives_interface_spec.rb
├── articles
│ ├── articles_advanced_search_spec.rb
│ ├── filter_settings_spec.rb
│ ├── pagination_links_spec.rb
│ └── summon_interface_spec.rb
├── catalog
│ ├── catalog_advanced_search_spec.rb
│ ├── catalog_interface_spec.rb
│ ├── linked_fields_spec.rb
│ ├── virtual_shelf_browse_spec.rb
│ └── worldcat_links_spec.rb
├── coins_encoding_for_zotero_spec.rb
├── databases
│ ├── databases_interface_spec.rb
│ └── highlighted_spec.rb
├── email_item_spec.rb
├── html_escape_spec.rb
├── invalid_urls_spec.rb
├── journals
│ └── journals_interface_spec.rb
├── law_support_spec.rb
├── libraries_website
│ ├── lweb_interface_spec.rb
│ └── pagination_links_spec.rb
├── library_hours_spec.rb
├── locations_spec.rb
├── menus_spec.rb
├── new_arrivals
│ └── new_arrivals_interface_spec.rb
├── prod_settings_spec.rb
├── quicksearch_spec.rb
├── saved_lists
│ └── saved_list_interface_spec.rb
├── search_boxes_cross_fill_spec.rb
├── source_sanity_check_spec.rb
└── voyager_api
│ ├── README.txt
│ ├── test_collection_output_spec.rb
│ ├── test_collection_spec.rb
│ └── test_record_spec.rb
├── fixtures
└── README.txt
├── helpers
├── display_helper_spec.rb
├── helper_exceptions_spec.rb
├── holdings_helper_spec.rb
└── item_alert_helper_spec.rb
├── models
├── search_engines
│ ├── google_appliance
│ │ └── basic_tests_spec.rb
│ ├── solr
│ │ └── basic_tests_spec.rb
│ └── summon
│ │ └── basic_tests_spec.rb
├── test_spec.rb
└── user_spec.rb
├── relevancy
├── anchored_spec.rb
├── author_searching_spec.rb
├── authorities_spec.rb
├── boosts_spec.rb
├── call_number_searching_spec.rb
├── format_spec.rb
├── isbn_spec.rb
├── misc_spec.rb
├── one-word-titles_spec.rb
├── quoting_spec.rb
├── sorting_spec.rb
├── test_spec.rb
└── tibetan_spec.rb
├── routing
└── item_alerts_routing_spec.rb
├── spec_helper.rb
└── support
├── database_cleaner.rb
├── devise.rb
├── feature_helpers.rb
├── mailer_macros.rb
├── matchers.rb
├── rspec_solr.rb
└── vcr_setup.rb
/.byebug_history:
--------------------------------------------------------------------------------
1 | quit
2 | where
3 | marc
4 | continue
5 | marc
6 | continue
7 | params[:forgiving]
8 | num_fields = directory.length / DIRECTORY_ENTRY_LENGTH
9 | raise MARC::Exception.new("invalid directory in record") if directory == nil
10 | directory = marc[LEADER_LENGTH..base_address-1]
11 | marc[LEADER_LENGTH..base_address-1]
12 | base_address = record.leader[12..16].to_i
13 | record.leader = marc[0..LEADER_LENGTH-1]
14 | LEADER_LENGTH
15 | record = Record.new()
16 | marc.force_encoding("binary")
17 | marc.respond_to?(:force_encoding)
18 | params[:external_encoding] = marc.encoding
19 | marc.encoding
20 | marc.respond_to?(:encoding)
21 | params.has_key?(:encoding)
22 |
--------------------------------------------------------------------------------
/.codeclimate.yml:
--------------------------------------------------------------------------------
1 | # Save as .codeclimate.yml (note leading .) in project root directory
2 | languages:
3 | Ruby: true
4 | JavaScript: true
5 | PHP: true
6 | Python: true
7 | # exclude_paths:
8 | # - "foo/bar.rb"
9 | - "app/assets/javascripts/bootstrap-datepicker.js"
10 |
--------------------------------------------------------------------------------
/.coveralls.yml:
--------------------------------------------------------------------------------
1 |
2 | service_name: travis-ci
3 |
4 | repo_token: RmHvC1EZQxk5InhQWE3mMLtWdZlL7P1dv
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | config/database.yml
2 | config/app_config.yml
3 | config/service_locations.yml
4 | config/solr.yml
5 | config/blacklight.yml
6 | config/cas.yml
7 | config/secrets.yml
8 | config/recapftp_rsa
9 | config/initializers/secret_token.rb
10 | config/*.sphinx.conf
11 | config/s3_credentials.yml
12 | config/initializers/computer_specific_config.rb
13 | *~
14 | *.cache
15 | *.log
16 | *.log.*
17 | *.pid
18 | tmp/**/*
19 | tmp/*
20 | *.sqlite3-journal
21 | private/**
22 | .DS_Store
23 | db/cstore/**
24 | db/sphinx/**
25 | doc/api
26 | doc/app
27 | doc/plugins
28 | doc/*.dot
29 | jetty/
30 | coverage/*
31 | db/*.sqlite3
32 | *.tmproj
33 | *.ruby-version*
34 | *.rvmrc*
35 | *.sw?
36 | .sass-cache/**/*
37 | public/clicktale
38 | public/assets
39 | spec/reports
40 | spec/examples.txt
41 | token.txt
42 |
43 | # Elastic Beanstalk Files
44 | .elasticbeanstalk/*
45 | !.elasticbeanstalk/*.cfg.yml
46 | !.elasticbeanstalk/*.global.yml
47 | TUNNELS
48 | EXAMPLES.txt
49 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/.gitmodules
--------------------------------------------------------------------------------
/.hooves:
--------------------------------------------------------------------------------
1 | worker_processes 5
2 |
--------------------------------------------------------------------------------
/.rspec:
--------------------------------------------------------------------------------
1 | --color --format documentation
2 |
--------------------------------------------------------------------------------
/.rubocop.yml:
--------------------------------------------------------------------------------
1 |
2 | Metrics/LineLength:
3 | Max: 200
4 |
5 | Style/NumericLiterals:
6 | MinDigits: 10
7 |
8 |
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | v9.5.13
2 |
--------------------------------------------------------------------------------
/app/assets/fonts/TrajanPro-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/fonts/TrajanPro-Bold.otf
--------------------------------------------------------------------------------
/app/assets/fonts/TrajanPro-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/fonts/TrajanPro-Regular.otf
--------------------------------------------------------------------------------
/app/assets/fonts/trajanpro-regular-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/fonts/trajanpro-regular-webfont.eot
--------------------------------------------------------------------------------
/app/assets/fonts/trajanpro-regular-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/fonts/trajanpro-regular-webfont.ttf
--------------------------------------------------------------------------------
/app/assets/fonts/trajanpro-regular-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/fonts/trajanpro-regular-webfont.woff
--------------------------------------------------------------------------------
/app/assets/images/QuestionMark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/QuestionMark.png
--------------------------------------------------------------------------------
/app/assets/images/TrajanPro-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/TrajanPro-Bold.otf
--------------------------------------------------------------------------------
/app/assets/images/TrajanPro-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/TrajanPro-Regular.otf
--------------------------------------------------------------------------------
/app/assets/images/ajax-indicator.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ajax-indicator.gif
--------------------------------------------------------------------------------
/app/assets/images/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ajax-loader.gif
--------------------------------------------------------------------------------
/app/assets/images/apple-touch-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/apple-touch-icon-144x144.png
--------------------------------------------------------------------------------
/app/assets/images/blacklight/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/blacklight/bg.png
--------------------------------------------------------------------------------
/app/assets/images/blacklight/border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/blacklight/border.png
--------------------------------------------------------------------------------
/app/assets/images/blacklight/bul_sq_gry.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/blacklight/bul_sq_gry.gif
--------------------------------------------------------------------------------
/app/assets/images/blacklight/checkmark.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/blacklight/checkmark.gif
--------------------------------------------------------------------------------
/app/assets/images/blacklight/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/blacklight/logo.png
--------------------------------------------------------------------------------
/app/assets/images/blacklight/magnifying_glass.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/blacklight/magnifying_glass.gif
--------------------------------------------------------------------------------
/app/assets/images/blacklight/remove.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/blacklight/remove.gif
--------------------------------------------------------------------------------
/app/assets/images/blacklight/separator.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/blacklight/separator.gif
--------------------------------------------------------------------------------
/app/assets/images/blacklight/start_over.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/blacklight/start_over.gif
--------------------------------------------------------------------------------
/app/assets/images/clio-beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/clio-beta.png
--------------------------------------------------------------------------------
/app/assets/images/clio-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/clio-logo.png
--------------------------------------------------------------------------------
/app/assets/images/clio-new-arrivals.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/clio-new-arrivals.png
--------------------------------------------------------------------------------
/app/assets/images/clio-spectrum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/clio-spectrum.png
--------------------------------------------------------------------------------
/app/assets/images/clio_beta.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/clio_beta.jpg
--------------------------------------------------------------------------------
/app/assets/images/clio_beta_logos_4a_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/clio_beta_logos_4a_5.png
--------------------------------------------------------------------------------
/app/assets/images/clio_beta_logos_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/clio_beta_logos_small.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/border.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/controls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/controls.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderBottomCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/internet_explorer/borderBottomCenter.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderBottomLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/internet_explorer/borderBottomLeft.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderBottomRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/internet_explorer/borderBottomRight.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderMiddleLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/internet_explorer/borderMiddleLeft.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderMiddleRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/internet_explorer/borderMiddleRight.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderTopCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/internet_explorer/borderTopCenter.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderTopLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/internet_explorer/borderTopLeft.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderTopRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/internet_explorer/borderTopRight.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/loading.gif
--------------------------------------------------------------------------------
/app/assets/images/colorbox/loading_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/loading_background.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/colorbox/overlay.png
--------------------------------------------------------------------------------
/app/assets/images/contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/contact.png
--------------------------------------------------------------------------------
/app/assets/images/contactable/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/contactable/ajax-loader.gif
--------------------------------------------------------------------------------
/app/assets/images/contactable/contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/contactable/contact.png
--------------------------------------------------------------------------------
/app/assets/images/ds_pointer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ds_pointer.png
--------------------------------------------------------------------------------
/app/assets/images/elink.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/elink.gif
--------------------------------------------------------------------------------
/app/assets/images/favicon-crown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/favicon-crown.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/format_icons/default.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/format_icons/doc.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/mp3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/format_icons/mp3.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/mp4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/format_icons/mp4.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/format_icons/pdf.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/ppt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/format_icons/ppt.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/xls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/format_icons/xls.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/xlsx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/format_icons/xlsx.png
--------------------------------------------------------------------------------
/app/assets/images/gb_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/gb_preview.png
--------------------------------------------------------------------------------
/app/assets/images/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/help.png
--------------------------------------------------------------------------------
/app/assets/images/help_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/help_button.png
--------------------------------------------------------------------------------
/app/assets/images/icons/24-book-blue-add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/24-book-blue-add.png
--------------------------------------------------------------------------------
/app/assets/images/icons/24-book-blue-remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/24-book-blue-remove.png
--------------------------------------------------------------------------------
/app/assets/images/icons/art-work.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/art-work.png
--------------------------------------------------------------------------------
/app/assets/images/icons/article.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/article.png
--------------------------------------------------------------------------------
/app/assets/images/icons/available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/available.png
--------------------------------------------------------------------------------
/app/assets/images/icons/book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/book.png
--------------------------------------------------------------------------------
/app/assets/images/icons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/cancel.png
--------------------------------------------------------------------------------
/app/assets/images/icons/cdc-burst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/cdc-burst.png
--------------------------------------------------------------------------------
/app/assets/images/icons/cdc1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/cdc1.png
--------------------------------------------------------------------------------
/app/assets/images/icons/checked_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/checked_out.png
--------------------------------------------------------------------------------
/app/assets/images/icons/computer-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/computer-file.png
--------------------------------------------------------------------------------
/app/assets/images/icons/conference.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/conference.png
--------------------------------------------------------------------------------
/app/assets/images/icons/database.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/database.png
--------------------------------------------------------------------------------
/app/assets/images/icons/ebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/ebook.png
--------------------------------------------------------------------------------
/app/assets/images/icons/facet_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/facet_cancel.png
--------------------------------------------------------------------------------
/app/assets/images/icons/facet_minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/facet_minus.png
--------------------------------------------------------------------------------
/app/assets/images/icons/facet_plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/facet_plus.png
--------------------------------------------------------------------------------
/app/assets/images/icons/facet_x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/facet_x.png
--------------------------------------------------------------------------------
/app/assets/images/icons/govdoc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/govdoc.png
--------------------------------------------------------------------------------
/app/assets/images/icons/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/image.png
--------------------------------------------------------------------------------
/app/assets/images/icons/journal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/journal.png
--------------------------------------------------------------------------------
/app/assets/images/icons/link-old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/link-old.png
--------------------------------------------------------------------------------
/app/assets/images/icons/link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/link.png
--------------------------------------------------------------------------------
/app/assets/images/icons/manuscript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/manuscript.png
--------------------------------------------------------------------------------
/app/assets/images/icons/map-or-globe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/map-or-globe.png
--------------------------------------------------------------------------------
/app/assets/images/icons/microform.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/microform.png
--------------------------------------------------------------------------------
/app/assets/images/icons/musical-recording.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/musical-recording.png
--------------------------------------------------------------------------------
/app/assets/images/icons/musical-score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/musical-score.png
--------------------------------------------------------------------------------
/app/assets/images/icons/newspaper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/newspaper.png
--------------------------------------------------------------------------------
/app/assets/images/icons/non-musical-recording.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/non-musical-recording.png
--------------------------------------------------------------------------------
/app/assets/images/icons/non_circulating.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/non_circulating.png
--------------------------------------------------------------------------------
/app/assets/images/icons/noncirc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/noncirc.png
--------------------------------------------------------------------------------
/app/assets/images/icons/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/none.png
--------------------------------------------------------------------------------
/app/assets/images/icons/none_yellow_question_mark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/none_yellow_question_mark.png
--------------------------------------------------------------------------------
/app/assets/images/icons/not_available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/not_available.png
--------------------------------------------------------------------------------
/app/assets/images/icons/online.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/online.png
--------------------------------------------------------------------------------
/app/assets/images/icons/page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/page.png
--------------------------------------------------------------------------------
/app/assets/images/icons/serial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/serial.png
--------------------------------------------------------------------------------
/app/assets/images/icons/some_available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/some_available.png
--------------------------------------------------------------------------------
/app/assets/images/icons/spacer12x12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/spacer12x12.png
--------------------------------------------------------------------------------
/app/assets/images/icons/stock_inbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/stock_inbox.png
--------------------------------------------------------------------------------
/app/assets/images/icons/stock_spam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/stock_spam.png
--------------------------------------------------------------------------------
/app/assets/images/icons/thesis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/thesis.png
--------------------------------------------------------------------------------
/app/assets/images/icons/unavailable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/unavailable.png
--------------------------------------------------------------------------------
/app/assets/images/icons/unknown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/unknown.png
--------------------------------------------------------------------------------
/app/assets/images/icons/video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/video.png
--------------------------------------------------------------------------------
/app/assets/images/icons/volume.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/icons/volume.png
--------------------------------------------------------------------------------
/app/assets/images/information_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/information_icon.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/bg_stripes.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/bg_stripes.gif
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/clio_beta_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/clio_beta_logo.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/clio_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/clio_logo.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/crown-bts-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/crown-bts-24x24.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/cul-banner-txt-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/cul-banner-txt-02.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/cul-banner-txt-services.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/cul-banner-txt-services.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/cul-banner-txt-simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/cul-banner-txt-simple.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/cul-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/cul-banner-txt.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/culblog-icon-sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/culblog-icon-sq.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/engineering-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/engineering-banner-txt.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/facebook-icon-sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/facebook-icon-sq.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/foursquare-icon-sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/foursquare-icon-sq.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/glyphicons-halflings.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/math-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/math-banner-txt.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/math-science-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/math-science-banner-txt.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/request-it-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/request-it-banner-txt.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/rss-icon-sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/rss-icon-sq.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/search-delivery-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/search-delivery-banner-txt.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/twitter-icon-sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/ldpd-toolkit/twitter-icon-sq.png
--------------------------------------------------------------------------------
/app/assets/images/level-blue.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/level-blue.gif
--------------------------------------------------------------------------------
/app/assets/images/level-green.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/level-green.gif
--------------------------------------------------------------------------------
/app/assets/images/level-orange.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/level-orange.gif
--------------------------------------------------------------------------------
/app/assets/images/level-red.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/level-red.gif
--------------------------------------------------------------------------------
/app/assets/images/orange-clock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/orange-clock.png
--------------------------------------------------------------------------------
/app/assets/images/rails.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/rails.png
--------------------------------------------------------------------------------
/app/assets/images/rss-feed-icon-14x14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/rss-feed-icon-14x14.png
--------------------------------------------------------------------------------
/app/assets/images/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/search.png
--------------------------------------------------------------------------------
/app/assets/images/select-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/select-arrow.png
--------------------------------------------------------------------------------
/app/assets/images/spacer-.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/spacer-.png
--------------------------------------------------------------------------------
/app/assets/images/spacer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/spacer.png
--------------------------------------------------------------------------------
/app/assets/images/start_over.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/start_over.gif
--------------------------------------------------------------------------------
/app/assets/images/warning-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/warning-icon.png
--------------------------------------------------------------------------------
/app/assets/images/warning_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/assets/images/warning_icon.png
--------------------------------------------------------------------------------
/app/assets/javascripts/advanced.js.coffee:
--------------------------------------------------------------------------------
1 |
2 |
3 | $ ->
4 | # Set hide/show state of any .search_box on page load
5 | # (although this should be done already on render)
6 | $('.search_box.selected').show()
7 | $('.search_box').not('.selected').hide()
8 |
9 | # And, listen to the toggle link to flip visibility
10 | $('.advanced_search_toggle').click ->
11 | parent = $(this).parents('.search_boxes')
12 | parent.find('.advanced_search .search_box').toggle()
13 | parent.find('.basic_search .search_box').toggle()
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/assets/javascripts/async-search.js.coffee:
--------------------------------------------------------------------------------
1 | $ ->
2 |
3 | $('.result_set.async_result_set').each ->
4 | result_set = $(this)
5 | url = result_set.attr('data-result-set')
6 | $.get(url, (data) ->
7 | result_set.html(data)
8 | # re-activate popovers on the re-written html:
9 | $("a[rel='popover']").popover()
10 | async_lookup_item_details(result_set)
11 | async_fill_in_hit_count(result_set)
12 | )
13 |
14 |
--------------------------------------------------------------------------------
/app/assets/javascripts/dropdown_select.js.coffee:
--------------------------------------------------------------------------------
1 |
2 | # "Call the dropdowns via JavaScript" - what does this mean?
3 | # http://getbootstrap.com/2.3.2/javascript.html#dropdowns
4 | $('.dropdown-toggle').dropdown()
5 |
6 | # remove Bootstrap-Dropdown-Menu-as-Select-Tag
7 | # $(document).ready ->
8 | # $('.dropdown_select_tag').each (index, container) ->
9 | # $(container).children('select').hide()
10 | # $(container).children('.dropdown-toggle').show()
11 |
--------------------------------------------------------------------------------
/app/assets/javascripts/ie_warnings.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | // alert("testing AAA")
4 |
5 | if ( navigator.userAgent.match(/MSIE ([0-9]+)\./) ) {
6 |
7 | if (RegExp.$1 <= 9) {
8 | // alert("old browser: MSIE " + RegExp.$1);
9 |
10 | firefox = 'Firefox'
11 | chrome = 'Chrome'
12 | safari = 'Safari'
13 | msie = 'Internet Explorer (IE) 10'
14 |
15 | $('#outer-container').prepend('
Warning: Your browser is not fully supported. Please use the latest version of one of our fully supported browsers: ' + firefox + ', ' + chrome + ', ' + safari + ', or ' + msie + '. IE 9 is not fully supported and will only offer basic functionality.
');
16 | }
17 |
18 | }
19 |
20 | }); //ready
21 |
22 |
--------------------------------------------------------------------------------
/app/assets/javascripts/item_actions.js.coffee:
--------------------------------------------------------------------------------
1 |
2 | @OpenTextMessage = (bibid) ->
3 | url = 'http://www.columbia.edu/cgi-bin/cul/forms/text?' + bibid
4 | OpenWindow(url)
5 |
6 | @OpenInprocessRequest = (bibid) ->
7 | url = 'https://www1.columbia.edu/sec-cgi-bin/cul/forms/inprocess?' + bibid
8 | OpenWindow(url)
9 |
10 | @OpenSearchRequest = (bibid) ->
11 | url = 'https://www1.columbia.edu/sec-cgi-bin/cul/forms/search?' + bibid
12 | OpenWindow(url)
13 |
14 | # @OpenPrecatRequest = (bibid) ->
15 | # url = 'https://www1.columbia.edu/sec-cgi-bin/cul/forms/precat?' + bibid
16 | # OpenWindow(url)
17 |
18 | @OpenItemFeedback = (bibid) ->
19 | url = 'https://www1.columbia.edu/sec-cgi-bin/cul/forms/itemfeedback?' + bibid
20 | OpenWindow(url)
21 |
22 | @OpenURLinWindow = (bibid, url) ->
23 | full_url = url + bibid
24 | OpenWindow(full_url)
25 |
26 | @OpenWindow = (url) ->
27 | window.open(url,'','left=200,top=200,width=650,height=700,scrollbars')
28 | return false
29 |
--------------------------------------------------------------------------------
/app/assets/javascripts/location.js:
--------------------------------------------------------------------------------
1 | // This is a manifest file for the JS that's specific
2 | // to the locations pages. This includes Underscore
3 | // and code for Google Maps integration
4 |
5 | // based on:
6 | // http://www.foraker.com/rails-asset-pipeline-handling-of-css-and-js/
7 |
8 | //= require_tree ./location
9 |
10 | // This one comes from the gmaps4rails gem
11 | //= require gmaps/google
12 |
13 |
--------------------------------------------------------------------------------
/app/assets/javascripts/log.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 | $('.log-datatable').DataTable( {
3 | pageLength: 100,
4 | lengthMenu: [ [20, 50, 100, -1], [20, 50, 100, "All"] ],
5 | dom: '<"top"flip>',
6 | 'aaSorting': []
7 | } );
8 |
9 | } );
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/assets/javascripts/matomo.js:
--------------------------------------------------------------------------------
1 | // Matomo - NEXT-1862
2 | var _paq = window._paq = window._paq || [];
3 | /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
4 | _paq.push(['trackPageView']);
5 | _paq.push(['enableLinkTracking']);
6 | (function() {
7 | // Matomo only in prod - there is no SiteId for testing
8 | if ($("body").data('environment') == 'clio_prod') {
9 | var u="https://columbia-libraries.matomo.cloud/";
10 | _paq.push(['setTrackerUrl', u+'matomo.php']);
11 | _paq.push(['setSiteId', '9']);
12 | var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
13 | g.async=true;
14 | g.src='//cdn.matomo.cloud/columbia-libraries.matomo.cloud/matomo.js';
15 | s.parentNode.insertBefore(g,s);
16 | }
17 | })();
18 |
--------------------------------------------------------------------------------
/app/assets/javascripts/modal_manager_override.js.coffee:
--------------------------------------------------------------------------------
1 | # Unused?
2 |
3 | # $ ->
4 | # $('a[data-toggle="modal"]').click ->
5 | # $('body').addClass('page-overflow')
6 |
--------------------------------------------------------------------------------
/app/assets/javascripts/preferences.coffee:
--------------------------------------------------------------------------------
1 | # Place all the behaviors and hooks related to the matching controller here.
2 | # All this logic will automatically be available in application.js.
3 | # You can use CoffeeScript in this file: http://coffeescript.org/
4 |
5 | $ ->
6 | $('#bento_left, #bento_right, #bento_inactive').sortable
7 | connectWith: '.bento_list'
8 |
9 | $('#serialize').click ->
10 | left_sources = $('#bento_left').sortable("toArray")
11 | left_counts = []
12 | for source in left_sources
13 | id = "#" + source + "_count"
14 | param = source + ":" + $(id).val()
15 | left_counts.push(param)
16 | right_counts = []
17 |
18 | right_sources = $('#bento_right').sortable("toArray")
19 | for source in right_sources
20 | id = "#" + source + "_count"
21 | param = source + ":" + $(id).val()
22 | right_counts.push(param)
23 |
24 | $.post $(this).data("bento-url"), {bento_left: left_counts, bento_right: right_counts}
--------------------------------------------------------------------------------
/app/assets/javascripts/resolver.js:
--------------------------------------------------------------------------------
1 |
2 | // NEXT-1852 - new resolver links in CLIO test
3 |
4 | if (resolver_rewrite_javascript) {
5 |
6 | startTime = new Date();
7 |
8 | var anchors = document.getElementsByTagName('a');
9 |
10 | for (var i = 0; i < anchors.length; i++) {
11 | url = anchors[i].href
12 |
13 | old_resolver_url = 'http://www.columbia.edu/cgi-bin/cul/resolve?';
14 | new_resolver_url = 'https://resolver.library.columbia.edu/';
15 |
16 | //console.log("found:" + url)
17 | if (url.startsWith(old_resolver_url)) {
18 | console.log("replacing:" + url)
19 | new_url = url.replace(old_resolver_url, new_resolver_url)
20 | anchors[i].href = new_url;
21 | }
22 |
23 | }
24 |
25 |
26 | endTime = new Date();
27 | timeElapsed = endTime - startTime;
28 |
29 | console.log("Time Elapsed (s):" + (timeElapsed/1000) );
30 |
31 | }
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/assets/javascripts/xls.js:
--------------------------------------------------------------------------------
1 |
2 | $('#xls_download').click(function(event) {
3 | setTimeout(function() { window.history.back() }, 500)
4 | });
5 |
6 |
7 | $('#xlsx_download').click(function(event) {
8 | setTimeout(function() { window.history.back() }, 500)
9 | setTimeout(function() { window.focus() }, 1000)
10 | });
11 |
12 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/a_local_application.sass:
--------------------------------------------------------------------------------
1 |
2 | #appliedParams
3 |
4 | h3.label
5 | display: inline
6 | padding-right: .5em
7 |
8 | #intro-text
9 | min-height: 250px
10 |
11 | .closed_icon
12 | vertical-align: bottom
13 |
14 |
15 | //.change_view
16 | // float: left
17 |
18 | #footnotes_debug
19 | background: white
20 |
21 | #startOverLink
22 | padding-left: 1em
23 | padding-top: 5px
24 | float: right
25 |
26 |
27 | #show_previousNextDocument
28 | .previous_next
29 | margin-top: .5em
30 | .back_to_catalog
31 | float: right
32 |
33 | a.folder_link_submit
34 | border-bottom: none
35 |
36 | span.folder_link_text
37 | vertical-align: 20%
38 | padding-left: 2px
39 | border-bottom: 1px dotted #AAA
40 |
41 | a#feedLink
42 | display: inline
43 | text-decoration: none
44 | border-bottom: none
45 |
46 |
47 | img
48 | position: static
49 | padding-left: 3px
50 |
51 |
52 |
53 | h1.site_title
54 | margin: 0
55 | height: 26px
56 | width: 175px
57 |
58 |
59 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/advanced_search.sass:
--------------------------------------------------------------------------------
1 | /* Classes used for styling our custom components on the search results page */
2 |
3 |
4 | .inclusive_or .operator
5 | margin-right: 1em
6 |
7 |
8 | .inclusive_or .appliedFilter
9 | background-color: #F0F0F0
10 |
11 |
12 | #appliedParams .inclusive_or .operator
13 | font-weight: bold
14 | color: #555555
15 | font-size: 108%
16 |
17 |
18 | #facets .advanced_facet_limit ul
19 | border-bottom: none
20 | padding-bottom: 0
21 |
22 |
23 |
24 | .facet_limit .inclusive_or h4
25 | margin-bottom: 0.5em
26 |
27 |
28 | .facet_limit .inclusive_or li
29 | margin-left: 1em
30 |
31 |
32 | .search .advanced_search
33 | font-size: 83.33%
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/best_bets.sass:
--------------------------------------------------------------------------------
1 |
2 |
3 | /* Styles related to Best Bets */
4 |
5 |
6 | .best-bets-snippet .best-bets-title
7 | font-weight: bold
8 |
9 | .best-bets-snippet.tt-suggestion
10 | padding-left: 2em
11 | text-indent: -1em
12 | font-size: 100%
13 | /* font-size: 95% */
14 |
15 |
16 | .tt-hint
17 | display: none
18 |
19 | @media (min-width: 400px)
20 | .twitter-typeahead
21 | width: 100% !important
22 |
23 | @media (min-width: 800px)
24 | .twitter-typeahead
25 | width: auto !important
26 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/debug.sass:
--------------------------------------------------------------------------------
1 |
2 | .debug_instruction
3 | padding: 1em
4 | background: #f6f6f6
5 |
6 | .debug_entries
7 | padding-top: 1em
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/donor_info_icon.sass:
--------------------------------------------------------------------------------
1 | .donor_info_icon
2 | padding: 3px 4px 3px 28px
3 | margin-right: 3px
4 | background-image: url(/static-icons/crown-bts-24x24.png)
5 | background-repeat: no-repeat
6 | background-size: 24px 24px
7 | background-color: #779bc3
8 | border-radius: 1px
9 | border: 1px solid #779bc3
10 | background-position: 0
11 | color: white
12 | height: 2.2em
13 | font-size: 104%
14 | font-style: normal
15 | line-height: 1.3
16 |
17 | .donor_info, .donor_info_button, .donor_info_message
18 | display: inline-block
19 |
20 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/gmaps4rails.sass:
--------------------------------------------------------------------------------
1 | .map_container
2 | padding: 6px
3 | border-width: 1px
4 | border-style: solid
5 | border-color: #ccc #ccc #999 #ccc
6 | -webkit-box-shadow: rgba(64, 64, 64, 0.5) 0 2px 5px
7 | -moz-box-shadow: rgba(64, 64, 64, 0.5) 0 2px 5px
8 | box-shadow: rgba(64, 64, 64, 0.1) 0 2px 5px
9 | width: 800px
10 |
11 |
12 | .container.infowindow
13 | max-width: 400px
14 | background-color: #FFFFFF
15 |
16 |
17 | .gmaps4rails_map
18 | width: 800px
19 | height: 400px
20 |
21 |
22 | .bing_map
23 | position: absolute
24 | top: 20
25 | left: 10
26 | width: 400px
27 | height: 400px
28 | border: #555555 2px solid
29 |
30 | // The gmaps4rails gem sets max-width to none for ALL images.
31 | // Undo this for any images of class img-responsive to allow
32 | // bootstrap's reponsiveness to work
33 | .gm-style img.img-responsive
34 | max-width: 100%
35 |
36 |
37 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/item_alerts.sass:
--------------------------------------------------------------------------------
1 |
2 | #show_alert_management
3 | +clearfix
4 | margin-top: 2em
5 | margin-bottom: 2em
6 |
7 |
8 | .edit_form
9 | background-color: #eee
10 | width: 50%
11 | padding: 1em
12 | display: none
13 | .message_column
14 | width: 30%
15 |
16 | .action_column
17 | width: 12em
18 | vertical-align: middle
19 |
20 | .control-note
21 | font-size: 0.9em
22 | color: #666
23 | padding-bottom: 1em
24 |
25 | .alert_alert
26 | font-weight: bold
27 | color: #F00
28 | padding-bottom: 1em
29 | margin-left: 0px !important
30 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/libraryh3lp.sass:
--------------------------------------------------------------------------------
1 |
2 | .libraryh3lp
3 | float: right
4 | //display: none
5 |
6 | #askalibrarianchat
7 | width: 320px
8 | height: 200px
9 | border: 2px ridge black
10 | max-width: 98%
11 | border-radius: 5px
12 | margin-left: 20px
13 | margin-right: 20px
14 |
15 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/log.sass:
--------------------------------------------------------------------------------
1 |
2 |
3 | // Our Log tables may have very long un-spaced text (e.g., referrer)
4 | // Break lines within words, and don't expand to fit very long strings
5 | table.log-datatable
6 | word-wrap: break-word
7 | table-layout: fixed
8 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/preferences.sass:
--------------------------------------------------------------------------------
1 | // Place all the styles related to the Preferences controller here.
2 | // They will automatically be included in application.css.
3 | // You can use Sass (SCSS) here: http://sass-lang.com/
4 |
5 | .bento_list
6 | list-style-type: none
7 | margin: 0
8 | float: left
9 | margin-right: 10px
10 | background: #eee
11 | padding: 5px
12 | min-width: 150px
13 | min-height: 20px
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/redesign.sass:
--------------------------------------------------------------------------------
1 | /* CLIO styles via er2576
2 | * temporary straight-css overrides (to be loaded last) for redesign until rewritten in SASS
3 | */
4 |
5 | // 3/15 - Do we have Trajan Pro? I don't see it in the CLIO codebase.
6 | //@font-face
7 | // font-family: 'Trajan Pro'
8 | // src: asset_url("TrajanPro-Regular.otf", images)
9 | // font-weight: normal
10 | // font-style: normal
11 | //
12 | //
13 | //@font-face
14 | // font-family: 'Trajan Pro Bold'
15 | // src: asset_url("TrajanPro-Bold.otf", images)
16 | // font-weight: bold
17 | // font-style: normal
18 |
19 |
20 |
21 | .site_title a
22 | width: auto
23 |
24 |
25 | #sources
26 | background: transparent
27 | height: 100%
28 | margin-right: 0px!important
29 |
30 |
31 | .two_lopsided
32 | padding: 0 10px
33 | float: none
34 |
35 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/saved_lists.sass:
--------------------------------------------------------------------------------
1 | // Place all the styles related to the Lists controller here.
2 | // They will automatically be included in application.css.
3 | // You can use Sass (SCSS) here: http://sass-lang.com/
4 |
5 | //.saved_list_header
6 | // *
7 | // padding-left: 1em
8 | // //padding-right: 1em
9 | //
10 |
11 |
12 | #documents.saved_list_documents
13 | .document
14 | font-size: 12px
15 | .title
16 | font-size: 1.1em
17 | font-weight: bold
18 | padding-bottom: .5em
19 | padding-top: .5em
20 |
21 |
22 | .saved_list_list
23 | padding-bottom: 0.5em
24 |
25 | .no-gutter > [class*='col-']
26 | padding-right: 0px
27 | padding-left: 0px
28 |
--------------------------------------------------------------------------------
/app/controllers/local_subject_controller.rb:
--------------------------------------------------------------------------------
1 | class LocalSubjectsController < ApplicationController
2 | end
3 |
--------------------------------------------------------------------------------
/app/controllers/search_history_controller.rb:
--------------------------------------------------------------------------------
1 | class SearchHistoryController < ApplicationController
2 | include Blacklight::SearchHistory
3 |
4 | helper BlacklightRangeLimit::ViewHelperOverride
5 | helper RangeLimitHelper
6 | end
7 |
--------------------------------------------------------------------------------
/app/controllers/users/omniauth_callbacks_controller.rb:
--------------------------------------------------------------------------------
1 | class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
2 |
3 | include Cul::Omniauth::Callbacks
4 |
5 | def new_session_path(scope)
6 | new_user_session_path # this accomodates Users namespace of the controller
7 | end
8 |
9 | def affiliations(user, affils)
10 | return unless user
11 | user.affils = affils.sort
12 | end
13 |
14 | end
15 |
--------------------------------------------------------------------------------
/app/controllers/users/sessions_controller.rb:
--------------------------------------------------------------------------------
1 | class Users::SessionsController < Devise::SessionsController
2 |
3 | def new_session_path(scope)
4 | new_user_session_path # this accomodates Users namespace of the controller
5 | end
6 |
7 | def omniauth_provider_key
8 | # there is support for :wind, :cas, and :saml in Cul::Omniauth
9 | end
10 |
11 | # (Without this, visit /users/auth/saml explicitly)
12 | # GET /resource/sign_in
13 | def new
14 | redirect_to user_saml_omniauth_authorize_path
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/app/helpers/preferences_helper.rb:
--------------------------------------------------------------------------------
1 | module PreferencesHelper
2 | end
3 |
--------------------------------------------------------------------------------
/app/helpers/saved_lists_helper.rb:
--------------------------------------------------------------------------------
1 | module SavedListsHelper
2 | def get_full_url(list)
3 | root_url.sub(/\/$/, '') + list.url
4 | end
5 |
6 | def get_permissions_label(permissions)
7 | case permissions
8 | when 'private'
9 | html = "private"
10 | when 'public'
11 | html = "public"
12 | else
13 | raise "get_permissions_label: unexpected value: #{permission}"
14 | end
15 | html.html_safe
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/app/mailers/application_mailer.rb:
--------------------------------------------------------------------------------
1 | class ApplicationMailer < ActionMailer::Base
2 | default from: 'from@example.com'
3 | layout 'mailer'
4 | end
5 |
--------------------------------------------------------------------------------
/app/mailers/rake_mailer.rb:
--------------------------------------------------------------------------------
1 | class RakeMailer < ApplicationMailer
2 | default from: 'CLIO '
3 |
4 | def rake_mail(params)
5 | mail(params)
6 | end
7 |
8 | end
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/models/ability.rb:
--------------------------------------------------------------------------------
1 | class Ability
2 | include CanCan::Ability
3 |
4 | def initialize(user)
5 | user ||= User.new
6 |
7 | can :manage, ItemAlert if user.has_role?('item_alerts', 'manage')
8 |
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/app/models/application_record.rb:
--------------------------------------------------------------------------------
1 | class ApplicationRecord < ActiveRecord::Base
2 | self.abstract_class = true
3 | end
4 |
--------------------------------------------------------------------------------
/app/models/best_bet.rb:
--------------------------------------------------------------------------------
1 | class BestBet < ApplicationRecord
2 | end
3 |
--------------------------------------------------------------------------------
/app/models/item_alert.rb:
--------------------------------------------------------------------------------
1 | class ItemAlert < ApplicationRecord
2 | belongs_to :author, class_name: 'User', foreign_key: 'author_id'
3 |
4 | # remove for Rails 4
5 | # attr_accessible :source, :item_key, :author_id, :alert_type,
6 | # :start_date, :end_date, :message
7 |
8 | validates :author_id, presence: true
9 | validates :message, presence: true
10 | validates :source, presence: true
11 | validates :item_key, presence: true
12 |
13 | ALERT_TYPES = {
14 | 'access_requirements' => 'Access Requirements',
15 | 'alert' => 'Alert',
16 | # 'alternate_connect' => 'Alternate Connect',
17 | # 'elink_enabled' => 'eLink Enabled',
18 | # 'related_resources' => 'Related Resources'
19 | }.freeze
20 |
21 | def active?
22 | # puts "==== start_date=#{start_date} end_date=#{end_date} DateTime.now=#{DateTime.now}"
23 | (start_date.nil? || start_date < DateTime.now) &&
24 | (end_date.nil? || end_date > DateTime.now)
25 | end
26 | end
27 |
--------------------------------------------------------------------------------
/app/models/library.rb:
--------------------------------------------------------------------------------
1 | # class Library < ApplicationRecord
2 | # validates_uniqueness_of :hours_db_code
3 | # has_many :hours, class_name: 'LibraryHours', dependent: :destroy
4 | #
5 | # def hours_for_range(startdate, enddate)
6 | # # hours.find(:all, conditions: ['library_hours.date BETWEEN ? and ?', startdate.to_date, enddate.to_date]).sort { |x, y| x.date <=> y.date }
7 | # hours.where('library_hours.date BETWEEN ? and ?', startdate.to_date, enddate.to_date).sort { |x, y| x.date <=> y.date }
8 | # end
9 | #
10 | # # def is_open?(check_at = Datetime.now)
11 | # # hours_res = hours.find_by_date(check_at.to_date)
12 | # #
13 | # # return false if hours_res.nil? || hours_res.opens.nil?
14 | # # hours_res ? (hours_res.opens <= check_at && check_at <= hours_res.closes) : false
15 | # #
16 | # # end
17 | # end
18 |
--------------------------------------------------------------------------------
/app/models/library_web/document.rb:
--------------------------------------------------------------------------------
1 | class LibraryWeb::Document
2 | attr_accessor :url, :title, :summary, :mime
3 |
4 | def initialize(xml_node = nil)
5 | if xml_node
6 |
7 | content_or_nil = ->(node) { node ? node.content : nil }
8 |
9 | @url = content_or_nil.call(xml_node.at_css('UE'))
10 | @title = content_or_nil.call(xml_node.at_css('T'))
11 | @summary = content_or_nil.call(xml_node.at_css('S'))
12 | @mime = content_or_nil.call(xml_node.attribute('MIME'))
13 |
14 | end
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/app/models/local_subject.rb:
--------------------------------------------------------------------------------
1 | class LocalSubject < ApplicationRecord
2 | end
3 |
--------------------------------------------------------------------------------
/app/models/log.rb:
--------------------------------------------------------------------------------
1 | class Log < ApplicationRecord
2 | end
3 |
--------------------------------------------------------------------------------
/app/models/lweb_document.rb:
--------------------------------------------------------------------------------
1 | class LwebDocument
2 | attr_accessor :url, :title, :summary, :mime
3 |
4 | def initialize(item = nil)
5 | if item
6 |
7 | # content_or_nil = lambda { |node| node ? node.content : nil }
8 | # @url = content_or_nil.call(xml_node.at_css('UE'))
9 | # @title = content_or_nil.call(xml_node.at_css('T'))
10 | # @summary = content_or_nil.call(xml_node.at_css('S'))
11 | # @mime = content_or_nil.call(xml_node.attribute('MIME'))
12 |
13 | @url = item.link
14 | @title = item.title
15 | @summary = item.html_snippet
16 | @mime = item.mime
17 |
18 | end
19 | end
20 | end
21 |
--------------------------------------------------------------------------------
/app/models/option.rb:
--------------------------------------------------------------------------------
1 | class Option < ApplicationRecord
2 | acts_as_option
3 | end
4 |
--------------------------------------------------------------------------------
/app/models/preference.rb:
--------------------------------------------------------------------------------
1 | class Preference < ApplicationRecord
2 | validates :login, uniqueness: true, presence: true
3 | validates :settings, presence: true
4 | end
5 |
--------------------------------------------------------------------------------
/app/models/saved_list_item.rb:
--------------------------------------------------------------------------------
1 | class SavedListItem < ApplicationRecord
2 | # attr_accessible :item_key, :saved_list_id, :sort_order
3 | belongs_to :saved_list
4 | # has_paper_trail
5 | end
6 |
--------------------------------------------------------------------------------
/app/models/simplye_link.rb:
--------------------------------------------------------------------------------
1 | class SimplyeLink < ApplicationRecord
2 | end
3 |
--------------------------------------------------------------------------------
/app/views/_ask_a_librarian.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# NEXT-956 - Show "Ask a Librarian" chat box when a search has no hits
3 |
4 | / LibraryH3lp iFrame Widget
5 |
6 | - baseURL ='https://libraryh3lp.com/chat/askalibrariancolumbia@chat.libraryh3lp.com?skin=20173&theme=gtalk&identity=librarian'
7 |
8 | -# INTERFERES WITH CAPYBARA TESTING?
9 |
10 | .libraryh3lp{:style => 'display:none', :jid => "askalibrariancolumbia@chat.libraryh3lp.com"}
11 | %iframe#askalibrarianchat{:src => "#{baseURL}&title=C+U+-+Ask+A+Librarian", :frameborder => '1'}
12 |
13 | .libraryh3lp{:style => 'display:none'}
14 | %iframe#askalibrarianchat{:src => "#{baseURL}&title=We+are+offline", :frameborder => '1'}
15 |
16 | -# Only bring in the JavaScript from libraryh3lp.com when the widget is rendered
17 | - content_for :jstemplates do
18 | %script{:type => "text/javascript",
19 | :src => "https://libraryh3lp.com/js/libraryh3lp.js?multi"}
20 |
21 |
--------------------------------------------------------------------------------
/app/views/_async_setting.html.haml:
--------------------------------------------------------------------------------
1 | -# .async_options
2 | -# - if @action_has_async
3 | -# - if session[:async_off]
4 | -# .async_change.turn_async_on
5 | -# You have loading results dynamically turned off.
6 | -# Click
7 | -# = link_to "here", request.fullpath.gsub(/(&|\?)async_(on|off)=true/,'') + "&async_on=true"
8 | -# to turn it back on.
9 | -# - else
10 | -# .async_change.turn_async_off.hidden
11 | -# This page attempts to load results dynamically. If this is not working.
12 | -# Click
13 | -# = link_to "here", request.fullpath.gsub(/(&|\?)async_(on|off)=true/,'') + "&async_off=true"
14 | -# to turn it off.
15 |
--------------------------------------------------------------------------------
/app/views/_authority_variants.html.haml:
--------------------------------------------------------------------------------
1 | %h4= "Authority Variants"
2 |
3 | #authority_variants
4 |
5 | - none = '-- none --'
6 | - author_variants = Array(document['author_variant_txt']).join.present? ? document['author_variant_txt'] : none
7 | - subject_variants = Array(document['subject_variant_txt']).join.present? ? document['subject_variant_txt'] : none
8 | - geo_variants = Array(document['geo_variant_txt']).join.present? ? document['geo_variant_txt'] : none
9 | - last_variant_update = document['authorities_dt'].present? ? Time.zone.parse(document['authorities_dt']).strftime("%F %l:%M%P") : 'never'
10 |
11 | = add_row('Author Variants', author_variants)
12 | = add_row('Subject Variants', subject_variants)
13 | = add_row('Geographic Variants', geo_variants)
14 | = add_row('Last Variant Update', last_variant_update)
15 |
16 |
--------------------------------------------------------------------------------
/app/views/_coins.html.haml:
--------------------------------------------------------------------------------
1 | - cache("coins_#{document.cache_key}") do
2 | %span.coins_wrapper
3 | / COinS
4 | %span.Z3988{ title: catalog_to_openurl_ctx_kev(document).html_safe }
5 |
--------------------------------------------------------------------------------
/app/views/_datasource_warning.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - if defined?(warning) && warning
3 | .alert.alert-danger
4 | = image_tag('warning_icon.png', :size => "20x20")
5 | #{warning.html_safe}
6 |
--------------------------------------------------------------------------------
/app/views/_datasources_dropdown.html.haml:
--------------------------------------------------------------------------------
1 |
2 | #source_select.sidenav.source_select.visible-xs
3 |
4 | - datasource_names = datasource_list(:all).collect { |source| [DATASOURCES_CONFIG['datasources'][source]['name'], source] }
5 |
6 | =select_tag :mobile_datasource_select, options_for_select(datasource_names, active_source), class: 'form-control'
7 |
8 | %h4
9 | Source
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/views/_display/browse/_compact_list.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# catalog search-results listing, COMPACT list format
3 |
4 | / _display/browse/_compact_list.html.haml
5 |
6 | -# Are we inside the mini-browse?
7 | - mini ||= false
8 |
9 | -# The "documents" are Browse-Items,
10 | -# A Browse-Item is a hash reflecting a doc with it's currently
11 | -# activated position within the browse context:
12 | -# {
13 | -# doc: SolrDocument,
14 | -# current_call_number:
15 | -# current_shelfkey:
16 | -# current_reverse_shelfkey:
17 | -# }
18 |
19 |
20 | - document_list.each do |browse_item|
21 | - document = browse_item[:doc]
22 | -# - highlight = (browse_item[:current_shelfkey] == @shelfkey)
23 |
24 | = render_document_view(document, format: 'clio', template: 'compact_browse_item', source: 'catalog', call_number: browse_item[:current_call_number], mini: mini)
25 |
--------------------------------------------------------------------------------
/app/views/_display/browse/_standard_list.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# catalog search-results listing, STANDARD list format
3 |
4 | / _display/browse/_standard_list.html.haml
5 |
6 | -# Are we inside the mini-browse?
7 | - mini ||= false
8 |
9 | -# The "documents" are Browse-Items,
10 | -# A Browse-Item is a hash reflecting a doc with it's currently
11 | -# activated position within the browse context:
12 | -# {
13 | -# doc: SolrDocument,
14 | -# current_call_number:
15 | -# current_shelfkey:
16 | -# current_reverse_shelfkey:
17 | -# }
18 |
19 | - document_list.each do |browse_item|
20 | - document = browse_item[:doc]
21 | - highlight = (browse_item[:current_shelfkey] == @shelfkey)
22 |
23 | = render_document_view(document, format: 'clio', template: 'standard_browse_item', source: 'catalog', call_number: browse_item[:current_call_number], highlight: highlight, mini: mini)
24 |
--------------------------------------------------------------------------------
/app/views/_display/catalog/_compact_list.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# catalog search-results listing, COMPACT list format
3 |
4 | / _display/catalog/_compact_list.html.haml
5 |
6 | - document_list.each_with_index do |document,counter|
7 | - blacklight_counter = counter + 1 + @response.params[:start].to_i
8 |
9 | = render_document_view(document, :format => 'clio', :template => 'compact_list_item', :counter => blacklight_counter)
10 |
11 |
--------------------------------------------------------------------------------
/app/views/_display/catalog/_standard_list.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# catalog search-results listing, STANDARD list format
3 |
4 | / _display/catalog/_standard_list.html.haml
5 |
6 | - document_list.each_with_index do |document, counter|
7 | - blacklight_counter = counter + 1 + @response.params[:start].to_i
8 |
9 | = render_document_view(document, :format => 'clio', :template => 'standard_list_item', :counter => blacklight_counter)
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/views/_display/databases/_a_to_z.html.haml:
--------------------------------------------------------------------------------
1 | - letters = ["0-9"] | ("A".."Z").to_a
2 |
3 |
4 | .a_to_z.databases.on_search
5 | .links_label List by title:
6 | .links
7 | - letters.each do |letter|
8 | = link_to letter, databases_index_path('f[title_first_facet][]' => letter, 'sort' => 'title_sort asc')
9 |
10 |
--------------------------------------------------------------------------------
/app/views/_dropdown_select.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -#
3 | -# .dropdown.btn-group.dropdown_select_tag
4 | -# %btn.btn.btn-default.add-on.dropdown-toggle(data-toggle="dropdown" href="#")
5 | -# = dropdown_default
6 | -# %span.caret
7 | -# %ul.dropdown-menu
8 | -#
9 | -# - field_options.each do |name, value|
10 | -# %li
11 | -# %a(href="#" data-value=value)= name
12 | -# = select_tag(name, options_for_select(field_options, field_default), select_options)
13 |
14 |
15 |
16 |
17 | -# remove Bootstrap-Dropdown-Menu-as-Select-Tag
18 | -# .input-group-btn.dropdown_select_tag
19 | -#
20 | -# %btn.btn.btn-default.dropdown-toggle{ data: {toggle: 'dropdown'}}
21 | -# = dropdown_default
22 | -# %span.caret
23 | -#
24 | -# %ul.dropdown-menu{style: "left: auto"}
25 | -# - field_options.each do |name, value|
26 | -# %li
27 | -# %a(href="#" data-value=value)= name
28 | -# = select_tag(name, options_for_select(field_options, field_default), select_options)
29 |
--------------------------------------------------------------------------------
/app/views/_footer.html.haml:
--------------------------------------------------------------------------------
1 | / footer partial begin
2 | #ft
3 | = @footer
4 | -# = render :partial => "/async_setting"
5 | = render :partial => "/debug_mode"
6 |
7 | .clear-both
8 | / div.clear-both end
9 |
10 | / footer partial end
11 |
12 |
--------------------------------------------------------------------------------
/app/views/_formats/article/_aggregate.html.haml:
--------------------------------------------------------------------------------
1 |
2 | / _formats/article/_aggregate.html.haml
3 |
4 | .result{:class => alternating_line}
5 | .result_title= link_to_article document
6 | = add_row('Author', document.src['Author'].listify.collect(&:html_safe))
7 | = add_row('Citation', get_article_citation(document))
8 | = add_row('Format', get_article_type(document))
9 |
--------------------------------------------------------------------------------
/app/views/_formats/clio/_catalog_show_holdings_display.html.haml:
--------------------------------------------------------------------------------
1 | - content_for :jstemplates do
2 | :javascript
3 | $(document).ready(function() {
4 | load_clio_holdings(#{clio_id});
5 | });
6 |
7 |
8 | #legacy_clio_holdings
9 | .holdings_check
10 | Loading holdings...
11 | %span.holding_spinner=image_tag ("ajax-indicator.gif")
12 | .holdings_error
13 | Unable to load.
14 | = link_to "Retry?", "#", :onclick => "javascript:load_clio_holdings(#{h(clio_id)});"
15 |
--------------------------------------------------------------------------------
/app/views/_formats/clio/_catalog_show_holdings_ebook.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - content_for :jstemplates do
3 | :javascript
4 | $(document).ready(function() {
5 | load_ebook_holdings('#{clio_id}');
6 | });
7 |
8 | - if APP_CONFIG['show_ebook_links'] && (ebook_base_url = APP_CONFIG['ebook_base_url']).present?
9 |
10 | #ebook_holdings.holdings_section{ data: {ebook_base_url: ebook_base_url} }
11 | .holdings_title Mobile
12 | #ebook_holdings_links
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/views/_formats/clio/_catalog_show_holdings_online.html.haml:
--------------------------------------------------------------------------------
1 | // _formats/clio/_catalog_show_holdings_online.html.haml
2 |
3 | -# _catalog_show_holdings_online.html.haml
4 |
5 | -# Skip Hathi links found in the 856 field.
6 | -# These will be handled by catalog_show_holdings_hathi
7 | - online_links_except_hathi = online_links.delete_if { |link| link[:title].match(/HathiTrust/) || link[:url].match(/catalog.hathitrust.org/) }
8 |
9 | - unless online_links_except_hathi.empty?
10 | #online_holdings
11 | .holding{:class => alternating_line}
12 | .location_box
13 | .location
14 | = is_database ? database_link_label(online_links) : "Online"
15 |
16 |
17 | - online_links.each do |link|
18 | .url_link
19 | = image_tag("icons/online.png")
20 | = link_to process_online_title(link[:title]), link[:url]
21 | %span.url_link_note= link[:note]
22 |
--------------------------------------------------------------------------------
/app/views/_formats/clio/_catalog_show_holdings_pegasus.haml:
--------------------------------------------------------------------------------
1 | // _formats/clio/_catalog_show_holdings_pegasus.html.haml
2 |
3 | - if document.in_pegasus?
4 |
5 | -# re-use add_display_elements(), meant to process JSON backend holdings lookups,
6 | -# as a short-cut to fetching location links and library hours
7 | - clean_call_number = document[:location_call_number_id_display].first.sub(/.* >> /, '')
8 | - dummy_entry = create_dummy_entry(:location_name => "Law Library", :call_number => clean_call_number )
9 |
10 | - add_display_elements( Array.wrap(dummy_entry) ).listify.each do |entry|
11 |
12 | .holding{:class => alternating_line}
13 | .location_box
14 | .location
15 | -# -# NEXT-1041 - Icon or other visual cue
16 | -# %span.glyphicon.glyphicon-map-marker.text-primary
17 | = entry['location_link']
18 | .hours= entry['hours']
19 |
20 | .call_number= entry['call_number']
21 | .group
22 | .status= pegasus_item_link(document, "Item View")
23 |
24 |
--------------------------------------------------------------------------------
/app/views/_formats/clio/_catalog_show_holdings_simplye.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - if APP_CONFIG['simplye_enabled'] && document.simplye_link
3 | .holdings_section
4 | .holdings_title Mobile
5 | =link_to APP_CONFIG['simplye']['anchor_text'], document.simplye_link, class: 'simplye_link', target: '_blank'
6 |
7 |
--------------------------------------------------------------------------------
/app/views/_formats/clio/_catalog_show_nearby.html.haml:
--------------------------------------------------------------------------------
1 | -# No - don't pre-load the hidden div.
2 | -# This adds load to the Solr server and increases client traffic,
3 | -# when we think this panel will be un-hidden only occasionally.
4 | -#
5 | -#
6 | -# - content_for :jstemplates do
7 | -# :javascript
8 | -# $(document).ready(function() {
9 | -# load_nearby("#{ first_shelfkey }");
10 | -# });
11 |
12 | - return unless document['shelfkey']
13 |
14 | #nearby
15 | .nearby_spinner
16 | %br
17 | Loading browse list.
18 | %span=image_tag ("ajax-indicator.gif")
19 | .nearby_error
20 | %br
21 | Unable to load.
22 | = link_to "Retry?", "#", :onclick => "javascript:load_active_shelfkey();"
23 | .nearby_content
24 |
25 |
--------------------------------------------------------------------------------
/app/views/_formats/clio/_catalog_show_worldcat_link.haml:
--------------------------------------------------------------------------------
1 |
2 | - if APP_CONFIG['show_worldcat_links'] && defined?(worldcat_link) && worldcat_link.present?
3 | .holdings_title WorldCat
4 | = worldcat_link
--------------------------------------------------------------------------------
/app/views/_formats/clio/_compact_list_details.html.haml:
--------------------------------------------------------------------------------
1 |
2 | %div= document.fetch('author_display', nil) || document.fetch('author_vern_display', nil)
3 |
4 | %div= document.fetch('full_publisher_display', nil)
5 |
6 | %div= holdings_compact(document)
7 |
8 | %div= formats_with_icons(document)
9 |
10 |
--------------------------------------------------------------------------------
/app/views/_formats/database/_aggregate.html.haml:
--------------------------------------------------------------------------------
1 | -# - classlist = alternating_line("catalog")
2 | -# - classlist = "#{classlist} database_record" if document['source_display'].include? 'database'
3 | -# .result{class: classlist, source: 'catalog', item_id: document.fetch(:id), standard_ids: extract_standard_bibkeys(document)}
4 |
5 | .result.database_record{class: alternating_line("catalog"), source: 'catalog', item_id: document.fetch(:id), data: document_data_attributes(document), standard_ids: extract_standard_bibkeys(document)}
6 |
7 | .result_title= link_to document.first('title_display'), {:controller => 'catalog', :action => 'show', :id => document.id, :counter => (counter + 1)}
8 |
9 | = render :partial => "/_formats/database/catalog_list_details", :locals => {:document => document}
10 |
--------------------------------------------------------------------------------
/app/views/_formats/dlc/_aggregate.html.haml:
--------------------------------------------------------------------------------
1 | -# container for a single doc - within AGGREGATE views, e.g., QuickSearch
2 |
3 | .result{source: 'dlc', item_id: document.id}
4 |
5 | -# https://dlc.library.columbia.edu/catalog/ldpd:166321
6 | .result_title= link_to document.fetch('title_display_ssm'), APP_CONFIG['dlc_catalog_url'] + document.id
7 |
8 |
9 | / main container for doc partial view
10 |
11 | -# What do we want in QuickSearch panel?
12 | -# = add_row('Library Location', document['lib_repo_short_ssim'])
13 | = add_row('Name', document['lib_name_ssm'])
14 | -# = add_row('Format', document['lib_format_ssm'])
15 | -# = add_row('Digital Project', document['lib_project_short_ssim'])
16 | -# = add_row('Collection', document['lib_collection_ssm'])
17 |
--------------------------------------------------------------------------------
/app/views/_formats/geo/_aggregate.html.haml:
--------------------------------------------------------------------------------
1 | -# container for a single doc - within AGGREGATE views, e.g., QuickSearch
2 |
3 | / _formats/geo/_aggregate.html.haml
4 |
5 | .result{source: 'geo', item_id: document.id, class: alternating_line('geo')}
6 |
7 | -# https://dlc.library.columbia.edu/catalog/ldpd:166321
8 | .result_title= link_to document.fetch('dct_title_s'), APP_CONFIG['geo_catalog_url'] + document.id
9 |
10 |
11 | / main container for doc partial view
12 |
13 | -# What do we want in QuickSearch panel?
14 | = add_row('Description', document['dct_description_sm'].join('').to_s.abbreviate(120))
15 | = add_row('Publisher', document['dct_publisher_sm'])
16 |
17 | -# = add_row('Library Location', document['lib_repo_short_ssim'])
18 | -# = add_row('Name', document['lib_name_ssm'])
19 | -# = add_row('Format', document['lib_format_ssm'])
20 | -# = add_row('Digital Project', document['lib_project_short_ssim'])
21 | -# = add_row('Collection', document['lib_collection_ssm'])
22 |
--------------------------------------------------------------------------------
/app/views/_formats/lweb/_aggregate.html.haml:
--------------------------------------------------------------------------------
1 |
2 | .result{:class => alternating_line('lweb')}
3 | .result_title=link_to document.title.to_s.html_safe, document.url.listify.first.to_s.html_safe
4 | .blockquote= document.summary.to_s.html_safe
5 |
--------------------------------------------------------------------------------
/app/views/_formats/lweb/_lweb.html.haml:
--------------------------------------------------------------------------------
1 | - display_title = document.title ||= File.basename(document.url.first)
2 |
3 | .result.document
4 |
5 | .row
6 | .title.col-sm-12
7 |
8 | .item_anchor
9 | = render '/item_number', :counter => counter
10 |
11 | .item_number_allowance
12 | = link_to display_title.html_safe, document.url.html_safe
13 |
14 | .lweb_summary.item_select_allowance=document.summary.html_safe
15 |
16 | - if document.mime
17 | .lweb_dam_document.item_select_allowance
18 | = dam_document_icon(document)
19 | = dam_document_link(document)
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/views/_formats/summon/_summon_show.html.haml:
--------------------------------------------------------------------------------
1 | -# _formats /summon/_summon_show.html.haml
2 | -# Used to generate text for Email - ok to be verbose
3 | -# This should be a fall-back for ANY Summon document,
4 | -# independent of any more specific content-type ('Journal Article', 'Book', etc.)
5 |
6 | - if document.authors.any?
7 | = add_row('Author', get_article_authors(document), :html_safe => true)
8 | = add_row('Citation', get_article_citation(document))
9 | = add_row('Format', get_article_type(document))
10 | - if document.abstract
11 | \
12 | = add_row('Abstract', document.abstract)
--------------------------------------------------------------------------------
/app/views/_header_with_search.html.haml:
--------------------------------------------------------------------------------
1 | = render :partial => "/datasources_dropdown"
2 |
3 |
--------------------------------------------------------------------------------
/app/views/_item_number.haml:
--------------------------------------------------------------------------------
1 |
2 | %label.small.text-muted= "#{counter ||= ''}."
3 |
--------------------------------------------------------------------------------
/app/views/_link_to_prod.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - return unless ['development', 'clio_test'].include?(Rails.env)
3 |
4 |
5 | - link = "https://clio.columbia.edu/catalog/#{id}"
6 | - link += "/librarian_view" if (view.present? && view == 'xml')
7 |
8 | %h4
9 | =link_to "(BACKSTAGE_TEST -- open prod in new window/tab)", link, target: '_blank'
10 |
--------------------------------------------------------------------------------
/app/views/_search/_constraints.html.haml:
--------------------------------------------------------------------------------
1 | // views/_search/_constraints.html.haml
2 |
--------------------------------------------------------------------------------
/app/views/_search/_facets.html.haml:
--------------------------------------------------------------------------------
1 | // views/_search/_facets.html.haml
2 |
3 | // main container for facets/limits menu
4 | #facets.facets
5 | %h2 Limit your search
6 | - facets.each do |facet|
7 | = render :partial => "/_search/facet", :locals => {:facet => Facet.new(facet)}
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/views/_search/_search_box.html.haml:
--------------------------------------------------------------------------------
1 | // views/_search/_search_box.html.haml
2 |
3 | .landing_across.row
4 | .col-sm-12
5 | .search_boxes.pull-left
6 | .basic_search
7 | = display_basic_search_form(source)
8 | .advanced_search
9 | = display_advanced_search_form(source)
10 |
11 | -# / Start-Over link, only present during searching
12 | .start_over.hidden-xs.text-right.pull-right
13 | - if has_search_parameters?
14 | = display_start_over_link(source)
15 |
16 |
17 |
--------------------------------------------------------------------------------
/app/views/_summon_warning.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - unless current_user || @user_characteristics[:on_campus]
3 | .alert.alert-warning.well-sm.summon-warning
4 | %a{href: new_user_session_path, class: 'alert-link'} Log In
5 | to see full article results
6 |
--------------------------------------------------------------------------------
/app/views/_top_banner.html.haml:
--------------------------------------------------------------------------------
1 | - if $top_bannner_content.present?
2 | .alert.alert-info.top_banner
3 | = $top_bannner_content.html_safe
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/views/admin/format_icons.html.haml:
--------------------------------------------------------------------------------
1 |
2 | %h2 CLIO Format Icons
3 |
4 | %h4 Document Content Formats
5 |
6 | %table.table
7 |
8 | - DisplayHelper.const_get(:FORMAT_ICON_MAPPINGS).sort.each do |format,icon|
9 | %tr
10 | %td= format
11 | %td= image_tag("icons/#{icon}.png", size: '16x16')
12 | %td= "#{icon}.png"
13 |
14 | %h4 File Formats
15 |
16 | %table.table
17 |
18 | - Dir.glob("#{Rails.root.to_s}/app/assets/images/format_icons/*.png") do |filename|
19 | - filename.sub! /.*format_icons./, ''
20 | %tr
21 | %td= image_tag("format_icons/#{filename}", size: '32x32')
22 | %td= filename
23 |
--------------------------------------------------------------------------------
/app/views/admin/request_services.html.haml:
--------------------------------------------------------------------------------
1 |
2 |
3 | %h2 CLIO Request Service Details
4 |
5 | %h4 Request Service Locations
6 |
7 |
8 |
9 |
10 | %table.table.table-bordered.table-striped.table-hover.table-condensed
11 | %thead
12 | %tr
13 | %th
14 | - @configured_services.each do |service|
15 | %th.sticky=service
16 | %tbody
17 | - @all_locations.each do |location|
18 | %tr
19 | %th=location
20 | - @configured_services.each do |service|
21 | %td.text-center
22 | - location_list = SERVICE_LOCATIONS["#{service}_locations"] || []
23 | - if location_list.include?(location)
24 | Yes
25 | - else
26 | ='-'
27 |
28 |
--------------------------------------------------------------------------------
/app/views/authorities/author_marc.haml:
--------------------------------------------------------------------------------
1 |
2 |
3 | = link_to "Patron View", url_for(action: 'author'), class: 'lightboxLink'
4 |
5 | - @page_title = "#{@document ? document_show_html_title.listify.join('') : ''} - #{application_name}".html_safe
6 |
7 |
8 | .row
9 |
10 | -# #marc_download_links.col-sm-6
11 | -# %strong= "Download as:"
12 | -# %span= link_to "MARCXML", catalog_path(@document.id, :format => "marcxml")
13 | -# %span= link_to "MARC21", catalog_path(@document.id, :format => "marc")
14 | -# #patron_view_link.col-sm-6
15 | -# %strong.btn.btn-default= link_to "Return to Patron View", fix_catalog_links(catalog_path(@document.id))
16 |
17 |
18 |
19 | = render '/marc_view', document: @document
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/views/authorities/index.haml:
--------------------------------------------------------------------------------
1 |
2 | .row
3 | .col-sm-1
4 | .col-sm-8
5 | %form
6 | %input{type: "text", name: 'q', size: '50'}
7 | .col-sm-1
8 |
9 | %hr
10 |
11 |
--------------------------------------------------------------------------------
/app/views/authorities/show.haml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/views/authorities/show.haml
--------------------------------------------------------------------------------
/app/views/browse/_browse_focus_bookmark.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# This small partial is used to put a visual indicator in front of the
3 | -# bib from which a shelf-browse began.
4 |
5 | / browse/_browse_focus_bookmark.html.haml
6 |
7 | %span.browse_focus.glyphicon.glyphicon-bookmark{data: {toggle: 'tooltip', placement: 'top'}, title: "#{t('blacklight.browse.focus')}"}
8 |
9 |
10 |
11 | -# This AJAX-loaded tooltip needs to be enabled, after it's drawn to the page
12 | :javascript
13 | $('[data-toggle="tooltip"]').tooltip()
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/views/browse/_call_number_toggle.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - return unless document['item_display']
3 |
4 | -# When there are multiple call-numbers,
5 | -# create a toggle widget to change the currently active shelfkey/bib
6 | -# - updating the invisible div
7 | -# - updating the mini-browse content panel
8 |
9 | -# - if document['item_display'].size > 1
10 | %div{class: "#{'hidden' if document['item_display'].size < 2}"}
11 |
12 | This item has multiple call-numbers. Start browsing at:
13 |
14 | .btn-group.btn-group-xs{data: {toggle: 'buttons'}}
15 |
16 | - document['item_display'].each do |item_display|
17 |
18 | %label.btn.btn-default.call_number_toggle{data: {bib: "#{document.id}", call_number: "#{get_call_number(item_display)}", shelfkey: "#{get_shelfkey(item_display)}"} }
19 | %input{type: 'radio', name: 'options', autocomplete: 'off'}
20 | = get_call_number(item_display)
21 |
22 |
--------------------------------------------------------------------------------
/app/views/browse/_per_page_widget.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# CATALOG-BASED-DATASOURCES
3 |
4 | %li.dropdown#display-dropdown
5 |
6 | %a.dropdown-toggle{:href=>"#", :data=>{:toggle => "dropdown"}}
7 | Display
8 | %span.hidden-sm
9 | Options
10 | %b.caret
11 |
12 | %ul.dropdown-menu
13 | -# VERY confusing to reset your Catalog default pagination
14 | -# from within a Browse context. Await user requests.
15 | -# -blacklight_config.per_page.each do |per_page|
16 | -# %li= catalog_per_page_link(per_page)
17 |
18 | -if viewstyles = DATASOURCES_CONFIG['datasources'][active_source]['viewstyles']
19 | -# %li.nav-divider
20 | -viewstyles.each do |viewstyle, label|
21 | %li= viewstyle_link(viewstyle, label)
22 |
--------------------------------------------------------------------------------
/app/views/browse/shelfkey_full.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# what is this for?
3 | -# - item_count = @browse_item_list.size
4 | -# = render 'browse_toolbar', first_shelfkey: first_shelfkey, last_shelfkey: last_shelfkey
5 |
6 | = render 'browse_toolbar_full'
7 |
8 | #documents{:data => {'ga-action' => 'Browse Results Click'} }
9 | = render_document_list(@browse_item_list, action: "browse", shelfkey: @shelfkey)
10 |
11 | %br
12 | %br
13 | %br
14 |
15 | = render 'browse_toolbar_full'
16 |
17 |
--------------------------------------------------------------------------------
/app/views/browse/shelfkey_mini.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# The full @browse_item_list is available for use here....
3 | - first_shelfkey = @browse_item_list.first[:current_shelfkey]
4 | - last_shelfkey = @browse_item_list.last[:current_shelfkey]
5 |
6 | = render 'browse_toolbar_mini'
7 |
8 | #documents{:data => {'ga-action' => 'Browse Results Click', 'first-shelfkey' => first_shelfkey, 'last-shelfkey' => last_shelfkey} }
9 | = render_document_list(@browse_item_list, action: "browse", shelfkey: @shelfkey, mini: true)
10 |
11 | %br
12 | %br
13 |
14 | = render 'browse_toolbar_mini'
15 |
16 |
17 |
--------------------------------------------------------------------------------
/app/views/catalog/_atom_summary.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# NEXT-485 - RSS feeds from CLIO Beta don't display item content
3 | -#
4 | -# Here is the proposed content:
5 | -#
6 | -# Title & subtitle:
7 | -# Author:
8 | -# Publication year:
9 | -# Location(s)
10 | -# Call number:
11 | -# Online link:
12 |
13 |
14 | %dl
15 | = add_row('Title', document.fetch('title_display', nil), :style => :text)
16 | = add_row(' Author', document.fetch('author_display', nil), :style => :text)
17 | = add_row(' Published', document.fetch('full_publisher_display', nil), :style => :text)
18 | - unless (locations = document["location_call_number_id_display"].listify.reject { |l| l.match(/^Online/) }).empty?
19 | = add_row(' Location', format_brief_location_results(locations, document), :style => :text, :join => ' / ')
20 | = add_row(' Online', format_online_results(online_link_hash(document)), :style => :text)
21 |
22 |
--------------------------------------------------------------------------------
/app/views/catalog/_constraint_dropdown.html.haml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/views/catalog/_constraints_delete.html.haml:
--------------------------------------------------------------------------------
1 | #appliedParams
2 | You searched for:
3 |
4 | = render_constraints(localized_params)
5 |
6 |
--------------------------------------------------------------------------------
/app/views/catalog/_donor_info.html.haml:
--------------------------------------------------------------------------------
1 | /catalog/_donor_info.html.haml
2 |
3 | - if copy['donor_info_icon'].present?
4 | - message = copy['donor_info_icon'].first['message']
5 | - message = message.gsub(/ -- /, '
').html_safe if message.present?
6 | - href = copy['donor_info_icon'][0]['url']
7 |
8 | - if href.present?
9 | .donor_info_button
10 | %a.btn.donor_info_icon{href: "#{href}"}
11 | GIFT
12 | .donor_info_message
13 | %p
14 | =link_to(message, href)
15 | - else
16 | .donor_info_button
17 | %button.donor_info_icon{:disabled => true}
18 | GIFT
19 | .donor_info_message
20 | %p
21 | =message
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/views/catalog/_download_menu.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# _download_menu.html.haml
3 |
4 | %li.dropdown#display-dropdown
5 |
6 | %a.dropdown-toggle{:href=>"#", :data=>{:toggle => "dropdown"}}
7 | Download
8 | %b.caret
9 |
10 | %ul.dropdown-menu
11 | %li=link_to "XLSX Download", xlsx_form_link()
12 | %li=link_to "MARC XML Download", download_link('marcxml'), target: '_blank'
13 | %li
14 | %hr
15 | %p.small.text-center
16 | Downloading search results
is restricted to library staff.
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/views/catalog/_facet_layout.html.haml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -#
4 | -# ############# BLACKLIGHT 5 #############
5 | -#
6 |
7 | -# Do we need to override?
8 | .panel.panel-default.facet_limit{class: "blacklight-#{facet_field.field.parameterize} #{'facet_limit-active' if cul_facet_field_in_params?(facet_field.key)}"}
9 | .collapse-toggle.panel-heading{class: "#{'collapsed' if should_collapse_facet?(facet_field)}", data: {toggle: "collapse", target: "#facet-#{facet_field.label.parameterize}", 'facet-tag' => build_facet_tag(facet_field)}}
10 | %h5.panel-title
11 | = link_to facet_field_label(facet_field.field), "#", :"data-no-turbolink" => true
12 | .panel-collapse.facet-content{id: "facet-#{facet_field.label.parameterize}", class: "#{should_collapse_facet?(facet_field) ? 'collapse' : 'in'}"}
13 | .panel-body
14 | = yield
15 |
16 |
--------------------------------------------------------------------------------
/app/views/catalog/_google_books_check.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - bibkeys_to_check = documents.listify.collect { |d| extract_standard_bibkeys(d) }.compact.flatten.uniq
3 | - quoted_bibkeys = bibkeys_to_check.map { |bibkey| "'" + bibkey + "'" }
4 |
5 |
6 | - content_for :jstemplates do
7 | :javascript
8 |
9 | var _GBSBookInfo = {};
10 |
11 | books_url = "https://books.google.com/books";
12 |
13 | function google_books_response_handler (data) {
14 | _GBSBookInfo = data;
15 | }
16 |
17 | quoted_bibkeys = [#{raw(quoted_bibkeys.join(','))}];
18 |
19 | api_url= books_url + "?jscmd=viewapi&bibkeys=#{h(bibkeys_to_check.join(","))}" + "&callback=google_books_response_handler";
20 |
21 | document.write(unescape("%3Cscript src=" + api_url + " type='text/javascript'%3E%3C/script%3E"));
22 |
23 | $(document).ready ( function () {
24 |
25 | update_google_holdings(quoted_bibkeys, _GBSBookInfo);
26 |
27 | });
28 |
29 |
--------------------------------------------------------------------------------
/app/views/catalog/_holdings_check.html.haml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/views/catalog/_holdings_check.html.haml
--------------------------------------------------------------------------------
/app/views/catalog/_per_page_widget.haml:
--------------------------------------------------------------------------------
1 |
2 | -# CATALOG-BASED-DATASOURCES
3 |
4 | %li.dropdown#display-dropdown
5 |
6 | %a.dropdown-toggle{:href=>"#", :data=>{:toggle => "dropdown"}}
7 | Display Options
8 | %b.caret
9 |
10 | %ul.dropdown-menu
11 | -blacklight_config.per_page.each do |per_page|
12 | %li= catalog_per_page_link(per_page)
13 |
14 |
15 | - datasource_config = DATASOURCES_CONFIG['datasources'][active_source] || {}
16 | -if viewstyles = datasource_config['viewstyles']
17 | %li.nav-divider
18 | -viewstyles.each do |viewstyle, label|
19 | %li= viewstyle_link(viewstyle, label)
20 |
21 | -# -# Authenticated CUL Staff can download search results as XLS
22 | -# -if current_user && current_user.culstaff? && current_user.has_role?('site', 'pilot')
23 | -# %li.nav-divider
24 | -# -# %li=link_to "XLS Download", xls_form_link(), {id: "xlsLink", name: "xls", class: "XlightboxLink"}
25 | -# %li=link_to "XLSX Download", xlsx_form_link()
26 |
27 |
--------------------------------------------------------------------------------
/app/views/catalog/_results_pagination.html.haml:
--------------------------------------------------------------------------------
1 | -# advice from: https://groups.google.com/forum/#!topic/hydra-tech/4PeyyiZ8VNY
2 | -# - if paginate_params(@response).num_pages > 1
3 | - if @response.total_pages > 1
4 | -# .pagination= paginate_rsolr_response @response, :outer_window => 2, :theme => 'blacklight'
5 | .pagination= paginate @response, :outer_window => 2, :theme => 'blacklight'
6 |
--------------------------------------------------------------------------------
/app/views/catalog/_sort_widget.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%= "Sort by #{current_sort_field.label}" %>
6 |
7 |
14 |
15 |
--------------------------------------------------------------------------------
/app/views/catalog/email.html.erb:
--------------------------------------------------------------------------------
1 |
5 |
6 | <%= render :partial => 'email_form' %>
7 |
--------------------------------------------------------------------------------
/app/views/catalog/facet.html.haml:
--------------------------------------------------------------------------------
1 | -# Override Blacklight view
2 | -# 1) Add fix_catalog_links, to rewrite controller URLS
3 | -# 2) Nothing else right now.
4 |
5 | .modal-header
6 | %button.ajax-modal-close.close{type: 'button', data: {dismiss: 'modal'}}
7 | x
8 | %h3.modal-title
9 | = facet_field_label(@facet.field)
10 |
11 | - if @display_facet.items.count > 20
12 | .facet_pagination.top
13 | = fix_catalog_links(render partial: 'facet_pagination')
14 |
15 | .modal-body
16 | .facet_extended_list
17 | = fix_catalog_links(render_facet_limit(@display_facet, layout: false))
18 |
19 | .modal-footer
20 | .facet-pagination.bottom
21 | = fix_catalog_links(render partial: 'facet_pagination')
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/views/catalog/index.csv.haml:
--------------------------------------------------------------------------------
1 | -#
2 | -# # - raise
3 | -#
4 | -# What's available?
5 | -#
6 | -# >> @response.documents.first.keys
7 | -# => ["id", "author_facet", "title_display", "subject_topic_facet", "subject_era_facet", "subject_geo_facet", "pub_place_display", "pub_name_display", "pub_year_display", "language_facet", "format", "source_display", "isbn_display", "oclc_display", "full_publisher_display", "location_call_number_id_display", "location_facet", "shelfkey", "reverse_shelfkey", "item_display", "score"]
8 | -#
9 | -# We could use document.to_semantic_values,
10 | -# but we might also want to fully customize the CSV output.
11 | -#
12 | -#
13 | = CSV.generate_line(SolrDocument.csv_headers, row_sep: nil)
14 | -#
15 | - @response.documents.each do |document|
16 | -# each document might become multiple rows (per holding, per item)
17 | - rows = document.to_csv
18 | - rows.each do |row|
19 | = row.to_csv(row_sep: nil).html_safe
20 |
--------------------------------------------------------------------------------
/app/views/catalog/index.rss.builder:
--------------------------------------------------------------------------------
1 | xml.instruct! :xml, :version=>"1.0"
2 | xml.rss(:version=>"2.0") {
3 |
4 | xml.channel {
5 |
6 | xml.title(t('blacklight.search.title', :application_name => application_name))
7 | xml.link(catalog_index_url(params.to_unsafe_h))
8 | xml.description(t('blacklight.search.title', :application_name => application_name))
9 | xml.language('en-us')
10 | @document_list.each do |doc|
11 | xml.item do
12 | xml.title( doc.to_semantic_values[:title][0] || doc.id )
13 | xml.link(polymorphic_url(doc))
14 | xml.author( doc.to_semantic_values[:author][0] ) if doc.to_semantic_values[:author][0]
15 | end
16 | end
17 |
18 | }
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/app/views/catalog/librarian_view.html.haml:
--------------------------------------------------------------------------------
1 |
2 |
3 | - title = @document.has_key?('title_display') ? @document['title_display'].first : ''
4 | - @page_title = "#{title} - #{application_name}".html_safe
5 |
6 |
7 | = render "_formats/clio/catalog_show_toolbar", :document => @document
8 |
9 | = render("/link_to_prod", id: @document.id, view: 'xml') if @document.backstage?
10 |
11 | .row
12 |
13 | #marc_download_links.col-sm-6
14 | %strong= "Download as:"
15 | %span= link_to "MARCXML", solr_document_path(@document.id, :format => "marcxml")
16 | %span= link_to "MARC21", solr_document_path(@document.id, :format => "marc")
17 | #patron_view_link.col-sm-6
18 | %strong.btn.btn-default= link_to "Return to Patron View", fix_catalog_links(solr_document_path(@document.id))
19 |
20 |
21 |
22 | = render '/marc_view', document: @document, barcode2cgd: @barcode2cgd
23 |
24 | %br
25 | %br
26 | %br
27 |
28 | = render '/authority_variants', document: @document
29 |
30 |
--------------------------------------------------------------------------------
/app/views/catalog/show.html.haml:
--------------------------------------------------------------------------------
1 | -# catalog/show.html
2 | -# Single-Item view for documents from catalog-based datasources
3 |
4 | -# - raise
5 |
6 | - @page_title = "#{@document ? document_show_html_title.listify.join('') : ''} - #{application_name}".html_safe
7 |
8 | - content_for(:head) { render_link_rel_alternates }
9 |
10 | = render :partial => "/datasource_warning", :locals => {:warning => warning}
11 |
12 | -# - @add_row_options = {:spans => [3,9]}
13 | = render :partial => "/_display/catalog/show", :locals => {:document => @document}
14 |
15 |
--------------------------------------------------------------------------------
/app/views/item_alerts/_show_table_row.html.haml:
--------------------------------------------------------------------------------
1 |
2 | %tr{:class => alert_status(item_alert), :'data-id' => item_alert.id}
3 | %td= ItemAlert::ALERT_TYPES[item_alert.alert_type.to_s]
4 | %td= item_alert.author.to_s.gsub("@columbia.edu","")
5 | %td= render_alert_duration(item_alert)
6 | %td= item_alert.message
7 | %td.action_column
8 | %btn.btn-small.btn.edit-item{:"data-modify" => edit_item_alert_path(item_alert)}
9 | %span.glyphicon.glyphicon-edit
10 | Edit
11 | %btn.btn-small.btn.delete-item{:"data-delete" => item_alert_path(item_alert)}
12 | %span.glyphicon.glyphicon-trash
13 | Delete
14 |
--------------------------------------------------------------------------------
/app/views/item_alerts/edit.html.haml:
--------------------------------------------------------------------------------
1 | = render 'form', :item_alert => @item_alert, :remote => true
2 |
--------------------------------------------------------------------------------
/app/views/item_alerts/index.html.haml:
--------------------------------------------------------------------------------
1 | %h1 Listing item_alerts
2 |
3 | %table
4 | %tr
5 | %th Source
6 | %th Item key
7 | %th Alert type
8 | %th Author
9 | %th Start date
10 | %th End date
11 | %th Message
12 | %th
13 | %th
14 | %th
15 |
16 | - @item_alerts.each do |item_alert|
17 | %tr
18 | %td= item_alert.source
19 | %td= item_alert.item_key
20 | %td= item_alert.alert_type
21 | %td= item_alert.author_id
22 | %td= item_alert.start_date
23 | %td= item_alert.end_date
24 | %td= item_alert.message
25 | %td= link_to 'Show', item_alert
26 | %td= link_to 'Edit', edit_item_alert_path(item_alert)
27 | %td= link_to 'Destroy', item_alert, method: :delete, data: { confirm: 'Are you sure?' }
28 |
29 | %br
30 |
31 | = link_to 'New Item alert', new_item_alert_path
32 |
--------------------------------------------------------------------------------
/app/views/item_alerts/new.html.haml:
--------------------------------------------------------------------------------
1 | %h1 New item_alert
2 |
3 | = render 'form', :locals => {:item_alert => @item_alert }
4 |
5 | = link_to 'Back', item_alerts_path
6 |
--------------------------------------------------------------------------------
/app/views/item_alerts/show.html.haml:
--------------------------------------------------------------------------------
1 | %p#notice= notice
2 |
3 | %p
4 | %b Source:
5 | = @item_alert.source
6 | %p
7 | %b Item key:
8 | = @item_alert.item_key
9 | %p
10 | %b Alert type:
11 | = @item_alert.alert_type
12 | %p
13 | %b Author:
14 | = @item_alert.author_id
15 | %p
16 | %b Start date:
17 | = @item_alert.start_date
18 | %p
19 | %b End date:
20 | = @item_alert.end_date
21 | %p
22 | %b Message:
23 | = @item_alert.message
24 |
25 | = link_to 'Edit', edit_item_alert_path(@item_alert)
26 | \|
27 | = link_to 'Back', item_alerts_path
28 |
--------------------------------------------------------------------------------
/app/views/item_alerts/show_table_row.html.haml:
--------------------------------------------------------------------------------
1 | = render "show_table_row", :item_alert => @item_alert
2 |
--------------------------------------------------------------------------------
/app/views/landing_pages/_academic_commons.html.haml:
--------------------------------------------------------------------------------
1 | = display_search_boxes('academic_commons')
2 |
3 | .row
4 | .landing_main.col-sm-8
5 | .title Academic Commons
6 |
7 | = render partial: '/datasource_warning', locals: {warning: warning}
8 |
9 | %p Search over 23,000 documents in Columbia University's digital repository, where faculty, students, and staff of Columbia and its affiliate institutions can deposit the results of their scholarly work and research.
10 | %ul
11 | %li Visit Academic Commons: #{link_to 'Academic Commons Home', 'http://academiccommons.columbia.edu'}
12 |
13 | .landing_side.col-sm-4
14 | .well.sidebar-nav
15 | .nav
16 | %ul.nav.nav-list
17 | %li.nav-header Related Links
18 | %li= link_to "Academic Commons Home", "https://academiccommons.columbia.edu"
19 | %li= link_to "Self Deposit Page", "https://academiccommons.columbia.edu/deposit"
20 | %li= link_to "Frequently Asked Questions", "https://academiccommons.columbia.edu/faq"
21 |
--------------------------------------------------------------------------------
/app/views/landing_pages/_dlc.html.haml:
--------------------------------------------------------------------------------
1 | = display_search_boxes('dlc')
2 |
3 | .row
4 | .landing_main.col-sm-8
5 | .title Digital Library Collection Viewer
6 |
7 | = render partial: '/datasource_warning', locals: {warning: warning}
8 |
9 | %p DLC - the gateway to a limited set of miscellaneous content
10 |
11 | .landing_side.col-sm-4
12 | .well.sidebar-nav
13 | .nav
14 | %ul.nav.nav-list
15 | %li.nav-header DLC
16 | %li=link_to "DLC homepage", "https://dlc.library.columbia.edu/", :target => "_blank"
17 | %li.nav-divider
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/views/landing_pages/_new_arrivals.html.haml:
--------------------------------------------------------------------------------
1 | = display_search_boxes('new_arrivals')
2 |
3 | .row
4 | .landing_main.col-sm-8
5 | .title New Arrivals
6 |
7 | = render partial: '/datasource_warning', locals: {warning: warning}
8 |
9 | %p Searches the catalog for titles ordered or received in the past six months. Refine your search by library location, format, language, date of publication, date of acquisition, subjects, or call number. Press "search" without entering any search terms to browse the full database.
10 |
11 | .landing_side.col-sm-4
12 | .well.sidebar-nav
13 | .nav
14 | %ul.nav.nav-list
15 | %li.nav-header Guide
16 | %li=link_to "Search Tips", "https://blogs.cul.columbia.edu/clio/guides/new-arrivals-guide/", :target => "_blank"
17 | %li.nav-divider
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/views/layouts/_best_bets.html.haml:
--------------------------------------------------------------------------------
1 |
2 |
3 | // best_bets.html.haml - empty div, to be filled with Best Bets results
4 |
5 | #best_bets{ data: { url: APP_CONFIG['best_bets_url'], datasource: active_source } }
6 |
7 | -# The Best Bets modal is to support Firefox keyboard redirection
8 | #best-bets-modal.modal.fade
9 |
--------------------------------------------------------------------------------
/app/views/layouts/_messages.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# Map Rails Flash types to Bootstrap 3 style colors
3 | - flash_map = {success: 'success', notice: 'info', alert: 'warning', error: 'danger'}.with_indifferent_access
4 |
5 | #main-flashes
6 | .flash_messages
7 | - flash.each do |type, message|
8 | - next if type.to_s == 'timedout'
9 | - display_class = flash_map[type] || type
10 | .alert{ class: "alert-#{display_class}"}
11 | = message
12 | %a.close{:"data-dismiss" => "alert", :href => "#"} x
13 |
14 |
--------------------------------------------------------------------------------
/app/views/layouts/blank.html.haml:
--------------------------------------------------------------------------------
1 | !!!
2 | %html.blank_layout{:xmlns=>"http://www.w3.org/1999/xhtml"}
3 |
4 | %head
5 | %meta{"http-equiv"=>"Content-Type","content"=>"text/html; charset=utf-8"}
6 | %title=(@page_title || application_name)
7 | %link{:href=>url_for(:controller=>'catalog',:action => 'opensearch', :format => 'xml', :only_path => false), :title=>application_name, :type=>"application/opensearchdescription+xml", :rel=>"search"}
8 |
9 | = stylesheet_link_tag "application"
10 | = javascript_include_tag "application"
11 |
12 | = yield(:jstemplates)
13 |
14 | %body.blank_layout
15 | = yield
16 |
--------------------------------------------------------------------------------
/app/views/layouts/js_return.html.haml:
--------------------------------------------------------------------------------
1 | = yield
2 |
--------------------------------------------------------------------------------
/app/views/layouts/mailer.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= yield %>
8 |
9 |
--------------------------------------------------------------------------------
/app/views/layouts/mailer.text.erb:
--------------------------------------------------------------------------------
1 | <%= yield %>
2 |
--------------------------------------------------------------------------------
/app/views/logs/index.csv.erb:
--------------------------------------------------------------------------------
1 | <% headers = @logdata_keys + @request_keys %>
2 | <%= CSV.generate_line(headers, row_sep: nil) %>
3 | <% @rows.each do |row| %>
4 | <% fields = [] %>
5 | <% @logdata_keys.each do |key| %>
6 | <%fields << get_logdata_field(row['logdata'], key) %>
7 | <% end %>
8 | <% @request_keys.each do |key| %>
9 | <% fields << row[key] %>
10 | <% end %>
11 | <%= fields.to_csv(row_sep: nil).html_safe %>
12 | <% end %>
--------------------------------------------------------------------------------
/app/views/logs/set_list.html.erb:
--------------------------------------------------------------------------------
1 | The following logs are available.
2 |
3 |
4 |
5 |
6 |
7 | |
8 | total log entries |
9 |
10 |
11 |
12 |
13 | <% @set_counts.each do |set, count| %>
14 |
15 |
16 |
17 | <%= link_to set, logs_path(set: set) %>
18 |
19 | |
20 |
21 | <%= count%>
22 | |
23 |
24 | <% end %>
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/app/views/preferences/_datasource_sidebar_form.haml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/views/preferences/_datasource_sidebar_form.haml
--------------------------------------------------------------------------------
/app/views/preferences/_form.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# We never reference the preference object - so we
3 | -# do not really need this:
4 | = form_for(@preference) do |f|
5 |
6 | - if @preference.errors.any?
7 | .id#error_explanation
8 | %h5
9 | = pluralize(@preference.errors.count, "error")
10 | prohibited this preference from being saved:
11 | %ul
12 | - @preference.errors.full_messages.each do |message|
13 | %li= message
14 |
15 |
16 | %h4 Quicksearch Bentos
17 | = render 'quicksearch_bentos_form'
18 |
19 | %h4 Summon Facets
20 | = render 'summon_facet_form'
21 |
22 | %h4 Datasource Sidebar
23 | = render 'datasource_sidebar_form', f: f
24 |
25 |
26 |
27 | .actions
28 | = f.submit
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/app/views/preferences/_summon_facet_form.haml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -# - all = Spectrum::SearchEngines::Summon::AVAILABLE_SUMMON_FACETS
5 | -# - system = Spectrum::SearchEngines::Summon.get_system_summon_facets
6 | -# - user = get_user_summon_facets || system
7 |
8 | %table.table
9 | %tr
10 | %th name
11 | %th system default
12 | %th user pref
13 | -@all_summon_facets.each do |facet|
14 | %tr.facet
15 | %td=facet
16 | %td
17 | = @system_summon_facets[facet] || '-'
18 | %td
19 | - user_value = @user_summon_facets[facet] || 0
20 | = text_field_tag("summon_facets[#{facet}]", user_value, size: 2)
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/views/preferences/edit.html.haml:
--------------------------------------------------------------------------------
1 | %h3 Update Preferences
2 |
3 | = render 'form'
4 |
5 | %br
6 |
7 | = link_to 'Cancel', preferences_path, class: "btn btn-default"
8 |
--------------------------------------------------------------------------------
/app/views/preferences/index.html.haml:
--------------------------------------------------------------------------------
1 |
2 | %p{id: 'notice'}= notice
3 |
4 |
5 |
6 | %h3 CLIO Preference settings for #{current_user.uid}
7 |
8 |
9 |
10 | - if @preference.nil?
11 | No personal preferences set.
12 | Using system defaults
13 | %br
14 | = link_to 'Set Preferences', new_preference_path
15 |
16 | - else
17 |
18 | = @preference.settings
19 |
20 |
21 | = link_to 'Update Preferences', edit_preference_path(@preference)
22 |
23 |
--------------------------------------------------------------------------------
/app/views/preferences/new.html.haml:
--------------------------------------------------------------------------------
1 |
2 | %h3 Set Preferences for #{current_user.uid}
3 |
4 | = render 'form'
5 |
6 | %br
7 |
8 | = link_to 'Cancel', preferences_path, class: "btn btn-default"
9 |
--------------------------------------------------------------------------------
/app/views/record_mailer/sms_record.text.erb:
--------------------------------------------------------------------------------
1 | <% @documents.each do |document| %>
2 | <%= t('blacklight.sms.text.url', :url => polymorphic_url(document, @url_gen_params) ) %>
3 | <%= document.to_sms_text %>
4 | <%= document.call_numbers %>
5 | <% end %>
6 |
--------------------------------------------------------------------------------
/app/views/saved_list_items/_form.html.haml:
--------------------------------------------------------------------------------
1 | = form_for @list_item do |f|
2 | - if @list_item.errors.any?
3 | #error_explanation
4 | %h2= "#{pluralize(@list_item.errors.count, "danger")} prohibited this list_item from being saved:"
5 | %ul
6 | - @list_item.errors.full_messages.each do |msg|
7 | %li= msg
8 |
9 | .field
10 | = f.label :list_id
11 | = f.number_field :list_id
12 | .field
13 | = f.label :item_key
14 | = f.text_field :item_key
15 | .field
16 | = f.label :sort_order
17 | = f.number_field :sort_order
18 | .actions
19 | = f.submit 'Save'
20 |
--------------------------------------------------------------------------------
/app/views/saved_list_items/edit.html.haml:
--------------------------------------------------------------------------------
1 | %h1 Editing list_item
2 |
3 | = render 'form'
4 |
5 | = link_to 'Show', @list_item
6 | \|
7 | = link_to 'Back', list_items_path
8 |
--------------------------------------------------------------------------------
/app/views/saved_list_items/index.html.haml:
--------------------------------------------------------------------------------
1 | %h1 Listing list_items
2 |
3 | %table
4 | %tr
5 | %th List
6 | %th Item key
7 | %th Sort order
8 | %th
9 | %th
10 | %th
11 |
12 | - @list_items.each do |list_item|
13 | %tr
14 | %td= list_item.list_id
15 | %td= list_item.item_key
16 | %td= list_item.sort_order
17 | %td= link_to 'Show', list_item
18 | %td= link_to 'Edit', edit_list_item_path(list_item)
19 | %td= link_to 'Destroy', list_item, :method => :delete, :data => { :confirm => 'Are you sure?' }
20 |
21 | %br
22 |
23 | = link_to 'New List item', new_list_item_path
24 |
--------------------------------------------------------------------------------
/app/views/saved_list_items/new.html.haml:
--------------------------------------------------------------------------------
1 | %h1 New list_item
2 |
3 | = render 'form'
4 |
5 | = link_to 'Back', list_items_path
6 |
--------------------------------------------------------------------------------
/app/views/saved_lists/_item_select_checkbox.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - is_selected = Array(session[:selected_items]).include?(item_id)
3 |
4 | %form.item_select_form
5 | -# The input has an "ID" only to be used as a "for" for the label,
6 | -# so that the label (the counter) works as an alternative click target.
7 | %label{ for: "item_select_#{item_id}", class: 'no-bottom-space' }
8 | %input.item_select_checkbox.hidden-print{ type: "checkbox", id: "item_select_#{item_id}", data: {identifier: item_id}, checked: is_selected }
9 | -# NEXT-930 - Number results in Index page
10 | - if local_assigns[:counter]
11 | %small.text-muted= "#{counter ||= ''}."
12 |
13 |
--------------------------------------------------------------------------------
/app/views/saved_lists/_menu_list.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - link_text = "#{menu_list.display_name.abbreviate(20)} (#{menu_list.size})"
3 |
4 | .row.saved_list_list.no-gutter
5 | .col-sm-7
6 | - if menu_list == current_list
7 | %b= link_text
8 | - else
9 | %b= link_to link_text, menu_list.url
10 | .col-sm-3
11 | #{get_permissions_label(menu_list.permissions)}
12 | .col-sm-2.text-right
13 | -# NEXT-1232 - RSS for saved lists
14 | - if menu_list.permissions == 'public'
15 | = link_to image_tag('rss-feed-icon-14x14.png', size: "13x13"), menu_list.url + '.atom', :class => "rss-feed"
16 |
17 |
--------------------------------------------------------------------------------
/app/views/saved_lists/_savedlist_control_panel.html.haml:
--------------------------------------------------------------------------------
1 | -# If authenticated, show a menu of all the current user's lists
2 | - if current_user
3 |
4 | %h4 Saved Lists for:
5 | %p.lead #{current_user.name} (#{current_user.uid})
6 |
7 | -# %br
8 | .container
9 | = render partial: 'menu_list', collection: @all_current_user_lists, locals: { current_list: @list }
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/views/saved_lists/edit.html.haml:
--------------------------------------------------------------------------------
1 | %h1 Editing list
2 |
3 | = render 'form'
4 |
5 | = link_to 'Cancel Edit', @list.url
6 |
7 | \|
8 |
9 | - if @list.is_default?
10 | Default list - cannot delete
11 | - else
12 | = link_to 'Destroy this list', @list, :method => :delete, :data => { :confirm => 'Are you sure you want to permanently delete this entire list?' }
13 |
--------------------------------------------------------------------------------
/app/views/saved_lists/email.html.erb:
--------------------------------------------------------------------------------
1 |
5 | <%= render :partial => 'catalog/email_form' %>
6 |
--------------------------------------------------------------------------------
/app/views/saved_lists/new.html.haml:
--------------------------------------------------------------------------------
1 | %h1 New list
2 |
3 | = render 'form'
4 |
5 | = link_to 'Back', lists_path
6 |
--------------------------------------------------------------------------------
/app/views/spectrum/_lweb.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <% cs_id = APP_CONFIG['google']['custom_search_id'] || '' %>
3 |
4 | <% if params['q'] and not params['q'].match(/^\d+$/) %>
5 |
6 |
7 | <% end %>
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/views/spectrum/ac/_constraints.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# AC API - CONSTRAINTS DISPLAY
3 |
4 | .well.well-constraints
5 | %span.constraints-label You searched for:
6 |
7 | - result.constraints_with_links.each do |text, link|
8 |
9 | %div.constraint-box
10 | %span.filterValue
11 | =text
12 | =link_to content_tag(:span, '', :class => 'glyphicon glyphicon-remove'), link
13 |
--------------------------------------------------------------------------------
/app/views/spectrum/ac/_result_docs.html.haml:
--------------------------------------------------------------------------------
1 | -# - @add_row_options = row_opts.symbolize_keys! if row_opts.kind_of?(Hash)
2 |
3 | - truncated_documents = render_opts['count'] ? result.documents[0,render_opts['count']] : result.documents
4 | - truncated_documents.each_with_index do |doc, doc_index|
5 | - counter = (result.page_size * (result.current_page - 1)) + (doc_index + 1)
6 | = render_document_view(doc, render_opts.merge(counter: counter ))
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/views/spectrum/aggregate/_result_docs.html.haml:
--------------------------------------------------------------------------------
1 |
2 | / spectrum/aggregate/_result_docs.html.haml
3 |
4 | - if result.successful?
5 | -# - @add_row_options = row_opts.symbolize_keys! if row_opts.kind_of?(Hash)
6 |
7 | - truncated_documents = render_opts['count'] ? result.documents[0,render_opts['count']] : result.documents
8 | - if truncated_documents.empty?
9 | .result_empty
10 | %h5 No results found.
11 | -# Nope, moved to _result_header.html.haml
12 | -# %h5= datasource_explore_link(source)
13 | - else
14 | - truncated_documents.each_with_index do |doc, doc_index|
15 | = render_document_view(doc, render_opts.merge(counter: doc_index ))
16 |
17 |
18 | - else
19 | .result_error
20 | %h5 There was an error searching this datasource. (#{result.errors})
21 |
22 |
--------------------------------------------------------------------------------
/app/views/spectrum/aggregate/_result_footer.html.haml:
--------------------------------------------------------------------------------
1 |
2 | / spectrum/aggregate/_result_footer.html.haml
3 |
4 | .result_footer
5 | %p.text-right
6 | = link_to "View and filter all #{number_with_delimiter(result.total_items)} results \u00bb".html_safe, result.search_path, class: 'btn btn-default', style: 'padding:3px'
7 |
--------------------------------------------------------------------------------
/app/views/spectrum/aggregate/_result_header.html.haml:
--------------------------------------------------------------------------------
1 |
2 | / spectrum/aggregate/_result_header.html.haml
3 |
4 | .results_header{:data => {'source' => source}}
5 | %span{id: 'hits', data: {'source' => base_source(source), 'total' => "#{number_with_delimiter(result.total_items)}"}}
6 | .category_title
7 | #{title}
8 | - if defined?(description)
9 | %a.source-info.btn.btn-link{:href => '#', :rel => 'popover', :'data-placement' => 'bottom', :'data-content' => description}
10 | = image_tag('information_icon.png', :size => "20x20")
11 | .result_count
12 | - if result && result.total_items.to_i > 0
13 | - label = title.eql?("Libraries Website") ? 'View' : 'View and filter'
14 | = link_to "#{label} all #{number_with_delimiter(result.total_items)} results".html_safe, result.search_path
15 | - else
16 | %a{href: datasource_landing_page_path(active_source)}
17 | Explore #{title}
18 |
--------------------------------------------------------------------------------
/app/views/spectrum/aggregate/_result_header_async.html.haml:
--------------------------------------------------------------------------------
1 |
2 | / spectrum/aggregate/_result_header_async.html.haml
3 |
4 | .results_header{:data => {'source' => source}}
5 |
6 | .category_title
7 | #{title}
8 | - if defined?(description)
9 | %a.source-info.btn.btn-link{:href => '#', :rel => 'popover', :'data-placement' => 'bottom', :'data-content' => description}
10 | = image_tag('information_icon.png', :size => "20x20")
11 | .result_count
12 | - right_result_header_content ||= ''
13 | = right_result_header_content.html_safe
--------------------------------------------------------------------------------
/app/views/spectrum/aggregate/_result_set.html.haml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/views/spectrum/aggregate/_result_set.html.haml
--------------------------------------------------------------------------------
/app/views/spectrum/hits.html.haml:
--------------------------------------------------------------------------------
1 | = number_with_delimiter(@hits || 0)
--------------------------------------------------------------------------------
/app/views/spectrum/lweb/_constraints.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# GOOGLE CUSTOM SEARCH - CONSTRAINTS DISPLAY
3 |
4 | .well.well-constraints
5 | %span.constraints-label You searched for:
6 |
7 | - result.constraints_with_links.each do |text, link|
8 |
9 | %div.constraint-box
10 | %span.filterValue
11 | =text
12 | =link_to content_tag(:span, '', :class => 'glyphicon glyphicon-remove'), link
13 |
--------------------------------------------------------------------------------
/app/views/spectrum/lweb/_result_docs.html.haml:
--------------------------------------------------------------------------------
1 | -# - @add_row_options = row_opts.symbolize_keys! if row_opts.kind_of?(Hash)
2 |
3 | - truncated_documents = render_opts['count'] ? result.documents[0,render_opts['count']] : result.documents
4 | - truncated_documents.each_with_index do |doc, doc_index|
5 | - counter = (result.page_size * (result.current_page - 1)) + (doc_index + 1)
6 | = render_document_view(doc, render_opts.merge(counter: counter ))
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/views/spectrum/search.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - if @results.nil? || @results.empty?
3 | - cache("datasource_landing_page_#{active_source}_#{params_digest}") do
4 | = datasource_landing_page(active_source)
5 |
6 | - else
7 | = render :partial => "/spectrum/#{@search_layout['style']}"
8 |
--------------------------------------------------------------------------------
/app/views/spectrum/search.marc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/app/views/spectrum/search.marc
--------------------------------------------------------------------------------
/app/views/spectrum/summon/_constraints.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# SUMMON - CONSTRAINTS DISPLAY
3 |
4 | .well.well-constraints
5 | %span.constraints-label You searched for:
6 |
7 | - result.constraints_with_links.each do |text, link|
8 |
9 | %div.constraint-box
10 | %span.filterValue
11 | =text
12 | =link_to content_tag(:span, '', :class => 'glyphicon glyphicon-remove'), link
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/views/spectrum/summon/_result_docs.html.haml:
--------------------------------------------------------------------------------
1 | -# - @add_row_options = row_opts.symbolize_keys! if row_opts.kind_of?(Hash)
2 |
3 | - truncated_documents = render_opts['count'] ? result.documents[0,render_opts['count']] : result.documents
4 | - truncated_documents.each_with_index do |doc, doc_index|
5 | - counter = (result.page_size * (result.current_page - 1)) + (doc_index + 1)
6 | = render_document_view(doc, render_opts.merge(counter: counter ))
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/views/top_nav/_ask_a_librarian.html.haml:
--------------------------------------------------------------------------------
1 | %li.dropdown.menu.top_nav_ask_a_librarian
2 | %a{href: 'https://resolver.library.columbia.edu/lweb0031', target: '_blank'}
3 | Ask a Librarian
4 | %span.glyphicon.glyphicon-new-window.icon-white
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/views/top_nav/_help_menu.html.haml:
--------------------------------------------------------------------------------
1 |
2 | %li.dropdown.menu
3 |
4 | %a.dropdown-toggle.menu{data: {toggle: "dropdown"}, href: "#"}
5 | Feedback / Help
6 | %b.caret
7 | %ul.dropdown-menu.menu-dropdown
8 | %li
9 | %a{:href => "https://resolver.library.columbia.edu/lweb0031", :target => "_blank"} Ask a Librarian
10 | %li
11 | %a{href: 'https://blogs.cul.columbia.edu/clio/guides/'} CLIO Help
12 | %li
13 | %a{href: 'https://library.columbia.edu/content/libraryweb/help/faq.html'} FAQ
14 | %li
15 | %a{href: 'https://resolver.library.columbia.edu/lweb0006'} Report E-Resource Problems
16 | %li
17 | %a{href: 'https://resolver.library.columbia.edu/lweb0004'} Recommend a title for purchase
18 | %li
19 | %a{href: '#', class: 'feedback-popup', data: {mobile: "#{browser.device.mobile?}" }} Suggestions & Feedback
20 |
--------------------------------------------------------------------------------
/bin/bundle:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3 | load Gem.bin_path('bundler', 'bundle')
4 |
--------------------------------------------------------------------------------
/bin/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | APP_PATH = File.expand_path('../config/application', __dir__)
3 | require_relative '../config/boot'
4 | require 'rails/commands'
5 |
--------------------------------------------------------------------------------
/bin/rake:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require_relative '../config/boot'
3 | require 'rake'
4 | Rake.application.run
5 |
--------------------------------------------------------------------------------
/bin/update:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require 'pathname'
3 | require 'fileutils'
4 | include FileUtils
5 |
6 | # path to your application root.
7 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
8 |
9 | def system!(*args)
10 | system(*args) || abort("\n== Command #{args} failed ==")
11 | end
12 |
13 | chdir APP_ROOT do
14 | # This script is a way to update your development environment automatically.
15 | # Add necessary update steps to this file.
16 |
17 | puts '== Installing dependencies =='
18 | system! 'gem install bundler --conservative'
19 | system('bundle check') || system!('bundle install')
20 |
21 | puts "\n== Updating database =="
22 | system! 'bin/rails db:migrate'
23 |
24 | puts "\n== Removing old logs and tempfiles =="
25 | system! 'bin/rails log:clear tmp:clear'
26 |
27 | puts "\n== Restarting application server =="
28 | system! 'bin/rails restart'
29 | end
30 |
--------------------------------------------------------------------------------
/bin/yarn:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | VENDOR_PATH = File.expand_path('..', __dir__)
3 | Dir.chdir(VENDOR_PATH) do
4 | begin
5 | exec "yarnpkg #{ARGV.join(' ')}"
6 | rescue Errno::ENOENT
7 | $stderr.puts 'Yarn executable was not detected in the system.'
8 | $stderr.puts 'Download Yarn at https://yarnpkg.com/en/docs/install'
9 | exit 1
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/config.ru:
--------------------------------------------------------------------------------
1 | # This file is used by Rack-based servers to start the application.
2 |
3 | require ::File.expand_path('../config/environment', __FILE__)
4 | run Clio::Application
5 |
--------------------------------------------------------------------------------
/config/blacklight.yml.EXAMPLE:
--------------------------------------------------------------------------------
1 | # This is an EXAMPLE blacklight.yml file.
2 | # Copy this file to blacklight.yml and edit the values as needed.
3 |
4 |
5 | # Configure the URL of the Solr search engine to be used for searching
6 | # most CLIO datasources (Catalog, E-Journals, Databases, Archives, etc.)
7 |
8 | # Columbia Library provides a "Library Labs" installation of our Solr search
9 | # engine with a copy of our CLIO data to facilitate experimentation and reuse.
10 | # Contact the libraries information technology office for access.
11 |
12 | # The development URL will be used for all catalog searches during development.
13 | development:
14 | url: http://librarylabs.cul.columbia.edu:1234/solr-4.0/clio
15 |
16 | # The test URL will be used for running automated testing.
17 | # This can be set to the same Solr search engine as development.
18 | test:
19 | url: http://librarylabs.cul.columbia.edu:1234/solr-4.0/clio
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/config/blacklight.yml.travis:
--------------------------------------------------------------------------------
1 | test:
2 | adapter: solr
3 | url: <%= ENV['SOLR_URL'] %>
4 |
--------------------------------------------------------------------------------
/config/boot.rb:
--------------------------------------------------------------------------------
1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2 |
3 | require 'bundler/setup' # Set up gems listed in the Gemfile.
4 |
5 | # require 'rubygems'
6 | #
7 | # # Set up gems listed in the Gemfile.
8 | # ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
9 | #
10 | # require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
11 | #
12 | #
13 | # # http://stackoverflow.com/questions/28668436
14 | # # Because, without this we can't use the /etc/hosts trick
15 | # # to connect to 127.0.0.1 as "cliobeta.columbia.edu"
16 | # require 'rails/commands/server'
17 | #
18 | # module Rails
19 | # class Server
20 | # alias :default_options_alias :default_options
21 | # def default_options
22 | # default_options_alias.merge!(Host: '0.0.0.0')
23 | # end
24 | # end
25 | # end
26 |
--------------------------------------------------------------------------------
/config/cable.yml:
--------------------------------------------------------------------------------
1 | development:
2 | adapter: async
3 |
4 | test:
5 | adapter: async
6 |
7 | production:
8 | adapter: redis
9 | url: redis://localhost:6379/1
10 | channel_prefix: clio_production
11 |
--------------------------------------------------------------------------------
/config/cas.yml.EXAMPLE:
--------------------------------------------------------------------------------
1 | #
2 | # SAML configuration for authentication via cul_omniauth.
3 | #
4 |
5 | cas: &CAS
6 | host: cas.columbia.edu
7 | # host: casdev.cc.columbia.edu
8 | login_url: /cas/login
9 | logout_url: /cas/logout
10 | service_validate_url: /cas/serviceValidate
11 | disable_ssl_verification: true
12 | provider: cas
13 | saml: &SAML
14 | <<: *CAS
15 | provider: saml
16 | service_validate_url: /cas/samlValidate
17 |
18 | development: *SAML
19 | test: *SAML
20 |
21 | # clio_dev: *SAML
22 | # clio_test: *SAML
23 | # clio_prod: *SAML
24 | #
25 | # clio_batch_dev: *SAML
26 | # clio_batch_test: *SAML
27 | # clio_batch_prod: *SAML
28 |
29 |
--------------------------------------------------------------------------------
/config/database.yml.EXAMPLE:
--------------------------------------------------------------------------------
1 | # This is an EXAMPLE database.yml file.
2 | # Copy this file to database.yml and edit the values as needed.
3 |
4 | # The development and test databases are used by CLIO for managing
5 | # user citations, sessions, and history.
6 | # Use local SQLite databases. They will need to be created using
7 | # standard Rails rake tasks.
8 |
9 | development:
10 | adapter: sqlite3
11 | database: db/development.sqlite3
12 | pool: 5
13 | timeout: 5000
14 |
15 |
16 | # WARNING: The database defined as "test" will be erased and
17 | # re-generated from your development database when you run "rake".
18 | # Do not set this db to the same as development or production.
19 | test:
20 | adapter: sqlite3
21 | database: db/test.sqlite3
22 | pool: 5
23 | timeout: 5000
24 |
25 |
26 |
--------------------------------------------------------------------------------
/config/database.yml.travis:
--------------------------------------------------------------------------------
1 | # test:
2 | # adapter: sqlite3
3 | # database: ":memory:"
4 | # timeout: 500
5 |
6 | test:
7 | adapter: sqlite3
8 | database: db/test.sqlite3
9 | timeout: 500
10 |
--------------------------------------------------------------------------------
/config/deploy/clio_app_prod.rb:
--------------------------------------------------------------------------------
1 |
2 | set :bundle_without, %w(development test clio_dev clio_test clio_prod).join(' ')
3 |
4 | set :bundle_env_variables, 'http_proxy' => 'http://lito-squid-prod1.cul.columbia.edu:3131',
5 | 'https_proxy' => 'https://lito-squid-prod1.cul.columbia.edu:3131'
6 |
7 | server 'clio-service-prod1.cul.columbia.edu', user: 'clioserv', roles: %w(app db web)
8 |
9 | # set :deploy_to, '/var/www/my_app_name'
10 | # set :deploy_to, '/opt/passenger/clio_prod'
11 | set :deploy_to, '/opt/app/clio_prod'
12 |
13 | # https://github.com/capistrano/rvm
14 | # set :rvm_type, :user # Defaults to: :auto
15 | # set :rvm_ruby_version, '2.0.0-p247' # Defaults to: 'default'
16 | # set :rvm_custom_path, '~/.myveryownrvm' # only needed if not detected
17 | set :rvm_ruby_version, 'clio_prod'
18 |
--------------------------------------------------------------------------------
/config/deploy/clio_batch_dev.rb:
--------------------------------------------------------------------------------
1 |
2 | set :bundle_without, %w(development test clio_dev clio_test clio_prod).join(' ')
3 |
4 | # set :bundle_env_variables, 'http_proxy' => 'http://squid.cul.columbia.edu:3131',
5 | # 'https_proxy' => 'https://squid.cul.columbia.edu:3131'
6 |
7 | set :bundle_env_variables, 'http_proxy' => 'http://squid.cul.columbia.edu:3131'
8 |
9 | server 'clio-service-prod2.cul.columbia.edu', user: 'clioserv', roles: %w(app db web)
10 |
11 | # set :deploy_to, '/var/www/my_app_name'
12 | # set :deploy_to, '/opt/passenger/clio_prod'
13 | set :deploy_to, '/opt/clio/batch_dev'
14 |
15 | # https://github.com/capistrano/rvm
16 | # set :rvm_type, :user # Defaults to: :auto
17 | # set :rvm_ruby_version, '2.0.0-p247' # Defaults to: 'default'
18 | # set :rvm_custom_path, '~/.myveryownrvm' # only needed if not detected
19 | set :rvm_ruby_version, 'clio_dev'
20 |
--------------------------------------------------------------------------------
/config/deploy/clio_batch_prod.rb:
--------------------------------------------------------------------------------
1 |
2 | set :bundle_without, %w(development test clio_dev clio_test clio_prod).join(' ')
3 |
4 | # set :bundle_env_variables, 'http_proxy' => 'http://lito-squid-prod1.cul.columbia.edu:3131',
5 | # 'https_proxy' => 'https://lito-squid-prod1.cul.columbia.edu:3131'
6 |
7 | set :bundle_env_variables, 'http_proxy' => 'http://squid.cul.columbia.edu:3131'
8 |
9 | server 'clio-service-prod2.cul.columbia.edu', user: 'clioserv', roles: %w(app db web)
10 |
11 | # set :deploy_to, '/var/www/my_app_name'
12 | # set :deploy_to, '/opt/passenger/clio_prod'
13 | set :deploy_to, '/opt/clio/batch_prod'
14 |
15 | # https://github.com/capistrano/rvm
16 | # set :rvm_type, :user # Defaults to: :auto
17 | # set :rvm_ruby_version, '2.0.0-p247' # Defaults to: 'default'
18 | # set :rvm_custom_path, '~/.myveryownrvm' # only needed if not detected
19 | set :rvm_ruby_version, 'clio_test'
20 |
--------------------------------------------------------------------------------
/config/deploy/clio_batch_test.rb:
--------------------------------------------------------------------------------
1 |
2 | set :bundle_without, %w(development test clio_dev clio_test clio_prod).join(' ')
3 |
4 | # set :bundle_env_variables, 'http_proxy' => 'http://lito-squid-prod2.cul.columbia.edu:3131',
5 | # 'https_proxy' => 'https://lito-squid-prod2.cul.columbia.edu:3131'
6 |
7 | set :bundle_env_variables, 'http_proxy' => 'http://squid.cul.columbia.edu:3131'
8 |
9 | server 'clio-service-prod2.cul.columbia.edu', user: 'clioserv', roles: %w(app db web)
10 |
11 | # set :deploy_to, '/var/www/my_app_name'
12 | # set :deploy_to, '/opt/passenger/clio_prod'
13 | set :deploy_to, '/opt/clio/batch_test'
14 |
15 | # https://github.com/capistrano/rvm
16 | # set :rvm_type, :user # Defaults to: :auto
17 | # set :rvm_ruby_version, '2.0.0-p247' # Defaults to: 'default'
18 | # set :rvm_custom_path, '~/.myveryownrvm' # only needed if not detected
19 | set :rvm_ruby_version, 'clio_test'
20 |
--------------------------------------------------------------------------------
/config/donor_info.yml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 'seymourdurst':
4 | txt: 'Seymour B. Durst Old York Library Collection, Avery Architectural & Fine Arts Library, Columbia University.'
5 | url: 'https://dlc.library.columbia.edu/durst'
6 |
7 | 'paullevitz':
8 | txt: ''
9 | url: ''
10 |
11 |
--------------------------------------------------------------------------------
/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the Rails application.
2 | require_relative 'application'
3 |
4 | # Initialize the Rails application.
5 | Rails.application.initialize!
6 |
7 | # # Load the rails application
8 | # require File.expand_path('../application', __FILE__)
9 | #
10 | # # Initialize the rails application
11 | # Clio::Application.initialize!
12 |
--------------------------------------------------------------------------------
/config/environments/spectrum_prod_master.rb:
--------------------------------------------------------------------------------
1 | # minimal configuration settings necessary
2 | # for cron jobs against master solr index
3 | Clio::Application.configure do
4 | # Silence the noisy deprecations,
5 | # we don't need them in our cron email output
6 | ActiveSupport::Deprecation.silenced = true
7 | end
8 |
--------------------------------------------------------------------------------
/config/initializers/application_controller_renderer.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # ActiveSupport::Reloader.to_prepare do
4 | # ApplicationController.renderer.defaults.merge!(
5 | # http_host: 'example.org',
6 | # https: false
7 | # )
8 | # end
9 |
--------------------------------------------------------------------------------
/config/initializers/assets.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Version of your assets, change this if you want to expire all your assets.
4 | Rails.application.config.assets.version = '1.0'
5 |
6 | # Add additional assets to the asset load path.
7 | # Rails.application.config.assets.paths << Emoji.images_path
8 | # Add Yarn node_modules folder to the asset load path.
9 | Rails.application.config.assets.paths << Rails.root.join('node_modules')
10 |
11 | # Precompile additional assets.
12 | # application.js, application.css, and all non-JS/CSS in the app/assets
13 | # folder are already added.
14 | # Rails.application.config.assets.precompile += %w( admin.js admin.css )
15 |
--------------------------------------------------------------------------------
/config/initializers/backtrace_silencers.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5 |
6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7 | # Rails.backtrace_cleaner.remove_silencers!
8 |
--------------------------------------------------------------------------------
/config/initializers/cookies_serializer.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Specify a serializer for the signed and encrypted cookie jars.
4 | # Valid options are :json, :marshal, and :hybrid.
5 | Rails.application.config.action_dispatch.cookies_serializer = :marshal
6 |
--------------------------------------------------------------------------------
/config/initializers/filter_parameter_logging.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Configure sensitive parameters which will be filtered from the log file.
4 | Rails.application.config.filter_parameters += [:password]
5 |
--------------------------------------------------------------------------------
/config/initializers/footnotes.rb:
--------------------------------------------------------------------------------
1 |
2 | # No footnotes for now
3 |
4 | # if defined?(Footnotes) && Rails.env.development?
5 | # Footnotes.run! # first of all
6 | #
7 | # end
8 |
--------------------------------------------------------------------------------
/config/initializers/google_analytics.rb:
--------------------------------------------------------------------------------
1 | module GoogleAnalytics
2 | mattr_accessor :web_property_id
3 | end
4 |
5 | # Change to your Google Web id
6 | GoogleAnalytics.web_property_id = case Rails.env.to_s
7 |
8 | # PROD
9 | when 'clio_prod'
10 | 'UA-28923110-1'
11 |
12 | # TEST
13 | when 'clio_test'
14 | 'UA-28923110-3'
15 |
16 | # DEV
17 | when 'clio_dev'
18 | 'UA-28923110-4'
19 |
20 | when 'development'
21 | 'UA-28923110-5'
22 |
23 | end
24 |
--------------------------------------------------------------------------------
/config/initializers/google_api_client.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'google/apis/core/base_service'
3 |
4 | google_config = APP_CONFIG['google'] || {}
5 |
6 | Google::Apis.logger = Logger.new(STDERR)
7 | Google::Apis.logger.level = google_config['log_level'] || Logger::INFO
8 |
9 | Google::Apis::RequestOptions.default.retries = google_config['api_retries'] || 2
10 |
11 |
12 |
--------------------------------------------------------------------------------
/config/initializers/has_options.rb:
--------------------------------------------------------------------------------
1 | # HasOptions
2 | require 'has_options'
3 | ActiveRecord::Base.send :include, HasOptionsHash::HasOptions
4 |
--------------------------------------------------------------------------------
/config/initializers/inflections.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new inflection rules using the following format. Inflections
4 | # are locale specific, and you may define rules for as many different
5 | # locales as you wish. All of these examples are active by default:
6 | # ActiveSupport::Inflector.inflections(:en) do |inflect|
7 | # inflect.plural /^(ox)$/i, '\1en'
8 | # inflect.singular /^(ox)en/i, '\1'
9 | # inflect.irregular 'person', 'people'
10 | # inflect.uncountable %w( fish sheep )
11 | # end
12 |
13 | # These inflection rules are supported but not enabled by default:
14 | # ActiveSupport::Inflector.inflections(:en) do |inflect|
15 | # inflect.acronym 'RESTful'
16 | # end
17 |
--------------------------------------------------------------------------------
/config/initializers/load_local_subjects.rb:
--------------------------------------------------------------------------------
1 |
2 | # NEXT-1601 - mapping table from LOC subject heading to preferred local NNC subject heading
3 | LOCAL_SUBJECTS = {}
4 |
5 | # The app_config.yml toggle value controls whether the local-subjects database table
6 | # is loaded into into a mapping table to be used in display and bib indexing.
7 | # The Authorities Load will populate the mapping table regardless.
8 | if APP_CONFIG['enable_local_subjects']
9 | if ActiveRecord::Base.connection.table_exists?('local_subjects')
10 | LocalSubject.find_each do |local_subject|
11 | LOCAL_SUBJECTS[ local_subject.loc_subject ] = local_subject.nnc_subject
12 | end
13 | end
14 | end
15 |
16 |
17 |
--------------------------------------------------------------------------------
/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 |
6 | Mime::Type.register "application/xls", :xls
7 |
--------------------------------------------------------------------------------
/config/initializers/new_framework_defaults_5_1.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 | #
3 | # This file contains migration options to ease your Rails 5.1 upgrade.
4 | #
5 | # Once upgraded flip defaults one by one to migrate to the new default.
6 | #
7 | # Read the Guide for Upgrading Ruby on Rails for more info on each option.
8 |
9 | # Make `form_with` generate non-remote forms.
10 | Rails.application.config.action_view.form_with_generates_remote_forms = false
11 |
12 | # Unknown asset fallback will return the path passed in when the given
13 | # asset is not present in the asset pipeline.
14 | # Rails.application.config.assets.unknown_asset_fallback = false
15 |
--------------------------------------------------------------------------------
/config/initializers/recaptcha.rb:
--------------------------------------------------------------------------------
1 |
2 | Recaptcha.configure do |config|
3 | config.site_key = APP_CONFIG['recaptcha_site_key'] || 'invalid'
4 | config.secret_key = APP_CONFIG['recaptcha_secret_key'] || 'invalid'
5 | # Uncomment the following line if you are using a proxy server:
6 | # config.proxy = 'http://myproxy.com.au:8080'
7 | end
8 |
--------------------------------------------------------------------------------
/config/initializers/secret_token.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Your secret key for verifying the integrity of signed cookies.
4 | # If you change this key, all old signed cookies will become invalid!
5 | # Make sure the secret is at least 30 characters and all random,
6 | # no regular words or you'll be exposed to dictionary attacks.
7 | Clio::Application.config.secret_key_base = '30efc4e7909c4d8cb8998f0f242c4f91077bf906dcdcd56fee3daee7cefc6fcb51763c31cd74383e62ddb6a98a1f47206992ca9b8697710f2c896dc60f34ed22'
8 |
--------------------------------------------------------------------------------
/config/initializers/uptime.rb:
--------------------------------------------------------------------------------
1 | # http://stackoverflow.com/questions/18465962
2 | # Is there a way to get the elapsed time that
3 | # a Rails server has been running for?
4 |
5 | BOOTED_AT = Time.now
6 |
7 | LAST_DEPLOYED = File.atime(Dir.pwd).to_s(:long)
8 |
9 |
--------------------------------------------------------------------------------
/config/initializers/wrap_parameters.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # This file contains settings for ActionController::ParamsWrapper which
4 | # is enabled by default.
5 |
6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7 | ActiveSupport.on_load(:action_controller) do
8 | wrap_parameters format: [:json]
9 | end
10 |
11 | # To enable root element in JSON for ActiveRecord objects.
12 | # ActiveSupport.on_load(:active_record) do
13 | # self.include_root_in_json = true
14 | # end
15 |
--------------------------------------------------------------------------------
/config/locales/en.yml:
--------------------------------------------------------------------------------
1 | # Files in the config/locales directory are used for internationalization
2 | # and are automatically loaded by Rails. If you want to use locales other
3 | # than English, add the necessary files in this directory.
4 | #
5 | # To use the locales, use `I18n.t`:
6 | #
7 | # I18n.t 'hello'
8 | #
9 | # In views, this is aliased to just `t`:
10 | #
11 | # <%= t('hello') %>
12 | #
13 | # To use a different locale, set it with `I18n.locale`:
14 | #
15 | # I18n.locale = :es
16 | #
17 | # This would use the information in config/locales/es.yml.
18 | #
19 | # The following keys must be escaped otherwise they will not be retrieved by
20 | # the default I18n backend:
21 | #
22 | # true, false, on, off, yes, no
23 | #
24 | # Instead, surround them with single quotes.
25 | #
26 | # en:
27 | # 'true': 'foo'
28 | #
29 | # To learn more, please read the Rails Internationalization guide
30 | # available at http://guides.rubyonrails.org/i18n.html.
31 |
32 | en:
33 | hello: "Hello world"
34 |
--------------------------------------------------------------------------------
/config/order_status_codes.yml:
--------------------------------------------------------------------------------
1 | '0':
2 | short_message: 'In the Pre-Order Process'
3 | long_message: 'In the Pre-Order Process. Try Borrow Direct or ILL.'
4 | services:
5 | - borrow_direct
6 | - ill
7 | '1':
8 | short_message: 'Received %DATE'
9 | long_message: 'Received %DATE. Place an In Process item request.'
10 | services:
11 | - in_process
12 | '4':
13 | short_message: 'Not yet received; claimed %DATE'
14 | long_message: 'Not yet received; claimed %DATE. Try Borrow Direct or ILL.'
15 | services:
16 | - on_order
17 | - borrow_direct
18 | - ill
19 | '8':
20 | short_message: 'Copy On Order %DATE'
21 | long_message: 'Copy On Order %DATE. Try Borrow Direct or ILL.'
22 | services:
23 | - on_order
24 | - borrow_direct
25 | - ill
26 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/lang/contractions_ca.txt:
--------------------------------------------------------------------------------
1 | # Set of Catalan contractions for ElisionFilter
2 | # TODO: load this as a resource from the analyzer and sync it in build.xml
3 | d
4 | l
5 | m
6 | n
7 | s
8 | t
9 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/lang/contractions_fr.txt:
--------------------------------------------------------------------------------
1 | # Set of French contractions for ElisionFilter
2 | # TODO: load this as a resource from the analyzer and sync it in build.xml
3 | l
4 | m
5 | t
6 | qu
7 | n
8 | s
9 | j
10 | d
11 | c
12 | jusqu
13 | quoiqu
14 | lorsqu
15 | puisqu
16 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/lang/contractions_ga.txt:
--------------------------------------------------------------------------------
1 | # Set of Irish contractions for ElisionFilter
2 | # TODO: load this as a resource from the analyzer and sync it in build.xml
3 | d
4 | m
5 | b
6 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/lang/contractions_it.txt:
--------------------------------------------------------------------------------
1 | # Set of Italian contractions for ElisionFilter
2 | # TODO: load this as a resource from the analyzer and sync it in build.xml
3 | c
4 | l
5 | all
6 | dall
7 | dell
8 | nell
9 | sull
10 | coll
11 | pell
12 | gl
13 | agl
14 | dagl
15 | degl
16 | negl
17 | sugl
18 | un
19 | m
20 | t
21 | s
22 | v
23 | d
24 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/lang/hyphenations_ga.txt:
--------------------------------------------------------------------------------
1 | # Set of Irish hyphenations for StopFilter
2 | # TODO: load this as a resource from the analyzer and sync it in build.xml
3 | h
4 | n
5 | t
6 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/lang/stemdict_nl.txt:
--------------------------------------------------------------------------------
1 | # Set of overrides for the dutch stemmer
2 | # TODO: load this as a resource from the analyzer and sync it in build.xml
3 | fiets fiets
4 | bromfiets bromfiets
5 | ei eier
6 | kind kinder
7 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/lang/stopwords_el.txt:
--------------------------------------------------------------------------------
1 | # Lucene Greek Stopwords list
2 | # Note: by default this file is used after GreekLowerCaseFilter,
3 | # so when modifying this file use 'σ' instead of 'ς'
4 | ο
5 | η
6 | το
7 | οι
8 | τα
9 | του
10 | τησ
11 | των
12 | τον
13 | την
14 | και
15 | κι
16 | κ
17 | ειμαι
18 | εισαι
19 | ειναι
20 | ειμαστε
21 | ειστε
22 | στο
23 | στον
24 | στη
25 | στην
26 | μα
27 | αλλα
28 | απο
29 | για
30 | προσ
31 | με
32 | σε
33 | ωσ
34 | παρα
35 | αντι
36 | κατα
37 | μετα
38 | θα
39 | να
40 | δε
41 | δεν
42 | μη
43 | μην
44 | επι
45 | ενω
46 | εαν
47 | αν
48 | τοτε
49 | που
50 | πωσ
51 | ποιοσ
52 | ποια
53 | ποιο
54 | ποιοι
55 | ποιεσ
56 | ποιων
57 | ποιουσ
58 | αυτοσ
59 | αυτη
60 | αυτο
61 | αυτοι
62 | αυτων
63 | αυτουσ
64 | αυτεσ
65 | αυτα
66 | εκεινοσ
67 | εκεινη
68 | εκεινο
69 | εκεινοι
70 | εκεινεσ
71 | εκεινα
72 | εκεινων
73 | εκεινουσ
74 | οπωσ
75 | ομωσ
76 | ισωσ
77 | οσο
78 | οτι
79 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/lang/stopwords_hy.txt:
--------------------------------------------------------------------------------
1 | # example set of Armenian stopwords.
2 | այդ
3 | այլ
4 | այն
5 | այս
6 | դու
7 | դուք
8 | եմ
9 | են
10 | ենք
11 | ես
12 | եք
13 | է
14 | էի
15 | էին
16 | էինք
17 | էիր
18 | էիք
19 | էր
20 | ըստ
21 | թ
22 | ի
23 | ին
24 | իսկ
25 | իր
26 | կամ
27 | համար
28 | հետ
29 | հետո
30 | մենք
31 | մեջ
32 | մի
33 | ն
34 | նա
35 | նաև
36 | նրա
37 | նրանք
38 | որ
39 | որը
40 | որոնք
41 | որպես
42 | ու
43 | ում
44 | պիտի
45 | վրա
46 | և
47 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/mapping-apostropheish.txt:
--------------------------------------------------------------------------------
1 | #
2 | # We found that either input documents or queries would
3 | # sometimes contain apostrophe-like characters instead of
4 | # actual apostrophes (single-quotes).
5 | #
6 | # Solr has some default tokenizing related to apostrophes,
7 | # which doesn't happen for non-apostrophes.
8 | #
9 | # Since we want all these chars to be treated equivalently,
10 | # we'll simply map them to the same value.
11 | #
12 | # See details in NEXT-824 - Apostrophe character
13 | #
14 |
15 | # Unicode Character 'MODIFIER LETTER PRIME' (U+02B9)
16 | "\u02B9" => "'"
17 |
18 | # Unicode Character 'MODIFIER LETTER TURNED COMMA' (U+02BB)
19 | "\u02BB" => "'"
20 |
21 | # Unicode Character 'MODIFIER LETTER APOSTROPHE' (U+02BC)
22 | "\u02BC" => "'"
23 |
24 | # Unicode Character 'MODIFIER LETTER RIGHT HALF RING' (U+02BE)
25 | "\u02BE" => "'"
26 |
27 | # Unicode Character 'MODIFIER LETTER LEFT HALF RING' (U+02BF)
28 | "\u02BF" => "'"
29 |
30 |
31 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/params.json:
--------------------------------------------------------------------------------
1 | {"params":{
2 | "query":{
3 | "defType":"edismax",
4 | "q.alt":"*:*",
5 | "rows":"10",
6 | "fl":"*,score",
7 | "":{"v":0}
8 | },
9 | "facets":{
10 | "facet":"on",
11 | "facet.mincount": "1",
12 | "":{"v":0}
13 | },
14 | "velocity":{
15 | "wt": "velocity",
16 | "v.template":"browse",
17 | "v.layout": "layout",
18 | "":{"v":0}
19 | }
20 | }}
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/protwords.txt:
--------------------------------------------------------------------------------
1 | # The ASF licenses this file to You under the Apache License, Version 2.0
2 | # (the "License"); you may not use this file except in compliance with
3 | # the License. You may obtain a copy of the License at
4 | #
5 | # http://www.apache.org/licenses/LICENSE-2.0
6 | #
7 | # Unless required by applicable law or agreed to in writing, software
8 | # distributed under the License is distributed on an "AS IS" BASIS,
9 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | # See the License for the specific language governing permissions and
11 | # limitations under the License.
12 |
13 | #-----------------------------------------------------------------------
14 | # Use a protected word file to protect against the stemmer reducing two
15 | # unrelated words to the same base word.
16 |
17 | # Some non-words that normally won't be encountered,
18 | # just to test that they won't be stemmed.
19 | dontstems
20 | zwhacky
21 |
22 |
--------------------------------------------------------------------------------
/config/solr/configsets/clio/conf/stopwords.txt:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one or more
2 | # contributor license agreements. See the NOTICE file distributed with
3 | # this work for additional information regarding copyright ownership.
4 | # The ASF licenses this file to You under the Apache License, Version 2.0
5 | # (the "License"); you may not use this file except in compliance with
6 | # the License. You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
--------------------------------------------------------------------------------
/config/spring.rb:
--------------------------------------------------------------------------------
1 | %w(
2 | .ruby-version
3 | .rbenv-vars
4 | tmp/restart.txt
5 | tmp/caching-dev.txt
6 | ).each { |path| Spring.watch(path) }
7 |
--------------------------------------------------------------------------------
/db/migrate/20090611201815_create_options.rb:
--------------------------------------------------------------------------------
1 | class CreateOptions < ActiveRecord::Migration[5.1]
2 | def self.up
3 | create_table :options, force: true do |t|
4 | t.integer :entity_id
5 | t.string :entity_type, limit: 30
6 | t.string :association_type, limit: 30
7 | t.string :name, null: false
8 | t.text :value
9 | t.timestamps null: true
10 | end
11 |
12 | add_index :options, [:entity_type, :entity_id, :association_type, :name], name: 'entity_association_name'
13 | end
14 |
15 | def self.down
16 | drop_table :options
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/db/migrate/20101130172511_create_locations.rb:
--------------------------------------------------------------------------------
1 | class CreateLocations < ActiveRecord::Migration[5.1]
2 | def self.up
3 | create_table :locations do |t|
4 | t.string :name
5 | t.text :found_in
6 | t.integer :library_id
7 | t.string :category, limit: 10
8 | t.timestamps null: true
9 | end
10 |
11 | add_index :locations, :name
12 | add_index :locations, :library_id
13 | end
14 |
15 | def self.down
16 | drop_table :locations
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/db/migrate/20101213160031_create_libraries.rb:
--------------------------------------------------------------------------------
1 | class CreateLibraries < ActiveRecord::Migration[5.1]
2 | def self.up
3 | create_table :libraries do |t|
4 | t.string :hours_db_code, length: 30, null: false
5 | t.string :name
6 | t.text :comment
7 | t.text :url
8 |
9 | t.timestamps null: true
10 | end
11 |
12 | add_index :libraries, :hours_db_code
13 | end
14 |
15 | def self.down
16 | drop_table :libraries
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/db/migrate/20101213191638_create_library_hours.rb:
--------------------------------------------------------------------------------
1 | class CreateLibraryHours < ActiveRecord::Migration[5.1]
2 | def self.up
3 | create_table :library_hours do |t|
4 | t.integer :library_id, null: false
5 | t.date :date, null: false
6 | t.datetime :opens
7 | t.datetime :closes
8 | t.text :note
9 |
10 | t.timestamps null: true
11 | end
12 |
13 | add_index :library_hours, [:library_id, :date]
14 | end
15 |
16 | def self.down
17 | drop_table :library_hours
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/db/migrate/20110512152511_create_searches.rb:
--------------------------------------------------------------------------------
1 | class CreateSearches < ActiveRecord::Migration[5.1]
2 | def self.up
3 | create_table :searches do |t|
4 | t.text :query_params
5 | t.integer :user_id
6 |
7 | t.timestamps null: true
8 | end
9 | add_index :searches, :user_id
10 | end
11 |
12 | def self.down
13 | drop_table :searches
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/db/migrate/20110512152512_create_bookmarks.rb:
--------------------------------------------------------------------------------
1 | class CreateBookmarks < ActiveRecord::Migration[5.1]
2 | def self.up
3 | create_table :bookmarks do |t|
4 | t.integer :user_id, null: false
5 | t.text :url
6 | t.string :document_id
7 | t.string :title
8 | t.text :notes
9 | t.timestamps null: true
10 | end
11 | end
12 |
13 | def self.down
14 | drop_table :bookmarks
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/db/migrate/20110512152513_remove_editable_fields_from_bookmarks.rb:
--------------------------------------------------------------------------------
1 | class RemoveEditableFieldsFromBookmarks < ActiveRecord::Migration[5.1]
2 | def self.up
3 | remove_column :bookmarks, :notes
4 | remove_column :bookmarks, :url
5 | end
6 |
7 | def self.down
8 | add_column :bookmarks, :notes, :text
9 | add_column :bookmarks, :url, :string
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20110512152514_add_user_types_to_bookmarks_searches.rb:
--------------------------------------------------------------------------------
1 | class AddUserTypesToBookmarksSearches < ActiveRecord::Migration[5.1]
2 | def self.up
3 | add_column :searches, :user_type, :string
4 | add_column :bookmarks, :user_type, :string
5 | end
6 |
7 | def self.down
8 | remove_column :searches, :user_type, :string
9 | remove_column :bookmarks, :user_type, :string
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20120131170432_add_sessions_table.rb:
--------------------------------------------------------------------------------
1 | class AddSessionsTable < ActiveRecord::Migration[5.1]
2 | def change
3 | create_table :sessions do |t|
4 | t.string :session_id, null: false
5 | t.text :data
6 | t.timestamps null: true
7 | end
8 |
9 | add_index :sessions, :session_id
10 | add_index :sessions, :updated_at
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/db/migrate/20120713135411_create_users.rb:
--------------------------------------------------------------------------------
1 | class CreateUsers < ActiveRecord::Migration[5.1]
2 | def self.up
3 | create_table :users do |t|
4 | t.string :first_name, limit: 40
5 | t.string :last_name, limit: 40
6 | t.string :login, limit: 10
7 | t.timestamps null: true
8 | end
9 |
10 | add_index :users, :login
11 | end
12 |
13 | def self.down
14 | drop_table :users
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/db/migrate/20120718165239_add_password_salt.rb:
--------------------------------------------------------------------------------
1 | class AddPasswordSalt < ActiveRecord::Migration[5.1]
2 | def change
3 | add_column :users, :password_salt, :string
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/db/migrate/20121113211955_create_item_alerts.rb:
--------------------------------------------------------------------------------
1 | class CreateItemAlerts < ActiveRecord::Migration[5.1]
2 | def change
3 | create_table :item_alerts do |t|
4 | t.string :source, null: false, limit: 20
5 | t.string :item_key, null: false, limit: 32
6 | t.string :alert_type, null: false
7 | t.integer :author_id
8 | t.datetime :start_date
9 | t.datetime :end_date
10 | t.text :message
11 |
12 | t.timestamps null: true
13 | end
14 |
15 | add_index :item_alerts, [:source, :item_key]
16 | add_index :item_alerts, [:start_date, :end_date]
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/db/migrate/20130614173623_create_saved_lists.rb:
--------------------------------------------------------------------------------
1 | class CreateSavedLists < ActiveRecord::Migration[5.1]
2 | def change
3 | create_table :saved_lists do |t|
4 | t.string :owner, null: false, limit: 20
5 | t.string :name, null: false, limit: 200
6 | t.string :slug, null: false, limit: 200
7 | t.string :description, default: ''
8 | t.string :sort_by
9 | t.string :permissions, default: 'private'
10 |
11 | t.timestamps null: true
12 | end
13 |
14 | add_index :saved_lists, [:owner, :slug], unique: true, name: 'savedlist_url'
15 | add_index :saved_lists, [:owner, :name], unique: true, name: 'savedlist_name'
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/db/migrate/20130614173638_create_saved_list_items.rb:
--------------------------------------------------------------------------------
1 | class CreateSavedListItems < ActiveRecord::Migration[5.1]
2 | def change
3 | create_table :saved_list_items do |t|
4 | t.integer :saved_list_id
5 | t.string :item_source
6 | t.text :item_key
7 | t.integer :sort_order
8 |
9 | t.timestamps null: true
10 | end
11 |
12 | # add_index :saved_list_items, [:saved_list_id, :item_key], unique: true
13 |
14 | add_index :saved_list_items, [:saved_list_id, :item_key], unique: true, length: { item_key: 200 }
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/db/migrate/20130702170157_create_versions.rb:
--------------------------------------------------------------------------------
1 | class CreateVersions < ActiveRecord::Migration[5.1]
2 | def self.up
3 | create_table :versions do |t|
4 | t.string :item_type, null: false
5 | t.integer :item_id, null: false
6 | t.string :event, null: false
7 | t.string :whodunnit
8 | t.text :object
9 | t.datetime :created_at
10 | end
11 | add_index :versions, [:item_type, :item_id]
12 | end
13 |
14 | def self.down
15 | remove_index :versions, [:item_type, :item_id]
16 | drop_table :versions
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/db/migrate/20150218220036_add_location_code_to_locations.rb:
--------------------------------------------------------------------------------
1 | class AddLocationCodeToLocations < ActiveRecord::Migration[5.1]
2 | def change
3 | add_column :locations, :location_code, :text
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/db/migrate/20150304151755_change_length_of_category_to_12.rb:
--------------------------------------------------------------------------------
1 | class ChangeLengthOfCategoryTo12 < ActiveRecord::Migration[5.1]
2 | def up
3 | change_column :locations, :category, :string, limit: 12
4 | end
5 |
6 | def down
7 | change_column :locations, :category, :string, limit: 10
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20150604161023_add_polymorphic_type_to_bookmarks.blacklight.rb:
--------------------------------------------------------------------------------
1 | # This migration comes from blacklight (originally 20140320000000)
2 | # -*- encoding : utf-8 -*-
3 | class AddPolymorphicTypeToBookmarks < ActiveRecord::Migration[5.1]
4 | def change
5 | add_column(:bookmarks, :document_type, :string)
6 |
7 | add_index :bookmarks, :user_id
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/db/migrate/20160930143849_create_preferences.rb:
--------------------------------------------------------------------------------
1 | class CreatePreferences < ActiveRecord::Migration[5.1]
2 | def change
3 | create_table :preferences do |t|
4 | t.string :login, null: false
5 | t.text :settings, null: false
6 |
7 | t.timestamps null: false
8 | end
9 |
10 | add_index :preferences, :login, unique: true
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/db/migrate/20180101010101_library_code.rb:
--------------------------------------------------------------------------------
1 | class LibraryCode < ActiveRecord::Migration[5.1]
2 | def change
3 | add_column(:locations, :library_code, :string)
4 |
5 | add_index :locations, :library_code
6 |
7 | add_column(:library_hours, :library_code, :string)
8 |
9 | add_index :library_hours, :library_code
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/db/migrate/20180401010101_best_bets.rb:
--------------------------------------------------------------------------------
1 | class BestBets < ActiveRecord::Migration[5.1]
2 | def change
3 | create_table :best_bets do |t|
4 | t.string :title, null: false
5 | t.string :url, null: false
6 | t.string :description, null: false
7 |
8 | t.text :keywords, null: true
9 |
10 | t.timestamps null: false
11 | end
12 |
13 | add_index :best_bets, :title, unique: true
14 |
15 | if ActiveRecord::Base.connection.adapter_name =~ /mysql/i
16 | add_index :best_bets, [:title, :url, :description, :keywords], name: 'fulltext', type: :fulltext
17 | end
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/db/migrate/20181001010101_logs.rb:
--------------------------------------------------------------------------------
1 | class Logs < ActiveRecord::Migration[5.1]
2 | def change
3 | create_table :logs do |t|
4 | # request data
5 | t.text :user_agent, null: true
6 | t.text :referrer, null: true
7 | t.string :remote_ip, null: true
8 |
9 | # log data
10 | t.string :set, null: false
11 | t.text :logdata, null: true
12 |
13 | t.timestamps null: false
14 | end
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/db/migrate/20181101010101_affils.rb:
--------------------------------------------------------------------------------
1 | # Changes to enable omniauth-cas-saml based affils
2 | class Affils < ActiveRecord::Migration[5.1]
3 |
4 |
5 | # def change
6 | #
7 | # rename_column :users, :login, :uid
8 | #
9 | # add_column :users, :provider, :string, null: false, default: 'saml'
10 | #
11 | # add_column :users, :affils, :text
12 | #
13 | # end
14 |
15 | def self.up
16 | add_column :users, :provider, :string, null: false, default: 'saml'
17 | add_column :users, :affils, :text
18 | add_column :users, :uid, :string
19 |
20 | User.update_all("uid=login")
21 |
22 | add_index :users, :uid
23 | end
24 |
25 | def self.down
26 | remove_column :users, :provider, :string
27 | remove_column :users, :affils, :text
28 | remove_column :users, :uid, :string
29 | end
30 |
31 | end
32 |
33 |
--------------------------------------------------------------------------------
/db/migrate/20190601010101_add_tags_to_best_bets.rb:
--------------------------------------------------------------------------------
1 | class AddTagsToBestBets < ActiveRecord::Migration[5.1]
2 |
3 | def up
4 | add_column :best_bets, :tags, :text
5 | # When migration runs, all records are CLIO Best Bets
6 | BestBet.update_all(tags: 'BestBets')
7 | end
8 |
9 | def down
10 | remove_column :best_bets, :tags
11 | end
12 |
13 | end
14 |
--------------------------------------------------------------------------------
/db/migrate/20210101010101_create_local_subjects.rb:
--------------------------------------------------------------------------------
1 | class CreateLocalSubjects < ActiveRecord::Migration[5.1]
2 | def change
3 | create_table :local_subjects do |t|
4 | # Id of Voyager Authority record.
5 | # String instead of Int, because I don't trust source data
6 | t.string :authority_id, null: false
7 | t.string :authority_field, null: true
8 | t.string :authority_subfield, null: true
9 |
10 | t.string :loc_subject, null: false
11 | t.string :nnc_subject, null: false
12 |
13 |
14 | t.timestamps null: false
15 | end
16 |
17 | add_index :local_subjects, :loc_subject, unique: true
18 |
19 | end
20 | end
--------------------------------------------------------------------------------
/db/migrate/20210201010101_create_simplye.rb:
--------------------------------------------------------------------------------
1 | class CreateSimplye < ActiveRecord::Migration[5.1]
2 | def change
3 | create_table :simplye_links do |t|
4 | # Id of Voyager Authority record.
5 | # String instead of Int, because I don't trust source data
6 | t.string :bib_id, null: false
7 | t.string :simplye_url, null: true
8 |
9 | t.timestamps null: false
10 | end
11 |
12 | add_index :simplye_links, :bib_id, unique: true
13 |
14 | end
15 | end
--------------------------------------------------------------------------------
/doc/README_FOR_APP:
--------------------------------------------------------------------------------
1 | Use this README file to introduce your application and point to useful places in the API for learning more.
2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
3 |
--------------------------------------------------------------------------------
/lib/response_timer.rb:
--------------------------------------------------------------------------------
1 |
2 | # http://asciicasts.com/episodes/151-rack-middleware
3 |
4 | class ResponseTimer
5 | def initialize(app, message = 'Response Time')
6 | @app = app
7 | @message = message
8 | end
9 |
10 | def call(env)
11 | @start = Time.now
12 | @status, @headers, @response = @app.call(env)
13 | @stop = Time.now
14 | @elapsed = (@stop - @start) * 1000
15 | [@status, @headers, self]
16 | end
17 |
18 | def each(&block)
19 | if @headers && @headers['Content-Type'] && @headers['Content-Type'].include?('text/html')
20 | yield("\n")
21 | end
22 |
23 | @response.each(&block)
24 | end
25 | end
26 |
--------------------------------------------------------------------------------
/lib/tasks/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/lib/tasks/.gitkeep
--------------------------------------------------------------------------------
/lib/tasks/hathi.rake:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/lib/tasks/hathi.rake
--------------------------------------------------------------------------------
/lib/tasks/load_locations.rake:
--------------------------------------------------------------------------------
1 | namespace :locations do
2 | desc('Starting rake task to load locations from config/locations_fixture.yml')
3 |
4 | task load: :environment do
5 | locations = Location.clear_and_load_fixtures!
6 | Rails.logger.info(locations.count.to_s + ' locations loaded.')
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/lib/tasks/sessions.rake:
--------------------------------------------------------------------------------
1 |
2 | # Rails sessions table cleanup, remove recent (but not all) records
3 | # (for when session_store is set to :active_record_store)
4 | # http://www.softr.li/blog/2012/07/05/setup-automatic-clearing-of-your-rails-sessions
5 |
6 | namespace :sessions do
7 | desc 'Clear expired sessions (more than N days old)'
8 | task :cleanup, [:days_old] => :environment do |_t, args|
9 | # args.with_defaults(days_old: 7)
10 | days_old = (args[:days_old] || 7).to_i
11 | raise 'input arg :days_old must be > 0' if days_old < 1
12 | sql = "DELETE FROM sessions WHERE (updated_at < '#{Date.today - days_old.to_i.days}')"
13 | ActiveRecord::Base.connection.execute(sql)
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/lib/translation_maps/database_discipline_map.properties:
--------------------------------------------------------------------------------
1 | 1219 = Arts, Architecture & Applied Arts
2 | 1044 = Business & Economics
3 | 1006 = Engineering & Applied Sciences
4 | 1299 = General
5 | 1028 = Health Sciences
6 | 1183 = History & Archaeology
7 | 1055 = Journalism & Communications
8 | 1186 = Languages & Literatures
9 | 1056 = Law, Politics & Government
10 | 1231 = Music, Dance, Drama & Film
11 | 1001 = Philosophy & Religion
12 | 1535 = Sciences
13 | 1089 = Social Sciences
14 |
--------------------------------------------------------------------------------
/lib/translation_maps/database_resource_type_map.properties:
--------------------------------------------------------------------------------
1 | ar = Archival Catalogs
2 | bc = E-Book Collections
3 | bi = Biographies
4 | ct = Library Catalogs
5 | di = Dictionaries
6 | dr = Directories
7 | ds = Dissertations
8 | en = Encyclopedias
9 | ft = Full-text Resources
10 | hb = Handbooks
11 | hi = Historical
12 | ia = Indexing & Abstracting Services
13 | im = Image Collections
14 | ja = Articles (Journals)
15 | ma = Map & Atlas Collections
16 | mi = Videos & Webcasts
17 | mu = Music Scores
18 | np = Newspaper Collections
19 | nu = Statistical Resources
20 | nw = Articles (Newspapers)
21 | sg = Subject Guides
22 | sr = Sound Collections
23 | tc = Text Collections
24 | wb = Websites
25 |
--------------------------------------------------------------------------------
/public/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The page you were looking for doesn't exist (404)
5 |
17 |
18 |
19 |
20 |
21 |
22 |
The page you were looking for doesn't exist.
23 |
You may have mistyped the address or the page may have moved.
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/public/422.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The change you wanted was rejected (422)
5 |
17 |
18 |
19 |
20 |
21 |
22 |
The change you wanted was rejected.
23 |
Maybe you tried to change something you didn't have access to.
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/public/apple-touch-icon-114x114-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/apple-touch-icon-114x114-precomposed.png
--------------------------------------------------------------------------------
/public/apple-touch-icon-120x120-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/apple-touch-icon-120x120-precomposed.png
--------------------------------------------------------------------------------
/public/apple-touch-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/apple-touch-icon-120x120.png
--------------------------------------------------------------------------------
/public/apple-touch-icon-144x144-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/apple-touch-icon-144x144-precomposed.png
--------------------------------------------------------------------------------
/public/apple-touch-icon-72x72-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/apple-touch-icon-72x72-precomposed.png
--------------------------------------------------------------------------------
/public/apple-touch-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/apple-touch-icon-precomposed.png
--------------------------------------------------------------------------------
/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/colors.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/colors.css
--------------------------------------------------------------------------------
/public/demo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hello World
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/favicon.ico
--------------------------------------------------------------------------------
/public/googleb46478bf96590e15.html:
--------------------------------------------------------------------------------
1 | google-site-verification: googleb46478bf96590e15.html
--------------------------------------------------------------------------------
/public/img/cul-mob-topbanner_crown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/img/cul-mob-topbanner_crown.png
--------------------------------------------------------------------------------
/public/r.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/public/static-icons/available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/available.png
--------------------------------------------------------------------------------
/public/static-icons/crown-bts-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/crown-bts-24x24.png
--------------------------------------------------------------------------------
/public/static-icons/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/default.png
--------------------------------------------------------------------------------
/public/static-icons/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/doc.png
--------------------------------------------------------------------------------
/public/static-icons/mp3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/mp3.png
--------------------------------------------------------------------------------
/public/static-icons/mp4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/mp4.png
--------------------------------------------------------------------------------
/public/static-icons/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/none.png
--------------------------------------------------------------------------------
/public/static-icons/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/pdf.png
--------------------------------------------------------------------------------
/public/static-icons/ppt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/ppt.png
--------------------------------------------------------------------------------
/public/static-icons/some_available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/some_available.png
--------------------------------------------------------------------------------
/public/static-icons/unavailable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/unavailable.png
--------------------------------------------------------------------------------
/public/static-icons/xls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/xls.png
--------------------------------------------------------------------------------
/public/static-icons/xlsx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/static-icons/xlsx.png
--------------------------------------------------------------------------------
/public/stylesheets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/.gitkeep
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/border.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/controls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/controls.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderBottomCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/internet_explorer/borderBottomCenter.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderBottomLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/internet_explorer/borderBottomLeft.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderBottomRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/internet_explorer/borderBottomRight.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderMiddleLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/internet_explorer/borderMiddleLeft.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderMiddleRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/internet_explorer/borderMiddleRight.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderTopCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/internet_explorer/borderTopCenter.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderTopLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/internet_explorer/borderTopLeft.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderTopRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/internet_explorer/borderTopRight.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/loading.gif
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/loading_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/loading_background.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/a6d858b729b2f901fd1a4a35cae93f1f02488706/public/stylesheets/colorbox/images/overlay.png
--------------------------------------------------------------------------------
/spec/controllers/catalog_controller_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe CatalogController do
4 | describe "GET 'endnote.endnote'" do
5 | it 'should work for single ids' do
6 | # {"id"=>["323033", "5417238"], "controller"=>"catalog", "action"=>"endnote", "format"=>"endnote", "adv"=>{}}
7 | get 'endnote', format: 'endnote', params: { id: '100' }
8 | expect(response).to be_successful
9 | end
10 |
11 | it 'should work for multiple ids' do
12 | # {"id"=>["323033", "5417238"], "controller"=>"catalog", "action"=>"endnote", "format"=>"endnote", "adv"=>{}}
13 | get 'endnote', format: 'endnote', params: { id: %w(123 1234) }
14 | expect(response).to be_successful
15 | end
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/spec/factories/item_alert.rb:
--------------------------------------------------------------------------------
1 | FactoryBot.define do
2 | factory :item_alert do
3 | item_key { '123' }
4 | alert_type { 'alert' }
5 | message { 'twas brillig' }
6 | author_id { 1 }
7 | source { 'catalog' }
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/spec/factories/library_web_apis.rb:
--------------------------------------------------------------------------------
1 | # Read about factories at http://github.com/thoughtbot/factory_girl
2 |
3 | FactoryBot.define do
4 | factory :api do
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/spec/factories/library_web_documents.rb:
--------------------------------------------------------------------------------
1 | # Read about factories at http://github.com/thoughtbot/factory_girl
2 |
3 | FactoryBot.define do
4 | factory :document do
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/spec/factories/user.rb:
--------------------------------------------------------------------------------
1 | FactoryBot.define do
2 | factory :user do
3 | uid { 'example' }
4 | email { |u| "#{u.uid}@example.com" }
5 | password { 'secret' }
6 | # password_confirmation { |u| u.password }
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/spec/features/academic_commons/ac_dissertations_spec.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'spec_helper'
3 |
4 | describe 'Academic Commons Dissertations search' do
5 |
6 | it 'should return fewer results than AC search' do
7 |
8 | visit ac_index_path(q: 'test')
9 | ac_search_total_results =
10 | ac_total_items = all('.current_item_info').first['data-total-items'].to_i
11 |
12 | visit ac_index_path(q: 'test', datasource: 'ac_dissertations')
13 | ac_dissertations_total_items = all('.current_item_info').first['data-total-items'].to_i
14 |
15 | # print "ac_total_items=#{ac_total_items}"
16 | # print "ac_dissertations_total_items=#{ac_dissertations_total_items}"
17 |
18 | expect(ac_dissertations_total_items).to be < ac_total_items
19 |
20 | end
21 |
22 | end
23 |
24 |
25 |
--------------------------------------------------------------------------------
/spec/features/invalid_urls_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe 'Invalid byte sequences should be caught' do
4 | it 'in CGI params' do
5 | # Send bytes that are NOT valid in UTF-8...
6 | visit '/catalog?q=foo%E2%EF%BF%BD%A6'
7 |
8 | # We SHOULD have added middleware to deal with this,
9 | # which should land us on a valid search-results page.
10 | expect(page).to have_text('You searched for')
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/spec/features/menus_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe 'Top nav menus' do
4 | # NEXT-986 - Redirect CLIO Help menu link
5 | it 'should link CLIO Help to blog guides page' do
6 | visit root_path
7 | within('#topnavbar') do
8 | within('.dropdown.menu', text: 'Help') do
9 | click_link 'Feedback / Help'
10 | expect(find('.dropdown-menu')).to have_link('CLIO Help', href: 'https://blogs.cul.columbia.edu/clio/guides/')
11 | end
12 | end
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/spec/features/search_boxes_cross_fill_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe 'The home page' do
4 | # This behavior was eliminated when we switched to static
5 | # links between datasources. "q" values are caried between
6 | # data-sources, but not text that's been entered in the gui
7 | # and not-yet used to search.
8 |
9 | # it "will keep the text in a box across different sources on the landing pages" => true do
10 | # end
11 |
12 | it 'will switch the visible search box when a datasource is clicked upon' do
13 | visit catalog_index_path
14 |
15 | expect(find('#catalog_q')).to be_visible
16 | expect(page).to have_no_selector('#articles_q')
17 |
18 | within('li.datasource_link[source=articles]') do
19 | click_link('Articles')
20 | end
21 |
22 | expect(page).to have_no_selector('#catalog_q')
23 | expect(find('#articles_q')).to be_visible
24 | end
25 | end
26 |
--------------------------------------------------------------------------------
/spec/features/voyager_api/README.txt:
--------------------------------------------------------------------------------
1 |
2 | The voyager_api project has a number of unit tests verifying
3 | the return of correct messages for a variety of holdings statuses.
4 |
5 | The specs in this directory of the clio_spectrum project are based
6 | on the voyager_api tests, by verifying that front-end queries
7 | for given bibs pass-thru appropriate messages all the way to
8 | the web front-end of the app.
9 |
10 | The specs here are only a very partial coverage of the voyager_api tests.
11 | Most of the voyager_api tests use mock records. Specs here are only
12 | written when there is a real Voyager record to test against.
13 |
14 | Specs here and are updated manually, and will not necessarily be in
15 | sync with voyager_api.
16 |
17 | ALL tests herein are fragile - they may break if the item cataloging
18 | or holdings status are modified.
19 |
20 |
--------------------------------------------------------------------------------
/spec/features/voyager_api/test_collection_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe 'collection tests' do
4 | it 'test adjust services' do
5 | # Butler suppress doc delivery
6 | visit solr_document_path('9702637')
7 | within ('div#clio_holdings') do
8 | expect(page).to_not have_text('Scan & Deliver')
9 | end
10 |
11 | # suppress bd and ill, copy available
12 | visit solr_document_path('9420109')
13 | within ('div#clio_holdings') do
14 | expect(page).to_not have_text('Borrow Direct')
15 | expect(page).to_not have_text('ILL')
16 | end
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/spec/fixtures/README.txt:
--------------------------------------------------------------------------------
1 |
2 | # Creating this empty fixtures directory, on the advice of:
3 | #
4 | # http://degenportnoy.blogspot.com/2010/01/victory-factorygirl-and-database.html
5 | #
--------------------------------------------------------------------------------
/spec/helpers/helper_exceptions_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe DatasourcesHelper do
4 | it 'should throw be silent on unknown datasource' do
5 | expect do
6 | datasource_landing_page_path('NoSuchDatasource', 'MySearchQuery')
7 | end.not_to raise_error
8 | end
9 | end
10 |
11 | describe DisplayHelper do
12 | it 'should throw exception when no partial to render' do
13 | expect do
14 | render_first_available_partial(%w(no_such_partial another_one), {})
15 | end.to raise_error(RuntimeError)
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/spec/models/search_engines/google_appliance/basic_tests_spec.rb:
--------------------------------------------------------------------------------
1 | # encoding: utf-8
2 | require 'spec_helper'
3 |
4 | describe 'Spectrum::SearchEngines::GoogleCustomSearch' do
5 | describe 'Libraries Website search for "books"' do
6 | before(:each) do
7 | @search_engine = Spectrum::SearchEngines::GoogleCustomSearch.new('q' => 'books')
8 | end
9 |
10 | it 'should get many items, successfully' do
11 | expect(@search_engine.total_items.to_i).to be > 500
12 | expect(@search_engine.successful?).to be true
13 | end
14 |
15 | it 'should have "next" but no "prev"' do
16 | expect(@search_engine.previous_page?).to be false
17 | expect(@search_engine.next_page?).to be true
18 | end
19 | end
20 |
21 | describe 'Libraries Website error handling' do
22 | it 'should raise an error if not query specified' do
23 | expect do
24 | Spectrum::SearchEngines::GoogleCustomSearch.new
25 | end.to raise_error(RuntimeError)
26 | end
27 | end
28 | end
29 |
--------------------------------------------------------------------------------
/spec/models/test_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe 'basic' do
4 | it 'passes basic math' do
5 | assert_equal 2 + 2, 4
6 | expect(2 + 2).to eq 4
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/spec/relevancy/misc_spec.rb:
--------------------------------------------------------------------------------
1 | # encoding: utf-8
2 |
3 | require 'spec_helper'
4 |
5 | # NEXT-971 - Some WorldCat links to CLIO broken / OCLC-defined 079a not being indexed
6 | describe 'WorldCat link support', :skip_travis do
7 | it "q of 'ocn213772249' should find Tsukuba Daigaku Tetsugaku Shisōgakukei ronshū" do
8 | resp = solr_resp_ids_titles_from_query 'ocn213772249'
9 | expect(resp.size).to be == 1
10 |
11 | # there aren't Rails 4 compatible ways to get at what I need
12 | # without this very specific digging into the internal structure.
13 | first = resp['response']['docs'].first
14 |
15 | # This fails:
16 | #
17 | # setup UTF-8 Decomposed form string constants for our various targets
18 | # (copy & paste gives us the pre-composed, but raw Solr results are decomposed)
19 | decomposed = 'Tsukuba Daigaku Tetsugaku Shisōgakukei ronshū'.mb_chars.normalize(:d)
20 | expect(first['title_display'].first).to match /^#{decomposed}$/
21 | end
22 | end
23 |
--------------------------------------------------------------------------------
/spec/relevancy/sorting_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe 'Solr sort order', :skip_travis do
4 | # NEXT-962 - Would it be possible for CLIO catalog A-Z to sort by word
5 | it "should alpha-sort 'asia' before 'asian'" do
6 | # resp = solr_resp_ids_from_query('asia* 965hrportal')
7 | resp = solr_resp_doc_ids_only('q' => 'asia* 965hrportal', 'sort' => 'title_sort asc')
8 |
9 | # The bib for "Asia Pacific Forum" should be before
10 | # any of the "Asian ..." records
11 | rank14577634 = rank(resp, 14577634)
12 | expect(rank(resp, 7886427)).to be > rank14577634
13 | expect(rank(resp, 6488401)).to be > rank14577634
14 | expect(rank(resp, 7038747)).to be > rank14577634
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/spec/relevancy/test_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe 'Testing rsolr-rspec support', :skip_travis do
4 | it "q of 'Buddhism' should get many, many results" do
5 | resp = solr_resp_doc_ids_only('q' => 'Buddhism')
6 |
7 | expect(resp.size).to be > 20000
8 | expect(resp.size).to be < 50000
9 | end
10 |
11 | # utility, for spitting out the bib keys that match a given query
12 | # it "BIB LIST", focus: true do
13 | # resp = solr_resp_doc_ids_only('q' => 'composers forum', 'search_field' => 'title', rows: 100)
14 | # puts resp.inspect
15 | # end
16 | end
17 |
--------------------------------------------------------------------------------
/spec/support/feature_helpers.rb:
--------------------------------------------------------------------------------
1 | #
2 | # # http://www.clevertakes.com/blog/2013/01/30/how-do-i-add-devise-login-method-to-my-rspec-feature-test/
3 | # include Warden::Test::Helpers
4 | #
5 | # module FeatureHelpers
6 | #
7 | # def login(user)
8 | # login_as user, scope: :user
9 | # user
10 | # end
11 | #
12 | # end
13 | #
14 | # RSpec.configure do |config|
15 | # config.include FeatureHelpers, type: :feature
16 | # end
17 |
--------------------------------------------------------------------------------
/spec/support/mailer_macros.rb:
--------------------------------------------------------------------------------
1 | module MailerMacros
2 | def last_email
3 | ActionMailer::Base.deliveries.last
4 | end
5 |
6 | def reset_email
7 | ActionMailer::Base.deliveries = []
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/spec/support/matchers.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'rspec/expectations'
3 |
4 | RSpec::Matchers.define :contain_in_fields do |target, *field_list|
5 | match do |doc|
6 | targets = Array.wrap(target).map { |t| Regexp.new(t.gsub(/ +/, '.*')) }
7 | field_list.any? { |field_name| targets.any? { |t| t.match(doc.fetch(field_name, nil).first) } }
8 | end
9 |
10 | failure_message do |doc|
11 | doc_data = field_list.map do |field_name|
12 | "#{field_name}=#{doc.fetch(field_name, nil).first}"
13 | end.join(', ')
14 | "expected that #{target} would be contained in doc fields (#{doc_data})"
15 | end
16 | end
17 |
--------------------------------------------------------------------------------