blacklight 6.24.0 → 7.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.npmignore +23 -0
- data/.rubocop.yml +15 -3
- data/.rubocop_todo.yml +242 -379
- data/.solr_wrapper.yml +1 -1
- data/.travis.yml +20 -24
- data/Gemfile +1 -4
- data/README.md +21 -4
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/app/assets/images/blacklight/list.svg +1 -0
- data/app/assets/images/blacklight/search.svg +1 -0
- data/app/assets/javascripts/blacklight/blacklight.js +496 -56
- data/app/assets/stylesheets/blacklight/_balanced_list.scss +7 -12
- data/app/assets/stylesheets/blacklight/_blacklight_base.scss +3 -1
- data/app/assets/stylesheets/blacklight/_bookmark.scss +1 -13
- data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +27 -0
- data/app/assets/stylesheets/blacklight/_constraints.scss +17 -25
- data/app/assets/stylesheets/blacklight/_controls.scss +8 -16
- data/app/assets/stylesheets/blacklight/_facets.scss +74 -92
- data/app/assets/stylesheets/blacklight/_header.scss +35 -48
- data/app/assets/stylesheets/blacklight/_icons.scss +29 -0
- data/app/assets/stylesheets/blacklight/_layout.scss +0 -10
- data/app/assets/stylesheets/blacklight/_mixins.scss +15 -0
- data/app/assets/stylesheets/blacklight/_modal.scss +9 -17
- data/app/assets/stylesheets/blacklight/_pagination.scss +2 -17
- data/app/assets/stylesheets/blacklight/_search_history.scss +5 -13
- data/app/assets/stylesheets/blacklight/_search_results.scss +9 -8
- data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +1 -2
- data/app/builders/blacklight/action_builder.rb +56 -0
- data/app/controllers/bookmarks_controller.rb +2 -2
- data/app/controllers/catalog_controller.rb +2 -2
- data/app/controllers/concerns/blacklight/base.rb +0 -33
- data/app/controllers/concerns/blacklight/bookmarks.rb +20 -37
- data/app/controllers/concerns/blacklight/catalog.rb +254 -213
- data/app/controllers/concerns/blacklight/controller.rb +117 -133
- data/app/controllers/concerns/blacklight/default_component_configuration.rb +12 -43
- data/app/controllers/concerns/blacklight/search_context.rb +10 -14
- data/app/controllers/concerns/blacklight/search_fields.rb +4 -14
- data/app/controllers/concerns/blacklight/token_based_user.rb +6 -10
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +32 -118
- data/app/helpers/blacklight/catalog_helper_behavior.rb +94 -88
- data/app/helpers/blacklight/component_helper_behavior.rb +19 -19
- data/app/helpers/blacklight/configuration_helper_behavior.rb +25 -54
- data/app/helpers/blacklight/facets_helper_behavior.rb +40 -39
- data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +9 -11
- data/app/helpers/blacklight/icon_helper_behavior.rb +16 -0
- data/app/helpers/blacklight/layout_helper_behavior.rb +3 -10
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +6 -6
- data/app/helpers/blacklight/render_partials_helper_behavior.rb +195 -0
- data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +18 -11
- data/app/helpers/blacklight/suggest_helper_behavior.rb +1 -0
- data/app/helpers/blacklight/url_helper_behavior.rb +21 -27
- data/app/{assets/javascripts → javascript}/blacklight/autocomplete.js +3 -2
- data/app/javascript/blacklight/autofocus.js +20 -0
- data/app/javascript/blacklight/bookmark_toggle.js +25 -0
- data/app/javascript/blacklight/checkbox_submit.js +133 -0
- data/app/{assets/javascripts → javascript}/blacklight/collapsable.js +1 -1
- data/app/javascript/blacklight/core.js +39 -0
- data/app/{assets/javascripts → javascript}/blacklight/facet_load.js +6 -6
- data/app/{assets/javascripts/blacklight/ajax_modal.js → javascript/blacklight/modal.js} +63 -63
- data/app/{assets/javascripts → javascript}/blacklight/search_context.js +10 -2
- data/app/models/blacklight/facet_paginator.rb +3 -3
- data/app/models/blacklight/icon.rb +53 -0
- data/app/models/blacklight/solr/facet_paginator.rb +3 -3
- data/app/models/blacklight/suggest_search.rb +15 -4
- data/app/models/bookmark.rb +4 -9
- data/app/models/concerns/blacklight/configurable.rb +13 -13
- data/app/models/concerns/blacklight/document.rb +8 -42
- data/app/models/concerns/blacklight/document/active_model_shim.rb +8 -11
- data/app/models/concerns/blacklight/document/cache_key.rb +1 -1
- data/app/models/concerns/blacklight/document/dublin_core.rb +2 -2
- data/app/models/concerns/blacklight/document/email.rb +1 -1
- data/app/models/concerns/blacklight/document/extensions.rb +5 -5
- data/app/models/concerns/blacklight/document/semantic_fields.rb +9 -9
- data/app/models/concerns/blacklight/document/sms.rb +1 -1
- data/app/models/concerns/blacklight/solr/document.rb +7 -8
- data/app/models/concerns/blacklight/suggest/response.rb +3 -5
- data/app/models/concerns/blacklight/user.rb +6 -6
- data/app/models/record_mailer.rb +5 -6
- data/app/models/search.rb +4 -7
- data/app/presenters/blacklight/field_presenter.rb +5 -5
- data/app/presenters/blacklight/index_presenter.rb +34 -71
- data/app/presenters/blacklight/json_presenter.rb +7 -4
- data/app/presenters/blacklight/link_alternate_presenter.rb +1 -1
- data/app/presenters/blacklight/rendering/abstract_step.rb +5 -5
- data/app/presenters/blacklight/rendering/helper_method.rb +8 -8
- data/app/presenters/blacklight/rendering/join.rb +3 -3
- data/app/presenters/blacklight/rendering/link_to_facet.rb +19 -19
- data/app/presenters/blacklight/rendering/microdata.rb +3 -3
- data/app/presenters/blacklight/rendering/pipeline.rb +5 -5
- data/app/presenters/blacklight/search_bar_presenter.rb +37 -0
- data/app/presenters/blacklight/show_presenter.rb +20 -69
- data/app/presenters/blacklight/thumbnail_presenter.rb +72 -0
- data/app/services/blacklight/document_factory.rb +11 -0
- data/app/services/blacklight/field_retriever.rb +24 -24
- data/app/services/blacklight/search_service.rb +154 -0
- data/app/views/blacklight/nav/_bookmark.html.erb +2 -2
- data/app/views/blacklight/nav/_search_history.html.erb +1 -1
- data/app/views/bookmarks/_tools.html.erb +2 -2
- data/app/views/bookmarks/index.html.erb +2 -2
- data/app/views/catalog/_bookmark_control.html.erb +26 -10
- data/app/views/catalog/_citation.html.erb +18 -23
- data/app/views/catalog/_constraints.html.erb +5 -8
- data/app/views/catalog/_constraints_element.html.erb +6 -6
- data/app/views/catalog/{_document_default.atom.builder → _document.atom.builder} +2 -2
- data/app/views/catalog/_document.html.erb +5 -3
- data/app/views/catalog/{_document_default.rss.builder → _document.rss.builder} +0 -0
- data/app/views/catalog/_document_action.html.erb +2 -1
- data/app/views/catalog/_email_form.html.erb +8 -4
- data/app/views/catalog/_facet_index_navigation.html.erb +3 -3
- data/app/views/catalog/_facet_layout.html.erb +5 -7
- data/app/views/catalog/_facet_limit.html.erb +3 -2
- data/app/views/catalog/_facet_pagination.html.erb +10 -10
- data/app/views/catalog/_facet_pivot.html.erb +2 -2
- data/app/views/catalog/_facets.html.erb +8 -12
- data/app/views/catalog/{_group_default.html.erb → _group.html.erb} +0 -0
- data/app/views/catalog/_home_text.html.erb +32 -36
- data/app/views/catalog/_index.html.erb +12 -0
- data/app/views/catalog/{_index_header_default.html.erb → _index_header.html.erb} +2 -2
- data/app/views/catalog/_per_page_widget.html.erb +6 -7
- data/app/views/catalog/_previous_next_doc.html.erb +6 -14
- data/app/views/catalog/_search_form.html.erb +12 -8
- data/app/views/catalog/_search_header.html.erb +0 -3
- data/app/views/catalog/_search_results.html.erb +4 -0
- data/app/views/catalog/_show.html.erb +10 -0
- data/app/views/catalog/{_show_header_default.html.erb → _show_header.html.erb} +0 -0
- data/app/views/catalog/_show_main_content.html.erb +4 -4
- data/app/views/catalog/_show_sidebar.html.erb +3 -3
- data/app/views/catalog/_show_tools.html.erb +9 -11
- data/app/views/catalog/_sms_form.html.erb +8 -4
- data/app/views/catalog/_sort_and_per_page.html.erb +3 -3
- data/app/views/catalog/_sort_widget.html.erb +7 -7
- data/app/views/catalog/_thumbnail.html.erb +5 -0
- data/app/views/catalog/_view_type_group.html.erb +2 -2
- data/app/views/catalog/citation.html.erb +1 -1
- data/app/views/catalog/citation.js.erb +9 -1
- data/app/views/catalog/email.html.erb +5 -5
- data/app/views/catalog/email_success.html.erb +11 -9
- data/app/views/catalog/facet.html.erb +5 -6
- data/app/views/catalog/index.atom.builder +10 -15
- data/app/views/catalog/index.html.erb +9 -11
- data/app/views/catalog/index.json.jbuilder +65 -3
- data/app/views/catalog/index.rss.builder +5 -5
- data/app/views/catalog/opensearch.xml.builder +10 -10
- data/app/views/catalog/show.html.erb +11 -6
- data/app/views/catalog/sms.html.erb +2 -3
- data/app/views/catalog/sms_success.html.erb +11 -10
- data/app/views/kaminari/blacklight/_first_page.html.erb +2 -2
- data/app/views/kaminari/blacklight/_gap.html.erb +2 -2
- data/app/views/kaminari/blacklight/_last_page.html.erb +2 -2
- data/app/views/kaminari/blacklight/_next_page.html.erb +4 -4
- data/app/views/kaminari/blacklight/_page.html.erb +3 -3
- data/app/views/kaminari/blacklight/_prev_page.html.erb +4 -4
- data/app/views/kaminari/blacklight_compact/_paginator.html.erb +4 -4
- data/app/views/layouts/blacklight.html.erb +14 -41
- data/app/views/layouts/blacklight/base.html.erb +43 -0
- data/app/views/layouts/catalog_result.html.erb +11 -0
- data/app/views/search_history/index.html.erb +16 -21
- data/app/views/{_flash_msg.html.erb → shared/_flash_msg.html.erb} +0 -0
- data/app/views/shared/_header_navbar.html.erb +8 -13
- data/app/views/shared/_modal.html.erb +6 -0
- data/app/views/shared/_user_util_links.html.erb +22 -0
- data/blacklight.gemspec +10 -11
- data/config/locales/blacklight.de.yml +0 -30
- data/config/locales/blacklight.en.yml +1 -27
- data/config/locales/blacklight.es.yml +0 -30
- data/config/locales/blacklight.fr.yml +0 -30
- data/config/locales/blacklight.hu.yml +210 -0
- data/config/locales/blacklight.it.yml +0 -30
- data/config/locales/blacklight.nl.yml +210 -0
- data/config/locales/blacklight.pt-BR.yml +6 -32
- data/config/locales/blacklight.sq.yml +1 -28
- data/config/locales/blacklight.zh.yml +0 -25
- data/config/routes.rb +3 -10
- data/db/migrate/20140202020202_create_bookmarks.rb +0 -1
- data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -1
- data/lib/blacklight.rb +4 -5
- data/lib/blacklight/abstract_repository.rb +9 -21
- data/lib/blacklight/configuration.rb +82 -89
- data/lib/blacklight/configuration/context.rb +1 -1
- data/lib/blacklight/configuration/facet_field.rb +16 -9
- data/lib/blacklight/configuration/field.rb +32 -3
- data/lib/blacklight/configuration/fields.rb +41 -48
- data/lib/blacklight/configuration/search_field.rb +2 -2
- data/lib/blacklight/configuration/sort_field.rb +2 -2
- data/lib/blacklight/configuration/view_config.rb +4 -0
- data/lib/blacklight/engine.rb +6 -10
- data/lib/blacklight/exceptions.rb +4 -7
- data/lib/blacklight/nested_open_struct_with_hash_access.rb +107 -0
- data/lib/blacklight/open_struct_with_hash_access.rb +49 -0
- data/lib/blacklight/parameters.rb +1 -1
- data/lib/blacklight/routes/searchable.rb +1 -0
- data/lib/blacklight/search_builder.rb +26 -35
- data/lib/blacklight/search_state.rb +8 -8
- data/lib/blacklight/solr/repository.rb +3 -36
- data/lib/blacklight/solr/request.rb +1 -1
- data/lib/blacklight/solr/response.rb +29 -30
- data/lib/blacklight/solr/response/facets.rb +29 -31
- data/lib/blacklight/solr/response/group.rb +3 -3
- data/lib/blacklight/solr/response/group_response.rb +1 -1
- data/lib/blacklight/solr/response/more_like_this.rb +2 -2
- data/lib/blacklight/solr/response/response.rb +2 -2
- data/lib/blacklight/solr/response/spelling.rb +3 -3
- data/lib/blacklight/solr/search_builder_behavior.rb +25 -29
- data/lib/blacklight/version.rb +1 -1
- data/lib/generators/blacklight/assets_generator.rb +8 -8
- data/lib/generators/blacklight/controller_generator.rb +4 -5
- data/lib/generators/blacklight/document_generator.rb +1 -1
- data/lib/generators/blacklight/install_generator.rb +18 -21
- data/lib/generators/blacklight/search_builder_generator.rb +1 -1
- data/lib/generators/blacklight/{solr5_generator.rb → solr_generator.rb} +4 -6
- data/lib/generators/blacklight/templates/.solr_wrapper.yml +5 -0
- data/lib/generators/blacklight/templates/blacklight.scss +0 -2
- data/lib/generators/blacklight/templates/catalog_controller.rb +52 -51
- data/{solr → lib/generators/blacklight/templates/solr}/conf/_rest_managed.json +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/admin-extra.html +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/elevate.xml +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/mapping-ISOLatin1Accent.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/protwords.txt +0 -0
- data/lib/generators/blacklight/templates/solr/conf/schema.xml +390 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/scripts.conf +0 -0
- data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +195 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/spellings.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords_en.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/synonyms.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example.xsl +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_atom.xsl +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_rss.xsl +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/luke.xsl +0 -0
- data/lib/generators/blacklight/test_support_generator.rb +10 -10
- data/lib/generators/blacklight/user_generator.rb +3 -6
- data/lib/railties/blacklight.rake +19 -14
- data/package-lock.json +2057 -0
- data/package.json +28 -0
- data/spec/controllers/alternate_controller_spec.rb +1 -1
- data/spec/controllers/application_controller_spec.rb +1 -1
- data/spec/controllers/blacklight/base_spec.rb +1 -1
- data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +11 -7
- data/spec/controllers/blacklight/facet_spec.rb +1 -1
- data/spec/controllers/blacklight/search_fields_spec.rb +1 -13
- data/spec/controllers/bookmarks_controller_spec.rb +1 -36
- data/spec/controllers/catalog_controller_spec.rb +153 -53
- data/spec/controllers/search_history_controller_spec.rb +2 -2
- data/spec/features/alternate_controller_spec.rb +1 -1
- data/spec/features/autocomplete_spec.rb +2 -2
- data/spec/features/bookmarks_spec.rb +10 -10
- data/spec/features/did_you_mean_spec.rb +3 -9
- data/spec/features/facets_spec.rb +11 -11
- data/spec/features/record_view_spec.rb +1 -6
- data/spec/features/search_context_spec.rb +2 -2
- data/spec/features/search_filters_spec.rb +41 -41
- data/spec/features/search_formats_spec.rb +1 -1
- data/spec/features/search_history_spec.rb +1 -26
- data/spec/features/search_pagination_spec.rb +1 -1
- data/spec/features/search_results_spec.rb +3 -4
- data/spec/features/search_sort_spec.rb +2 -2
- data/spec/features/search_spec.rb +5 -10
- data/{solr → spec/fixtures}/sample_solr_documents.yml +688 -688
- data/spec/helpers/{configuration_helper_spec.rb → blacklight/configuration_helper_behavior_spec.rb} +70 -65
- data/spec/helpers/{facets_helper_spec.rb → blacklight/facets_helper_behavior_spec.rb} +7 -8
- data/spec/helpers/{hash_as_hidden_fields_spec.rb → blacklight/hash_as_hidden_fields_behavior_spec.rb} +1 -1
- data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +8 -0
- data/spec/helpers/{layout_helper_spec.rb → blacklight/layout_helper_behavior_spec.rb} +5 -15
- data/spec/helpers/{render_constraints_helper_spec.rb → blacklight/render_constraints_helper_behavior_spec.rb} +2 -3
- data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +80 -0
- data/spec/helpers/{search_history_constraints_helper_spec.rb → blacklight/search_history_constraints_helper_behavior_spec.rb} +9 -9
- data/spec/helpers/{suggest_helper_spec.rb → blacklight/suggest_helper_behavior_spec.rb} +4 -2
- data/spec/helpers/{url_helper_spec.rb → blacklight/url_helper_behavior_spec.rb} +11 -15
- data/spec/helpers/blacklight_helper_spec.rb +36 -141
- data/spec/helpers/catalog_helper_spec.rb +37 -56
- data/spec/integration/generators/blacklight/{solr5_generator_spec.rb → solr_generator_spec.rb} +3 -3
- data/spec/lib/blacklight/configuration/facet_field_spec.rb +11 -0
- data/spec/lib/blacklight/configuration/field_spec.rb +12 -0
- data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +17 -0
- data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +153 -0
- data/spec/lib/blacklight/parameters_spec.rb +1 -1
- data/spec/lib/blacklight/search_state_spec.rb +2 -2
- data/spec/lib/blacklight_spec.rb +1 -1
- data/spec/lib/tasks/blacklight_task_spec.rb +1 -1
- data/spec/models/blacklight/configurable_spec.rb +15 -16
- data/spec/models/blacklight/configuration/context_spec.rb +1 -1
- data/spec/models/blacklight/configuration_spec.rb +146 -135
- data/spec/models/blacklight/document/active_model_shim_spec.rb +11 -1
- data/spec/models/blacklight/document/cache_key_spec.rb +1 -1
- data/spec/models/blacklight/document/dublin_core_spec.rb +5 -5
- data/spec/models/blacklight/document/email_spec.rb +3 -3
- data/spec/models/blacklight/document/sms_spec.rb +3 -3
- data/spec/models/blacklight/document_spec.rb +3 -16
- data/spec/models/blacklight/facet_paginator_spec.rb +1 -1
- data/spec/models/blacklight/icon_spec.rb +34 -0
- data/spec/models/blacklight/search_builder_spec.rb +33 -27
- data/spec/models/blacklight/solr/document_spec.rb +18 -7
- data/spec/models/blacklight/solr/facet_paginator_spec.rb +1 -1
- data/spec/models/blacklight/solr/repository_spec.rb +32 -27
- data/spec/models/blacklight/solr/request_spec.rb +1 -1
- data/spec/models/blacklight/solr/response/facets_spec.rb +1 -1
- data/spec/models/blacklight/solr/response/group_response_spec.rb +1 -1
- data/spec/models/blacklight/solr/response/group_spec.rb +1 -1
- data/spec/models/blacklight/solr/response_spec.rb +9 -6
- data/spec/models/blacklight/solr/search_builder_spec.rb +35 -48
- data/spec/models/blacklight/suggest/response_spec.rb +4 -5
- data/spec/models/blacklight/suggest_search_spec.rb +14 -7
- data/spec/models/blacklight/user_spec.rb +1 -1
- data/spec/models/bookmark_spec.rb +1 -1
- data/spec/models/record_mailer_spec.rb +2 -2
- data/spec/models/search_spec.rb +1 -1
- data/spec/models/solr_document_spec.rb +3 -3
- data/spec/presenters/blacklight/search_bar_presenter_spec.rb +72 -0
- data/spec/presenters/index_presenter_spec.rb +70 -143
- data/spec/presenters/pipeline_spec.rb +4 -4
- data/spec/presenters/show_presenter_spec.rb +83 -145
- data/spec/presenters/thumbnail_presenter_spec.rb +171 -0
- data/spec/routing/catalog_routing_spec.rb +1 -17
- data/spec/services/blacklight/search_service_spec.rb +446 -0
- data/spec/spec_helper.rb +22 -9
- data/spec/test_app_templates/Gemfile.extra +2 -5
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
- data/spec/views/catalog/_constraints.html.erb_spec.rb +1 -3
- data/spec/views/catalog/_constraints_element.html.erb_spec.rb +8 -8
- data/spec/views/catalog/_document.html.erb_spec.rb +7 -7
- data/spec/views/catalog/_document_list.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_facet_layout.html.erb_spec.rb +6 -6
- data/spec/views/catalog/_facets.html.erb_spec.rb +2 -2
- data/spec/views/catalog/{_index_default.erb_spec.rb → _index.html.erb_spec.rb} +1 -1
- data/spec/views/catalog/{_index_header_default.html.erb_spec.rb → _index_header.html.erb_spec.rb} +4 -4
- data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +4 -27
- data/spec/views/catalog/_search_header.erb_spec.rb +1 -3
- data/spec/views/catalog/{_show_default.erb_spec.rb → _show.html.erb_spec.rb} +1 -1
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +3 -3
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +3 -3
- data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -1
- data/spec/views/catalog/{_thumbnail_default.erb_spec.rb → _thumbnail.html.erb_spec.rb} +3 -3
- data/spec/views/catalog/_view_type_group.html.erb_spec.rb +5 -1
- data/spec/views/catalog/email_success.html.erb_spec.rb +9 -0
- data/spec/views/catalog/facet.html.erb_spec.rb +1 -1
- data/spec/views/catalog/facet.json.jbuilder_spec.rb +1 -1
- data/spec/views/catalog/index.atom.builder_spec.rb +2 -2
- data/spec/views/catalog/index.html.erb_spec.rb +4 -7
- data/spec/views/catalog/index.json.jbuilder_spec.rb +66 -21
- data/spec/views/catalog/opensearch.xml.builder_spec.rb +1 -1
- data/spec/views/catalog/show.html.erb_spec.rb +2 -2
- data/spec/views/catalog/sms_success.html.erb_spec.rb +9 -0
- data/spec/views/{_user_util_links.html.erb_spec.rb → shared/_user_util_links.html.erb_spec.rb} +4 -4
- data/tasks/blacklight.rake +10 -8
- data/template.demo.rb +1 -11
- metadata +171 -189
- data/app/assets/javascripts/blacklight/autofocus.js +0 -16
- data/app/assets/javascripts/blacklight/bookmark_toggle.js +0 -23
- data/app/assets/javascripts/blacklight/checkbox_submit.js +0 -139
- data/app/assets/javascripts/blacklight/core.js +0 -30
- data/app/controllers/concerns/blacklight/request_builders.rb +0 -77
- data/app/controllers/concerns/blacklight/saved_searches.rb +0 -70
- data/app/controllers/concerns/blacklight/search_helper.rb +0 -161
- data/app/controllers/concerns/blacklight/suggest.rb +0 -25
- data/app/controllers/saved_searches_controller.rb +0 -4
- data/app/controllers/suggest_controller.rb +0 -4
- data/app/helpers/blacklight/deprecated_url_helper_behavior.rb +0 -57
- data/app/helpers/blacklight/render_partials_helper.rb +0 -205
- data/app/helpers/blacklight_configuration_helper.rb +0 -4
- data/app/helpers/blacklight_url_helper.rb +0 -4
- data/app/helpers/component_helper.rb +0 -4
- data/app/helpers/facets_helper.rb +0 -4
- data/app/helpers/hash_as_hidden_fields_helper.rb +0 -4
- data/app/helpers/layout_helper.rb +0 -4
- data/app/helpers/render_constraints_helper.rb +0 -4
- data/app/helpers/search_history_constraints_helper.rb +0 -4
- data/app/helpers/suggest_helper.rb +0 -4
- data/app/models/concerns/blacklight/solr/document/more_like_this.rb +0 -6
- data/app/presenters/blacklight/document_presenter.rb +0 -153
- data/app/views/_user_util_links.html.erb +0 -26
- data/app/views/blacklight/nav/_saved_searches.html.erb +0 -1
- data/app/views/catalog/_index_default.html.erb +0 -12
- data/app/views/catalog/_show_default.html.erb +0 -10
- data/app/views/catalog/_thumbnail_default.html.erb +0 -5
- data/app/views/saved_searches/index.html.erb +0 -32
- data/app/views/shared/_ajax_modal.html.erb +0 -6
- data/lib/blacklight/utils.rb +0 -183
- data/lib/generators/blacklight/solr4_generator.rb +0 -31
- data/solr/conf/schema.xml +0 -627
- data/solr/conf/solrconfig.xml +0 -411
- data/spec/controllers/blacklight/search_helper_spec.rb +0 -489
- data/spec/controllers/saved_searches_controller_spec.rb +0 -32
- data/spec/controllers/suggest_controller_spec.rb +0 -17
- data/spec/features/saved_searches_spec.rb +0 -47
- data/spec/helpers/deprecated_url_helper_behavior_spec.rb +0 -101
- data/spec/lib/blacklight/utils_spec.rb +0 -167
- data/spec/models/blacklight/solr/document/more_like_this_spec.rb +0 -18
- data/spec/presenters/document_presenter_spec.rb +0 -438
- data/spec/support/backport_test.rb +0 -14
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
#
|
|
8
8
|
# = Search Field blacklight_configuration Hash =
|
|
9
9
|
# [:key]
|
|
10
|
-
# "title", required, unique key used in search URLs to specify search_field
|
|
10
|
+
# "title", required, unique key used in search URLs to specify search_field
|
|
11
11
|
# [:label]
|
|
12
12
|
# "Title", # user-displayable label, optional, if not supplied :key.titlecase will be used
|
|
13
13
|
# [:qt]
|
|
@@ -18,30 +18,20 @@
|
|
|
18
18
|
# { :qf => "$something" } # optional hash of additional parameters that will be passed using Solr LocalParams syntax, that can use dollar sign to reference other solr variables.
|
|
19
19
|
# [:include_in_simple_select]
|
|
20
20
|
# false. Defaults to true, but you can set to false to have a search field defined for deep-links or BL extensions, but not actually included in the HTML select for simple search choice.
|
|
21
|
-
#
|
|
21
|
+
#
|
|
22
22
|
# Optionally you can supply a :key, which is what Blacklight will use
|
|
23
23
|
# to identify this search field in HTTP query params. If no :key is
|
|
24
24
|
# supplied, one will be computed from the :label. If that will
|
|
25
|
-
# result in a collision of keys, you should supply one explicitly.
|
|
25
|
+
# result in a collision of keys, you should supply one explicitly.
|
|
26
26
|
#
|
|
27
27
|
##
|
|
28
28
|
module Blacklight::SearchFields
|
|
29
|
-
extend Deprecation
|
|
30
|
-
self.deprecation_horizon = 'blacklight 7.x'
|
|
31
|
-
|
|
32
29
|
# Looks up search field config list from blacklight_config[:search_fields], and
|
|
33
|
-
# 'normalizes' all field config hashes using normalize_config method.
|
|
30
|
+
# 'normalizes' all field config hashes using normalize_config method.
|
|
34
31
|
def search_field_list
|
|
35
32
|
blacklight_config.search_fields.values
|
|
36
33
|
end
|
|
37
34
|
|
|
38
|
-
# Looks up a search field blacklight_config hash from search_field_list having
|
|
39
|
-
# a certain supplied :key.
|
|
40
|
-
def search_field_def_for_key(key)
|
|
41
|
-
blacklight_config.search_fields[key]
|
|
42
|
-
end
|
|
43
|
-
deprecation_deprecate search_field_def_for_key: "Use blacklight_config.search_fields[key]"
|
|
44
|
-
|
|
45
35
|
# Returns default search field, used for simpler display in history, etc.
|
|
46
36
|
# if not set in blacklight_config, defaults to first field listed in #search_field_list
|
|
47
37
|
def default_search_field
|
|
@@ -3,16 +3,14 @@ module Blacklight::TokenBasedUser
|
|
|
3
3
|
extend ActiveSupport::Concern
|
|
4
4
|
|
|
5
5
|
included do
|
|
6
|
-
|
|
7
|
-
helper_method :encrypt_user_id
|
|
8
|
-
end
|
|
6
|
+
helper_method :encrypt_user_id
|
|
9
7
|
|
|
10
8
|
rescue_from Blacklight::Exceptions::ExpiredSessionToken do
|
|
11
9
|
head :unauthorized
|
|
12
10
|
end
|
|
13
11
|
end
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
private
|
|
16
14
|
|
|
17
15
|
def token_or_current_or_guest_user
|
|
18
16
|
token_user || current_or_guest_user
|
|
@@ -20,9 +18,9 @@ module Blacklight::TokenBasedUser
|
|
|
20
18
|
|
|
21
19
|
def token_user
|
|
22
20
|
@token_user ||= if params[:encrypted_user_id]
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
user_id = decrypt_user_id params[:encrypted_user_id]
|
|
22
|
+
User.find(user_id)
|
|
23
|
+
end
|
|
26
24
|
end
|
|
27
25
|
|
|
28
26
|
# Used for #export action, with encrypted user_id.
|
|
@@ -66,14 +64,12 @@ module Blacklight::TokenBasedUser
|
|
|
66
64
|
ActiveSupport::MessageEncryptor.new(export_secret_token)
|
|
67
65
|
end
|
|
68
66
|
|
|
69
|
-
private
|
|
70
|
-
|
|
71
67
|
# Ruby 2.4 requires keys of very particular lengths
|
|
72
68
|
def key_len
|
|
73
69
|
if ActiveSupport::MessageEncryptor.respond_to? :key_len
|
|
74
70
|
ActiveSupport::MessageEncryptor.key_len
|
|
75
71
|
else
|
|
76
|
-
|
|
72
|
+
0
|
|
77
73
|
end
|
|
78
74
|
end
|
|
79
75
|
end
|
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
# Methods added to this helper will be available to all templates in the hosting application
|
|
3
3
|
module Blacklight::BlacklightHelperBehavior
|
|
4
|
-
include
|
|
5
|
-
include
|
|
6
|
-
include
|
|
7
|
-
include
|
|
8
|
-
include RenderPartialsHelper
|
|
9
|
-
include FacetsHelper
|
|
10
|
-
extend Deprecation
|
|
11
|
-
self.deprecation_horizon = 'Blacklight version 7.0.0'
|
|
4
|
+
include UrlHelperBehavior
|
|
5
|
+
include HashAsHiddenFieldsHelperBehavior
|
|
6
|
+
include LayoutHelperBehavior
|
|
7
|
+
include IconHelperBehavior
|
|
12
8
|
|
|
13
9
|
##
|
|
14
|
-
# Get the name of this application
|
|
15
|
-
#
|
|
16
|
-
#
|
|
10
|
+
# Get the name of this application from an i18n string
|
|
11
|
+
# key: blacklight.application_name
|
|
12
|
+
# Try first in the current locale, then the default locale
|
|
17
13
|
#
|
|
18
14
|
# @return [String] the application name
|
|
19
15
|
def application_name
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
# It's important that we don't use ActionView::Helpers::CacheHelper#cache here
|
|
17
|
+
# because it returns nil.
|
|
18
|
+
Rails.cache.fetch 'blacklight/application_name' do
|
|
19
|
+
t('blacklight.application_name',
|
|
20
|
+
default: t('blacklight.application_name', locale: I18n.default_locale))
|
|
23
21
|
end
|
|
24
|
-
|
|
25
|
-
t('blacklight.application_name')
|
|
26
22
|
end
|
|
27
23
|
|
|
28
24
|
##
|
|
@@ -44,7 +40,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
44
40
|
# @option options [Boolean] :unique ensures only one link is output for every
|
|
45
41
|
# content type, e.g. as required by atom
|
|
46
42
|
# @option options [Array<String>] :exclude array of format shortnames to not include in the output
|
|
47
|
-
def render_link_rel_alternates(document
|
|
43
|
+
def render_link_rel_alternates(document = @document, options = {})
|
|
48
44
|
return if document.nil?
|
|
49
45
|
presenter(document).link_rel_alternates(options)
|
|
50
46
|
end
|
|
@@ -53,7 +49,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
53
49
|
# Render OpenSearch headers for this search
|
|
54
50
|
# @return [String]
|
|
55
51
|
def render_opensearch_response_metadata
|
|
56
|
-
render :
|
|
52
|
+
render partial: 'catalog/opensearch_response_metadata'
|
|
57
53
|
end
|
|
58
54
|
|
|
59
55
|
##
|
|
@@ -75,7 +71,11 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
75
71
|
# Render the search navbar
|
|
76
72
|
# @return [String]
|
|
77
73
|
def render_search_bar
|
|
78
|
-
render
|
|
74
|
+
search_bar_presenter.render
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def search_bar_presenter
|
|
78
|
+
@search_bar ||= search_bar_presenter_class.new(controller, blacklight_config)
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
##
|
|
@@ -116,6 +116,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
116
116
|
# @param [Blacklight::Solr::Response] response
|
|
117
117
|
# @return [Boolean]
|
|
118
118
|
def should_show_spellcheck_suggestions? response
|
|
119
|
+
# The spelling response field may be missing from non solr repositories.
|
|
119
120
|
response.total <= spell_check_max &&
|
|
120
121
|
!response.spelling.nil? &&
|
|
121
122
|
response.spelling.words.any?
|
|
@@ -124,6 +125,9 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
124
125
|
##
|
|
125
126
|
# Render the index field label for a document
|
|
126
127
|
#
|
|
128
|
+
# Translations for index field labels should go under blacklight.search.fields
|
|
129
|
+
# They are picked up from there by a value "%{label}" in blacklight.search.index.label
|
|
130
|
+
#
|
|
127
131
|
# @overload render_index_field_label(options)
|
|
128
132
|
# Use the default, document-agnostic configuration
|
|
129
133
|
# @param [Hash] opts
|
|
@@ -142,45 +146,6 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
142
146
|
html_escape t(:"blacklight.search.index.#{document_index_view_type}.label", default: :'blacklight.search.index.label', label: index_field_label(document, field))
|
|
143
147
|
end
|
|
144
148
|
|
|
145
|
-
##
|
|
146
|
-
# Render the index field label for a document
|
|
147
|
-
#
|
|
148
|
-
# @overload render_index_field_value(options)
|
|
149
|
-
# Use the default, document-agnostic configuration
|
|
150
|
-
# @param [Hash] opts
|
|
151
|
-
# @option opts [String] :field
|
|
152
|
-
# @option opts [String] :value
|
|
153
|
-
# @option opts [String] :document
|
|
154
|
-
# @overload render_index_field_value(document, options)
|
|
155
|
-
# Allow an extention point where information in the document
|
|
156
|
-
# may drive the value of the field
|
|
157
|
-
# @param [SolrDocument] doc
|
|
158
|
-
# @param [Hash] opts
|
|
159
|
-
# @option opts [String] :field
|
|
160
|
-
# @option opts [String] :value
|
|
161
|
-
# @overload render_index_field_value(document, field, options)
|
|
162
|
-
# Allow an extention point where information in the document
|
|
163
|
-
# may drive the value of the field
|
|
164
|
-
# @param [SolrDocument] doc
|
|
165
|
-
# @param [String] field
|
|
166
|
-
# @param [Hash] opts
|
|
167
|
-
# @option opts [String] :value
|
|
168
|
-
# @deprecated use IndexPresenter#field_value
|
|
169
|
-
def render_index_field_value *args
|
|
170
|
-
render_field_value(*args)
|
|
171
|
-
end
|
|
172
|
-
deprecation_deprecate render_index_field_value: 'replaced by IndexPresenter#field_value'
|
|
173
|
-
|
|
174
|
-
# @deprecated use IndexPresenter#field_value
|
|
175
|
-
def render_field_value(*args)
|
|
176
|
-
options = args.extract_options!
|
|
177
|
-
document = args.shift || options[:document]
|
|
178
|
-
|
|
179
|
-
field = args.shift || options[:field]
|
|
180
|
-
presenter(document).field_value field, options.except(:document, :field)
|
|
181
|
-
end
|
|
182
|
-
deprecation_deprecate render_field_value: 'replaced by IndexPresenter#field_value'
|
|
183
|
-
|
|
184
149
|
##
|
|
185
150
|
# Render the show field label for a document
|
|
186
151
|
#
|
|
@@ -203,42 +168,13 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
203
168
|
t(:'blacklight.search.show.label', label: document_show_field_label(document, field))
|
|
204
169
|
end
|
|
205
170
|
|
|
206
|
-
##
|
|
207
|
-
# Render the index field label for a document
|
|
208
|
-
#
|
|
209
|
-
# @overload render_document_show_field_value(options)
|
|
210
|
-
# Use the default, document-agnostic configuration
|
|
211
|
-
# @param [Hash] opts
|
|
212
|
-
# @option opts [String] :field
|
|
213
|
-
# @option opts [String] :value
|
|
214
|
-
# @option opts [String] :document
|
|
215
|
-
# @overload render_document_show_field_value(document, options)
|
|
216
|
-
# Allow an extention point where information in the document
|
|
217
|
-
# may drive the value of the field
|
|
218
|
-
# @param [SolrDocument] doc
|
|
219
|
-
# @param [Hash] opts
|
|
220
|
-
# @option opts [String] :field
|
|
221
|
-
# @option opts [String] :value
|
|
222
|
-
# @overload render_document_show_field_value(document, field, options)
|
|
223
|
-
# Allow an extention point where information in the document
|
|
224
|
-
# may drive the value of the field
|
|
225
|
-
# @param [SolrDocument] doc
|
|
226
|
-
# @param [String] field
|
|
227
|
-
# @param [Hash] opts
|
|
228
|
-
# @option opts [String] :value
|
|
229
|
-
# @deprecated use ShowPresenter#field_value
|
|
230
|
-
def render_document_show_field_value *args
|
|
231
|
-
render_field_value(*args)
|
|
232
|
-
end
|
|
233
|
-
deprecation_deprecate render_document_show_field_value: 'replaced by ShowPresenter#field_value'
|
|
234
|
-
|
|
235
171
|
##
|
|
236
172
|
# Get the value of the document's "title" field, or a placeholder
|
|
237
173
|
# value (if empty)
|
|
238
174
|
#
|
|
239
175
|
# @param [SolrDocument] document
|
|
240
176
|
# @return [String]
|
|
241
|
-
def document_heading document=nil
|
|
177
|
+
def document_heading document = nil
|
|
242
178
|
document ||= @document
|
|
243
179
|
presenter(document).heading
|
|
244
180
|
end
|
|
@@ -250,7 +186,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
250
186
|
# @see #document_heading
|
|
251
187
|
# @param [SolrDocument] document
|
|
252
188
|
# @return [String]
|
|
253
|
-
def document_show_html_title document=nil
|
|
189
|
+
def document_show_html_title document = nil
|
|
254
190
|
document ||= @document
|
|
255
191
|
|
|
256
192
|
presenter(document).html_title
|
|
@@ -274,33 +210,15 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
274
210
|
content_tag(tag, presenter(document).heading, itemprop: "name")
|
|
275
211
|
end
|
|
276
212
|
|
|
277
|
-
##
|
|
278
|
-
# Get the value for a document's field, and prepare to render it.
|
|
279
|
-
# - highlight_field
|
|
280
|
-
# - accessor
|
|
281
|
-
# - solr field
|
|
282
|
-
#
|
|
283
|
-
# Rendering:
|
|
284
|
-
# - helper_method
|
|
285
|
-
# - link_to_search
|
|
286
|
-
# @param [SolrDocument] document
|
|
287
|
-
# @param [String] _field name
|
|
288
|
-
# @param [Blacklight::Configuration::Field] field_config solr field configuration
|
|
289
|
-
# @param [Hash] options additional options to pass to the rendering helpers
|
|
290
|
-
def get_field_values document, _field, field_config, options = {}
|
|
291
|
-
presenter(document).field_values field_config, options
|
|
292
|
-
end
|
|
293
|
-
deprecation_deprecate :get_field_values
|
|
294
|
-
|
|
295
213
|
##
|
|
296
214
|
# Get the current "view type" (and ensure it is a valid type)
|
|
297
215
|
#
|
|
298
216
|
# @param [Hash] query_params the query parameters to check
|
|
299
217
|
# @return [Symbol]
|
|
300
|
-
def document_index_view_type query_params=params
|
|
218
|
+
def document_index_view_type query_params = params
|
|
301
219
|
view_param = query_params[:view]
|
|
302
220
|
view_param ||= session[:preferred_view]
|
|
303
|
-
if view_param
|
|
221
|
+
if view_param && document_index_views.keys.include?(view_param.to_sym)
|
|
304
222
|
view_param.to_sym
|
|
305
223
|
else
|
|
306
224
|
default_document_index_view_type
|
|
@@ -316,7 +234,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
316
234
|
#
|
|
317
235
|
# @param [String] format suffix
|
|
318
236
|
# @yield
|
|
319
|
-
def with_format(format
|
|
237
|
+
def with_format(format)
|
|
320
238
|
old_formats = formats
|
|
321
239
|
self.formats = [format]
|
|
322
240
|
yield
|
|
@@ -340,9 +258,6 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
340
258
|
show_presenter(document)
|
|
341
259
|
when 'index'
|
|
342
260
|
index_presenter(document)
|
|
343
|
-
else
|
|
344
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, "Unable to determine presenter type for #{action_name} on #{controller_name}, falling back on deprecated Blacklight::DocumentPresenter")
|
|
345
|
-
presenter_class.new(document, self)
|
|
346
261
|
end
|
|
347
262
|
end
|
|
348
263
|
|
|
@@ -354,11 +269,6 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
354
269
|
index_presenter_class(document).new(document, self)
|
|
355
270
|
end
|
|
356
271
|
|
|
357
|
-
def presenter_class
|
|
358
|
-
blacklight_config.document_presenter_class
|
|
359
|
-
end
|
|
360
|
-
deprecation_deprecate presenter_class: "replaced by show_presenter_class and index_presenter_class"
|
|
361
|
-
|
|
362
272
|
##
|
|
363
273
|
# Override this method if you want to use a different presenter class
|
|
364
274
|
def show_presenter_class(_document)
|
|
@@ -369,6 +279,10 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
369
279
|
blacklight_config.index.document_presenter_class
|
|
370
280
|
end
|
|
371
281
|
|
|
282
|
+
def search_bar_presenter_class
|
|
283
|
+
blacklight_config.index.search_bar_presenter_class
|
|
284
|
+
end
|
|
285
|
+
|
|
372
286
|
##
|
|
373
287
|
# Open Search discovery tag for HTML <head> links
|
|
374
288
|
def opensearch_description_tag title, href
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
module Blacklight::CatalogHelperBehavior
|
|
3
|
-
|
|
3
|
+
extend Deprecation
|
|
4
|
+
self.deprecation_horizon = 'blacklight 8.0'
|
|
5
|
+
|
|
6
|
+
include ConfigurationHelperBehavior
|
|
7
|
+
include ComponentHelperBehavior
|
|
8
|
+
include FacetsHelperBehavior
|
|
9
|
+
include RenderConstraintsHelperBehavior
|
|
10
|
+
include RenderPartialsHelperBehavior
|
|
11
|
+
include SearchHistoryConstraintsHelperBehavior
|
|
12
|
+
include SuggestHelperBehavior
|
|
13
|
+
|
|
14
|
+
# @param [Hash] options
|
|
4
15
|
# @option options :route_set the route scope to use when constructing the link
|
|
5
16
|
def rss_feed_link_tag(options = {})
|
|
6
17
|
auto_discovery_link_tag(:rss, feed_link_url('rss', options), title: t('blacklight.search.rss_feed'))
|
|
7
18
|
end
|
|
8
19
|
|
|
9
|
-
# @param [Hash] options
|
|
20
|
+
# @param [Hash] options
|
|
10
21
|
# @option options :route_set the route scope to use when constructing the link
|
|
11
22
|
def atom_feed_link_tag(options = {})
|
|
12
23
|
auto_discovery_link_tag(:atom, feed_link_url('atom', options), title: t('blacklight.search.atom_feed'))
|
|
@@ -29,43 +40,43 @@ module Blacklight::CatalogHelperBehavior
|
|
|
29
40
|
return unless show_pagination? collection
|
|
30
41
|
|
|
31
42
|
entry_name = if options[:entry_name]
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
43
|
+
options[:entry_name]
|
|
44
|
+
elsif collection.respond_to? :model # DataMapper
|
|
45
|
+
collection.model.model_name.human.downcase
|
|
46
|
+
elsif collection.respond_to?(:model_name) && !collection.model_name.nil? # AR, Blacklight::PaginationMethods
|
|
47
|
+
collection.model_name.human.downcase
|
|
48
|
+
else
|
|
49
|
+
t('blacklight.entry_name.default')
|
|
50
|
+
end
|
|
40
51
|
|
|
41
52
|
entry_name = entry_name.pluralize unless collection.total_count == 1
|
|
42
53
|
|
|
43
54
|
# grouped response objects need special handling
|
|
44
|
-
end_num = if collection.respond_to?
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
55
|
+
end_num = if collection.respond_to?(:groups) && render_grouped_response?(collection)
|
|
56
|
+
collection.groups.length
|
|
57
|
+
else
|
|
58
|
+
collection.limit_value
|
|
59
|
+
end
|
|
49
60
|
|
|
50
61
|
end_num = if collection.offset_value + end_num <= collection.total_count
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
62
|
+
collection.offset_value + end_num
|
|
63
|
+
else
|
|
64
|
+
collection.total_count
|
|
65
|
+
end
|
|
66
|
+
|
|
56
67
|
case collection.total_count
|
|
57
68
|
when 0
|
|
58
|
-
t('blacklight.search.pagination_info.no_items_found', :
|
|
69
|
+
t('blacklight.search.pagination_info.no_items_found', entry_name: entry_name).html_safe
|
|
59
70
|
when 1
|
|
60
|
-
t('blacklight.search.pagination_info.single_item_found', :
|
|
71
|
+
t('blacklight.search.pagination_info.single_item_found', entry_name: entry_name).html_safe
|
|
61
72
|
else
|
|
62
|
-
t('blacklight.search.pagination_info.pages', :
|
|
63
|
-
:
|
|
64
|
-
:
|
|
65
|
-
:
|
|
66
|
-
:
|
|
67
|
-
:
|
|
68
|
-
:
|
|
73
|
+
t('blacklight.search.pagination_info.pages', entry_name: entry_name,
|
|
74
|
+
current_page: collection.current_page,
|
|
75
|
+
num_pages: collection.total_pages,
|
|
76
|
+
start_num: number_with_delimiter(collection.offset_value + 1),
|
|
77
|
+
end_num: number_with_delimiter(end_num),
|
|
78
|
+
total_num: number_with_delimiter(collection.total_count),
|
|
79
|
+
count: collection.total_pages).html_safe
|
|
69
80
|
end
|
|
70
81
|
end
|
|
71
82
|
|
|
@@ -79,7 +90,7 @@ module Blacklight::CatalogHelperBehavior
|
|
|
79
90
|
offset ||= @response.start if @response
|
|
80
91
|
offset ||= 0
|
|
81
92
|
|
|
82
|
-
unless render_grouped_response?
|
|
93
|
+
unless render_grouped_response?
|
|
83
94
|
idx + 1 + offset
|
|
84
95
|
end
|
|
85
96
|
end
|
|
@@ -87,20 +98,20 @@ module Blacklight::CatalogHelperBehavior
|
|
|
87
98
|
##
|
|
88
99
|
# Like #page_entries_info above, but for an individual
|
|
89
100
|
# item show page. Displays "showing X of Y items" message.
|
|
90
|
-
#
|
|
101
|
+
#
|
|
91
102
|
# @see #page_entries_info
|
|
92
103
|
# @return [String]
|
|
93
104
|
def item_page_entry_info
|
|
94
|
-
t('blacklight.search.entry_pagination_info.other', :
|
|
95
|
-
:
|
|
96
|
-
:
|
|
105
|
+
t('blacklight.search.entry_pagination_info.other', current: number_with_delimiter(search_session['counter']),
|
|
106
|
+
total: number_with_delimiter(search_session['total']),
|
|
107
|
+
count: search_session['total'].to_i).html_safe
|
|
97
108
|
end
|
|
98
109
|
|
|
99
110
|
##
|
|
100
111
|
# Look up search field user-displayable label
|
|
101
112
|
# based on params[:qt] and blacklight_configuration.
|
|
102
113
|
def search_field_label(params)
|
|
103
|
-
h(
|
|
114
|
+
h(label_for_search_field(params[:search_field]))
|
|
104
115
|
end
|
|
105
116
|
|
|
106
117
|
##
|
|
@@ -108,20 +119,20 @@ module Blacklight::CatalogHelperBehavior
|
|
|
108
119
|
#
|
|
109
120
|
# @return [Blacklight::Configuration::SortField]
|
|
110
121
|
def current_sort_field
|
|
111
|
-
(blacklight_config.sort_fields.values.find {|f| f.sort == @response.sort} if @response
|
|
122
|
+
(blacklight_config.sort_fields.values.find { |f| f.sort == @response.sort } if @response && @response.sort.present?) || blacklight_config.sort_fields[params[:sort]] || default_sort_field
|
|
112
123
|
end
|
|
113
124
|
|
|
114
125
|
##
|
|
115
126
|
# Look up the current per page value, or the default if none if set
|
|
116
|
-
#
|
|
127
|
+
#
|
|
117
128
|
# @return [Integer]
|
|
118
129
|
def current_per_page
|
|
119
|
-
(@response.rows if @response
|
|
130
|
+
(@response.rows if @response && @response.rows > 0) || params.fetch(:per_page, blacklight_config.default_per_page).to_i
|
|
120
131
|
end
|
|
121
132
|
|
|
122
133
|
##
|
|
123
134
|
# Get the classes to add to a document's div
|
|
124
|
-
#
|
|
135
|
+
#
|
|
125
136
|
# @return [String]
|
|
126
137
|
def render_document_class(document = @document)
|
|
127
138
|
types = document[blacklight_config.view_config(document_index_view_type).display_type_field]
|
|
@@ -142,8 +153,8 @@ module Blacklight::CatalogHelperBehavior
|
|
|
142
153
|
#
|
|
143
154
|
# @param [SolrDocument] document
|
|
144
155
|
# @return [String]
|
|
145
|
-
def render_document_sidebar_partial(
|
|
146
|
-
render :
|
|
156
|
+
def render_document_sidebar_partial(_document = @document)
|
|
157
|
+
render partial: 'show_sidebar'
|
|
147
158
|
end
|
|
148
159
|
|
|
149
160
|
##
|
|
@@ -151,13 +162,13 @@ module Blacklight::CatalogHelperBehavior
|
|
|
151
162
|
#
|
|
152
163
|
# @param [SolrDocument] document
|
|
153
164
|
# @return [String]
|
|
154
|
-
def render_document_main_content_partial(
|
|
165
|
+
def render_document_main_content_partial(_document = @document)
|
|
155
166
|
render partial: 'show_main_content'
|
|
156
167
|
end
|
|
157
168
|
|
|
158
169
|
##
|
|
159
170
|
# Should we display the sort and per page widget?
|
|
160
|
-
#
|
|
171
|
+
#
|
|
161
172
|
# @param [Blacklight::Solr::Response] response
|
|
162
173
|
# @return [Boolean]
|
|
163
174
|
def show_sort_and_per_page? response = nil
|
|
@@ -178,57 +189,41 @@ module Blacklight::CatalogHelperBehavior
|
|
|
178
189
|
##
|
|
179
190
|
# If no search parameters have been given, we should
|
|
180
191
|
# auto-focus the user's cursor into the searchbox
|
|
181
|
-
#
|
|
192
|
+
#
|
|
182
193
|
# @return [Boolean]
|
|
183
194
|
def should_autofocus_on_search_box?
|
|
184
|
-
controller.is_a?
|
|
185
|
-
action_name == "index"
|
|
195
|
+
controller.is_a?(Blacklight::Catalog) &&
|
|
196
|
+
action_name == "index" &&
|
|
186
197
|
!has_search_parameters?
|
|
187
198
|
end
|
|
199
|
+
deprecation_deprecate should_autofocus_on_search_box?: "use SearchBarPresenter#autofocus?"
|
|
188
200
|
|
|
189
201
|
##
|
|
190
202
|
# Does the document have a thumbnail to render?
|
|
191
|
-
#
|
|
203
|
+
#
|
|
192
204
|
# @param [SolrDocument] document
|
|
193
205
|
# @return [Boolean]
|
|
194
206
|
def has_thumbnail? document
|
|
195
|
-
|
|
196
|
-
blacklight_config.view_config(document_index_view_type).thumbnail_field && document.has?(blacklight_config.view_config(document_index_view_type).thumbnail_field)
|
|
207
|
+
index_presenter(document).thumbnail.exists?
|
|
197
208
|
end
|
|
209
|
+
deprecation_deprecate has_thumbnail?: "use IndexPresenter#thumbnail.exists?"
|
|
198
210
|
|
|
199
211
|
##
|
|
200
212
|
# Render the thumbnail, if available, for a document and
|
|
201
213
|
# link it to the document record.
|
|
202
|
-
#
|
|
214
|
+
#
|
|
203
215
|
# @param [SolrDocument] document
|
|
204
216
|
# @param [Hash] image_options to pass to the image tag
|
|
205
217
|
# @param [Hash] url_options to pass to #link_to_document
|
|
206
218
|
# @return [String]
|
|
207
219
|
def render_thumbnail_tag document, image_options = {}, url_options = {}
|
|
208
|
-
|
|
209
|
-
send(blacklight_config.view_config(document_index_view_type).thumbnail_method, document, image_options)
|
|
210
|
-
elsif blacklight_config.view_config(document_index_view_type).thumbnail_field
|
|
211
|
-
url = thumbnail_url(document)
|
|
212
|
-
|
|
213
|
-
image_tag url, image_options if url.present?
|
|
214
|
-
end
|
|
215
|
-
|
|
216
|
-
if value
|
|
217
|
-
if url_options == false
|
|
218
|
-
Deprecation.warn(self, "passing false as the second argument to render_thumbnail_tag is deprecated. Use suppress_link: true instead. This behavior will be removed in Blacklight 7")
|
|
219
|
-
url_options = { suppress_link: true }
|
|
220
|
-
end
|
|
221
|
-
if url_options[:suppress_link]
|
|
222
|
-
value
|
|
223
|
-
else
|
|
224
|
-
link_to_document document, value, url_options
|
|
225
|
-
end
|
|
226
|
-
end
|
|
220
|
+
index_presenter(document).thumbnail.thumbnail_tag(image_options, url_options)
|
|
227
221
|
end
|
|
222
|
+
deprecation_deprecate render_thumbnail_tag: "Use IndexPresenter#thumbnail.thumbnail_tag"
|
|
228
223
|
|
|
229
224
|
##
|
|
230
225
|
# Get the URL to a document's thumbnail image
|
|
231
|
-
#
|
|
226
|
+
#
|
|
232
227
|
# @param [SolrDocument] document
|
|
233
228
|
# @return [String]
|
|
234
229
|
def thumbnail_url document
|
|
@@ -236,14 +231,15 @@ module Blacklight::CatalogHelperBehavior
|
|
|
236
231
|
document.first(blacklight_config.view_config(document_index_view_type).thumbnail_field)
|
|
237
232
|
end
|
|
238
233
|
end
|
|
234
|
+
deprecation_deprecate thumbnail_url: "this method will be removed without replacement"
|
|
239
235
|
|
|
240
236
|
##
|
|
241
237
|
# Render the view type icon for the results view picker
|
|
242
|
-
#
|
|
238
|
+
#
|
|
243
239
|
# @param [String] view
|
|
244
240
|
# @return [String]
|
|
245
241
|
def render_view_type_group_icon view
|
|
246
|
-
|
|
242
|
+
blacklight_icon(view)
|
|
247
243
|
end
|
|
248
244
|
|
|
249
245
|
##
|
|
@@ -252,28 +248,38 @@ module Blacklight::CatalogHelperBehavior
|
|
|
252
248
|
# @param [String] view
|
|
253
249
|
# @return [String]
|
|
254
250
|
def default_view_type_group_icon_classes view
|
|
251
|
+
Deprecation.warn(Blacklight::CatalogHelperBehavior, 'This method has been deprecated, use blacklight_icons helper instead')
|
|
255
252
|
"glyphicon-#{view.to_s.parameterize} view-icon-#{view.to_s.parameterize}"
|
|
256
253
|
end
|
|
257
|
-
|
|
258
|
-
def current_bookmarks
|
|
259
|
-
|
|
260
|
-
|
|
254
|
+
|
|
255
|
+
def current_bookmarks documents_or_response = nil
|
|
256
|
+
documents = if documents_or_response.respond_to? :documents
|
|
257
|
+
Deprecation.warn(Blacklight::CatalogHelperBehavior, "Passing a response to #current_bookmarks is deprecated; pass response.documents instead")
|
|
258
|
+
documents_or_response.documents
|
|
259
|
+
else
|
|
260
|
+
documents_or_response
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
documents ||= [@document] if @document.present?
|
|
264
|
+
documents ||= @response.documents
|
|
265
|
+
|
|
266
|
+
@current_bookmarks ||= current_or_guest_user.bookmarks_for_documents(documents).to_a
|
|
261
267
|
end
|
|
262
268
|
|
|
263
269
|
##
|
|
264
270
|
# Check if the document is in the user's bookmarks
|
|
265
271
|
def bookmarked? document
|
|
266
|
-
current_bookmarks.any? { |x| x.document_id == document.id
|
|
272
|
+
current_bookmarks.any? { |x| x.document_id == document.id && x.document_type == document.class }
|
|
267
273
|
end
|
|
268
274
|
|
|
269
275
|
def render_search_to_page_title_filter(facet, values)
|
|
270
276
|
facet_config = facet_configuration_for_field(facet)
|
|
271
277
|
filter_label = facet_field_label(facet_config.key)
|
|
272
278
|
filter_value = if values.size < 3
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
279
|
+
values.map { |value| facet_display_value(facet, value) }.to_sentence
|
|
280
|
+
else
|
|
281
|
+
t('blacklight.search.page_title.many_constraint_values', values: values.size)
|
|
282
|
+
end
|
|
277
283
|
t('blacklight.search.page_title.constraint', label: filter_label, value: filter_value)
|
|
278
284
|
end
|
|
279
285
|
|
|
@@ -299,11 +305,11 @@ module Blacklight::CatalogHelperBehavior
|
|
|
299
305
|
|
|
300
306
|
private
|
|
301
307
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
308
|
+
# @param [String] format
|
|
309
|
+
# @param [Hash] options
|
|
310
|
+
# @option options :route_set the route scope to use when constructing the link
|
|
311
|
+
def feed_link_url(format, options = {})
|
|
312
|
+
scope = options.delete(:route_set) || self
|
|
313
|
+
scope.url_for search_state.to_h.merge(format: format)
|
|
314
|
+
end
|
|
309
315
|
end
|