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
|
@@ -3,41 +3,43 @@
|
|
|
3
3
|
# as this module is mixed-in to the application controller in the hosting app on installation.
|
|
4
4
|
module Blacklight::Controller
|
|
5
5
|
extend ActiveSupport::Concern
|
|
6
|
-
extend Deprecation
|
|
7
|
-
self.deprecation_horizon = 'blacklight 7.x'
|
|
8
6
|
|
|
9
7
|
included do
|
|
10
8
|
include Blacklight::SearchFields
|
|
11
|
-
helper Blacklight::SearchFields
|
|
9
|
+
helper Blacklight::SearchFields
|
|
12
10
|
|
|
13
11
|
include ActiveSupport::Callbacks
|
|
14
12
|
|
|
15
13
|
# now in application.rb file under config.filter_parameters
|
|
16
14
|
# filter_parameter_logging :password, :password_confirmation
|
|
15
|
+
helper_method :current_user_session, :current_user, :current_or_guest_user
|
|
17
16
|
after_action :discard_flash_if_xhr
|
|
18
17
|
|
|
19
18
|
# handle basic authorization exception with #access_denied
|
|
20
|
-
rescue_from Blacklight::Exceptions::AccessDenied, :
|
|
19
|
+
rescue_from Blacklight::Exceptions::AccessDenied, with: :access_denied
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
# extra head content
|
|
22
|
+
helper_method :has_user_authentication_provider?
|
|
23
|
+
helper_method :blacklight_config, :blacklight_configuration_context
|
|
24
|
+
helper_method :search_action_url, :search_action_path, :search_facet_path
|
|
25
|
+
helper_method :search_state
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
helper_method :has_user_authentication_provider?
|
|
27
|
-
helper_method :blacklight_config, :blacklight_configuration_context
|
|
28
|
-
helper_method :search_action_url, :search_action_path, :search_facet_path
|
|
29
|
-
helper_method :search_state
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# Specify which class to use for the search state. You can subclass SearchState if you
|
|
27
|
+
# Which class to use for the search state. You can subclass SearchState if you
|
|
33
28
|
# want to override any of the methods (e.g. SearchState#url_for_document)
|
|
34
29
|
class_attribute :search_state_class
|
|
35
30
|
self.search_state_class = Blacklight::SearchState
|
|
36
31
|
|
|
32
|
+
# Which class to use for the search service. You can subclass SearchService if you
|
|
33
|
+
# want to override any of the methods (e.g. SearchService#fetch)
|
|
34
|
+
class_attribute :search_service_class
|
|
35
|
+
self.search_service_class = Blacklight::SearchService
|
|
36
|
+
|
|
37
37
|
# This callback runs when a user first logs in
|
|
38
38
|
|
|
39
39
|
define_callbacks :logging_in_user
|
|
40
40
|
set_callback :logging_in_user, :before, :transfer_guest_user_actions_to_current_user
|
|
41
|
+
|
|
42
|
+
layout :determine_layout
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
def default_catalog_controller
|
|
@@ -46,144 +48,126 @@ module Blacklight::Controller
|
|
|
46
48
|
|
|
47
49
|
delegate :blacklight_config, to: :default_catalog_controller
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
private
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
##
|
|
54
|
+
# Context in which to evaluate blacklight configuration conditionals
|
|
55
|
+
def blacklight_configuration_context
|
|
56
|
+
@blacklight_configuration_context ||= Blacklight::Configuration::Context.new(self)
|
|
57
|
+
end
|
|
56
58
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
##
|
|
60
|
+
# Determine whether to render the bookmarks control
|
|
61
|
+
# (Needs to be available globally, as it is used in the navbar)
|
|
62
|
+
def render_bookmarks_control?
|
|
63
|
+
has_user_authentication_provider? && current_or_guest_user.present?
|
|
64
|
+
end
|
|
63
65
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
has_user_authentication_provider? and current_user
|
|
69
|
-
end
|
|
66
|
+
# @return [Blacklight::SearchState] a memoized instance of the parameter state.
|
|
67
|
+
def search_state
|
|
68
|
+
@search_state ||= search_state_class.new(params, blacklight_config, self)
|
|
69
|
+
end
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"Invoking it will 2 arguments is deprecated and will be removed in Blacklight 7.")
|
|
79
|
-
search_state_class.new(params, blacklight_config)
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
71
|
+
# Default route to the search action (used e.g. in global partials). Override this method
|
|
72
|
+
# in a controller or in your ApplicationController to introduce custom logic for choosing
|
|
73
|
+
# which action the search form should use
|
|
74
|
+
def search_action_url options = {}
|
|
75
|
+
# Rails 4.2 deprecated url helpers accepting string keys for 'controller' or 'action'
|
|
76
|
+
search_catalog_url(options.except(:controller, :action))
|
|
77
|
+
end
|
|
83
78
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
def search_action_url options = {}
|
|
88
|
-
# Rails 4.2 deprecated url helpers accepting string keys for 'controller' or 'action'
|
|
89
|
-
search_catalog_url(options.except(:controller, :action))
|
|
79
|
+
def search_action_path *args
|
|
80
|
+
if args.first.is_a? Hash
|
|
81
|
+
args.first[:only_path] = true if args.first[:only_path].nil?
|
|
90
82
|
end
|
|
91
83
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
args.first[:only_path] = true
|
|
95
|
-
end
|
|
84
|
+
search_action_url(*args)
|
|
85
|
+
end
|
|
96
86
|
|
|
97
|
-
|
|
98
|
-
|
|
87
|
+
def search_facet_path(options = {})
|
|
88
|
+
opts = search_state
|
|
89
|
+
.to_h
|
|
90
|
+
.merge(action: "facet", only_path: true)
|
|
91
|
+
.merge(options)
|
|
92
|
+
.except(:page)
|
|
93
|
+
url_for opts
|
|
94
|
+
end
|
|
99
95
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
deprecation_deprecate search_facet_url: 'Use search_facet_path instead.'
|
|
96
|
+
# Returns a list of Searches from the ids in the user's history.
|
|
97
|
+
def searches_from_history
|
|
98
|
+
session[:history].blank? ? Search.none : Search.where(id: session[:history]).order("updated_at desc")
|
|
99
|
+
end
|
|
105
100
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
101
|
+
# Should be provided by authentication provider
|
|
102
|
+
# def current_user
|
|
103
|
+
# end
|
|
104
|
+
# def current_or_guest_user
|
|
105
|
+
# end
|
|
111
106
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
107
|
+
# Here's a stub implementation we'll add if it isn't provided for us
|
|
108
|
+
def current_or_guest_user
|
|
109
|
+
if defined? super
|
|
110
|
+
super
|
|
111
|
+
elsif has_user_authentication_provider?
|
|
112
|
+
current_user
|
|
115
113
|
end
|
|
114
|
+
end
|
|
115
|
+
alias blacklight_current_or_guest_user current_or_guest_user
|
|
116
116
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
# Here's a stub implementation we'll add if it isn't provided for us
|
|
124
|
-
def current_or_guest_user
|
|
125
|
-
if defined? super
|
|
126
|
-
super
|
|
127
|
-
elsif has_user_authentication_provider?
|
|
128
|
-
current_user
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
alias blacklight_current_or_guest_user current_or_guest_user
|
|
117
|
+
##
|
|
118
|
+
# We discard flash messages generated by the xhr requests to avoid
|
|
119
|
+
# confusing UX.
|
|
120
|
+
def discard_flash_if_xhr
|
|
121
|
+
flash.discard if request.xhr?
|
|
122
|
+
end
|
|
132
123
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
124
|
+
##
|
|
125
|
+
#
|
|
126
|
+
#
|
|
127
|
+
def has_user_authentication_provider?
|
|
128
|
+
respond_to? :current_user
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def require_user_authentication_provider
|
|
132
|
+
raise ActionController::RoutingError, 'Not Found' unless has_user_authentication_provider?
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
##
|
|
136
|
+
# When a user logs in, transfer any saved searches or bookmarks to the current_user
|
|
137
|
+
def transfer_guest_user_actions_to_current_user
|
|
138
|
+
return unless respond_to?(:current_user) && respond_to?(:guest_user) && current_user && guest_user
|
|
139
|
+
current_user_searches = current_user.searches.pluck(:query_params)
|
|
140
|
+
current_user_bookmarks = current_user.bookmarks.pluck(:document_id)
|
|
150
141
|
|
|
151
|
-
|
|
152
|
-
|
|
142
|
+
guest_user.searches.reject { |s| current_user_searches.include?(s.query_params) }.each do |s|
|
|
143
|
+
current_user.searches << s
|
|
144
|
+
s.save!
|
|
153
145
|
end
|
|
154
146
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return unless respond_to? :current_user and respond_to? :guest_user and current_user and guest_user
|
|
159
|
-
current_user_searches = current_user.searches.pluck(:query_params)
|
|
160
|
-
current_user_bookmarks = current_user.bookmarks.pluck(:document_id)
|
|
161
|
-
|
|
162
|
-
guest_user.searches.reject { |s| current_user_searches.include?(s.query_params)}.each do |s|
|
|
163
|
-
current_user.searches << s
|
|
164
|
-
s.save!
|
|
165
|
-
end
|
|
166
|
-
|
|
167
|
-
guest_user.bookmarks.reject { |b| current_user_bookmarks.include?(b.document_id)}.each do |b|
|
|
168
|
-
current_user.bookmarks << b
|
|
169
|
-
b.save!
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
# let guest_user know we've moved some bookmarks from under it
|
|
173
|
-
guest_user.reload if guest_user.persisted?
|
|
147
|
+
guest_user.bookmarks.reject { |b| current_user_bookmarks.include?(b.document_id) }.each do |b|
|
|
148
|
+
current_user.bookmarks << b
|
|
149
|
+
b.save!
|
|
174
150
|
end
|
|
175
151
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
def access_denied
|
|
180
|
-
# send the user home if the access was previously denied by the same
|
|
181
|
-
# request to avoid sending the user back to the login page
|
|
182
|
-
# (e.g. protected page -> logout -> returned to protected page -> home)
|
|
183
|
-
redirect_to root_url and flash.discard and return if request.referer and request.referer.ends_with? request.fullpath
|
|
152
|
+
# let guest_user know we've moved some bookmarks from under it
|
|
153
|
+
guest_user.reload if guest_user.persisted?
|
|
154
|
+
end
|
|
184
155
|
|
|
185
|
-
|
|
156
|
+
##
|
|
157
|
+
# To handle failed authorization attempts, redirect the user to the
|
|
158
|
+
# login form and persist the current request uri as a parameter
|
|
159
|
+
def access_denied
|
|
160
|
+
# send the user home if the access was previously denied by the same
|
|
161
|
+
# request to avoid sending the user back to the login page
|
|
162
|
+
# (e.g. protected page -> logout -> returned to protected page -> home)
|
|
163
|
+
redirect_to(root_url) && flash.discard && return if request.referer && request.referer.ends_with?(request.fullpath)
|
|
186
164
|
|
|
187
|
-
|
|
188
|
-
|
|
165
|
+
redirect_to(root_url) && return unless has_user_authentication_provider?
|
|
166
|
+
|
|
167
|
+
redirect_to new_user_session_url(referer: request.fullpath)
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def determine_layout
|
|
171
|
+
'blacklight'
|
|
172
|
+
end
|
|
189
173
|
end
|
|
@@ -4,6 +4,9 @@ module Blacklight
|
|
|
4
4
|
extend ActiveSupport::Concern
|
|
5
5
|
|
|
6
6
|
included do
|
|
7
|
+
Deprecation.warn(self, "Blacklight::DefaultComponentConfiguration is deprecated and will be removed in the next release." \
|
|
8
|
+
"this means you must call add_results_document_tool, add_results_collection_tool, " \
|
|
9
|
+
"add_show_tools_partial and add_nav_action manually in your config")
|
|
7
10
|
add_results_document_tool(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
|
|
8
11
|
|
|
9
12
|
add_results_collection_tool(:sort_widget)
|
|
@@ -16,14 +19,9 @@ module Blacklight
|
|
|
16
19
|
add_show_tools_partial(:citation)
|
|
17
20
|
|
|
18
21
|
add_nav_action(:bookmark, partial: 'blacklight/nav/bookmark', if: :render_bookmarks_control?)
|
|
19
|
-
add_nav_action(:saved_searches, partial: 'blacklight/nav/saved_searches', if: :render_saved_searches?)
|
|
20
22
|
add_nav_action(:search_history, partial: 'blacklight/nav/search_history')
|
|
21
23
|
end
|
|
22
24
|
|
|
23
|
-
def render_sms_action?(_config, _options)
|
|
24
|
-
sms_mappings.present?
|
|
25
|
-
end
|
|
26
|
-
|
|
27
25
|
module ClassMethods
|
|
28
26
|
# YARD will include inline disabling as docs, cannot do multiline inside @!macro. AND this must be separate from doc block.
|
|
29
27
|
# rubocop:disable Metrics/LineLength
|
|
@@ -41,55 +39,26 @@ module Blacklight
|
|
|
41
39
|
# @option opts [Symbol] :callback method for further processing of documents, receives Array of documents
|
|
42
40
|
def add_show_tools_partial(name, opts = {})
|
|
43
41
|
blacklight_config.add_show_tools_partial(name, opts)
|
|
44
|
-
|
|
45
|
-
return if method_defined?(name) || opts[:define_method] == false
|
|
46
|
-
|
|
47
|
-
# Define a simple action handler for the tool
|
|
48
|
-
define_method name do
|
|
49
|
-
@response, @documents = action_documents
|
|
50
|
-
|
|
51
|
-
if request.post? && opts[:callback] &&
|
|
52
|
-
(opts[:validator].blank? || self.send(opts[:validator]))
|
|
53
|
-
|
|
54
|
-
self.send(opts[:callback], @documents)
|
|
55
|
-
|
|
56
|
-
flash[:success] ||= I18n.t("blacklight.#{name}.success", default: nil)
|
|
57
|
-
|
|
58
|
-
respond_to do |format|
|
|
59
|
-
format.html do
|
|
60
|
-
return render "#{name}_success", layout: false if request.xhr?
|
|
61
|
-
redirect_to action_success_redirect_path
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
else
|
|
65
|
-
respond_to do |format|
|
|
66
|
-
format.html do
|
|
67
|
-
return render layout: false if request.xhr?
|
|
68
|
-
# Otherwise draw the full page
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
42
|
+
ActionBuilder.new(self, name, opts).build
|
|
73
43
|
end
|
|
74
44
|
# rubocop:enable Metrics/LineLength
|
|
75
45
|
|
|
46
|
+
deprecation_deprecate add_show_tools_partial: 'use blacklight_config.add_show_tools_partial instead'
|
|
47
|
+
|
|
76
48
|
# Add a tool to be displayed for each document in the search results.
|
|
77
49
|
# @!macro partial_if_unless
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
end
|
|
50
|
+
delegate :add_results_document_tool, to: :blacklight_config
|
|
51
|
+
deprecation_deprecate add_results_document_tool: 'use blacklight_config.add_results_document_tool instead'
|
|
81
52
|
|
|
82
53
|
# Add a tool to be displayed for the list of search results themselves.
|
|
83
54
|
# @!macro partial_if_unless
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
end
|
|
55
|
+
delegate :add_results_collection_tool, to: :blacklight_config
|
|
56
|
+
deprecation_deprecate add_results_collection_tool: 'use blacklight_config.add_results_collection_tool instead'
|
|
87
57
|
|
|
88
58
|
# Add a partial to the header navbar.
|
|
89
59
|
# @!macro partial_if_unless
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
end
|
|
60
|
+
delegate :add_nav_action, to: :blacklight_config
|
|
61
|
+
deprecation_deprecate add_nav_action: 'use blacklight_config.add_nav_action instead'
|
|
93
62
|
end
|
|
94
63
|
end
|
|
95
64
|
end
|
|
@@ -2,22 +2,20 @@
|
|
|
2
2
|
module Blacklight::SearchContext
|
|
3
3
|
extend ActiveSupport::Concern
|
|
4
4
|
|
|
5
|
-
# The following code is executed when someone includes
|
|
5
|
+
# The following code is executed when someone includes blacklight::catalog::search_session in their
|
|
6
6
|
# own controller.
|
|
7
7
|
included do
|
|
8
|
-
|
|
9
|
-
helper_method :current_search_session, :search_session
|
|
10
|
-
end
|
|
8
|
+
helper_method :current_search_session, :search_session
|
|
11
9
|
end
|
|
12
10
|
|
|
13
11
|
module ClassMethods
|
|
14
12
|
# Save the submitted search parameters in the search session
|
|
15
|
-
def record_search_parameters opts = { only: :index}
|
|
13
|
+
def record_search_parameters opts = { only: :index }
|
|
16
14
|
before_action :set_current_search_session, opts
|
|
17
15
|
end
|
|
18
16
|
end
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
private
|
|
21
19
|
|
|
22
20
|
# sets up the session[:search] hash if it doesn't already exist
|
|
23
21
|
def search_session
|
|
@@ -78,9 +76,9 @@ module Blacklight::SearchContext
|
|
|
78
76
|
end
|
|
79
77
|
|
|
80
78
|
def find_or_initialize_search_session_from_params params
|
|
81
|
-
params_copy = params.reject { |k,v| blacklisted_search_session_params.include?(k.to_sym)
|
|
79
|
+
params_copy = params.reject { |k, v| blacklisted_search_session_params.include?(k.to_sym) || v.blank? }
|
|
82
80
|
|
|
83
|
-
return if params_copy.reject { |k,
|
|
81
|
+
return if params_copy.reject { |k, _v| [:action, :controller].include? k.to_sym }.blank?
|
|
84
82
|
|
|
85
83
|
saved_search = searches_from_history.find { |x| x.query_params == params_copy }
|
|
86
84
|
|
|
@@ -96,7 +94,7 @@ module Blacklight::SearchContext
|
|
|
96
94
|
session[:history].unshift(search.id)
|
|
97
95
|
|
|
98
96
|
if session[:history].length > blacklight_config.search_history_window
|
|
99
|
-
session[:history] = session[:history].slice(0, blacklight_config.search_history_window
|
|
97
|
+
session[:history] = session[:history].slice(0, blacklight_config.search_history_window)
|
|
100
98
|
end
|
|
101
99
|
end
|
|
102
100
|
|
|
@@ -108,14 +106,12 @@ module Blacklight::SearchContext
|
|
|
108
106
|
# calls setup_previous_document then setup_next_document.
|
|
109
107
|
# used in the show action for single view pagination.
|
|
110
108
|
def setup_next_and_previous_documents
|
|
111
|
-
if search_session['counter']
|
|
109
|
+
if search_session['counter'] && current_search_session
|
|
112
110
|
index = search_session['counter'].to_i - 1
|
|
113
|
-
response, documents =
|
|
111
|
+
response, documents = search_service.previous_and_next_documents_for_search index, search_state.reset(current_search_session.query_params).to_hash
|
|
114
112
|
|
|
115
113
|
search_session['total'] = response.total
|
|
116
|
-
|
|
117
|
-
@previous_document = documents.first
|
|
118
|
-
@next_document = documents.last
|
|
114
|
+
{ prev: documents.first, next: documents.last }
|
|
119
115
|
end
|
|
120
116
|
rescue Blacklight::Exceptions::InvalidRequest => e
|
|
121
117
|
logger.warn "Unable to setup next and previous documents: #{e}"
|