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,7 +3,7 @@
|
|
|
3
3
|
# fields, works with hash nested with other hashes and arrays, standard rails
|
|
4
4
|
# serialization style. Oddly while Hash#to_query will do this for a URL
|
|
5
5
|
# query parameters, there seems to be no built in way to do it to create
|
|
6
|
-
# hidden form fields instead.
|
|
6
|
+
# hidden form fields instead.
|
|
7
7
|
#
|
|
8
8
|
# Code taken from http://marklunds.com/articles/one/314
|
|
9
9
|
#
|
|
@@ -15,22 +15,21 @@ module Blacklight::HashAsHiddenFieldsHelperBehavior
|
|
|
15
15
|
# representing a hash passed in using Rails-style request parameters
|
|
16
16
|
# for hashes nested with arrays and other hashes.
|
|
17
17
|
# @param [Hash] hash
|
|
18
|
-
# @return [String]
|
|
18
|
+
# @return [String]
|
|
19
19
|
def render_hash_as_hidden_fields(hash)
|
|
20
|
-
|
|
21
20
|
hidden_fields = []
|
|
22
21
|
flatten_hash(hash).each do |name, value|
|
|
23
22
|
value = Array.wrap(value)
|
|
24
23
|
value.each do |v|
|
|
25
|
-
hidden_fields << hidden_field_tag(name, v.to_s, :
|
|
24
|
+
hidden_fields << hidden_field_tag(name, v.to_s, id: nil)
|
|
26
25
|
end
|
|
27
26
|
end
|
|
28
|
-
|
|
27
|
+
|
|
29
28
|
safe_join(hidden_fields, "\n")
|
|
30
29
|
end
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
private
|
|
32
|
+
|
|
34
33
|
def flatten_hash(hash = params, ancestor_names = [])
|
|
35
34
|
flat_hash = {}
|
|
36
35
|
hash.each do |k, v|
|
|
@@ -44,17 +43,16 @@ module Blacklight::HashAsHiddenFieldsHelperBehavior
|
|
|
44
43
|
flat_hash[key] = v
|
|
45
44
|
end
|
|
46
45
|
end
|
|
47
|
-
|
|
46
|
+
|
|
48
47
|
flat_hash
|
|
49
48
|
end
|
|
50
|
-
|
|
49
|
+
|
|
51
50
|
def flat_hash_key(names)
|
|
52
51
|
names = Array.new(names)
|
|
53
|
-
name = names.shift.to_s.dup
|
|
52
|
+
name = names.shift.to_s.dup
|
|
54
53
|
names.each do |n|
|
|
55
54
|
name << "[#{n}]"
|
|
56
55
|
end
|
|
57
56
|
name
|
|
58
57
|
end
|
|
59
|
-
|
|
60
58
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
##
|
|
2
|
+
# Module to help generate icon helpers for SVG images
|
|
3
|
+
module Blacklight::IconHelperBehavior
|
|
4
|
+
##
|
|
5
|
+
# Returns the raw SVG (String) for a Blacklight Icon located in
|
|
6
|
+
# app/assets/images/blacklight/*.svg. Caches them so we don't have to look up
|
|
7
|
+
# the svg everytime.
|
|
8
|
+
# @param [String, Symbol] icon_name
|
|
9
|
+
# @return [String]
|
|
10
|
+
def blacklight_icon(icon_name, options = {})
|
|
11
|
+
Rails.cache.fetch([:blacklight_icons, icon_name, options]) do
|
|
12
|
+
icon = Blacklight::Icon.new(icon_name, options)
|
|
13
|
+
content_tag(:span, icon.svg.html_safe, icon.options)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -11,13 +11,6 @@ module Blacklight
|
|
|
11
11
|
"#{main_content_classes} show-document"
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
##
|
|
15
|
-
# Attributes to add to the <html> tag (e.g. lang and dir)
|
|
16
|
-
# @return [Hash]
|
|
17
|
-
def html_tag_attributes
|
|
18
|
-
{ lang: I18n.locale }
|
|
19
|
-
end
|
|
20
|
-
|
|
21
14
|
##
|
|
22
15
|
# Classes added to a document's sidebar div
|
|
23
16
|
# @return [String]
|
|
@@ -29,20 +22,20 @@ module Blacklight
|
|
|
29
22
|
# Classes used for sizing the main content of a Blacklight page
|
|
30
23
|
# @return [String]
|
|
31
24
|
def main_content_classes
|
|
32
|
-
'col-md-9
|
|
25
|
+
'col-md-9'
|
|
33
26
|
end
|
|
34
27
|
|
|
35
28
|
##
|
|
36
29
|
# Classes used for sizing the sidebar content of a Blacklight page
|
|
37
30
|
# @return [String]
|
|
38
31
|
def sidebar_classes
|
|
39
|
-
'col-md-3
|
|
32
|
+
'page-sidebar col-md-3'
|
|
40
33
|
end
|
|
41
34
|
|
|
42
35
|
##
|
|
43
36
|
# Class used for specifying main layout container classes. Can be
|
|
44
37
|
# overwritten to return 'container-fluid' for Bootstrap full-width layout
|
|
45
|
-
# @return [String]
|
|
38
|
+
# @return [String]
|
|
46
39
|
def container_classes
|
|
47
40
|
'container'
|
|
48
41
|
end
|
|
@@ -12,7 +12,7 @@ module Blacklight::RenderConstraintsHelperBehavior
|
|
|
12
12
|
# @param [Hash] localized_params query parameters
|
|
13
13
|
# @return [Boolean]
|
|
14
14
|
def query_has_constraints?(localized_params = params)
|
|
15
|
-
!(localized_params[:q].blank?
|
|
15
|
+
!(localized_params[:q].blank? && localized_params[:f].blank?)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
##
|
|
@@ -35,9 +35,9 @@ module Blacklight::RenderConstraintsHelperBehavior
|
|
|
35
35
|
return "".html_safe if localized_params[:q].blank?
|
|
36
36
|
|
|
37
37
|
render_constraint_element(constraint_query_label(localized_params),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
localized_params[:q],
|
|
39
|
+
classes: ["query"],
|
|
40
|
+
remove: remove_constraint_url(localized_params))
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
##
|
|
@@ -67,7 +67,7 @@ module Blacklight::RenderConstraintsHelperBehavior
|
|
|
67
67
|
return "".html_safe unless localized_params[:f]
|
|
68
68
|
path = controller.search_state_class.new(localized_params, blacklight_config, controller)
|
|
69
69
|
content = []
|
|
70
|
-
localized_params[:f].each_pair do |facet,values|
|
|
70
|
+
localized_params[:f].each_pair do |facet, values|
|
|
71
71
|
content << render_filter_element(facet, values, path)
|
|
72
72
|
end
|
|
73
73
|
|
|
@@ -107,6 +107,6 @@ module Blacklight::RenderConstraintsHelperBehavior
|
|
|
107
107
|
# @option options [Array<String>] :classes an array of classes to add to container span for constraint.
|
|
108
108
|
# @return [String]
|
|
109
109
|
def render_constraint_element(label, value, options = {})
|
|
110
|
-
render(:
|
|
110
|
+
render(partial: "catalog/constraints_element", locals: { label: label, value: value, options: options })
|
|
111
111
|
end
|
|
112
112
|
end
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Blacklight::RenderPartialsHelperBehavior
|
|
3
|
+
##
|
|
4
|
+
# Render the document index view
|
|
5
|
+
#
|
|
6
|
+
# @param [Array<SolrDocument>] documents list of documents to render
|
|
7
|
+
# @param [Hash] locals to pass to the render call
|
|
8
|
+
# @return [String]
|
|
9
|
+
def render_document_index documents = nil, locals = {}
|
|
10
|
+
documents ||= @response.documents
|
|
11
|
+
render_document_index_with_view(document_index_view_type, documents, locals)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
##
|
|
15
|
+
# Render the document index for a grouped response
|
|
16
|
+
def render_grouped_document_index
|
|
17
|
+
render 'catalog/group'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# Return the list of partials for a given solr document
|
|
22
|
+
# @param [SolrDocument] doc solr document to render partials for
|
|
23
|
+
# @param [Array<String>] partials list of partials to render
|
|
24
|
+
# @param [Hash] locals local variables to pass to the render call
|
|
25
|
+
# @return [String]
|
|
26
|
+
def render_document_partials(doc, partials = [], locals = {})
|
|
27
|
+
safe_join(partials.map do |action_name|
|
|
28
|
+
render_document_partial(doc, action_name, locals)
|
|
29
|
+
end, "\n")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# Given a doc and a base name for a partial, this method will attempt to render
|
|
34
|
+
# an appropriate partial based on the document format and view type.
|
|
35
|
+
#
|
|
36
|
+
# If a partial that matches the document format is not found,
|
|
37
|
+
# render a default partial for the base name.
|
|
38
|
+
#
|
|
39
|
+
# @see #document_partial_path_templates
|
|
40
|
+
#
|
|
41
|
+
# @param [SolrDocument] doc
|
|
42
|
+
# @param [String] base_name base name for the partial
|
|
43
|
+
# @param [Hash] locals local variables to pass through to the partials
|
|
44
|
+
def render_document_partial(doc, base_name, locals = {})
|
|
45
|
+
format = document_partial_name(doc, base_name)
|
|
46
|
+
|
|
47
|
+
view_type = document_index_view_type
|
|
48
|
+
template = cached_view ['show', view_type, base_name, format].join('_') do
|
|
49
|
+
find_document_show_template_with_view(view_type, base_name, format, locals)
|
|
50
|
+
end
|
|
51
|
+
if template
|
|
52
|
+
template.render(self, locals.merge(document: doc))
|
|
53
|
+
else
|
|
54
|
+
''
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
##
|
|
59
|
+
# Render the document index for the given view type with the
|
|
60
|
+
# list of documents.
|
|
61
|
+
#
|
|
62
|
+
# This method will interpolate the list of templates with
|
|
63
|
+
# the current view, and gracefully handles missing templates.
|
|
64
|
+
#
|
|
65
|
+
# @see #document_index_path_templates
|
|
66
|
+
#
|
|
67
|
+
# @param [String] view type
|
|
68
|
+
# @param [Array<SolrDocument>] documents list of documents to render
|
|
69
|
+
# @param [Hash] locals to pass to the render call
|
|
70
|
+
# @return [String]
|
|
71
|
+
def render_document_index_with_view view, documents, locals = {}
|
|
72
|
+
template = cached_view ['index', view].join('_') do
|
|
73
|
+
find_document_index_template_with_view(view, locals)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
if template
|
|
77
|
+
template.render(self, locals.merge(documents: documents))
|
|
78
|
+
else
|
|
79
|
+
''
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
##
|
|
84
|
+
# A list of document partial templates to attempt to render
|
|
85
|
+
#
|
|
86
|
+
# @see #render_document_index_with_view
|
|
87
|
+
# @return [Array<String>]
|
|
88
|
+
def document_index_path_templates
|
|
89
|
+
# first, the legacy template names for backwards compatbility
|
|
90
|
+
# followed by the new, inheritable style
|
|
91
|
+
# finally, a controller-specific path for non-catalog subclasses
|
|
92
|
+
@document_index_path_templates ||= [
|
|
93
|
+
"document_%{index_view_type}",
|
|
94
|
+
"catalog/document_%{index_view_type}",
|
|
95
|
+
"catalog/document_list"
|
|
96
|
+
]
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
##
|
|
100
|
+
# Return a normalized partial name for rendering a single document
|
|
101
|
+
#
|
|
102
|
+
# @param [SolrDocument] document
|
|
103
|
+
# @param [Symbol] base_name base name for the partial
|
|
104
|
+
# @return [String]
|
|
105
|
+
def document_partial_name(document, base_name = nil)
|
|
106
|
+
view_config = blacklight_config.view_config(:show)
|
|
107
|
+
|
|
108
|
+
display_type = if base_name && view_config.key?(:"#{base_name}_display_type_field")
|
|
109
|
+
document[view_config[:"#{base_name}_display_type_field"]]
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
display_type ||= document[view_config.display_type_field]
|
|
113
|
+
|
|
114
|
+
display_type ||= 'default'
|
|
115
|
+
|
|
116
|
+
type_field_to_partial_name(document, display_type)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
private
|
|
120
|
+
|
|
121
|
+
##
|
|
122
|
+
# Return a partial name for rendering a document
|
|
123
|
+
# this method can be overridden in order to transform the value
|
|
124
|
+
# (e.g. 'PdfBook' => 'pdf_book')
|
|
125
|
+
#
|
|
126
|
+
# @param [SolrDocument] document
|
|
127
|
+
# @param [String, Array] display_type a value suggestive of a partial
|
|
128
|
+
# @return [String] the name of the partial to render
|
|
129
|
+
# @example
|
|
130
|
+
# type_field_to_partial_name(['a book-article'])
|
|
131
|
+
# => 'a_book_article'
|
|
132
|
+
def type_field_to_partial_name(_document, display_type)
|
|
133
|
+
# using "_" as sep. to more closely follow the views file naming conventions
|
|
134
|
+
# parameterize uses "-" as the default sep. which throws errors
|
|
135
|
+
underscore = '_'.freeze
|
|
136
|
+
Array(display_type).join(' '.freeze).tr('-'.freeze, underscore).parameterize(separator: underscore)
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
##
|
|
140
|
+
# A list of document partial templates to try to render for a document
|
|
141
|
+
#
|
|
142
|
+
# The partial names will be interpolated with the following variables:
|
|
143
|
+
# - action_name: (e.g. index, show)
|
|
144
|
+
# - index_view_type: (the current view type, e.g. list, gallery)
|
|
145
|
+
# - format: the document's format (e.g. book)
|
|
146
|
+
#
|
|
147
|
+
# @see #render_document_partial
|
|
148
|
+
def document_partial_path_templates
|
|
149
|
+
# first, the legacy template names for backwards compatbility
|
|
150
|
+
# followed by the new, inheritable style
|
|
151
|
+
# finally, a controller-specific path for non-catalog subclasses
|
|
152
|
+
@partial_path_templates ||= [
|
|
153
|
+
"%{action_name}_%{index_view_type}_%{format}",
|
|
154
|
+
"%{action_name}_%{index_view_type}_default",
|
|
155
|
+
"%{action_name}_%{format}",
|
|
156
|
+
"%{action_name}_default",
|
|
157
|
+
"%{action_name}",
|
|
158
|
+
"catalog/%{action_name}_%{format}",
|
|
159
|
+
"catalog/_%{action_name}_partials/%{format}",
|
|
160
|
+
"catalog/_%{action_name}_partials/default"
|
|
161
|
+
]
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def find_document_show_template_with_view view_type, base_name, format, locals
|
|
165
|
+
document_partial_path_templates.each do |str|
|
|
166
|
+
partial = format(str, action_name: base_name, format: format, index_view_type: view_type)
|
|
167
|
+
logger.debug "Looking for document partial #{partial}"
|
|
168
|
+
template = lookup_context.find_all(partial, lookup_context.prefixes + [""], true, locals.keys + [:document], {}).first
|
|
169
|
+
return template if template
|
|
170
|
+
end
|
|
171
|
+
nil
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def find_document_index_template_with_view view_type, locals
|
|
175
|
+
document_index_path_templates.each do |str|
|
|
176
|
+
partial = format(str, index_view_type: view_type)
|
|
177
|
+
logger.debug "Looking for document index partial #{partial}"
|
|
178
|
+
template = lookup_context.find_all(partial, lookup_context.prefixes + [""], true, locals.keys + [:documents], {}).first
|
|
179
|
+
return template if template
|
|
180
|
+
end
|
|
181
|
+
nil
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
##
|
|
185
|
+
# @param key fetches or writes data to a cache, using the given key.
|
|
186
|
+
# @yield the block to evaluate (and cache) if there is a cache miss
|
|
187
|
+
def cached_view key
|
|
188
|
+
@view_cache ||= {}
|
|
189
|
+
if @view_cache.key?(key)
|
|
190
|
+
@view_cache[key]
|
|
191
|
+
else
|
|
192
|
+
@view_cache[key] = yield
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
end
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
module Blacklight::SearchHistoryConstraintsHelperBehavior
|
|
9
9
|
# Simpler textual version of constraints, used on Search History page.
|
|
10
10
|
# Theoretically can may be DRY'd up with results page render_constraints,
|
|
11
|
-
# maybe even using the very same HTML with different CSS?
|
|
12
|
-
# But too tricky for now, too many changes to existing CSS. TODO.
|
|
11
|
+
# maybe even using the very same HTML with different CSS?
|
|
12
|
+
# But too tricky for now, too many changes to existing CSS. TODO.
|
|
13
13
|
def render_search_to_s(params)
|
|
14
14
|
render_search_to_s_q(params) +
|
|
15
15
|
render_search_to_s_filters(params)
|
|
@@ -22,7 +22,7 @@ module Blacklight::SearchHistoryConstraintsHelperBehavior
|
|
|
22
22
|
|
|
23
23
|
label = label_for_search_field(params[:search_field]) unless default_search_field && params[:search_field] == default_search_field[:key]
|
|
24
24
|
|
|
25
|
-
render_search_to_s_element(label
|
|
25
|
+
render_search_to_s_element(label, render_filter_value(params['q']))
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
##
|
|
@@ -32,24 +32,29 @@ module Blacklight::SearchHistoryConstraintsHelperBehavior
|
|
|
32
32
|
|
|
33
33
|
safe_join(params[:f].collect do |facet_field, value_list|
|
|
34
34
|
render_search_to_s_element(facet_field_label(facet_field),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
safe_join(value_list.collect do |value|
|
|
36
|
+
render_filter_value(value, facet_field)
|
|
37
|
+
end,
|
|
38
|
+
content_tag(:span, " #{t('blacklight.and')} ", class: 'filter-separator')))
|
|
38
39
|
end, " \n ")
|
|
39
40
|
end
|
|
40
41
|
|
|
41
42
|
# value can be Array, in which case elements are joined with
|
|
42
43
|
# 'and'. Pass in option :escape_value => false to pass in pre-rendered
|
|
43
|
-
# html for value. key with escape_key if needed.
|
|
44
|
-
def render_search_to_s_element(key, value,
|
|
45
|
-
content_tag(:span,
|
|
44
|
+
# html for value. key with escape_key if needed.
|
|
45
|
+
def render_search_to_s_element(key, value, _options = {})
|
|
46
|
+
content_tag(:span,
|
|
47
|
+
render_filter_name(key) + content_tag(:span, value, class: 'filter-values'),
|
|
48
|
+
class: 'constraint')
|
|
46
49
|
end
|
|
47
50
|
|
|
48
51
|
##
|
|
49
52
|
# Render the name of the facet
|
|
50
53
|
def render_filter_name name
|
|
51
54
|
return "".html_safe if name.blank?
|
|
52
|
-
content_tag(:span,
|
|
55
|
+
content_tag(:span,
|
|
56
|
+
t('blacklight.search.filters.label', label: name),
|
|
57
|
+
class: 'filter-name')
|
|
53
58
|
end
|
|
54
59
|
|
|
55
60
|
##
|
|
@@ -57,6 +62,8 @@ module Blacklight::SearchHistoryConstraintsHelperBehavior
|
|
|
57
62
|
def render_filter_value value, key = nil
|
|
58
63
|
display_value = value
|
|
59
64
|
display_value = facet_display_value(key, value) if key
|
|
60
|
-
content_tag(:span,
|
|
65
|
+
content_tag(:span,
|
|
66
|
+
h(display_value),
|
|
67
|
+
class: 'filter-value')
|
|
61
68
|
end
|
|
62
69
|
end
|
|
@@ -2,12 +2,6 @@
|
|
|
2
2
|
##
|
|
3
3
|
# URL helper methods
|
|
4
4
|
module Blacklight::UrlHelperBehavior
|
|
5
|
-
include Blacklight::DeprecatedUrlHelperBehavior
|
|
6
|
-
|
|
7
|
-
##
|
|
8
|
-
# Extension point for downstream applications
|
|
9
|
-
# to provide more interesting routing to
|
|
10
|
-
# documents
|
|
11
5
|
def url_for_document(doc, options = {})
|
|
12
6
|
search_state.url_for_document(doc, options)
|
|
13
7
|
end
|
|
@@ -17,7 +11,7 @@ module Blacklight::UrlHelperBehavior
|
|
|
17
11
|
# catalog_path accepts a hash. The solr query params are stored in the session,
|
|
18
12
|
# so we only need the +counter+ param here. We also need to know if we are viewing to document as part of search results.
|
|
19
13
|
# TODO: move this to the IndexPresenter
|
|
20
|
-
def link_to_document(doc, field_or_opts = nil, opts={:
|
|
14
|
+
def link_to_document(doc, field_or_opts = nil, opts = { counter: nil })
|
|
21
15
|
if field_or_opts.is_a? Hash
|
|
22
16
|
opts = field_or_opts
|
|
23
17
|
else
|
|
@@ -32,23 +26,23 @@ module Blacklight::UrlHelperBehavior
|
|
|
32
26
|
def document_link_params(doc, opts)
|
|
33
27
|
session_tracking_params(doc, opts[:counter]).deep_merge(opts.except(:label, :counter))
|
|
34
28
|
end
|
|
35
|
-
|
|
29
|
+
private :document_link_params
|
|
36
30
|
|
|
37
31
|
##
|
|
38
32
|
# Link to the previous document in the current search context
|
|
39
33
|
def link_to_previous_document(previous_document)
|
|
40
|
-
link_opts = session_tracking_params(previous_document, search_session['counter'].to_i - 1).merge(:
|
|
34
|
+
link_opts = session_tracking_params(previous_document, search_session['counter'].to_i - 1).merge(class: "previous", rel: 'prev')
|
|
41
35
|
link_to_unless previous_document.nil?, raw(t('views.pagination.previous')), url_for_document(previous_document), link_opts do
|
|
42
|
-
content_tag :span, raw(t('views.pagination.previous')), :
|
|
36
|
+
content_tag :span, raw(t('views.pagination.previous')), class: 'previous'
|
|
43
37
|
end
|
|
44
38
|
end
|
|
45
39
|
|
|
46
40
|
##
|
|
47
41
|
# Link to the next document in the current search context
|
|
48
42
|
def link_to_next_document(next_document)
|
|
49
|
-
link_opts = session_tracking_params(next_document, search_session['counter'].to_i + 1).merge(:
|
|
43
|
+
link_opts = session_tracking_params(next_document, search_session['counter'].to_i + 1).merge(class: "next", rel: 'next')
|
|
50
44
|
link_to_unless next_document.nil?, raw(t('views.pagination.next')), url_for_document(next_document), link_opts do
|
|
51
|
-
content_tag :span, raw(t('views.pagination.next')), :
|
|
45
|
+
content_tag :span, raw(t('views.pagination.next')), class: 'next'
|
|
52
46
|
end
|
|
53
47
|
end
|
|
54
48
|
|
|
@@ -66,9 +60,9 @@ module Blacklight::UrlHelperBehavior
|
|
|
66
60
|
return {}
|
|
67
61
|
end
|
|
68
62
|
|
|
69
|
-
{ data: {:'context-href' => path } }
|
|
63
|
+
{ data: { :'context-href' => path } }
|
|
70
64
|
end
|
|
71
|
-
|
|
65
|
+
private :session_tracking_params
|
|
72
66
|
|
|
73
67
|
##
|
|
74
68
|
# Get the URL for tracking search sessions across pages using polymorphic routing
|
|
@@ -101,7 +95,7 @@ module Blacklight::UrlHelperBehavior
|
|
|
101
95
|
# Get the path to the search action with any parameters (e.g. view type)
|
|
102
96
|
# that should be persisted across search sessions.
|
|
103
97
|
def start_over_path query_params = params
|
|
104
|
-
h = {
|
|
98
|
+
h = {}
|
|
105
99
|
current_index_view_type = document_index_view_type(query_params)
|
|
106
100
|
h[:view] = current_index_view_type unless current_index_view_type == default_document_index_view_type
|
|
107
101
|
|
|
@@ -112,23 +106,23 @@ module Blacklight::UrlHelperBehavior
|
|
|
112
106
|
# @example
|
|
113
107
|
# link_back_to_catalog(label: 'Back to Search')
|
|
114
108
|
# link_back_to_catalog(label: 'Back to Search', route_set: my_engine)
|
|
115
|
-
def link_back_to_catalog(opts={:
|
|
109
|
+
def link_back_to_catalog(opts = { label: nil })
|
|
116
110
|
scope = opts.delete(:route_set) || self
|
|
117
111
|
query_params = search_state.reset(current_search_session.try(:query_params)).to_hash
|
|
118
112
|
|
|
119
113
|
if search_session['counter']
|
|
120
|
-
per_page = (search_session['per_page'] || default_per_page).to_i
|
|
114
|
+
per_page = (search_session['per_page'] || blacklight_config.default_per_page).to_i
|
|
121
115
|
counter = search_session['counter'].to_i
|
|
122
116
|
|
|
123
|
-
query_params[:per_page] = per_page unless search_session['per_page'].to_i == default_per_page
|
|
124
|
-
query_params[:page] = ((counter - 1)/ per_page) + 1
|
|
117
|
+
query_params[:per_page] = per_page unless search_session['per_page'].to_i == blacklight_config.default_per_page
|
|
118
|
+
query_params[:page] = ((counter - 1) / per_page) + 1
|
|
125
119
|
end
|
|
126
120
|
|
|
127
121
|
link_url = if query_params.empty?
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
122
|
+
search_action_path(only_path: true)
|
|
123
|
+
else
|
|
124
|
+
scope.url_for(query_params)
|
|
125
|
+
end
|
|
132
126
|
label = opts.delete(:label)
|
|
133
127
|
|
|
134
128
|
if link_url =~ /bookmarks/
|
|
@@ -153,11 +147,11 @@ module Blacklight::UrlHelperBehavior
|
|
|
153
147
|
search_state.add_facet_params_and_redirect(group.field, group.key)
|
|
154
148
|
end
|
|
155
149
|
|
|
156
|
-
# A URL to refworks export, with an embedded callback URL to this app.
|
|
157
|
-
# the callback URL is to bookmarks#export, which delivers a list of
|
|
150
|
+
# A URL to refworks export, with an embedded callback URL to this app.
|
|
151
|
+
# the callback URL is to bookmarks#export, which delivers a list of
|
|
158
152
|
# user's bookmarks in 'refworks marc txt' format -- we tell refworks
|
|
159
|
-
# to expect that format.
|
|
153
|
+
# to expect that format.
|
|
160
154
|
def bookmarks_export_url(format, params = {})
|
|
161
|
-
bookmarks_url(params.merge(format: format, encrypted_user_id: encrypt_user_id(current_or_guest_user.id)
|
|
155
|
+
bookmarks_url(params.merge(format: format, encrypted_user_id: encrypt_user_id(current_or_guest_user.id)))
|
|
162
156
|
end
|
|
163
157
|
end
|