├── .gitmodules
├── lib
├── tasks
│ ├── .gitkeep
│ ├── hathi.rake
│ ├── load_locations.rake
│ └── sessions.rake
├── translation_maps
│ ├── database_discipline_map.properties
│ └── database_resource_type_map.properties
└── response_timer.rb
├── public
├── colors.css
├── stylesheets
│ ├── .gitkeep
│ └── colorbox
│ │ └── images
│ │ ├── border.png
│ │ ├── controls.png
│ │ ├── loading.gif
│ │ ├── overlay.png
│ │ ├── loading_background.png
│ │ └── internet_explorer
│ │ ├── borderTopLeft.png
│ │ ├── borderTopCenter.png
│ │ ├── borderTopRight.png
│ │ ├── borderBottomCenter.png
│ │ ├── borderBottomLeft.png
│ │ ├── borderBottomRight.png
│ │ ├── borderMiddleLeft.png
│ │ └── borderMiddleRight.png
├── googleb46478bf96590e15.html
├── demo.html
├── favicon.ico
├── apple-touch-icon.png
├── static-icons
│ ├── doc.png
│ ├── mp3.png
│ ├── mp4.png
│ ├── pdf.png
│ ├── ppt.png
│ ├── xls.png
│ ├── none.png
│ ├── xlsx.png
│ ├── default.png
│ ├── available.png
│ ├── unavailable.png
│ ├── crown-bts-24x24.png
│ └── some_available.png
├── apple-touch-icon-120x120.png
├── apple-touch-icon-precomposed.png
├── img
│ └── cul-mob-topbanner_crown.png
├── apple-touch-icon-72x72-precomposed.png
├── apple-touch-icon-114x114-precomposed.png
├── apple-touch-icon-120x120-precomposed.png
├── apple-touch-icon-144x144-precomposed.png
├── r.html
├── 422.html
└── 404.html
├── VERSION
├── .hooves
├── app
├── views
│ ├── authorities
│ │ ├── show.haml
│ │ ├── index.haml
│ │ └── author_marc.haml
│ ├── spectrum
│ │ ├── search.marc
│ │ ├── aggregate
│ │ │ ├── _result_set.html.haml
│ │ │ ├── _result_footer.html.haml
│ │ │ ├── _result_header_async.html.haml
│ │ │ ├── _result_docs.html.haml
│ │ │ └── _result_header.html.haml
│ │ ├── hits.html.haml
│ │ ├── search.html.haml
│ │ ├── eds
│ │ │ ├── _result_docs.html.haml
│ │ │ └── _constraints.html.haml
│ │ ├── ac
│ │ │ ├── _constraints.html.haml
│ │ │ └── _result_docs.html.haml
│ │ ├── _lweb.html.erb
│ │ ├── lweb
│ │ │ ├── _constraints.html.haml
│ │ │ └── _result_docs.html.haml
│ │ └── summon
│ │ │ ├── _constraints.html.haml
│ │ │ └── _result_docs.html.haml
│ ├── catalog
│ │ ├── _holdings_check.html.haml
│ │ ├── _constraint_dropdown.html.haml
│ │ ├── _constraints_delete.html.haml
│ │ ├── email.html.erb
│ │ ├── _results_pagination.html.haml
│ │ ├── _sort_widget.html.erb
│ │ ├── _download_menu.html.haml
│ │ ├── show.html.haml
│ │ ├── index.rss.builder
│ │ ├── facet.html.haml
│ │ ├── _donor_info.html.haml
│ │ ├── _facet_layout.html.haml
│ │ ├── _atom_summary.html.haml
│ │ ├── _google_books_check.html.haml
│ │ ├── index.csv.haml
│ │ ├── librarian_view.html.haml
│ │ └── _per_page_widget.haml
│ ├── layouts
│ │ ├── js_return.html.haml
│ │ ├── mailer.text.erb
│ │ ├── mailer.html.erb
│ │ ├── _best_bets.html.haml
│ │ ├── _messages.html.haml
│ │ ├── blank.html.haml
│ │ └── no_sidebar_no_search.html.haml
│ ├── preferences
│ │ ├── _datasource_sidebar_form.haml
│ │ ├── edit.html.haml
│ │ ├── new.html.haml
│ │ ├── index.html.haml
│ │ ├── _summon_facet_form.haml
│ │ └── _form.html.haml
│ ├── _item_number.haml
│ ├── _search
│ │ ├── _constraints.html.haml
│ │ ├── _facets.html.haml
│ │ └── _search_box.html.haml
│ ├── _header_with_search.html.haml
│ ├── item_alerts
│ │ ├── edit.html.haml
│ │ ├── show_table_row.html.haml
│ │ ├── new.html.haml
│ │ ├── show.html.haml
│ │ ├── _show_table_row.html.haml
│ │ └── index.html.haml
│ ├── saved_lists
│ │ ├── new.html.haml
│ │ ├── email.html.erb
│ │ ├── edit.html.haml
│ │ ├── _savedlist_control_panel.html.haml
│ │ ├── _menu_list.html.haml
│ │ └── _item_select_checkbox.html.haml
│ ├── saved_list_items
│ │ ├── new.html.haml
│ │ ├── edit.html.haml
│ │ ├── _form.html.haml
│ │ └── index.html.haml
│ ├── _top_banner.html.haml
│ ├── _coins.html.haml
│ ├── _datasource_warning.html.haml
│ ├── _formats
│ │ ├── clio
│ │ │ ├── _catalog_show_worldcat_link.haml
│ │ │ ├── _catalog_show_holdings_simplye.html.haml
│ │ │ ├── _compact_list_details.html.haml
│ │ │ ├── _catalog_show_holdings_display.html.haml
│ │ │ ├── _catalog_show_holdings_ebook.html.haml
│ │ │ ├── _catalog_show_nearby.html.haml
│ │ │ └── _catalog_show_holdings_online.html.haml
│ │ ├── lweb
│ │ │ ├── _aggregate.html.haml
│ │ │ └── _lweb.html.haml
│ │ ├── article
│ │ │ └── _aggregate.html.haml
│ │ ├── eds
│ │ │ ├── _eds_show.html.haml
│ │ │ └── _eds.html.haml
│ │ ├── summon
│ │ │ └── _summon_show.html.haml
│ │ ├── dlc
│ │ │ └── _aggregate.html.haml
│ │ ├── database
│ │ │ └── _aggregate.html.haml
│ │ └── geo
│ │ │ └── _aggregate.html.haml
│ ├── _eds_warning.html.haml
│ ├── _summon_warning.html.haml
│ ├── _eds_referral.html.haml
│ ├── _footer.html.haml
│ ├── record_mailer
│ │ └── sms_record.text.erb
│ ├── top_nav
│ │ ├── _ask_a_librarian.html.haml
│ │ └── _help_menu.html.haml
│ ├── _display
│ │ ├── databases
│ │ │ └── _a_to_z.html.haml
│ │ ├── catalog
│ │ │ ├── _compact_list.html.haml
│ │ │ └── _standard_list.html.haml
│ │ └── browse
│ │ │ ├── _compact_list.html.haml
│ │ │ └── _standard_list.html.haml
│ ├── _link_to_prod.html.haml
│ ├── _datasources_dropdown.html.haml
│ ├── logs
│ │ ├── index.csv.erb
│ │ └── set_list.html.erb
│ ├── browse
│ │ ├── shelfkey_full.html.haml
│ │ ├── _browse_focus_bookmark.html.haml
│ │ ├── shelfkey_mini.html.haml
│ │ ├── _per_page_widget.html.haml
│ │ └── _call_number_toggle.html.haml
│ ├── landing_pages
│ │ ├── _dlc.html.haml
│ │ ├── _new_arrivals.html.haml
│ │ └── _academic_commons.html.haml
│ ├── admin
│ │ ├── format_icons.html.haml
│ │ └── request_services.html.haml
│ ├── _async_setting.html.haml
│ ├── _authority_variants.html.haml
│ ├── _ask_a_librarian.html.haml
│ └── _dropdown_select.html.haml
├── models
│ ├── log.rb
│ ├── best_bet.rb
│ ├── local_subject.rb
│ ├── simplye_link.rb
│ ├── option.rb
│ ├── application_record.rb
│ ├── preference.rb
│ ├── saved_list_item.rb
│ ├── ability.rb
│ ├── library_web
│ │ └── document.rb
│ ├── lweb_document.rb
│ ├── library.rb
│ └── item_alert.rb
├── helpers
│ └── preferences_helper.rb
├── assets
│ ├── images
│ │ ├── elink.gif
│ │ ├── help.png
│ │ ├── rails.png
│ │ ├── contact.png
│ │ ├── search.png
│ │ ├── spacer-.png
│ │ ├── spacer.png
│ │ ├── clio-beta.png
│ │ ├── clio-logo.png
│ │ ├── clio_beta.jpg
│ │ ├── ds_pointer.png
│ │ ├── gb_preview.png
│ │ ├── icons
│ │ │ ├── book.png
│ │ │ ├── cdc1.png
│ │ │ ├── link.png
│ │ │ ├── none.png
│ │ │ ├── page.png
│ │ │ ├── article.png
│ │ │ ├── cancel.png
│ │ │ ├── ebook.png
│ │ │ ├── facet_x.png
│ │ │ ├── govdoc.png
│ │ │ ├── image.png
│ │ │ ├── journal.png
│ │ │ ├── noncirc.png
│ │ │ ├── online.png
│ │ │ ├── serial.png
│ │ │ ├── thesis.png
│ │ │ ├── unknown.png
│ │ │ ├── video.png
│ │ │ ├── volume.png
│ │ │ ├── art-work.png
│ │ │ ├── available.png
│ │ │ ├── cdc-burst.png
│ │ │ ├── database.png
│ │ │ ├── link-old.png
│ │ │ ├── microform.png
│ │ │ ├── newspaper.png
│ │ │ ├── checked_out.png
│ │ │ ├── conference.png
│ │ │ ├── facet_cancel.png
│ │ │ ├── facet_minus.png
│ │ │ ├── facet_plus.png
│ │ │ ├── manuscript.png
│ │ │ ├── map-or-globe.png
│ │ │ ├── spacer12x12.png
│ │ │ ├── stock_inbox.png
│ │ │ ├── stock_spam.png
│ │ │ ├── unavailable.png
│ │ │ ├── computer-file.png
│ │ │ ├── musical-score.png
│ │ │ ├── not_available.png
│ │ │ ├── some_available.png
│ │ │ ├── 24-book-blue-add.png
│ │ │ ├── musical-recording.png
│ │ │ ├── non_circulating.png
│ │ │ ├── 24-book-blue-remove.png
│ │ │ ├── non-musical-recording.png
│ │ │ └── none_yellow_question_mark.png
│ │ ├── level-blue.gif
│ │ ├── level-red.gif
│ │ ├── start_over.gif
│ │ ├── QuestionMark.png
│ │ ├── ajax-loader.gif
│ │ ├── blacklight
│ │ │ ├── bg.png
│ │ │ ├── logo.png
│ │ │ ├── border.png
│ │ │ ├── remove.gif
│ │ │ ├── checkmark.gif
│ │ │ ├── separator.gif
│ │ │ ├── bul_sq_gry.gif
│ │ │ ├── start_over.gif
│ │ │ └── magnifying_glass.gif
│ │ ├── clio-spectrum.png
│ │ ├── favicon-crown.png
│ │ ├── help_button.png
│ │ ├── level-green.gif
│ │ ├── level-orange.gif
│ │ ├── orange-clock.png
│ │ ├── select-arrow.png
│ │ ├── warning-icon.png
│ │ ├── warning_icon.png
│ │ ├── TrajanPro-Bold.otf
│ │ ├── ajax-indicator.gif
│ │ ├── colorbox
│ │ │ ├── border.png
│ │ │ ├── controls.png
│ │ │ ├── loading.gif
│ │ │ ├── overlay.png
│ │ │ ├── loading_background.png
│ │ │ └── internet_explorer
│ │ │ │ ├── borderTopLeft.png
│ │ │ │ ├── borderBottomLeft.png
│ │ │ │ ├── borderMiddleLeft.png
│ │ │ │ ├── borderTopCenter.png
│ │ │ │ ├── borderTopRight.png
│ │ │ │ ├── borderBottomCenter.png
│ │ │ │ ├── borderBottomRight.png
│ │ │ │ └── borderMiddleRight.png
│ │ ├── TrajanPro-Regular.otf
│ │ ├── clio-new-arrivals.png
│ │ ├── format_icons
│ │ │ ├── doc.png
│ │ │ ├── mp3.png
│ │ │ ├── mp4.png
│ │ │ ├── pdf.png
│ │ │ ├── ppt.png
│ │ │ ├── xls.png
│ │ │ ├── xlsx.png
│ │ │ └── default.png
│ │ ├── information_icon.png
│ │ ├── clio_beta_logos_4a_5.png
│ │ ├── contactable
│ │ │ ├── contact.png
│ │ │ └── ajax-loader.gif
│ │ ├── rss-feed-icon-14x14.png
│ │ ├── clio_beta_logos_small.png
│ │ ├── ldpd-toolkit
│ │ │ ├── bg_stripes.gif
│ │ │ ├── clio_logo.png
│ │ │ ├── rss-icon-sq.png
│ │ │ ├── clio_beta_logo.png
│ │ │ ├── crown-bts-24x24.png
│ │ │ ├── cul-banner-txt.png
│ │ │ ├── culblog-icon-sq.png
│ │ │ ├── math-banner-txt.png
│ │ │ ├── twitter-icon-sq.png
│ │ │ ├── cul-banner-txt-02.png
│ │ │ ├── facebook-icon-sq.png
│ │ │ ├── foursquare-icon-sq.png
│ │ │ ├── glyphicons-halflings.png
│ │ │ ├── cul-banner-txt-simple.png
│ │ │ ├── engineering-banner-txt.png
│ │ │ ├── request-it-banner-txt.png
│ │ │ ├── cul-banner-txt-services.png
│ │ │ ├── math-science-banner-txt.png
│ │ │ ├── glyphicons-halflings-white.png
│ │ │ └── search-delivery-banner-txt.png
│ │ └── apple-touch-icon-144x144.png
│ ├── fonts
│ │ ├── TrajanPro-Bold.otf
│ │ ├── TrajanPro-Regular.otf
│ │ ├── trajanpro-regular-webfont.eot
│ │ ├── trajanpro-regular-webfont.ttf
│ │ └── trajanpro-regular-webfont.woff
│ ├── javascripts
│ │ ├── modal_manager_override.js.coffee
│ │ ├── my_account.js
│ │ ├── xls.js
│ │ ├── location.js
│ │ ├── async-search.js.coffee
│ │ ├── dropdown_select.js.coffee
│ │ ├── advanced.js.coffee
│ │ ├── datatables.js
│ │ ├── matomo.js
│ │ ├── resolver.js
│ │ ├── preferences.coffee
│ │ ├── item_actions.js.coffee
│ │ └── ie_warnings.js
│ └── stylesheets
│ │ ├── debug.sass
│ │ ├── log.sass
│ │ ├── libraryh3lp.sass
│ │ ├── preferences.sass
│ │ ├── best_bets.sass
│ │ ├── donor_info_icon.sass
│ │ ├── item_alerts.sass
│ │ ├── saved_lists.sass
│ │ ├── advanced_search.sass
│ │ ├── redesign.sass
│ │ ├── gmaps4rails.sass
│ │ ├── a_local_application.sass
│ │ └── callouts.scss
├── controllers
│ ├── local_subject_controller.rb
│ ├── search_history_controller.rb
│ └── users
│ │ ├── omniauth_callbacks_controller.rb
│ │ └── sessions_controller.rb
└── mailers
│ ├── application_mailer.rb
│ └── rake_mailer.rb
├── .rspec
├── config
├── blacklight.yml.travis
├── initializers
│ ├── has_options.rb
│ ├── footnotes.rb
│ ├── filter_parameter_logging.rb
│ ├── mime_types.rb
│ ├── uptime.rb
│ ├── application_controller_renderer.rb
│ ├── cookies_serializer.rb
│ ├── recaptcha.rb
│ ├── google_api_client.rb
│ ├── backtrace_silencers.rb
│ ├── secret_token.rb
│ ├── wrap_parameters.rb
│ ├── new_framework_defaults_5_1.rb
│ ├── load_local_subjects.rb
│ ├── assets.rb
│ ├── inflections.rb
│ └── google_analytics.rb
├── spring.rb
├── solr
│ └── configsets
│ │ └── clio
│ │ └── conf
│ │ ├── lang
│ │ ├── hyphenations_ga.txt
│ │ ├── contractions_ga.txt
│ │ ├── contractions_ca.txt
│ │ ├── stemdict_nl.txt
│ │ ├── contractions_fr.txt
│ │ ├── contractions_it.txt
│ │ ├── stopwords_hy.txt
│ │ └── stopwords_el.txt
│ │ ├── params.json
│ │ ├── stopwords.txt
│ │ ├── mapping-apostropheish.txt
│ │ └── protwords.txt
├── database.yml.travis
├── cable.yml
├── donor_info.yml
├── environments
│ └── spectrum_prod_master.rb
├── environment.rb
├── cas.yml.EXAMPLE
├── database.yml.EXAMPLE
├── boot.rb
├── deploy
│ ├── clio_app_prod.rb
│ ├── clio_batch_dev.rb
│ ├── clio_batch_prod.rb
│ └── clio_batch_test.rb
├── order_status_codes.yml
├── blacklight.yml.EXAMPLE
└── locales
│ └── en.yml
├── .coveralls.yml
├── .rubocop.yml
├── bin
├── rake
├── bundle
├── rails
├── yarn
└── update
├── spec
├── factories
│ ├── library_web_apis.rb
│ ├── library_web_documents.rb
│ ├── user.rb
│ └── item_alert.rb
├── fixtures
│ └── README.txt
├── models
│ ├── test_spec.rb
│ └── search_engines
│ │ └── google_appliance
│ │ └── basic_tests_spec.rb
├── support
│ ├── mailer_macros.rb
│ ├── feature_helpers.rb
│ └── matchers.rb
├── features
│ ├── invalid_urls_spec.rb
│ ├── menus_spec.rb
│ ├── voyager_api
│ │ ├── test_collection_spec.rb
│ │ └── README.txt
│ ├── academic_commons
│ │ └── ac_dissertations_spec.rb
│ └── search_boxes_cross_fill_spec.rb
├── helpers
│ └── helper_exceptions_spec.rb
├── relevancy
│ ├── test_spec.rb
│ ├── sorting_spec.rb
│ └── anchored_spec.rb
├── controllers
│ ├── catalog_controller_spec.rb
│ └── google_appliance_controller_spec.rb.obsolete
└── routing
│ └── item_alerts_routing_spec.rb
├── db
└── migrate
│ ├── 20120718165239_add_password_salt.rb
│ ├── 20150218220036_add_location_code_to_locations.rb
│ ├── 20150304151755_change_length_of_category_to_12.rb
│ ├── 20180101010101_library_code.rb
│ ├── 20160930143849_create_preferences.rb
│ ├── 20190601010101_add_tags_to_best_bets.rb
│ ├── 20120131170432_add_sessions_table.rb
│ ├── 20150604161023_add_polymorphic_type_to_bookmarks.blacklight.rb
│ ├── 20110512152513_remove_editable_fields_from_bookmarks.rb
│ ├── 20110512152511_create_searches.rb
│ ├── 20110512152514_add_user_types_to_bookmarks_searches.rb
│ ├── 20120713135411_create_users.rb
│ ├── 20110512152512_create_bookmarks.rb
│ ├── 20181001010101_logs.rb
│ ├── 20101213160031_create_libraries.rb
│ ├── 20210201010101_create_simplye.rb
│ ├── 20101130172511_create_locations.rb
│ ├── 20101213191638_create_library_hours.rb
│ ├── 20130614173638_create_saved_list_items.rb
│ ├── 20130702170157_create_versions.rb
│ ├── 20090611201815_create_options.rb
│ ├── 20121113211955_create_item_alerts.rb
│ ├── 20180401010101_best_bets.rb
│ ├── 20210101010101_create_local_subjects.rb
│ ├── 20130614173623_create_saved_lists.rb
│ └── 20181101010101_affils.rb
├── config.ru
├── doc
└── README_FOR_APP
├── .codeclimate.yml
├── EDS-TODO.txt
├── .byebug_history
└── .gitignore
/.gitmodules:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/lib/tasks/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/colors.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | v10.0.18
2 |
--------------------------------------------------------------------------------
/lib/tasks/hathi.rake:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/stylesheets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.hooves:
--------------------------------------------------------------------------------
1 | worker_processes 5
2 |
--------------------------------------------------------------------------------
/app/views/authorities/show.haml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/views/spectrum/search.marc:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.rspec:
--------------------------------------------------------------------------------
1 | --color --format documentation
2 |
--------------------------------------------------------------------------------
/app/views/catalog/_holdings_check.html.haml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/views/catalog/_constraint_dropdown.html.haml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/views/layouts/js_return.html.haml:
--------------------------------------------------------------------------------
1 | = yield
2 |
--------------------------------------------------------------------------------
/app/views/layouts/mailer.text.erb:
--------------------------------------------------------------------------------
1 | <%= yield %>
2 |
--------------------------------------------------------------------------------
/app/views/preferences/_datasource_sidebar_form.haml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/views/spectrum/aggregate/_result_set.html.haml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/models/log.rb:
--------------------------------------------------------------------------------
1 | class Log < ApplicationRecord
2 | end
3 |
--------------------------------------------------------------------------------
/app/models/best_bet.rb:
--------------------------------------------------------------------------------
1 | class BestBet < ApplicationRecord
2 | end
3 |
--------------------------------------------------------------------------------
/app/views/spectrum/hits.html.haml:
--------------------------------------------------------------------------------
1 | = number_with_delimiter(@hits || 0)
--------------------------------------------------------------------------------
/app/helpers/preferences_helper.rb:
--------------------------------------------------------------------------------
1 | module PreferencesHelper
2 | end
3 |
--------------------------------------------------------------------------------
/app/models/local_subject.rb:
--------------------------------------------------------------------------------
1 | class LocalSubject < ApplicationRecord
2 | end
3 |
--------------------------------------------------------------------------------
/app/models/simplye_link.rb:
--------------------------------------------------------------------------------
1 | class SimplyeLink < ApplicationRecord
2 | end
3 |
--------------------------------------------------------------------------------
/app/views/_item_number.haml:
--------------------------------------------------------------------------------
1 |
2 | %label.small.text-muted= "#{counter ||= ''}."
3 |
--------------------------------------------------------------------------------
/app/models/option.rb:
--------------------------------------------------------------------------------
1 | class Option < ApplicationRecord
2 | acts_as_option
3 | end
4 |
--------------------------------------------------------------------------------
/app/views/_search/_constraints.html.haml:
--------------------------------------------------------------------------------
1 | // views/_search/_constraints.html.haml
2 |
--------------------------------------------------------------------------------
/public/googleb46478bf96590e15.html:
--------------------------------------------------------------------------------
1 | google-site-verification: googleb46478bf96590e15.html
--------------------------------------------------------------------------------
/app/views/_header_with_search.html.haml:
--------------------------------------------------------------------------------
1 | = render :partial => "/datasources_dropdown"
2 |
3 |
--------------------------------------------------------------------------------
/config/blacklight.yml.travis:
--------------------------------------------------------------------------------
1 | test:
2 | adapter: solr
3 | url: <%= ENV['SOLR_URL'] %>
4 |
--------------------------------------------------------------------------------
/public/demo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hello World
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/app/views/item_alerts/edit.html.haml:
--------------------------------------------------------------------------------
1 | = render 'form', :item_alert => @item_alert, :remote => true
2 |
--------------------------------------------------------------------------------
/app/assets/images/elink.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/elink.gif
--------------------------------------------------------------------------------
/app/assets/images/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/help.png
--------------------------------------------------------------------------------
/app/assets/images/rails.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/rails.png
--------------------------------------------------------------------------------
/app/views/item_alerts/show_table_row.html.haml:
--------------------------------------------------------------------------------
1 | = render "show_table_row", :item_alert => @item_alert
2 |
--------------------------------------------------------------------------------
/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/static-icons/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/doc.png
--------------------------------------------------------------------------------
/public/static-icons/mp3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/mp3.png
--------------------------------------------------------------------------------
/public/static-icons/mp4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/mp4.png
--------------------------------------------------------------------------------
/public/static-icons/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/pdf.png
--------------------------------------------------------------------------------
/public/static-icons/ppt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/ppt.png
--------------------------------------------------------------------------------
/public/static-icons/xls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/xls.png
--------------------------------------------------------------------------------
/.coveralls.yml:
--------------------------------------------------------------------------------
1 |
2 | service_name: travis-ci
3 |
4 | repo_token: RmHvC1EZQxk5InhQWE3mMLtWdZlL7P1dv
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.rubocop.yml:
--------------------------------------------------------------------------------
1 |
2 | Metrics/LineLength:
3 | Max: 200
4 |
5 | Style/NumericLiterals:
6 | MinDigits: 10
7 |
8 |
--------------------------------------------------------------------------------
/app/assets/images/contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/contact.png
--------------------------------------------------------------------------------
/app/assets/images/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/search.png
--------------------------------------------------------------------------------
/app/assets/images/spacer-.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/spacer-.png
--------------------------------------------------------------------------------
/app/assets/images/spacer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/spacer.png
--------------------------------------------------------------------------------
/app/controllers/local_subject_controller.rb:
--------------------------------------------------------------------------------
1 | class LocalSubjectsController < ApplicationController
2 | end
3 |
--------------------------------------------------------------------------------
/public/static-icons/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/none.png
--------------------------------------------------------------------------------
/public/static-icons/xlsx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/xlsx.png
--------------------------------------------------------------------------------
/app/assets/images/clio-beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/clio-beta.png
--------------------------------------------------------------------------------
/app/assets/images/clio-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/clio-logo.png
--------------------------------------------------------------------------------
/app/assets/images/clio_beta.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/clio_beta.jpg
--------------------------------------------------------------------------------
/app/assets/images/ds_pointer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ds_pointer.png
--------------------------------------------------------------------------------
/app/assets/images/gb_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/gb_preview.png
--------------------------------------------------------------------------------
/app/assets/images/icons/book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/book.png
--------------------------------------------------------------------------------
/app/assets/images/icons/cdc1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/cdc1.png
--------------------------------------------------------------------------------
/app/assets/images/icons/link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/link.png
--------------------------------------------------------------------------------
/app/assets/images/icons/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/none.png
--------------------------------------------------------------------------------
/app/assets/images/icons/page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/page.png
--------------------------------------------------------------------------------
/app/assets/images/level-blue.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/level-blue.gif
--------------------------------------------------------------------------------
/app/assets/images/level-red.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/level-red.gif
--------------------------------------------------------------------------------
/app/assets/images/start_over.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/start_over.gif
--------------------------------------------------------------------------------
/app/views/saved_lists/new.html.haml:
--------------------------------------------------------------------------------
1 | %h1 New list
2 |
3 | = render 'form'
4 |
5 | = link_to 'Back', lists_path
6 |
--------------------------------------------------------------------------------
/bin/rake:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require_relative '../config/boot'
3 | require 'rake'
4 | Rake.application.run
5 |
--------------------------------------------------------------------------------
/public/static-icons/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/default.png
--------------------------------------------------------------------------------
/app/assets/fonts/TrajanPro-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/fonts/TrajanPro-Bold.otf
--------------------------------------------------------------------------------
/app/assets/images/QuestionMark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/QuestionMark.png
--------------------------------------------------------------------------------
/app/assets/images/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ajax-loader.gif
--------------------------------------------------------------------------------
/app/assets/images/blacklight/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/blacklight/bg.png
--------------------------------------------------------------------------------
/app/assets/images/clio-spectrum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/clio-spectrum.png
--------------------------------------------------------------------------------
/app/assets/images/favicon-crown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/favicon-crown.png
--------------------------------------------------------------------------------
/app/assets/images/help_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/help_button.png
--------------------------------------------------------------------------------
/app/assets/images/icons/article.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/article.png
--------------------------------------------------------------------------------
/app/assets/images/icons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/cancel.png
--------------------------------------------------------------------------------
/app/assets/images/icons/ebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/ebook.png
--------------------------------------------------------------------------------
/app/assets/images/icons/facet_x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/facet_x.png
--------------------------------------------------------------------------------
/app/assets/images/icons/govdoc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/govdoc.png
--------------------------------------------------------------------------------
/app/assets/images/icons/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/image.png
--------------------------------------------------------------------------------
/app/assets/images/icons/journal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/journal.png
--------------------------------------------------------------------------------
/app/assets/images/icons/noncirc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/noncirc.png
--------------------------------------------------------------------------------
/app/assets/images/icons/online.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/online.png
--------------------------------------------------------------------------------
/app/assets/images/icons/serial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/serial.png
--------------------------------------------------------------------------------
/app/assets/images/icons/thesis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/thesis.png
--------------------------------------------------------------------------------
/app/assets/images/icons/unknown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/unknown.png
--------------------------------------------------------------------------------
/app/assets/images/icons/video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/video.png
--------------------------------------------------------------------------------
/app/assets/images/icons/volume.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/volume.png
--------------------------------------------------------------------------------
/app/assets/images/level-green.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/level-green.gif
--------------------------------------------------------------------------------
/app/assets/images/level-orange.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/level-orange.gif
--------------------------------------------------------------------------------
/app/assets/images/orange-clock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/orange-clock.png
--------------------------------------------------------------------------------
/app/assets/images/select-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/select-arrow.png
--------------------------------------------------------------------------------
/app/assets/images/warning-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/warning-icon.png
--------------------------------------------------------------------------------
/app/assets/images/warning_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/warning_icon.png
--------------------------------------------------------------------------------
/app/models/application_record.rb:
--------------------------------------------------------------------------------
1 | class ApplicationRecord < ActiveRecord::Base
2 | self.abstract_class = true
3 | end
4 |
--------------------------------------------------------------------------------
/public/apple-touch-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/apple-touch-icon-120x120.png
--------------------------------------------------------------------------------
/public/static-icons/available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/available.png
--------------------------------------------------------------------------------
/public/static-icons/unavailable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/unavailable.png
--------------------------------------------------------------------------------
/app/assets/images/TrajanPro-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/TrajanPro-Bold.otf
--------------------------------------------------------------------------------
/app/assets/images/ajax-indicator.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ajax-indicator.gif
--------------------------------------------------------------------------------
/app/assets/images/blacklight/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/blacklight/logo.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/border.png
--------------------------------------------------------------------------------
/app/assets/images/icons/art-work.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/art-work.png
--------------------------------------------------------------------------------
/app/assets/images/icons/available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/available.png
--------------------------------------------------------------------------------
/app/assets/images/icons/cdc-burst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/cdc-burst.png
--------------------------------------------------------------------------------
/app/assets/images/icons/database.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/database.png
--------------------------------------------------------------------------------
/app/assets/images/icons/link-old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/link-old.png
--------------------------------------------------------------------------------
/app/assets/images/icons/microform.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/microform.png
--------------------------------------------------------------------------------
/app/assets/images/icons/newspaper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/newspaper.png
--------------------------------------------------------------------------------
/app/assets/fonts/TrajanPro-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/fonts/TrajanPro-Regular.otf
--------------------------------------------------------------------------------
/app/assets/images/TrajanPro-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/TrajanPro-Regular.otf
--------------------------------------------------------------------------------
/app/assets/images/blacklight/border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/blacklight/border.png
--------------------------------------------------------------------------------
/app/assets/images/blacklight/remove.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/blacklight/remove.gif
--------------------------------------------------------------------------------
/app/assets/images/clio-new-arrivals.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/clio-new-arrivals.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/controls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/controls.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/loading.gif
--------------------------------------------------------------------------------
/app/assets/images/colorbox/overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/overlay.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/format_icons/doc.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/mp3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/format_icons/mp3.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/mp4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/format_icons/mp4.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/format_icons/pdf.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/ppt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/format_icons/ppt.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/xls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/format_icons/xls.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/xlsx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/format_icons/xlsx.png
--------------------------------------------------------------------------------
/app/assets/images/icons/checked_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/checked_out.png
--------------------------------------------------------------------------------
/app/assets/images/icons/conference.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/conference.png
--------------------------------------------------------------------------------
/app/assets/images/icons/facet_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/facet_cancel.png
--------------------------------------------------------------------------------
/app/assets/images/icons/facet_minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/facet_minus.png
--------------------------------------------------------------------------------
/app/assets/images/icons/facet_plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/facet_plus.png
--------------------------------------------------------------------------------
/app/assets/images/icons/manuscript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/manuscript.png
--------------------------------------------------------------------------------
/app/assets/images/icons/map-or-globe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/map-or-globe.png
--------------------------------------------------------------------------------
/app/assets/images/icons/spacer12x12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/spacer12x12.png
--------------------------------------------------------------------------------
/app/assets/images/icons/stock_inbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/stock_inbox.png
--------------------------------------------------------------------------------
/app/assets/images/icons/stock_spam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/stock_spam.png
--------------------------------------------------------------------------------
/app/assets/images/icons/unavailable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/unavailable.png
--------------------------------------------------------------------------------
/app/assets/images/information_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/information_icon.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/public/apple-touch-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/apple-touch-icon-precomposed.png
--------------------------------------------------------------------------------
/public/img/cul-mob-topbanner_crown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/img/cul-mob-topbanner_crown.png
--------------------------------------------------------------------------------
/public/static-icons/crown-bts-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/crown-bts-24x24.png
--------------------------------------------------------------------------------
/public/static-icons/some_available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/static-icons/some_available.png
--------------------------------------------------------------------------------
/app/assets/images/blacklight/checkmark.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/blacklight/checkmark.gif
--------------------------------------------------------------------------------
/app/assets/images/blacklight/separator.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/blacklight/separator.gif
--------------------------------------------------------------------------------
/app/assets/images/clio_beta_logos_4a_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/clio_beta_logos_4a_5.png
--------------------------------------------------------------------------------
/app/assets/images/contactable/contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/contactable/contact.png
--------------------------------------------------------------------------------
/app/assets/images/format_icons/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/format_icons/default.png
--------------------------------------------------------------------------------
/app/assets/images/icons/computer-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/computer-file.png
--------------------------------------------------------------------------------
/app/assets/images/icons/musical-score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/musical-score.png
--------------------------------------------------------------------------------
/app/assets/images/icons/not_available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/not_available.png
--------------------------------------------------------------------------------
/app/assets/images/icons/some_available.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/some_available.png
--------------------------------------------------------------------------------
/app/assets/images/rss-feed-icon-14x14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/rss-feed-icon-14x14.png
--------------------------------------------------------------------------------
/app/assets/images/blacklight/bul_sq_gry.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/blacklight/bul_sq_gry.gif
--------------------------------------------------------------------------------
/app/assets/images/blacklight/start_over.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/blacklight/start_over.gif
--------------------------------------------------------------------------------
/app/assets/images/clio_beta_logos_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/clio_beta_logos_small.png
--------------------------------------------------------------------------------
/app/assets/images/contactable/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/contactable/ajax-loader.gif
--------------------------------------------------------------------------------
/app/assets/images/icons/24-book-blue-add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/24-book-blue-add.png
--------------------------------------------------------------------------------
/app/assets/images/icons/musical-recording.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/musical-recording.png
--------------------------------------------------------------------------------
/app/assets/images/icons/non_circulating.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/non_circulating.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/bg_stripes.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/bg_stripes.gif
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/clio_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/clio_logo.png
--------------------------------------------------------------------------------
/config/initializers/has_options.rb:
--------------------------------------------------------------------------------
1 | # HasOptions
2 | require 'has_options'
3 | ActiveRecord::Base.send :include, HasOptionsHash::HasOptions
4 |
--------------------------------------------------------------------------------
/public/apple-touch-icon-72x72-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/apple-touch-icon-72x72-precomposed.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/border.png
--------------------------------------------------------------------------------
/app/assets/fonts/trajanpro-regular-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/fonts/trajanpro-regular-webfont.eot
--------------------------------------------------------------------------------
/app/assets/fonts/trajanpro-regular-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/fonts/trajanpro-regular-webfont.ttf
--------------------------------------------------------------------------------
/app/assets/fonts/trajanpro-regular-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/fonts/trajanpro-regular-webfont.woff
--------------------------------------------------------------------------------
/app/assets/images/apple-touch-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/apple-touch-icon-144x144.png
--------------------------------------------------------------------------------
/app/assets/images/icons/24-book-blue-remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/24-book-blue-remove.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/rss-icon-sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/rss-icon-sq.png
--------------------------------------------------------------------------------
/app/views/catalog/_constraints_delete.html.haml:
--------------------------------------------------------------------------------
1 | #appliedParams
2 | You searched for:
3 |
4 | = render_constraints(localized_params)
5 |
6 |
--------------------------------------------------------------------------------
/public/apple-touch-icon-114x114-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/apple-touch-icon-114x114-precomposed.png
--------------------------------------------------------------------------------
/public/apple-touch-icon-120x120-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/apple-touch-icon-120x120-precomposed.png
--------------------------------------------------------------------------------
/public/apple-touch-icon-144x144-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/apple-touch-icon-144x144-precomposed.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/controls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/controls.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/loading.gif
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/overlay.png
--------------------------------------------------------------------------------
/app/assets/images/blacklight/magnifying_glass.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/blacklight/magnifying_glass.gif
--------------------------------------------------------------------------------
/app/assets/images/colorbox/loading_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/loading_background.png
--------------------------------------------------------------------------------
/app/assets/images/icons/non-musical-recording.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/non-musical-recording.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/clio_beta_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/clio_beta_logo.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/crown-bts-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/crown-bts-24x24.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/cul-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/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/HEAD/app/assets/images/ldpd-toolkit/culblog-icon-sq.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/math-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/math-banner-txt.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/twitter-icon-sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/twitter-icon-sq.png
--------------------------------------------------------------------------------
/app/mailers/application_mailer.rb:
--------------------------------------------------------------------------------
1 | class ApplicationMailer < ActionMailer::Base
2 | default from: 'from@example.com'
3 | layout 'mailer'
4 | end
5 |
--------------------------------------------------------------------------------
/bin/bundle:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3 | load Gem.bin_path('bundler', 'bundle')
4 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/cul-banner-txt-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/cul-banner-txt-02.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/facebook-icon-sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/facebook-icon-sq.png
--------------------------------------------------------------------------------
/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/assets/images/icons/none_yellow_question_mark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/icons/none_yellow_question_mark.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/foursquare-icon-sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/foursquare-icon-sq.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/glyphicons-halflings.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/cul-banner-txt-simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/cul-banner-txt-simple.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/engineering-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/engineering-banner-txt.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/request-it-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/request-it-banner-txt.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/loading_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/loading_background.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/cul-banner-txt-services.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/cul-banner-txt-services.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/math-science-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/math-science-banner-txt.png
--------------------------------------------------------------------------------
/app/models/preference.rb:
--------------------------------------------------------------------------------
1 | class Preference < ApplicationRecord
2 | validates :login, uniqueness: true, presence: true
3 | validates :settings, presence: true
4 | end
5 |
--------------------------------------------------------------------------------
/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/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/assets/images/colorbox/internet_explorer/borderTopLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/internet_explorer/borderTopLeft.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/app/assets/images/ldpd-toolkit/search-delivery-banner-txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/ldpd-toolkit/search-delivery-banner-txt.png
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderBottomLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/internet_explorer/borderBottomLeft.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderMiddleLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/internet_explorer/borderMiddleLeft.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderTopCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/internet_explorer/borderTopCenter.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderTopRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/internet_explorer/borderTopRight.png
--------------------------------------------------------------------------------
/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/images/colorbox/internet_explorer/borderBottomCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/internet_explorer/borderBottomCenter.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderBottomRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/internet_explorer/borderBottomRight.png
--------------------------------------------------------------------------------
/app/assets/images/colorbox/internet_explorer/borderMiddleRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/app/assets/images/colorbox/internet_explorer/borderMiddleRight.png
--------------------------------------------------------------------------------
/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/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 | #
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderTopLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/internet_explorer/borderTopLeft.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderTopCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/internet_explorer/borderTopCenter.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderTopRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/internet_explorer/borderTopRight.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | run Rails.application
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderBottomCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/internet_explorer/borderBottomCenter.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderBottomLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/internet_explorer/borderBottomLeft.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderBottomRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/internet_explorer/borderBottomRight.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderMiddleLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/internet_explorer/borderMiddleLeft.png
--------------------------------------------------------------------------------
/public/stylesheets/colorbox/images/internet_explorer/borderMiddleRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cul/clio-spectrum/HEAD/public/stylesheets/colorbox/images/internet_explorer/borderMiddleRight.png
--------------------------------------------------------------------------------
/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
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/app/assets/javascripts/my_account.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | $(document).ready(function() {
4 | $('#select-all').on('change', function() {
5 | $('input[name="loan_ids[]"]').prop('checked', this.checked);
6 | });
7 | });
8 |
9 |
10 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/app/views/_eds_warning.html.haml:
--------------------------------------------------------------------------------
1 |
2 | - unless current_user || @user_characteristics[:on_campus]
3 | .alert.alert-warning.well-sm.eds-warning
4 | %a{href: new_user_session_path, class: 'alert-link'} Log In
5 | to see full article results
6 |
--------------------------------------------------------------------------------
/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/saved_lists/email.html.erb:
--------------------------------------------------------------------------------
1 |
5 | <%= render :partial => 'catalog/email_form' %>
6 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/app/views/_eds_referral.html.haml:
--------------------------------------------------------------------------------
1 |
2 | .alert.alert-info.well-sm.eds-referral
3 | For advanced search visit:
4 | %a{href: 'https://resolver.library.columbia.edu/articlesplus', class: 'alert-link'}
5 | https://resolver.library.columbia.edu/articlesplus
6 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/app/views/layouts/mailer.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= yield %>
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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/app/views/catalog/email.html.erb:
--------------------------------------------------------------------------------
1 |
5 |
6 | <%= render :partial => 'email_form' %>
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/_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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/EDS-TODO.txt:
--------------------------------------------------------------------------------
1 |
2 |
3 | EDS - THINGS TO DO
4 |
5 | - Unauth results show in list with title replaced, but with result_id counted in.
6 | How to omit unauth records from results altogether?
7 |
8 | - Unauth results still offer link - but direct link, not FTF link
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/_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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/app/views/spectrum/eds/_result_docs.html.haml:
--------------------------------------------------------------------------------
1 |
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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/app/views/_formats/article/_aggregate.html.haml:
--------------------------------------------------------------------------------
1 |
2 | / _formats/article/_aggregate.html.haml
3 |
4 | .result{:class => alternating_line}
5 | .result_title= eds_title_link document
6 | - if document.eds_authors.any?
7 | = add_row('Author', eds_get_article_authors(document), html_safe: true)
8 |
9 | = add_row('Citation', eds_get_article_citation(document))
10 | = add_row('Format', eds_get_article_type(document))
11 |
--------------------------------------------------------------------------------
/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/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 %>
--------------------------------------------------------------------------------
/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 | }}
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/eds/_constraints.html.haml:
--------------------------------------------------------------------------------
1 |
2 | -# EDS - CONSTRAINTS DISPLAY
3 | / spectrum/eds/_constraints.html.haml
4 |
5 | .well.well-constraints
6 | %span.constraints-label You searched for:
7 |
8 | - result.constraints_with_links.each do |text, link|
9 |
10 | %div.constraint-box
11 | %span.filterValue
12 | =text
13 | =link_to content_tag(:span, '', :class => 'glyphicon glyphicon-remove'), link
14 |
15 |
16 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/_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 |
--------------------------------------------------------------------------------
/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
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/_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/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/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/catalog/_sort_widget.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%= "Sort by #{current_sort_field.label}" %>
6 |
7 |
14 |
15 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/public/r.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/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/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/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/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/assets/javascripts/datatables.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | // Logs - just BestBets for now
4 | $('.log-datatable').DataTable( {
5 | pageLength: 100,
6 | lengthMenu: [ [20, 50, 100, -1], [20, 50, 100, "All"] ],
7 | dom: '<"top"flip>',
8 | 'aaSorting': []
9 | } );
10 |
11 | // Two tables on the My Borrowing Account page
12 | $('.loans-datatable').DataTable( {
13 | paging: false
14 | } );
15 |
16 | $('.requests-datatable').DataTable( {
17 | paging: false
18 | } );
19 |
20 |
21 | } );
22 |
23 |
24 |
--------------------------------------------------------------------------------
/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
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/app/views/_formats/eds/_eds_show.html.haml:
--------------------------------------------------------------------------------
1 | -# _formats /eds/_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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/catalog/_donor_info.html.haml:
--------------------------------------------------------------------------------
1 | /catalog/_donor_info.html.haml
2 |
3 | - if copy['donor_info_icon'].present?
4 | - copy['donor_info_icon'].each do |donor_info|
5 | - message = donor_info['message']
6 | - message = message.gsub(/ -- /, '
').html_safe if message.present?
7 | - href = donor_info['url']
8 |
9 | - if href.present?
10 | .donor_info_button
11 | %a.btn.donor_info_icon{href: "#{href}"}
12 | GIFT
13 | .donor_info_message
14 | %p
15 | =link_to(message, href)
16 | - else
17 | .donor_info_button
18 | %button.donor_info_icon{:disabled => true}
19 | GIFT
20 | .donor_info_message
21 | %p
22 | =message
23 | %br
24 |
25 |
26 |
--------------------------------------------------------------------------------
/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/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/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://resolver.library.columbia.edu/lweb0006'} Report E-Resource Problems
14 | %li
15 | %a{href: 'https://resolver.library.columbia.edu/lweb0004'} Recommend a title for purchase
16 | %li
17 | %a{href: '#', class: 'feedback-popup', data: {mobile: "#{browser.device.mobile?}" }} Suggestions & Feedback
18 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/_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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/_formats/eds/_eds.html.haml:
--------------------------------------------------------------------------------
1 | / EDS - ARTICLES
2 | / container for a single doc
3 | / _formats/eds/_eds.html.haml
4 |
5 | - # bookmark = Array(document.src['BookMark']).first
6 | - bookmark = 'foo'
7 | .result.document.article_list{item_id: bookmark}
8 |
9 | .row
10 | .title.col-sm-12
11 | .item_anchor
12 | = render partial: '/saved_lists/item_select_checkbox', locals: {item_id: bookmark, counter: counter ||= 0}
13 | .item_select_allowance= eds_link_to_article document
14 |
15 |
16 | .details
17 | - if document.eds_authors.any?
18 | = add_row('Author', eds_get_article_authors(document), html_safe: true)
19 | = add_row('Citation', eds_get_article_citation(document))
20 | = add_row('Format', eds_get_article_type(document))
21 | - if Rails.env == 'xdevelopment'
22 | = eds_dump(document).html_safe
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/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/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/layouts/no_sidebar_no_search.html.haml:
--------------------------------------------------------------------------------
1 | -# coding: UTF-8
2 | !!!
3 | %html{:xmlns => "http://www.w3.org/1999/xhtml", :lang => "en"}
4 | %head
5 | = render :partial => "/layouts/common_head"
6 | - onload = (params[:q].to_s.empty? and params[:f].to_s.empty? and params[:id].nil?) ? "$('input#q').focus();" : ""
7 | %body{:onload => onload, data: {'environment' => "#{ENV['RAILS_ENV']}"} }
8 |
9 | / Layout: no_sidebar_no_search
10 |
11 | #trigger
12 |
13 | = render :partial => "/top_navigation_bar"
14 |
15 | #outer-container.container
16 |
17 | .row
18 | = render :partial=>'/layouts/messages'
19 |
20 | = yield
21 |
22 | .clear-both
23 | = render :partial => "/footer"
24 |
25 | -# BLACKLIGHT 5
26 | -# Used by Blacklight for Bootstrap modals
27 | #ajax-modal.modal.fade{tabindex: -1}
28 | .modal-dialog
29 | .modal-content
30 |
31 | = render :partial => "/layouts/common_tail"
32 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/_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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | = show_boosts(@document)
28 |
29 | = render '/authority_variants', document: @document
30 |
31 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/assets/javascripts/item_actions.js.coffee:
--------------------------------------------------------------------------------
1 |
2 | # NEXT-1984 - Remove Send to Phone
3 | # @OpenTextMessage = (bibid) ->
4 | # url = 'http://www.columbia.edu/cgi-bin/cul/forms/text?' + bibid
5 | # OpenWindow(url)
6 |
7 | @OpenInprocessRequest = (bibid) ->
8 | url = 'https://www1.columbia.edu/sec-cgi-bin/cul/forms/inprocess?' + bibid
9 | OpenWindow(url)
10 |
11 | @OpenSearchRequest = (bibid) ->
12 | url = 'https://www1.columbia.edu/sec-cgi-bin/cul/forms/search?' + bibid
13 | OpenWindow(url)
14 |
15 | # @OpenPrecatRequest = (bibid) ->
16 | # url = 'https://www1.columbia.edu/sec-cgi-bin/cul/forms/precat?' + bibid
17 | # OpenWindow(url)
18 |
19 | @OpenItemFeedback = (bibid) ->
20 | url = 'https://www1.columbia.edu/sec-cgi-bin/cul/forms/itemfeedback?' + bibid
21 | OpenWindow(url)
22 |
23 | @OpenURLinWindow = (bibid, url) ->
24 | full_url = url + bibid
25 | OpenWindow(full_url)
26 |
27 | @OpenWindow = (url) ->
28 | window.open(url,'','left=200,top=200,width=650,height=700,scrollbars')
29 | return false
30 |
--------------------------------------------------------------------------------
/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/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/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/stylesheets/callouts.scss:
--------------------------------------------------------------------------------
1 | /*
2 | These are the styles for the Callouts found in the
3 | Bootstrap docs.
4 |
5 | Grabbed from the docs, unmin'd w/ http://mrcoles.com/blog/css-unminify/
6 | */
7 |
8 |
9 |
10 | .bs-callout {
11 | padding: 20px;
12 | margin: 20px 0;
13 | border: 1px solid #eee;
14 | border-left-width: 5px;
15 | border-radius: 3px;
16 | }
17 | .bs-callout h4 {
18 | margin-top: 0;
19 | margin-bottom: 5px;
20 | }
21 | .bs-callout p:last-child {
22 | margin-bottom: 0;
23 | }
24 | .bs-callout code {
25 | border-radius: 3px;
26 | }
27 | .bs-callout+.bs-callout {
28 | margin-top: -5px;
29 | }
30 | .bs-callout-danger {
31 | border-left-color: #d9534f;
32 | }
33 | .bs-callout-danger h4 {
34 | color: #d9534f;
35 | }
36 | .bs-callout-warning {
37 | border-left-color: #f0ad4e;
38 | }
39 | .bs-callout-warning h4 {
40 | color: #f0ad4e;
41 | }
42 | .bs-callout-info {
43 | border-left-color: #5bc0de;
44 | }
45 | .bs-callout-info h4 {
46 | color: #5bc0de;
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/spec/relevancy/anchored_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe 'Anchored searches', :skip_travis do
4 | # NEXT-1059 - "Title begins with" doesn't work with non-filing characters
5 | it 'should work with non-filing characters' do
6 | starts_with = '{!qf=$title_start_qf pf=$title_start_pf}'
7 | q1 = '"The Wills eye manual"'
8 | q2 = '"Wills eye manual"'
9 | q3 = '"The Wills eye manual office and emergency room"'
10 | q4 = '"Wills eye manual office and emergency room"'
11 |
12 | [q1, q2, q3, q4].each do |q|
13 | resp = solr_resp_doc_ids_only(q: "#{starts_with}#{q}")
14 | expect(rank(resp, 6613582)).to be <= 6
15 | expect(rank(resp, 8364149)).to be <= 6
16 | expect(rank(resp, 10026137)).to be <= 6
17 | expect(rank(resp, 12824250)).to be <= 6
18 |
19 | # NOT: "Wills hospital eye manual for nurses"
20 | expect(rank(resp, 4019811)).to be > 3
21 |
22 | # If we ever get more in our catalog, bump this up.
23 | expect(resp.size).to be <= 6
24 | end
25 | end
26 | end
27 |
--------------------------------------------------------------------------------
/spec/routing/item_alerts_routing_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe ItemAlertsController do
4 | describe 'routing' do
5 | it 'routes to #index' do
6 | expect(get('/item_alerts')).to route_to('item_alerts#index')
7 | end
8 |
9 | it 'routes to #new' do
10 | expect(get('/item_alerts/new')).to route_to('item_alerts#new')
11 | end
12 |
13 | it 'routes to #show' do
14 | expect(get('/item_alerts/1')).to route_to('item_alerts#show', id: '1')
15 | end
16 |
17 | it 'routes to #edit' do
18 | expect(get('/item_alerts/1/edit')).to route_to('item_alerts#edit', id: '1')
19 | end
20 |
21 | it 'routes to #create' do
22 | expect(post('/item_alerts')).to route_to('item_alerts#create')
23 | end
24 |
25 | it 'routes to #update' do
26 | expect(put('/item_alerts/1')).to route_to('item_alerts#update', id: '1')
27 | end
28 |
29 | it 'routes to #destroy' do
30 | expect(delete('/item_alerts/1')).to route_to('item_alerts#destroy', id: '1')
31 | end
32 | end
33 | end
34 |
--------------------------------------------------------------------------------
/spec/controllers/google_appliance_controller_spec.rb.obsolete:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe Spectrum::SearchEngines::GoogleAppliance do
4 | it "should raise RuntimeError if no 'q' param passed" do
5 | expect do
6 | Spectrum::SearchEngines::GoogleAppliance.new
7 | end.to raise_error(RuntimeError)
8 | end
9 |
10 | it 'should set @errors and return nothing on search errors' do
11 | # First, should be no errors
12 | ga = Spectrum::SearchEngines::GoogleAppliance.new('q' => 'english')
13 | expect(ga.errors).to be_nil
14 |
15 | # Set our GA URL to an unroutable IP...
16 | saved_ga_url = APP_CONFIG['google_appliance_url']
17 | APP_CONFIG['google_appliance_url'] = 'http://999.999.999.999'
18 |
19 | # Then, with a bad backend URL, there should be errors
20 | ga = Spectrum::SearchEngines::GoogleAppliance.new('q' => 'math')
21 | expect(ga.errors).to_not be_nil
22 |
23 | # Restore our real GA URL so that subsequent tests work
24 | APP_CONFIG['google_appliance_url'] = saved_ga_url
25 | end
26 | end
27 |
--------------------------------------------------------------------------------