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
|
@@ -18,12 +18,12 @@ module Blacklight::Solr
|
|
|
18
18
|
def default_solr_parameters(solr_parameters)
|
|
19
19
|
blacklight_config.default_solr_params.each do |key, value|
|
|
20
20
|
solr_parameters[key] = if value.respond_to? :deep_dup
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
value.deep_dup
|
|
22
|
+
elsif value.respond_to?(:dup) && value.duplicable?
|
|
23
|
+
value.dup
|
|
24
|
+
else
|
|
25
|
+
value
|
|
26
|
+
end
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
|
|
@@ -44,7 +44,7 @@ module Blacklight::Solr
|
|
|
44
44
|
|
|
45
45
|
if search_field
|
|
46
46
|
solr_parameters[:qt] = search_field.qt
|
|
47
|
-
solr_parameters.merge!(
|
|
47
|
+
solr_parameters.merge!(search_field.solr_parameters) if search_field.solr_parameters
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
##
|
|
@@ -54,7 +54,7 @@ module Blacklight::Solr
|
|
|
54
54
|
##
|
|
55
55
|
if search_field && search_field.solr_local_parameters.present?
|
|
56
56
|
local_params = search_field.solr_local_parameters.map do |key, val|
|
|
57
|
-
key.to_s + "=" + solr_param_quote(val, :
|
|
57
|
+
key.to_s + "=" + solr_param_quote(val, quote: "'")
|
|
58
58
|
end.join(" ")
|
|
59
59
|
solr_parameters[:q] = "{!#{local_params}}#{blacklight_params[:q]}"
|
|
60
60
|
|
|
@@ -66,13 +66,13 @@ module Blacklight::Solr
|
|
|
66
66
|
elsif blacklight_params[:q].is_a? Hash
|
|
67
67
|
q = blacklight_params[:q]
|
|
68
68
|
solr_parameters[:q] = if q.values.any?(&:blank?)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
# if any field parameters are empty, exclude _all_ results
|
|
70
|
+
"{!lucene}NOT *:*"
|
|
71
|
+
else
|
|
72
|
+
"{!lucene}" + q.map do |field, values|
|
|
73
|
+
"#{field}:(#{Array(values).map { |x| solr_param_quote(x) }.join(' OR ')})"
|
|
74
|
+
end.join(" AND ")
|
|
75
|
+
end
|
|
76
76
|
|
|
77
77
|
solr_parameters[:defType] = 'lucene'
|
|
78
78
|
solr_parameters[:spellcheck] = 'false'
|
|
@@ -113,7 +113,7 @@ module Blacklight::Solr
|
|
|
113
113
|
if facet.pivot
|
|
114
114
|
solr_parameters.append_facet_pivot with_ex_local_param(facet.ex, facet.pivot.join(","))
|
|
115
115
|
elsif facet.query
|
|
116
|
-
solr_parameters.append_facet_query facet.query.map { |
|
|
116
|
+
solr_parameters.append_facet_query facet.query.values.map { |x| with_ex_local_param(facet.ex, x[:fq]) }
|
|
117
117
|
else
|
|
118
118
|
solr_parameters.append_facet_fields with_ex_local_param(facet.ex, facet.field)
|
|
119
119
|
end
|
|
@@ -134,13 +134,13 @@ module Blacklight::Solr
|
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
def add_solr_fields_to_query solr_parameters
|
|
137
|
-
blacklight_config.show_fields.select(&method(:should_add_field_to_request?)).
|
|
137
|
+
blacklight_config.show_fields.select(&method(:should_add_field_to_request?)).each_value do |field|
|
|
138
138
|
field.solr_params.each do |k, v|
|
|
139
139
|
solr_parameters[:"f.#{field.field}.#{k}"] = v
|
|
140
140
|
end if field.solr_params
|
|
141
141
|
end
|
|
142
142
|
|
|
143
|
-
blacklight_config.index_fields.select(&method(:should_add_field_to_request?)).
|
|
143
|
+
blacklight_config.index_fields.select(&method(:should_add_field_to_request?)).each_value do |field|
|
|
144
144
|
if field.highlight
|
|
145
145
|
solr_parameters[:hl] = true
|
|
146
146
|
solr_parameters.append_highlight_field field.field
|
|
@@ -171,7 +171,7 @@ module Blacklight::Solr
|
|
|
171
171
|
|
|
172
172
|
# Remove the group parameter if we've faceted on the group field (e.g. for the full results for a group)
|
|
173
173
|
def add_group_config_to_solr solr_parameters
|
|
174
|
-
if blacklight_params[:f]
|
|
174
|
+
if blacklight_params[:f] && blacklight_params[:f][grouped_key_for_results]
|
|
175
175
|
solr_parameters[:group] = false
|
|
176
176
|
end
|
|
177
177
|
end
|
|
@@ -185,11 +185,7 @@ module Blacklight::Solr
|
|
|
185
185
|
facet_ex = facet_config.respond_to?(:ex) ? facet_config.ex : nil
|
|
186
186
|
solr_params[:"facet.field"] = with_ex_local_param(facet_ex, facet_config.field)
|
|
187
187
|
|
|
188
|
-
limit = if
|
|
189
|
-
Deprecation.warn(self, "The use of facet_list_limit is deprecated and will be removed in 7.0. " \
|
|
190
|
-
"Consider using the 'more_limit' option in the field configuration or 'default_more_limit' instead.")
|
|
191
|
-
scope.facet_list_limit.to_s.to_i
|
|
192
|
-
elsif solr_params["facet.limit"]
|
|
188
|
+
limit = if solr_params["facet.limit"]
|
|
193
189
|
solr_params["facet.limit"].to_i
|
|
194
190
|
else
|
|
195
191
|
facet_config.fetch(:more_limit, blacklight_config.default_more_limit)
|
|
@@ -274,15 +270,15 @@ module Blacklight::Solr
|
|
|
274
270
|
def facet_value_to_fq_string(facet_field, value)
|
|
275
271
|
facet_config = blacklight_config.facet_fields[facet_field]
|
|
276
272
|
|
|
277
|
-
solr_field = facet_config.field if facet_config
|
|
273
|
+
solr_field = facet_config.field if facet_config && !facet_config.query
|
|
278
274
|
solr_field ||= facet_field
|
|
279
275
|
|
|
280
276
|
local_params = []
|
|
281
|
-
local_params << "tag=#{facet_config.tag}" if facet_config
|
|
277
|
+
local_params << "tag=#{facet_config.tag}" if facet_config && facet_config.tag
|
|
282
278
|
|
|
283
279
|
prefix = "{!#{local_params.join(' ')}}" unless local_params.empty?
|
|
284
280
|
|
|
285
|
-
if facet_config
|
|
281
|
+
if facet_config && facet_config.query
|
|
286
282
|
if facet_config.query[value]
|
|
287
283
|
facet_config.query[value][:fq]
|
|
288
284
|
else
|
|
@@ -297,7 +293,7 @@ module Blacklight::Solr
|
|
|
297
293
|
end
|
|
298
294
|
|
|
299
295
|
def convert_to_term_value(value)
|
|
300
|
-
if value.is_a?(DateTime)
|
|
296
|
+
if value.is_a?(DateTime) || value.is_a?(Time)
|
|
301
297
|
value.utc.strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
302
298
|
elsif value.is_a?(Date)
|
|
303
299
|
value.to_time(:local).strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
@@ -313,7 +309,7 @@ module Blacklight::Solr
|
|
|
313
309
|
end
|
|
314
310
|
|
|
315
311
|
def facet_fields_to_include_in_request
|
|
316
|
-
blacklight_config.facet_fields.select do |
|
|
312
|
+
blacklight_config.facet_fields.select do |_field_name, facet|
|
|
317
313
|
facet.include_in_request || (facet.include_in_request.nil? && blacklight_config.add_facet_fields_to_solr_request)
|
|
318
314
|
end
|
|
319
315
|
end
|
data/lib/blacklight/version.rb
CHANGED
data/lib/blacklight.rb
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
require 'kaminari'
|
|
3
3
|
require 'deprecation'
|
|
4
|
-
require 'blacklight/
|
|
5
|
-
require '
|
|
4
|
+
require 'blacklight/open_struct_with_hash_access'
|
|
5
|
+
require 'blacklight/nested_open_struct_with_hash_access'
|
|
6
|
+
require 'jbuilder'
|
|
6
7
|
|
|
7
8
|
module Blacklight
|
|
8
9
|
autoload :AbstractRepository, 'blacklight/abstract_repository'
|
|
@@ -46,6 +47,7 @@ module Blacklight
|
|
|
46
47
|
connection_config[:adapter].constantize
|
|
47
48
|
else
|
|
48
49
|
raise "The value for :adapter was not found in the blacklight.yml config" unless connection_config.key? :adapter
|
|
50
|
+
|
|
49
51
|
Blacklight.const_get("#{connection_config.fetch(:adapter)}/Repository".classify)
|
|
50
52
|
end
|
|
51
53
|
end
|
|
@@ -59,6 +61,7 @@ module Blacklight
|
|
|
59
61
|
def self.connection_config
|
|
60
62
|
Blacklight::RuntimeRegistry.connection_config ||= begin
|
|
61
63
|
raise "The #{::Rails.env} environment settings were not found in the blacklight.yml config" unless blacklight_yml[::Rails.env]
|
|
64
|
+
|
|
62
65
|
blacklight_yml[::Rails.env].symbolize_keys
|
|
63
66
|
end
|
|
64
67
|
end
|
|
@@ -83,7 +86,7 @@ module Blacklight
|
|
|
83
86
|
end
|
|
84
87
|
|
|
85
88
|
begin
|
|
86
|
-
@blacklight_yml = YAML.
|
|
89
|
+
@blacklight_yml = YAML.safe_load(blacklight_erb)
|
|
87
90
|
rescue => e
|
|
88
91
|
raise("#{blacklight_config_file} was found, but could not be parsed.\n#{e.inspect}")
|
|
89
92
|
end
|
|
@@ -97,7 +100,7 @@ module Blacklight
|
|
|
97
100
|
|
|
98
101
|
def self.logger
|
|
99
102
|
@logger ||= begin
|
|
100
|
-
::Rails.logger if defined? Rails
|
|
103
|
+
::Rails.logger if defined? Rails && Rails.respond_to?(:logger)
|
|
101
104
|
end
|
|
102
105
|
end
|
|
103
106
|
|
|
@@ -105,17 +108,16 @@ module Blacklight
|
|
|
105
108
|
@logger = logger
|
|
106
109
|
end
|
|
107
110
|
|
|
108
|
-
#############
|
|
111
|
+
#############
|
|
109
112
|
# Methods for figuring out path to BL plugin, and then locate various files
|
|
110
113
|
# either in the app itself or defaults in the plugin -- whether you are running
|
|
111
114
|
# from the plugin itself or from an actual app using te plugin.
|
|
112
115
|
# In a seperate module so it can be used by both Blacklight class, and
|
|
113
|
-
# by rake tasks without loading the whole Rails environment.
|
|
116
|
+
# by rake tasks without loading the whole Rails environment.
|
|
114
117
|
#############
|
|
115
|
-
|
|
118
|
+
|
|
116
119
|
# returns the full path the the blacklight plugin installation
|
|
117
120
|
def self.root
|
|
118
121
|
@root ||= File.expand_path(File.dirname(File.dirname(__FILE__)))
|
|
119
122
|
end
|
|
120
|
-
|
|
121
123
|
end
|
|
@@ -2,40 +2,46 @@
|
|
|
2
2
|
module Blacklight
|
|
3
3
|
class Assets < Rails::Generators::Base
|
|
4
4
|
source_root File.expand_path('../templates', __FILE__)
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
# This could be skipped if you want to use webpacker
|
|
7
|
+
def add_javascript_dependencies
|
|
8
|
+
gem 'bootstrap', '~> 4.0'
|
|
9
|
+
gem 'popper_js'
|
|
10
|
+
gem 'twitter-typeahead-rails', '0.11.1.pre.corejavascript'
|
|
11
|
+
end
|
|
12
|
+
|
|
6
13
|
def assets
|
|
7
14
|
copy_file "blacklight.scss", "app/assets/stylesheets/blacklight.scss"
|
|
8
15
|
|
|
16
|
+
# Ensure this method is idempotent
|
|
9
17
|
return if has_blacklight_assets?
|
|
10
18
|
|
|
11
19
|
contents = "\n//\n// Required by Blacklight\n"
|
|
12
|
-
contents += "//= require jquery\n"
|
|
20
|
+
contents += "//= require jquery\n"
|
|
21
|
+
contents += "//= require popper\n"
|
|
22
|
+
contents += "// Twitter Typeahead for autocomplete\n"
|
|
23
|
+
contents += "//= require twitter/typeahead\n"
|
|
24
|
+
contents += "//= require bootstrap\n"
|
|
13
25
|
contents += "//= require blacklight/blacklight\n"
|
|
14
26
|
|
|
15
27
|
marker = if turbolinks?
|
|
16
28
|
'//= require turbolinks'
|
|
17
|
-
elsif rails_5_1?
|
|
18
|
-
'//= require rails-ujs'
|
|
19
29
|
else
|
|
20
|
-
'//= require
|
|
30
|
+
'//= require rails-ujs'
|
|
21
31
|
end
|
|
22
32
|
|
|
23
|
-
insert_into_file "app/assets/javascripts/application.js", :
|
|
33
|
+
insert_into_file "app/assets/javascripts/application.js", after: marker do
|
|
24
34
|
contents
|
|
25
35
|
end
|
|
26
36
|
end
|
|
27
37
|
|
|
28
|
-
# This is not a default in Rails 5.1
|
|
38
|
+
# This is not a default in Rails 5.1+
|
|
29
39
|
def add_jquery
|
|
30
|
-
gem 'jquery-rails'
|
|
40
|
+
gem 'jquery-rails'
|
|
31
41
|
end
|
|
32
42
|
|
|
33
43
|
private
|
|
34
44
|
|
|
35
|
-
def rails_5_1?
|
|
36
|
-
Rails.version =~ /5\.1/
|
|
37
|
-
end
|
|
38
|
-
|
|
39
45
|
def turbolinks?
|
|
40
46
|
@turbolinks ||= IO.read("app/assets/javascripts/application.js").include?('turbolinks')
|
|
41
47
|
end
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
module Blacklight
|
|
3
3
|
class ControllerGenerator < Rails::Generators::Base
|
|
4
|
-
|
|
5
4
|
source_root File.expand_path('../templates', __FILE__)
|
|
6
|
-
|
|
7
|
-
argument
|
|
5
|
+
|
|
6
|
+
argument :controller_name, type: :string, default: "catalog"
|
|
8
7
|
|
|
9
8
|
desc <<-EOS
|
|
10
9
|
This generator makes the following changes to your application:
|
|
@@ -18,10 +17,10 @@ module Blacklight
|
|
|
18
17
|
inject_into_class "app/controllers/application_controller.rb", "ApplicationController" do
|
|
19
18
|
" # Adds a few additional behaviors into the application controller\n" \
|
|
20
19
|
" include Blacklight::Controller\n" \
|
|
21
|
-
" layout
|
|
20
|
+
" layout :determine_layout if respond_to? :layout\n\n"
|
|
22
21
|
end
|
|
23
22
|
end
|
|
24
|
-
|
|
23
|
+
|
|
25
24
|
# Generate blacklight catalog controller
|
|
26
25
|
def create_blacklight_catalog
|
|
27
26
|
template "catalog_controller.rb", "app/controllers/#{controller_name}_controller.rb"
|
|
@@ -7,7 +7,7 @@ module Blacklight
|
|
|
7
7
|
|
|
8
8
|
source_root File.expand_path('../templates', __FILE__)
|
|
9
9
|
|
|
10
|
-
argument
|
|
10
|
+
argument :model_name, type: :string, default: "solr_document"
|
|
11
11
|
|
|
12
12
|
desc <<-EOS
|
|
13
13
|
This generator makes the following changes to your application:
|
|
@@ -3,16 +3,15 @@ module Blacklight
|
|
|
3
3
|
class Install < Rails::Generators::Base
|
|
4
4
|
source_root File.expand_path('../templates', __FILE__)
|
|
5
5
|
|
|
6
|
-
argument :model_name
|
|
7
|
-
argument :controller_name, type: :string
|
|
8
|
-
argument :document_name, type: :string
|
|
9
|
-
argument :search_builder_name, type: :string
|
|
10
|
-
argument :solr_version, type: :string
|
|
11
|
-
|
|
12
|
-
class_option :devise
|
|
13
|
-
class_option :
|
|
14
|
-
class_option :
|
|
15
|
-
class_option :'skip-assets', type: :boolean, default: false, desc: "Skip generating javascript and css assets into the application"
|
|
6
|
+
argument :model_name, type: :string, default: "user"
|
|
7
|
+
argument :controller_name, type: :string, default: "catalog"
|
|
8
|
+
argument :document_name, type: :string, default: "solr_document"
|
|
9
|
+
argument :search_builder_name, type: :string, default: "search_builder"
|
|
10
|
+
argument :solr_version, type: :string, default: "latest"
|
|
11
|
+
|
|
12
|
+
class_option :devise, type: :boolean, default: false, aliases: "-d", desc: "Use Devise as authentication logic."
|
|
13
|
+
class_option :marc, type: :boolean, default: false, aliases: "-m", desc: "Generate MARC-based demo."
|
|
14
|
+
class_option :'skip-assets', type: :boolean, default: !defined?(Sprockets), desc: "Skip generating javascript and css assets into the application"
|
|
16
15
|
class_option :'skip-solr', type: :boolean, default: false, desc: "Skip generating solr configurations."
|
|
17
16
|
|
|
18
17
|
desc <<-EOS
|
|
@@ -28,22 +27,7 @@ module Blacklight
|
|
|
28
27
|
EOS
|
|
29
28
|
|
|
30
29
|
def add_solr_wrapper
|
|
31
|
-
|
|
32
|
-
generator_options = '--jettywrapper' if options[:jettywrapper]
|
|
33
|
-
solr_generator = if options[:jettywrapper]
|
|
34
|
-
'blacklight:solr4'
|
|
35
|
-
elsif solr_version == 'latest'
|
|
36
|
-
'blacklight:solr5'
|
|
37
|
-
else
|
|
38
|
-
"blacklight:solr#{solr_version}"
|
|
39
|
-
end
|
|
40
|
-
generate solr_generator, generator_options
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def bundle_install
|
|
44
|
-
Bundler.with_clean_env do
|
|
45
|
-
run "bundle install"
|
|
46
|
-
end
|
|
30
|
+
generate 'blacklight:solr' unless options[:'skip-solr']
|
|
47
31
|
end
|
|
48
32
|
|
|
49
33
|
# Copy all files in templates/public/ directory to public/
|
|
@@ -53,6 +37,12 @@ module Blacklight
|
|
|
53
37
|
generate "blacklight:assets" unless options[:'skip-assets']
|
|
54
38
|
end
|
|
55
39
|
|
|
40
|
+
def bundle_install
|
|
41
|
+
Bundler.with_clean_env do
|
|
42
|
+
run "bundle install"
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
56
46
|
def generate_blacklight_document
|
|
57
47
|
generate 'blacklight:document', document_name
|
|
58
48
|
end
|
|
@@ -83,7 +73,7 @@ module Blacklight
|
|
|
83
73
|
end
|
|
84
74
|
|
|
85
75
|
def add_sass_configuration
|
|
86
|
-
insert_into_file "config/application.rb", :
|
|
76
|
+
insert_into_file "config/application.rb", after: "config.assets.enabled = true" do <<EOF
|
|
87
77
|
# Default SASS Configuration, check out https://github.com/rails/sass-rails for details
|
|
88
78
|
config.assets.compress = !Rails.env.development?
|
|
89
79
|
EOF
|
|
@@ -98,7 +88,7 @@ EOF
|
|
|
98
88
|
return unless options[:marc]
|
|
99
89
|
|
|
100
90
|
blacklight_marc = String.new('blacklight-marc')
|
|
101
|
-
gem blacklight_marc, '
|
|
91
|
+
gem blacklight_marc, '< 8'
|
|
102
92
|
|
|
103
93
|
Bundler.with_clean_env do
|
|
104
94
|
run "bundle install"
|
|
@@ -7,7 +7,7 @@ module Blacklight
|
|
|
7
7
|
|
|
8
8
|
source_root File.expand_path('../templates', __FILE__)
|
|
9
9
|
|
|
10
|
-
argument
|
|
10
|
+
argument :model_name, type: :string, default: "search_builder"
|
|
11
11
|
|
|
12
12
|
desc <<-EOS
|
|
13
13
|
This generator makes the following changes to your application:
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'rails/generators'
|
|
2
4
|
|
|
3
5
|
module Blacklight
|
|
4
|
-
class
|
|
5
|
-
|
|
6
|
-
# from the root of the blacklight gem
|
|
7
|
-
source_root Blacklight.root
|
|
6
|
+
class SolrGenerator < Rails::Generators::Base
|
|
7
|
+
source_root ::File.expand_path('../templates', __FILE__)
|
|
8
8
|
|
|
9
9
|
desc <<-EOF
|
|
10
10
|
This generator makes the following changes to your application:
|
|
@@ -23,15 +23,21 @@ module Blacklight
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def copy_solr_conf
|
|
26
|
-
directory 'solr'
|
|
26
|
+
directory 'solr'
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def solr_wrapper_config
|
|
30
|
-
copy_file '.solr_wrapper.yml'
|
|
30
|
+
copy_file '.solr_wrapper.yml'
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def add_rsolr_gem
|
|
34
34
|
gem 'rsolr', '>= 1.0', '< 3'
|
|
35
35
|
end
|
|
36
|
+
|
|
37
|
+
def bundle_install
|
|
38
|
+
Bundler.with_clean_env do
|
|
39
|
+
run "bundle install"
|
|
40
|
+
end
|
|
41
|
+
end
|
|
36
42
|
end
|
|
37
43
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
class AlternateController < CatalogController
|
|
2
|
+
class AlternateController < CatalogController
|
|
3
3
|
configure_blacklight do |config|
|
|
4
4
|
config.index.thumbnail_method = :xyz
|
|
5
5
|
end
|
|
@@ -7,7 +7,7 @@ class AlternateController < CatalogController
|
|
|
7
7
|
def xyz *args
|
|
8
8
|
view_context.tag "img"
|
|
9
9
|
end
|
|
10
|
-
|
|
11
|
-
helper_method :xyz
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
helper_method :xyz if respond_to? :helper_method
|
|
12
|
+
|
|
13
|
+
end
|
|
@@ -12,6 +12,9 @@ class <%= controller_name.classify %>Controller < ApplicationController
|
|
|
12
12
|
#
|
|
13
13
|
## Model that maps search index responses to the blacklight response model
|
|
14
14
|
# config.response_model = Blacklight::Solr::Response
|
|
15
|
+
#
|
|
16
|
+
## Should the raw solr document endpoint (e.g. /catalog/:id/raw) be enabled
|
|
17
|
+
# config.raw_endpoint.enabled = false
|
|
15
18
|
|
|
16
19
|
## Default parameters to send to solr for all search-like requests. See also SearchBuilder#processed_parameters
|
|
17
20
|
config.default_solr_params = {
|
|
@@ -20,28 +23,32 @@ class <%= controller_name.classify %>Controller < ApplicationController
|
|
|
20
23
|
|
|
21
24
|
# solr path which will be added to solr base url before the other solr params.
|
|
22
25
|
#config.solr_path = 'select'
|
|
26
|
+
#config.document_solr_path = 'get'
|
|
23
27
|
|
|
24
28
|
# items to show per page, each number in the array represent another option to choose from.
|
|
25
29
|
#config.per_page = [10,20,50,100]
|
|
26
30
|
|
|
27
|
-
## Default parameters to send on single-document requests to Solr. These settings are the Blackligt defaults (see SearchHelper#solr_doc_params) or
|
|
28
|
-
## parameters included in the Blacklight-jetty document requestHandler.
|
|
29
|
-
#
|
|
30
|
-
#config.default_document_solr_params = {
|
|
31
|
-
# qt: 'document',
|
|
32
|
-
# ## These are hard-coded in the blacklight 'document' requestHandler
|
|
33
|
-
# # fl: '*',
|
|
34
|
-
# # rows: 1,
|
|
35
|
-
# # q: '{!term f=id v=$id}'
|
|
36
|
-
#}
|
|
37
|
-
|
|
38
31
|
# solr field configuration for search results/index views
|
|
39
|
-
config.index.title_field = '
|
|
40
|
-
config.index.display_type_field = 'format'
|
|
32
|
+
config.index.title_field = 'title_tsim'
|
|
33
|
+
#config.index.display_type_field = 'format'
|
|
41
34
|
#config.index.thumbnail_field = 'thumbnail_path_ss'
|
|
42
35
|
|
|
36
|
+
config.add_results_document_tool(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
|
|
37
|
+
|
|
38
|
+
config.add_results_collection_tool(:sort_widget)
|
|
39
|
+
config.add_results_collection_tool(:per_page_widget)
|
|
40
|
+
config.add_results_collection_tool(:view_type_group)
|
|
41
|
+
|
|
42
|
+
config.add_show_tools_partial(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
|
|
43
|
+
config.add_show_tools_partial(:email, callback: :email_action, validator: :validate_email_params)
|
|
44
|
+
config.add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params)
|
|
45
|
+
config.add_show_tools_partial(:citation)
|
|
46
|
+
|
|
47
|
+
config.add_nav_action(:bookmark, partial: 'blacklight/nav/bookmark', if: :render_bookmarks_control?)
|
|
48
|
+
config.add_nav_action(:search_history, partial: 'blacklight/nav/search_history')
|
|
49
|
+
|
|
43
50
|
# solr field configuration for document/show views
|
|
44
|
-
#config.show.title_field = '
|
|
51
|
+
#config.show.title_field = 'title_tsim'
|
|
45
52
|
#config.show.display_type_field = 'format'
|
|
46
53
|
#config.show.thumbnail_field = 'thumbnail_path_ss'
|
|
47
54
|
|
|
@@ -70,19 +77,19 @@ class <%= controller_name.classify %>Controller < ApplicationController
|
|
|
70
77
|
# :index_range can be an array or range of prefixes that will be used to create the navigation (note: It is case sensitive when searching values)
|
|
71
78
|
|
|
72
79
|
config.add_facet_field 'format', label: 'Format'
|
|
73
|
-
config.add_facet_field '
|
|
74
|
-
config.add_facet_field '
|
|
75
|
-
config.add_facet_field '
|
|
76
|
-
config.add_facet_field '
|
|
77
|
-
config.add_facet_field '
|
|
78
|
-
config.add_facet_field '
|
|
80
|
+
config.add_facet_field 'pub_date_ssim', label: 'Publication Year', single: true
|
|
81
|
+
config.add_facet_field 'subject_ssim', label: 'Topic', limit: 20, index_range: 'A'..'Z'
|
|
82
|
+
config.add_facet_field 'language_ssim', label: 'Language', limit: true
|
|
83
|
+
config.add_facet_field 'lc_1letter_ssim', label: 'Call Number'
|
|
84
|
+
config.add_facet_field 'subject_geo_ssim', label: 'Region'
|
|
85
|
+
config.add_facet_field 'subject_era_ssim', label: 'Era'
|
|
79
86
|
|
|
80
|
-
config.add_facet_field 'example_pivot_field', label: 'Pivot Field', :pivot => ['format', '
|
|
87
|
+
config.add_facet_field 'example_pivot_field', label: 'Pivot Field', :pivot => ['format', 'language_ssim']
|
|
81
88
|
|
|
82
89
|
config.add_facet_field 'example_query_facet_field', label: 'Publish Date', :query => {
|
|
83
|
-
:years_5 => { label: 'within 5 Years', fq: "
|
|
84
|
-
:years_10 => { label: 'within 10 Years', fq: "
|
|
85
|
-
:years_25 => { label: 'within 25 Years', fq: "
|
|
90
|
+
:years_5 => { label: 'within 5 Years', fq: "pub_date_ssim:[#{Time.zone.now.year - 5 } TO *]" },
|
|
91
|
+
:years_10 => { label: 'within 10 Years', fq: "pub_date_ssim:[#{Time.zone.now.year - 10 } TO *]" },
|
|
92
|
+
:years_25 => { label: 'within 25 Years', fq: "pub_date_ssim:[#{Time.zone.now.year - 25 } TO *]" }
|
|
86
93
|
}
|
|
87
94
|
|
|
88
95
|
|
|
@@ -93,32 +100,32 @@ class <%= controller_name.classify %>Controller < ApplicationController
|
|
|
93
100
|
|
|
94
101
|
# solr fields to be displayed in the index (search results) view
|
|
95
102
|
# The ordering of the field names is the order of the display
|
|
96
|
-
config.add_index_field '
|
|
97
|
-
config.add_index_field '
|
|
98
|
-
config.add_index_field '
|
|
99
|
-
config.add_index_field '
|
|
103
|
+
config.add_index_field 'title_tsim', label: 'Title'
|
|
104
|
+
config.add_index_field 'title_vern_ssim', label: 'Title'
|
|
105
|
+
config.add_index_field 'author_tsim', label: 'Author'
|
|
106
|
+
config.add_index_field 'author_vern_ssim', label: 'Author'
|
|
100
107
|
config.add_index_field 'format', label: 'Format'
|
|
101
|
-
config.add_index_field '
|
|
102
|
-
config.add_index_field '
|
|
103
|
-
config.add_index_field '
|
|
104
|
-
config.add_index_field '
|
|
108
|
+
config.add_index_field 'language_ssim', label: 'Language'
|
|
109
|
+
config.add_index_field 'published_ssim', label: 'Published'
|
|
110
|
+
config.add_index_field 'published_vern_ssim', label: 'Published'
|
|
111
|
+
config.add_index_field 'lc_callnum_ssim', label: 'Call number'
|
|
105
112
|
|
|
106
113
|
# solr fields to be displayed in the show (single result) view
|
|
107
114
|
# The ordering of the field names is the order of the display
|
|
108
|
-
config.add_show_field '
|
|
109
|
-
config.add_show_field '
|
|
110
|
-
config.add_show_field '
|
|
111
|
-
config.add_show_field '
|
|
112
|
-
config.add_show_field '
|
|
113
|
-
config.add_show_field '
|
|
115
|
+
config.add_show_field 'title_tsim', label: 'Title'
|
|
116
|
+
config.add_show_field 'title_vern_ssim', label: 'Title'
|
|
117
|
+
config.add_show_field 'subtitle_tsim', label: 'Subtitle'
|
|
118
|
+
config.add_show_field 'subtitle_vern_ssim', label: 'Subtitle'
|
|
119
|
+
config.add_show_field 'author_tsim', label: 'Author'
|
|
120
|
+
config.add_show_field 'author_vern_ssim', label: 'Author'
|
|
114
121
|
config.add_show_field 'format', label: 'Format'
|
|
115
|
-
config.add_show_field '
|
|
116
|
-
config.add_show_field '
|
|
117
|
-
config.add_show_field '
|
|
118
|
-
config.add_show_field '
|
|
119
|
-
config.add_show_field '
|
|
120
|
-
config.add_show_field '
|
|
121
|
-
config.add_show_field '
|
|
122
|
+
config.add_show_field 'url_fulltext_ssim', label: 'URL'
|
|
123
|
+
config.add_show_field 'url_suppl_ssim', label: 'More Information'
|
|
124
|
+
config.add_show_field 'language_ssim', label: 'Language'
|
|
125
|
+
config.add_show_field 'published_ssim', label: 'Published'
|
|
126
|
+
config.add_show_field 'published_vern_ssim', label: 'Published'
|
|
127
|
+
config.add_show_field 'lc_callnum_ssim', label: 'Call number'
|
|
128
|
+
config.add_show_field 'isbn_ssim', label: 'ISBN'
|
|
122
129
|
|
|
123
130
|
# "fielded" search configuration. Used by pulldown among other places.
|
|
124
131
|
# For supported keys in hash, see rdoc for Blacklight::SearchFields
|
|
@@ -178,10 +185,10 @@ class <%= controller_name.classify %>Controller < ApplicationController
|
|
|
178
185
|
# label in pulldown is followed by the name of the SOLR field to sort by and
|
|
179
186
|
# whether the sort is ascending or descending (it must be asc or desc
|
|
180
187
|
# except in the relevancy case).
|
|
181
|
-
config.add_sort_field 'score desc,
|
|
182
|
-
config.add_sort_field '
|
|
183
|
-
config.add_sort_field '
|
|
184
|
-
config.add_sort_field '
|
|
188
|
+
config.add_sort_field 'score desc, pub_date_si desc, title_si asc', label: 'relevance'
|
|
189
|
+
config.add_sort_field 'pub_date_si desc, title_si asc', label: 'year'
|
|
190
|
+
config.add_sort_field 'author_si asc, title_si asc', label: 'author'
|
|
191
|
+
config.add_sort_field 'title_si asc, pub_date_si desc', label: 'title'
|
|
185
192
|
|
|
186
193
|
# If there are more than this many search results, no spelling ("did you
|
|
187
194
|
# mean") suggestion is offered.
|
|
@@ -190,5 +197,8 @@ class <%= controller_name.classify %>Controller < ApplicationController
|
|
|
190
197
|
# Configuration for autocomplete suggestor
|
|
191
198
|
config.autocomplete_enabled = true
|
|
192
199
|
config.autocomplete_path = 'suggest'
|
|
200
|
+
# if the name of the solr.SuggestComponent provided in your solrcongig.xml is not the
|
|
201
|
+
# default 'mySuggester', uncomment and provide it below
|
|
202
|
+
# config.autocomplete_suggester = 'mySuggester'
|
|
193
203
|
end
|
|
194
204
|
end
|