blacklight 6.14.0 → 7.0.0
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 +5 -5
- data/.gitignore +1 -0
- data/.npmignore +23 -0
- data/.rubocop.yml +40 -16
- data/.rubocop_todo.yml +479 -375
- data/.solr_wrapper.yml +9 -2
- data/.travis.yml +27 -20
- data/Gemfile +3 -1
- data/README.md +22 -5
- data/Rakefile +3 -2
- data/VERSION +1 -1
- data/Vagrantfile +2 -0
- 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 +497 -57
- data/app/assets/stylesheets/blacklight/_balanced_list.scss +7 -12
- data/app/assets/stylesheets/blacklight/_blacklight_base.scss +18 -15
- 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 +64 -93
- data/app/assets/stylesheets/blacklight/_header.scss +35 -48
- data/app/assets/stylesheets/blacklight/_icons.scss +35 -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_form.scss +7 -0
- 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/assets/stylesheets/blacklight/blacklight.scss +1 -1
- data/app/builders/blacklight/action_builder.rb +57 -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 +36 -33
- data/app/controllers/concerns/blacklight/catalog.rb +266 -210
- data/app/controllers/concerns/blacklight/controller.rb +111 -126
- data/app/controllers/concerns/blacklight/default_component_configuration.rb +12 -43
- data/app/controllers/concerns/blacklight/facet.rb +3 -0
- data/app/controllers/concerns/blacklight/search_context.rb +16 -14
- data/app/controllers/concerns/blacklight/search_fields.rb +4 -14
- data/app/controllers/concerns/blacklight/search_history.rb +1 -6
- data/app/controllers/concerns/blacklight/token_based_user.rb +24 -9
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +39 -119
- data/app/helpers/blacklight/catalog_helper_behavior.rb +94 -88
- data/app/helpers/blacklight/component_helper_behavior.rb +21 -19
- data/app/helpers/blacklight/configuration_helper_behavior.rb +30 -57
- data/app/helpers/blacklight/facets_helper_behavior.rb +55 -51
- data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +9 -11
- data/app/helpers/blacklight/icon_helper_behavior.rb +18 -0
- data/app/helpers/blacklight/layout_helper_behavior.rb +3 -3
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +8 -6
- data/app/helpers/blacklight/render_partials_helper_behavior.rb +195 -0
- data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +19 -11
- data/app/helpers/blacklight/suggest_helper_behavior.rb +1 -0
- data/app/helpers/blacklight/url_helper_behavior.rb +50 -41
- data/app/{assets/javascripts → javascript}/blacklight/autocomplete.js +3 -2
- data/app/javascript/blacklight/bookmark_toggle.js +25 -0
- data/app/javascript/blacklight/checkbox_submit.js +134 -0
- data/app/{assets/javascripts → javascript}/blacklight/collapsable.js +1 -1
- data/app/{assets/javascripts → javascript}/blacklight/core.js +10 -8
- data/app/{assets/javascripts → javascript}/blacklight/facet_load.js +6 -6
- data/app/{assets/javascripts/blacklight/ajax_modal.js → javascript/blacklight/modal.js} +62 -64
- data/app/{assets/javascripts → javascript}/blacklight/search_context.js +10 -3
- data/app/models/blacklight/facet_paginator.rb +3 -3
- data/app/models/blacklight/icon.rb +56 -0
- data/app/models/blacklight/solr/facet_paginator.rb +3 -3
- data/app/models/blacklight/suggest_search.rb +4 -15
- data/app/models/bookmark.rb +5 -10
- data/app/models/concerns/blacklight/configurable.rb +13 -13
- data/app/models/concerns/blacklight/document/active_model_shim.rb +13 -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/document.rb +26 -40
- data/app/models/concerns/blacklight/solr/document.rb +8 -8
- data/app/models/concerns/blacklight/suggest/response.rb +5 -3
- data/app/models/concerns/blacklight/user.rb +7 -6
- data/app/models/record_mailer.rb +5 -6
- data/app/models/search.rb +5 -7
- data/app/presenters/blacklight/document_presenter.rb +25 -140
- data/app/presenters/blacklight/field_presenter.rb +7 -5
- data/app/presenters/blacklight/index_presenter.rb +41 -58
- data/app/presenters/blacklight/json_presenter.rb +10 -14
- data/app/presenters/blacklight/link_alternate_presenter.rb +3 -1
- data/app/presenters/blacklight/rendering/abstract_step.rb +7 -5
- data/app/presenters/blacklight/rendering/helper_method.rb +10 -8
- data/app/presenters/blacklight/rendering/join.rb +5 -3
- data/app/presenters/blacklight/rendering/link_to_facet.rb +23 -19
- data/app/presenters/blacklight/rendering/microdata.rb +6 -3
- data/app/presenters/blacklight/rendering/pipeline.rb +7 -5
- data/app/presenters/blacklight/rendering/terminator.rb +2 -0
- data/app/presenters/blacklight/search_bar_presenter.rb +39 -0
- data/app/presenters/blacklight/show_presenter.rb +26 -63
- data/app/presenters/blacklight/thumbnail_presenter.rb +74 -0
- data/app/services/blacklight/document_factory.rb +13 -0
- data/app/services/blacklight/field_retriever.rb +26 -24
- data/app/services/blacklight/search_service.rb +152 -0
- data/app/values/blacklight/types.rb +31 -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 +12 -13
- data/app/views/catalog/_bookmark_control.html.erb +26 -10
- data/app/views/catalog/_citation.html.erb +4 -4
- data/app/views/catalog/_constraints.html.erb +6 -7
- data/app/views/catalog/_constraints_element.html.erb +6 -6
- data/app/views/catalog/_did_you_mean.html.erb +1 -1
- data/app/views/catalog/{_document_default.atom.builder → _document.atom.builder} +19 -18
- data/app/views/catalog/_document.html.erb +5 -3
- data/app/views/catalog/{_document_default.rss.builder → _document.rss.builder} +2 -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 +5 -4
- data/app/views/catalog/_facet_layout.html.erb +6 -10
- data/app/views/catalog/_facet_limit.html.erb +3 -2
- data/app/views/catalog/_facet_pagination.html.erb +8 -8
- data/app/views/catalog/_facet_pivot.html.erb +2 -2
- data/app/views/catalog/_facets.html.erb +9 -12
- data/app/views/catalog/_field.json.jbuilder +10 -0
- data/app/views/catalog/{_group_default.html.erb → _group.html.erb} +1 -1
- data/app/views/catalog/_home_text.html.erb +32 -36
- data/app/views/catalog/_index.html.erb +10 -0
- data/app/views/catalog/{_index_header_default.html.erb → _index_header.html.erb} +3 -3
- 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/_results_pagination.html.erb +2 -2
- 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 +6 -2
- data/app/views/catalog/_show.html.erb +8 -0
- data/app/views/catalog/_show_main_content.html.erb +4 -4
- data/app/views/catalog/_show_more_like_this.html.erb +1 -1
- data/app/views/catalog/_show_sidebar.html.erb +3 -3
- data/app/views/catalog/_show_tools.html.erb +10 -12
- 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/_zero_results.html.erb +1 -1
- data/app/views/catalog/citation.js.erb +4 -2
- data/app/views/catalog/email.html.erb +5 -3
- data/app/views/catalog/email_success.html.erb +12 -8
- data/app/views/catalog/facet.html.erb +10 -8
- data/app/views/catalog/facet.json.jbuilder +2 -0
- data/app/views/catalog/index.atom.builder +13 -16
- data/app/views/catalog/index.html.erb +9 -11
- data/app/views/catalog/index.json.jbuilder +84 -3
- data/app/views/catalog/index.rss.builder +7 -5
- data/app/views/catalog/opensearch.xml.builder +12 -10
- data/app/views/catalog/show.html.erb +11 -6
- data/app/views/catalog/show.json.jbuilder +21 -0
- data/app/views/catalog/sms.html.erb +3 -1
- data/app/views/catalog/sms_success.html.erb +12 -8
- 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 +5 -5
- data/app/views/kaminari/blacklight/_page.html.erb +5 -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/base.html.erb +35 -0
- data/app/views/layouts/blacklight.html.erb +14 -41
- data/app/views/layouts/catalog_result.html.erb +11 -0
- data/app/views/search_history/index.html.erb +16 -21
- 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/i18n-tasks.yml +17 -0
- data/config/locales/blacklight.de.yml +71 -82
- data/config/locales/blacklight.en.yml +15 -27
- data/config/locales/blacklight.es.yml +14 -26
- data/config/locales/blacklight.fr.yml +16 -33
- data/config/locales/blacklight.hu.yml +212 -0
- data/config/locales/blacklight.it.yml +15 -26
- data/config/locales/blacklight.nl.yml +212 -0
- data/config/locales/blacklight.pt-BR.yml +24 -29
- data/config/locales/blacklight.sq.yml +4 -28
- data/config/locales/blacklight.zh.yml +3 -25
- data/config/routes.rb +2 -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/abstract_repository.rb +22 -10
- data/lib/blacklight/configuration/context.rb +12 -1
- data/lib/blacklight/configuration/facet_field.rb +16 -9
- data/lib/blacklight/configuration/field.rb +32 -3
- data/lib/blacklight/configuration/fields.rb +61 -58
- data/lib/blacklight/configuration/null_field.rb +2 -0
- 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/configuration.rb +101 -88
- data/lib/blacklight/engine.rb +11 -7
- data/lib/blacklight/exceptions.rb +4 -7
- data/lib/blacklight/{utils.rb → nested_open_struct_with_hash_access.rb} +9 -81
- data/lib/blacklight/open_struct_with_hash_access.rb +49 -0
- data/lib/blacklight/parameters.rb +1 -1
- data/lib/blacklight/routes/exportable.rb +1 -3
- data/lib/blacklight/routes/searchable.rb +3 -3
- data/lib/blacklight/runtime_registry.rb +2 -0
- data/lib/blacklight/search_builder.rb +28 -35
- data/lib/blacklight/search_state.rb +10 -8
- data/lib/blacklight/solr/repository.rb +40 -6
- data/lib/blacklight/solr/request.rb +1 -1
- 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 +4 -3
- data/lib/blacklight/solr/response.rb +29 -30
- data/lib/blacklight/solr/search_builder_behavior.rb +25 -29
- data/lib/blacklight/version.rb +1 -1
- data/lib/blacklight.rb +10 -8
- data/lib/generators/blacklight/assets_generator.rb +18 -12
- 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 -28
- data/lib/generators/blacklight/search_builder_generator.rb +1 -1
- data/lib/generators/blacklight/{solr5_generator.rb → solr_generator.rb} +12 -6
- data/lib/generators/blacklight/templates/.solr_wrapper.yml +5 -0
- data/lib/generators/blacklight/templates/alternate_controller.rb +4 -4
- data/lib/generators/blacklight/templates/blacklight.scss +0 -2
- data/lib/generators/blacklight/templates/catalog_controller.rb +59 -49
- data/lib/generators/blacklight/templates/config/blacklight.yml +1 -13
- data/lib/generators/blacklight/templates/solr/conf/schema.xml +388 -0
- data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +195 -0
- data/lib/generators/blacklight/test_support_generator.rb +10 -10
- data/lib/generators/blacklight/user_generator.rb +5 -6
- data/lib/railties/blacklight.rake +17 -21
- data/package-lock.json +2195 -0
- data/package.json +29 -0
- data/spec/controllers/alternate_controller_spec.rb +5 -4
- data/spec/controllers/application_controller_spec.rb +1 -5
- data/spec/controllers/blacklight/base_spec.rb +6 -3
- data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +11 -7
- data/spec/controllers/blacklight/facet_spec.rb +1 -2
- data/spec/controllers/blacklight/search_fields_spec.rb +25 -34
- data/spec/controllers/bookmarks_controller_spec.rb +46 -11
- data/spec/controllers/catalog_controller_spec.rb +334 -161
- data/spec/controllers/search_history_controller_spec.rb +6 -6
- data/spec/features/alternate_controller_spec.rb +4 -4
- data/spec/features/autocomplete_spec.rb +4 -2
- data/spec/features/bookmarks_spec.rb +10 -10
- data/spec/features/did_you_mean_spec.rb +7 -12
- data/spec/features/facets_spec.rb +29 -17
- data/spec/features/record_view_spec.rb +12 -18
- data/spec/features/search_context_spec.rb +6 -7
- data/spec/features/search_crawler_spec.rb +3 -5
- data/spec/features/search_filters_spec.rb +80 -80
- data/spec/features/search_formats_spec.rb +1 -1
- data/spec/features/search_history_spec.rb +6 -29
- data/spec/features/search_pagination_spec.rb +4 -2
- data/spec/features/search_results_spec.rb +14 -12
- data/spec/features/search_sort_spec.rb +2 -2
- data/spec/features/search_spec.rb +8 -9
- data/spec/features/sitelinks_search_box.rb +4 -4
- data/{solr → spec/fixtures}/sample_solr_documents.yml +688 -688
- data/spec/helpers/{configuration_helper_spec.rb → blacklight/configuration_helper_behavior_spec.rb} +97 -92
- data/spec/helpers/{facets_helper_spec.rb → blacklight/facets_helper_behavior_spec.rb} +72 -67
- data/spec/helpers/{hash_as_hidden_fields_spec.rb → blacklight/hash_as_hidden_fields_behavior_spec.rb} +2 -2
- data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +10 -0
- data/spec/helpers/{layout_helper_spec.rb → blacklight/layout_helper_behavior_spec.rb} +5 -5
- data/spec/helpers/{render_constraints_helper_spec.rb → blacklight/render_constraints_helper_behavior_spec.rb} +10 -6
- data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +92 -0
- data/spec/helpers/{search_history_constraints_helper_spec.rb → blacklight/search_history_constraints_helper_behavior_spec.rb} +29 -30
- data/spec/helpers/{suggest_helper_spec.rb → blacklight/suggest_helper_behavior_spec.rb} +9 -2
- data/spec/helpers/{url_helper_spec.rb → blacklight/url_helper_behavior_spec.rb} +56 -54
- data/spec/helpers/blacklight_helper_spec.rb +65 -150
- data/spec/helpers/catalog_helper_spec.rb +80 -96
- data/spec/i18n_spec.rb +18 -0
- data/spec/integration/generators/blacklight/{solr5_generator_spec.rb → solr_generator_spec.rb} +21 -13
- data/spec/lib/blacklight/configuration/facet_field_spec.rb +13 -0
- data/spec/lib/blacklight/configuration/field_spec.rb +15 -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 +148 -0
- data/spec/lib/blacklight/parameters_spec.rb +4 -2
- data/spec/lib/blacklight/search_state_spec.rb +53 -36
- data/spec/lib/blacklight_spec.rb +14 -15
- data/spec/lib/tasks/blacklight_task_spec.rb +4 -6
- data/spec/models/blacklight/configurable_spec.rb +24 -27
- data/spec/models/blacklight/configuration/context_spec.rb +9 -10
- data/spec/models/blacklight/configuration_spec.rb +248 -223
- data/spec/models/blacklight/document/active_model_shim_spec.rb +15 -6
- data/spec/models/blacklight/document/cache_key_spec.rb +9 -2
- data/spec/models/blacklight/document/dublin_core_spec.rb +17 -20
- data/spec/models/blacklight/document/email_spec.rb +10 -10
- data/spec/models/blacklight/document/sms_spec.rb +10 -10
- data/spec/models/blacklight/document_spec.rb +10 -22
- data/spec/models/blacklight/facet_paginator_spec.rb +40 -30
- data/spec/models/blacklight/icon_spec.rb +44 -0
- data/spec/models/blacklight/search_builder_spec.rb +41 -26
- data/spec/models/blacklight/solr/document_spec.rb +224 -216
- data/spec/models/blacklight/solr/facet_paginator_spec.rb +6 -4
- data/spec/models/blacklight/solr/repository_spec.rb +61 -46
- data/spec/models/blacklight/solr/request_spec.rb +17 -18
- data/spec/models/blacklight/solr/response/facets_spec.rb +58 -58
- data/spec/models/blacklight/solr/response/group_response_spec.rb +16 -22
- data/spec/models/blacklight/solr/response/group_spec.rb +18 -25
- data/spec/models/blacklight/solr/response_spec.rb +56 -55
- data/spec/models/blacklight/solr/search_builder_spec.rb +150 -164
- data/spec/models/blacklight/suggest/response_spec.rb +6 -4
- data/spec/models/blacklight/suggest_search_spec.rb +9 -16
- data/spec/models/blacklight/user_spec.rb +9 -11
- data/spec/models/bookmark_spec.rb +7 -6
- data/spec/models/record_mailer_spec.rb +23 -21
- data/spec/models/search_spec.rb +19 -18
- data/spec/models/solr_document_spec.rb +33 -5
- data/spec/presenters/blacklight/document_presenter_spec.rb +86 -0
- data/spec/presenters/blacklight/index_presenter_spec.rb +186 -0
- data/spec/presenters/blacklight/json_presenter_spec.rb +59 -0
- data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -0
- data/spec/presenters/blacklight/search_bar_presenter_spec.rb +79 -0
- data/spec/presenters/blacklight/show_presenter_spec.rb +333 -0
- data/spec/presenters/pipeline_spec.rb +18 -11
- data/spec/presenters/thumbnail_presenter_spec.rb +174 -0
- data/spec/routing/catalog_routing_spec.rb +13 -15
- data/spec/services/blacklight/search_service_spec.rb +488 -0
- data/spec/spec_helper.rb +20 -19
- data/spec/support/features/session_helpers.rb +4 -4
- data/spec/support/features.rb +1 -1
- data/spec/test_app_templates/Gemfile.extra +2 -4
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +12 -13
- data/spec/views/catalog/_constraints.html.erb_spec.rb +3 -6
- data/spec/views/catalog/_constraints_element.html.erb_spec.rb +17 -13
- data/spec/views/catalog/_document.html.erb_spec.rb +11 -11
- data/spec/views/catalog/_document_list.html.erb_spec.rb +2 -1
- data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +5 -5
- data/spec/views/catalog/_facet_layout.html.erb_spec.rb +6 -6
- data/spec/views/catalog/_facets.html.erb_spec.rb +10 -12
- data/spec/views/catalog/{_index_default.erb_spec.rb → _index.html.erb_spec.rb} +14 -15
- data/spec/views/catalog/{_index_header_default.html.erb_spec.rb → _index_header.html.erb_spec.rb} +6 -9
- data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +7 -30
- 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} +13 -14
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +6 -9
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +5 -5
- data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -2
- data/spec/views/catalog/_sort_widget.html.erb_spec.rb +3 -1
- data/spec/views/catalog/{_thumbnail_default.erb_spec.rb → _thumbnail.html.erb_spec.rb} +7 -9
- data/spec/views/catalog/_view_type_group.html.erb_spec.rb +12 -10
- data/spec/views/catalog/email_success.html.erb_spec.rb +8 -0
- data/spec/views/catalog/facet.html.erb_spec.rb +4 -3
- data/spec/views/catalog/facet.json.jbuilder_spec.rb +3 -2
- data/spec/views/catalog/index.atom.builder_spec.rb +11 -6
- data/spec/views/catalog/index.html.erb_spec.rb +6 -8
- data/spec/views/catalog/index.json.jbuilder_spec.rb +119 -26
- data/spec/views/catalog/opensearch.xml.builder_spec.rb +1 -1
- data/spec/views/catalog/show.html.erb_spec.rb +8 -8
- data/spec/views/catalog/show.json.jbuilder_spec.rb +40 -0
- data/spec/views/catalog/sms_success.html.erb_spec.rb +8 -0
- data/spec/views/{_user_util_links.html.erb_spec.rb → shared/_user_util_links.html.erb_spec.rb} +4 -7
- data/tasks/blacklight.rake +10 -8
- data/template.demo.rb +3 -11
- metadata +188 -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 -135
- 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 -155
- 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/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/generators/blacklight/solr4_generator.rb +0 -31
- data/lib/generators/blacklight/templates/config/jetty.yml +0 -13
- data/solr/conf/schema.xml +0 -629
- data/solr/conf/solrconfig.xml +0 -411
- data/spec/controllers/blacklight/search_helper_spec.rb +0 -470
- 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/presenters/index_presenter_spec.rb +0 -173
- data/spec/presenters/show_presenter_spec.rb +0 -313
- data/spec/support/backport_test.rb +0 -14
- /data/app/views/catalog/{_show_header_default.html.erb → _show_header.html.erb} +0 -0
- /data/app/views/{_flash_msg.html.erb → shared/_flash_msg.html.erb} +0 -0
- /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/{solr → lib/generators/blacklight/templates/solr}/conf/scripts.conf +0 -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
|
@@ -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,8 +40,9 @@ 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?
|
|
45
|
+
|
|
49
46
|
presenter(document).link_rel_alternates(options)
|
|
50
47
|
end
|
|
51
48
|
|
|
@@ -53,7 +50,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
53
50
|
# Render OpenSearch headers for this search
|
|
54
51
|
# @return [String]
|
|
55
52
|
def render_opensearch_response_metadata
|
|
56
|
-
render :
|
|
53
|
+
render partial: 'catalog/opensearch_response_metadata'
|
|
57
54
|
end
|
|
58
55
|
|
|
59
56
|
##
|
|
@@ -75,7 +72,11 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
75
72
|
# Render the search navbar
|
|
76
73
|
# @return [String]
|
|
77
74
|
def render_search_bar
|
|
78
|
-
render
|
|
75
|
+
search_bar_presenter.render
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def search_bar_presenter
|
|
79
|
+
@search_bar ||= search_bar_presenter_class.new(controller, blacklight_config)
|
|
79
80
|
end
|
|
80
81
|
|
|
81
82
|
##
|
|
@@ -85,6 +86,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
85
86
|
# @param [Blacklight::Configuration::Field] field_config
|
|
86
87
|
# @return [Boolean]
|
|
87
88
|
def should_render_index_field? document, field_config
|
|
89
|
+
Deprecation.warn self, "should_render_index_field? is deprecated and will be removed in Blacklight 8. Use IndexPresenter#render_field? instead."
|
|
88
90
|
should_render_field?(field_config, document) && document_has_value?(document, field_config)
|
|
89
91
|
end
|
|
90
92
|
|
|
@@ -95,6 +97,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
95
97
|
# @param [Blacklight::Configuration::Field] field_config
|
|
96
98
|
# @return [Boolean]
|
|
97
99
|
def should_render_show_field? document, field_config
|
|
100
|
+
Deprecation.warn self, "should_render_show_field? is deprecated and will be removed in Blacklight 8. Use ShowPresenter#render_field? instead."
|
|
98
101
|
should_render_field?(field_config, document) && document_has_value?(document, field_config)
|
|
99
102
|
end
|
|
100
103
|
|
|
@@ -105,6 +108,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
105
108
|
# @param [Blacklight::Configuration::Field] field_config
|
|
106
109
|
# @return [Boolean]
|
|
107
110
|
def document_has_value? document, field_config
|
|
111
|
+
Deprecation.warn self, "document_has_value? is deprecated and will be removed in Blacklight 8. Use DocumentPresenter#has_value? instead."
|
|
108
112
|
document.has?(field_config.field) ||
|
|
109
113
|
(document.has_highlight_field? field_config.field if field_config.highlight) ||
|
|
110
114
|
field_config.accessor
|
|
@@ -116,12 +120,18 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
116
120
|
# @param [Blacklight::Solr::Response] response
|
|
117
121
|
# @return [Boolean]
|
|
118
122
|
def should_show_spellcheck_suggestions? response
|
|
119
|
-
response
|
|
123
|
+
# The spelling response field may be missing from non solr repositories.
|
|
124
|
+
response.total <= spell_check_max &&
|
|
125
|
+
!response.spelling.nil? &&
|
|
126
|
+
response.spelling.words.any?
|
|
120
127
|
end
|
|
121
128
|
|
|
122
129
|
##
|
|
123
130
|
# Render the index field label for a document
|
|
124
131
|
#
|
|
132
|
+
# Translations for index field labels should go under blacklight.search.fields
|
|
133
|
+
# They are picked up from there by a value "%{label}" in blacklight.search.index.label
|
|
134
|
+
#
|
|
125
135
|
# @overload render_index_field_label(options)
|
|
126
136
|
# Use the default, document-agnostic configuration
|
|
127
137
|
# @param [Hash] opts
|
|
@@ -140,45 +150,6 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
140
150
|
html_escape t(:"blacklight.search.index.#{document_index_view_type}.label", default: :'blacklight.search.index.label', label: index_field_label(document, field))
|
|
141
151
|
end
|
|
142
152
|
|
|
143
|
-
##
|
|
144
|
-
# Render the index field label for a document
|
|
145
|
-
#
|
|
146
|
-
# @overload render_index_field_value(options)
|
|
147
|
-
# Use the default, document-agnostic configuration
|
|
148
|
-
# @param [Hash] opts
|
|
149
|
-
# @option opts [String] :field
|
|
150
|
-
# @option opts [String] :value
|
|
151
|
-
# @option opts [String] :document
|
|
152
|
-
# @overload render_index_field_value(document, options)
|
|
153
|
-
# Allow an extention point where information in the document
|
|
154
|
-
# may drive the value of the field
|
|
155
|
-
# @param [SolrDocument] doc
|
|
156
|
-
# @param [Hash] opts
|
|
157
|
-
# @option opts [String] :field
|
|
158
|
-
# @option opts [String] :value
|
|
159
|
-
# @overload render_index_field_value(document, field, options)
|
|
160
|
-
# Allow an extention point where information in the document
|
|
161
|
-
# may drive the value of the field
|
|
162
|
-
# @param [SolrDocument] doc
|
|
163
|
-
# @param [String] field
|
|
164
|
-
# @param [Hash] opts
|
|
165
|
-
# @option opts [String] :value
|
|
166
|
-
# @deprecated use IndexPresenter#field_value
|
|
167
|
-
def render_index_field_value *args
|
|
168
|
-
render_field_value(*args)
|
|
169
|
-
end
|
|
170
|
-
deprecation_deprecate render_index_field_value: 'replaced by IndexPresenter#field_value'
|
|
171
|
-
|
|
172
|
-
# @deprecated use IndexPresenter#field_value
|
|
173
|
-
def render_field_value(*args)
|
|
174
|
-
options = args.extract_options!
|
|
175
|
-
document = args.shift || options[:document]
|
|
176
|
-
|
|
177
|
-
field = args.shift || options[:field]
|
|
178
|
-
presenter(document).field_value field, options.except(:document, :field)
|
|
179
|
-
end
|
|
180
|
-
deprecation_deprecate render_field_value: 'replaced by IndexPresenter#field_value'
|
|
181
|
-
|
|
182
153
|
##
|
|
183
154
|
# Render the show field label for a document
|
|
184
155
|
#
|
|
@@ -201,42 +172,13 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
201
172
|
t(:'blacklight.search.show.label', label: document_show_field_label(document, field))
|
|
202
173
|
end
|
|
203
174
|
|
|
204
|
-
##
|
|
205
|
-
# Render the index field label for a document
|
|
206
|
-
#
|
|
207
|
-
# @overload render_document_show_field_value(options)
|
|
208
|
-
# Use the default, document-agnostic configuration
|
|
209
|
-
# @param [Hash] opts
|
|
210
|
-
# @option opts [String] :field
|
|
211
|
-
# @option opts [String] :value
|
|
212
|
-
# @option opts [String] :document
|
|
213
|
-
# @overload render_document_show_field_value(document, options)
|
|
214
|
-
# Allow an extention point where information in the document
|
|
215
|
-
# may drive the value of the field
|
|
216
|
-
# @param [SolrDocument] doc
|
|
217
|
-
# @param [Hash] opts
|
|
218
|
-
# @option opts [String] :field
|
|
219
|
-
# @option opts [String] :value
|
|
220
|
-
# @overload render_document_show_field_value(document, field, options)
|
|
221
|
-
# Allow an extention point where information in the document
|
|
222
|
-
# may drive the value of the field
|
|
223
|
-
# @param [SolrDocument] doc
|
|
224
|
-
# @param [String] field
|
|
225
|
-
# @param [Hash] opts
|
|
226
|
-
# @option opts [String] :value
|
|
227
|
-
# @deprecated use ShowPresenter#field_value
|
|
228
|
-
def render_document_show_field_value *args
|
|
229
|
-
render_field_value(*args)
|
|
230
|
-
end
|
|
231
|
-
deprecation_deprecate render_document_show_field_value: 'replaced by ShowPresenter#field_value'
|
|
232
|
-
|
|
233
175
|
##
|
|
234
176
|
# Get the value of the document's "title" field, or a placeholder
|
|
235
177
|
# value (if empty)
|
|
236
178
|
#
|
|
237
179
|
# @param [SolrDocument] document
|
|
238
180
|
# @return [String]
|
|
239
|
-
def document_heading document=nil
|
|
181
|
+
def document_heading document = nil
|
|
240
182
|
document ||= @document
|
|
241
183
|
presenter(document).heading
|
|
242
184
|
end
|
|
@@ -248,7 +190,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
248
190
|
# @see #document_heading
|
|
249
191
|
# @param [SolrDocument] document
|
|
250
192
|
# @return [String]
|
|
251
|
-
def document_show_html_title document=nil
|
|
193
|
+
def document_show_html_title document = nil
|
|
252
194
|
document ||= @document
|
|
253
195
|
|
|
254
196
|
presenter(document).html_title
|
|
@@ -272,33 +214,15 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
272
214
|
content_tag(tag, presenter(document).heading, itemprop: "name")
|
|
273
215
|
end
|
|
274
216
|
|
|
275
|
-
##
|
|
276
|
-
# Get the value for a document's field, and prepare to render it.
|
|
277
|
-
# - highlight_field
|
|
278
|
-
# - accessor
|
|
279
|
-
# - solr field
|
|
280
|
-
#
|
|
281
|
-
# Rendering:
|
|
282
|
-
# - helper_method
|
|
283
|
-
# - link_to_search
|
|
284
|
-
# @param [SolrDocument] document
|
|
285
|
-
# @param [String] _field name
|
|
286
|
-
# @param [Blacklight::Configuration::Field] field_config solr field configuration
|
|
287
|
-
# @param [Hash] options additional options to pass to the rendering helpers
|
|
288
|
-
def get_field_values document, _field, field_config, options = {}
|
|
289
|
-
presenter(document).field_values field_config, options
|
|
290
|
-
end
|
|
291
|
-
deprecation_deprecate :get_field_values
|
|
292
|
-
|
|
293
217
|
##
|
|
294
218
|
# Get the current "view type" (and ensure it is a valid type)
|
|
295
219
|
#
|
|
296
220
|
# @param [Hash] query_params the query parameters to check
|
|
297
221
|
# @return [Symbol]
|
|
298
|
-
def document_index_view_type query_params=params
|
|
222
|
+
def document_index_view_type query_params = params
|
|
299
223
|
view_param = query_params[:view]
|
|
300
224
|
view_param ||= session[:preferred_view]
|
|
301
|
-
if view_param
|
|
225
|
+
if view_param && document_index_views.key?(view_param.to_sym)
|
|
302
226
|
view_param.to_sym
|
|
303
227
|
else
|
|
304
228
|
default_document_index_view_type
|
|
@@ -314,7 +238,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
314
238
|
#
|
|
315
239
|
# @param [String] format suffix
|
|
316
240
|
# @yield
|
|
317
|
-
def with_format(format
|
|
241
|
+
def with_format(format)
|
|
318
242
|
old_formats = formats
|
|
319
243
|
self.formats = [format]
|
|
320
244
|
yield
|
|
@@ -338,9 +262,6 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
338
262
|
show_presenter(document)
|
|
339
263
|
when 'index'
|
|
340
264
|
index_presenter(document)
|
|
341
|
-
else
|
|
342
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, "Unable to determine presenter type for #{action_name} on #{controller_name}, falling back on deprecated Blacklight::DocumentPresenter")
|
|
343
|
-
presenter_class.new(document, self)
|
|
344
265
|
end
|
|
345
266
|
end
|
|
346
267
|
|
|
@@ -352,11 +273,6 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
352
273
|
index_presenter_class(document).new(document, self)
|
|
353
274
|
end
|
|
354
275
|
|
|
355
|
-
def presenter_class
|
|
356
|
-
blacklight_config.document_presenter_class
|
|
357
|
-
end
|
|
358
|
-
deprecation_deprecate presenter_class: "replaced by show_presenter_class and index_presenter_class"
|
|
359
|
-
|
|
360
276
|
##
|
|
361
277
|
# Override this method if you want to use a different presenter class
|
|
362
278
|
def show_presenter_class(_document)
|
|
@@ -367,6 +283,10 @@ module Blacklight::BlacklightHelperBehavior
|
|
|
367
283
|
blacklight_config.index.document_presenter_class
|
|
368
284
|
end
|
|
369
285
|
|
|
286
|
+
def search_bar_presenter_class
|
|
287
|
+
blacklight_config.index.search_bar_presenter_class
|
|
288
|
+
end
|
|
289
|
+
|
|
370
290
|
##
|
|
371
291
|
# Open Search discovery tag for HTML <head> links
|
|
372
292
|
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
|