blacklight_advanced_search 7.0.0 → 8.0.0.alpha1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +126 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +3 -1
- data/Gemfile +2 -9
- data/README.md +43 -57
- data/VERSION +1 -1
- data/blacklight_advanced_search.gemspec +3 -2
- data/config/routes.rb +1 -1
- data/lib/blacklight_advanced_search/advanced_query_parser.rb +24 -38
- data/lib/blacklight_advanced_search/advanced_search_builder.rb +26 -23
- data/lib/blacklight_advanced_search/controller.rb +15 -16
- data/lib/blacklight_advanced_search/redirect_legacy_params_filter.rb +23 -6
- data/lib/blacklight_advanced_search.rb +0 -4
- data/lib/generators/blacklight_advanced_search/install_generator.rb +3 -37
- data/lib/parsing_nesting/grammar.rb +0 -12
- data/solr/conf/solrconfig.xml +2 -1
- data/spec/features/blacklight_advanced_search_form_spec.rb +10 -15
- data/spec/lib/advanced_search_builder_spec.rb +11 -8
- data/spec/spec_helper.rb +46 -14
- data/spec/test_app_templates/app/controllers/catalog_controller.rb +1 -3
- metadata +36 -51
- data/.travis.yml +0 -21
- data/app/assets/javascripts/blacklight_advanced_search.js +0 -5
- data/app/assets/stylesheets/blacklight_advanced_search/advanced_results.css +0 -21
- data/app/assets/stylesheets/blacklight_advanced_search/blacklight_advanced_search_styles.css.scss +0 -62
- data/app/assets/stylesheets/blacklight_advanced_search.css +0 -6
- data/app/controllers/advanced_controller.rb +0 -25
- data/app/controllers/blacklight_advanced_search/advanced_controller.rb +0 -25
- data/app/helpers/advanced_helper.rb +0 -4
- data/app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb +0 -57
- data/app/views/advanced/_advanced_search_facets.html.erb +0 -16
- data/app/views/advanced/_advanced_search_facets_as_select.html.erb +0 -30
- data/app/views/advanced/_advanced_search_fields.html.erb +0 -8
- data/app/views/advanced/_advanced_search_form.html.erb +0 -43
- data/app/views/advanced/_advanced_search_help.html.erb +0 -24
- data/app/views/advanced/_advanced_search_submit_btns.html.erb +0 -12
- data/app/views/advanced/_facet_limit.html.erb +0 -15
- data/app/views/advanced/index.html.erb +0 -21
- data/app/views/blacklight_advanced_search/_facet_limit.html.erb +0 -16
- data/config/jetty.yml +0 -4
- data/config/locales/blacklight_advanced_search.en.yml +0 -12
- data/lib/blacklight_advanced_search/catalog_helper_override.rb +0 -30
- data/lib/blacklight_advanced_search/filter_parser.rb +0 -11
- data/lib/blacklight_advanced_search/parsing_nesting_parser.rb +0 -15
- data/lib/blacklight_advanced_search/render_constraints_override.rb +0 -136
- data/lib/generators/blacklight_advanced_search/assets_generator.rb +0 -53
- data/lib/generators/blacklight_advanced_search/templates/advanced_controller.rb +0 -56
- data/lib/generators/blacklight_advanced_search/templates/saved_searches_controller.rb +0 -6
- data/lib/generators/blacklight_advanced_search/templates/search_history_controller.rb +0 -6
- data/spec/helpers/advanced_helper_spec.rb +0 -13
- data/spec/lib/blacklight_advanced_search/parsing_nesting_parser_spec.rb +0 -20
- data/spec/lib/blacklight_advanced_search/render_constraints_override_spec.rb +0 -39
- data/spec/lib/filter_parser_spec.rb +0 -22
@@ -1,18 +1,35 @@
|
|
1
1
|
# Returns a lambda that you can use with a before_filter in your
|
2
2
|
# CatalogController to catch and redirect query params using the old
|
3
|
-
# style
|
3
|
+
# style
|
4
4
|
#
|
5
5
|
# This can be used to keep any old bookmarked URLs still working.
|
6
6
|
#
|
7
|
-
#
|
7
|
+
# before_action BlacklightAdvancedSearch::RedirectLegacyParamsFilter, :only => :index
|
8
8
|
#
|
9
9
|
module BlacklightAdvancedSearch
|
10
10
|
class RedirectLegacyParamsFilter
|
11
11
|
def self.before(controller)
|
12
12
|
params = controller.send(:params)
|
13
|
+
legacy_converted = false
|
13
14
|
|
15
|
+
# This was used prior to blacklight_advanceod_search 8
|
16
|
+
i = 0
|
17
|
+
controller.blacklight_config.search_fields.each do |_key, field|
|
18
|
+
next unless params[field.key].present?
|
19
|
+
legacy_converted = true
|
20
|
+
|
21
|
+
params[:clause] ||= {}
|
22
|
+
params[:clause][i] = {
|
23
|
+
field: field.key,
|
24
|
+
query: params[field.key]
|
25
|
+
}
|
26
|
+
i += 1
|
27
|
+
|
28
|
+
params.delete(field.key)
|
29
|
+
end
|
30
|
+
|
31
|
+
# This was used prior to blacklight_advanced_search 5.0.
|
14
32
|
if params[:f_inclusive] && params[:f_inclusive].respond_to?(:each_pair)
|
15
|
-
legacy_converted = false
|
16
33
|
|
17
34
|
params[:f_inclusive].each_pair do |field, value|
|
18
35
|
next unless value.is_a? Hash
|
@@ -20,10 +37,10 @@ module BlacklightAdvancedSearch
|
|
20
37
|
legacy_converted = true
|
21
38
|
params[:f_inclusive][field] = value.keys
|
22
39
|
end
|
40
|
+
end
|
23
41
|
|
24
|
-
|
25
|
-
|
26
|
-
end
|
42
|
+
if legacy_converted
|
43
|
+
controller.send(:redirect_to, params, :status => :moved_permanently)
|
27
44
|
end
|
28
45
|
end
|
29
46
|
end
|
@@ -1,11 +1,7 @@
|
|
1
1
|
module BlacklightAdvancedSearch
|
2
2
|
autoload :AdvancedSearchBuilder, 'blacklight_advanced_search/advanced_search_builder'
|
3
3
|
autoload :Controller, 'blacklight_advanced_search/controller'
|
4
|
-
autoload :RenderConstraintsOverride, 'blacklight_advanced_search/render_constraints_override'
|
5
|
-
autoload :CatalogHelperOverride, 'blacklight_advanced_search/catalog_helper_override'
|
6
4
|
autoload :QueryParser, 'blacklight_advanced_search/advanced_query_parser'
|
7
|
-
autoload :ParsingNestingParser, 'blacklight_advanced_search/parsing_nesting_parser'
|
8
|
-
autoload :FilterParser, 'blacklight_advanced_search/filter_parser'
|
9
5
|
autoload :RedirectLegacyParamsFilter, 'blacklight_advanced_search/redirect_legacy_params_filter'
|
10
6
|
|
11
7
|
require 'blacklight_advanced_search/version'
|
@@ -4,10 +4,6 @@ module BlacklightAdvancedSearch
|
|
4
4
|
class InstallGenerator < Rails::Generators::Base
|
5
5
|
source_root File.expand_path('../templates', __FILE__)
|
6
6
|
|
7
|
-
def inject_asset_requires
|
8
|
-
generate "blacklight_advanced_search:assets"
|
9
|
-
end
|
10
|
-
|
11
7
|
def inject_search_builder
|
12
8
|
inject_into_file 'app/models/search_builder.rb', after: /include Blacklight::Solr::SearchBuilderBehavior.*$/ do
|
13
9
|
"\n include BlacklightAdvancedSearch::AdvancedSearchBuilder" \
|
@@ -15,51 +11,21 @@ module BlacklightAdvancedSearch
|
|
15
11
|
end
|
16
12
|
end
|
17
13
|
|
18
|
-
def install_catalog_controller_mixin
|
19
|
-
inject_into_class "app/controllers/catalog_controller.rb", "CatalogController" do
|
20
|
-
" include BlacklightAdvancedSearch::Controller\n"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
14
|
def configuration
|
25
15
|
inject_into_file 'app/controllers/catalog_controller.rb', after: "configure_blacklight do |config|" do
|
26
16
|
"\n # default advanced config values" \
|
27
17
|
"\n config.advanced_search ||= Blacklight::OpenStructWithHashAccess.new" \
|
18
|
+
"\n config.advanced_search[:enabled] = true" \
|
19
|
+
"\n config.advanced_search[:form_solr_paramters] = {}" \
|
28
20
|
"\n # config.advanced_search[:qt] ||= 'advanced'" \
|
29
|
-
"\n config.advanced_search[:
|
30
|
-
"\n config.advanced_search[:query_parser] ||= 'dismax'" \
|
31
|
-
"\n config.advanced_search[:form_solr_parameters] ||= {}\n"
|
21
|
+
"\n config.advanced_search[:query_parser] ||= 'dismax'"
|
32
22
|
end
|
33
23
|
end
|
34
24
|
|
35
|
-
def install_search_history_controller
|
36
|
-
copy_file "search_history_controller.rb", "app/controllers/search_history_controller.rb"
|
37
|
-
end
|
38
|
-
|
39
|
-
def install_saved_searches_controller
|
40
|
-
copy_file "saved_searches_controller.rb", "app/controllers/saved_searches_controller.rb"
|
41
|
-
end
|
42
|
-
|
43
25
|
def inject_routes
|
44
26
|
inject_into_file 'config/routes.rb', after: /mount Blacklight::Engine.*$/ do
|
45
27
|
"\n mount BlacklightAdvancedSearch::Engine => '/'\n"
|
46
28
|
end
|
47
29
|
end
|
48
|
-
|
49
|
-
def install_localized_search_form
|
50
|
-
return unless options[:force] || yes?("Install local search form with advanced link? (y/N)", :green)
|
51
|
-
# We're going to copy the search from from actual currently loaded
|
52
|
-
# Blacklight into local app as custom local override -- but add our link at the end too.
|
53
|
-
source_file = File.read(File.join(Blacklight.root, "app/views/catalog/_search_form.html.erb"))
|
54
|
-
|
55
|
-
new_file_contents = source_file + <<-EOF.strip_heredoc
|
56
|
-
\n\n
|
57
|
-
<div>
|
58
|
-
<%= link_to 'More options', blacklight_advanced_search_engine.advanced_search_path(search_state.to_h), class: 'advanced_search btn btn-secondary'%>
|
59
|
-
</div>
|
60
|
-
EOF
|
61
|
-
|
62
|
-
create_file("app/views/catalog/_search_form.html.erb", new_file_contents)
|
63
|
-
end
|
64
30
|
end
|
65
31
|
end
|
@@ -1,17 +1,5 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'parslet'
|
3
2
|
|
4
|
-
# Parslet uses Object#tap, which is in ruby 1.8.7+, but not 1.8.6.
|
5
|
-
# But it's easy enough to implement in pure ruby, let's monkey patch
|
6
|
-
# it in if it's not there, so we'll still work with 1.8.6
|
7
|
-
unless Object.method_defined?(:tap)
|
8
|
-
class Object
|
9
|
-
def tap
|
10
|
-
yield(self)
|
11
|
-
self
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
3
|
module ParsingNesting
|
16
4
|
class Grammar < Parslet::Parser
|
17
5
|
root :query
|
data/solr/conf/solrconfig.xml
CHANGED
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
<!-- solr lib dirs -->
|
20
20
|
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" />
|
21
|
+
<lib dir="${solr.install.dir:../../../..}/modules/analysis-extras/lib" />
|
21
22
|
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" />
|
22
23
|
|
23
24
|
<dataDir>${solr.data.dir:}</dataDir>
|
@@ -48,7 +49,7 @@
|
|
48
49
|
alternative_title_tsim
|
49
50
|
active_fedora_model_ssi
|
50
51
|
title_tsim
|
51
|
-
|
52
|
+
author_tsim
|
52
53
|
subject_tsim
|
53
54
|
all_text_timv
|
54
55
|
</str>
|
@@ -1,8 +1,4 @@
|
|
1
1
|
describe "Blacklight Advanced Search Form" do
|
2
|
-
before(:all) do
|
3
|
-
AdvancedController.copy_blacklight_config_from(CatalogController)
|
4
|
-
end
|
5
|
-
|
6
2
|
describe "advanced search form" do
|
7
3
|
before do
|
8
4
|
visit '/advanced?hypothetical_existing_param=true&q=ignore+this+existing+query'
|
@@ -17,18 +13,18 @@ describe "Blacklight Advanced Search Form" do
|
|
17
13
|
it "should give the user a choice between and/or queries" do
|
18
14
|
expect(page).to have_selector('#op')
|
19
15
|
within('#op') do
|
20
|
-
expect(page).to have_selector('option[value="
|
21
|
-
expect(page).to have_selector('option[value="
|
16
|
+
expect(page).to have_selector('option[value="must"]')
|
17
|
+
expect(page).to have_selector('option[value="should"]')
|
22
18
|
end
|
23
19
|
end
|
24
20
|
|
25
21
|
it "should list the configured search fields" do
|
26
|
-
expect(page).to
|
27
|
-
expect(page).to
|
22
|
+
expect(page).to have_field 'Title'
|
23
|
+
expect(page).to have_field 'Author'
|
28
24
|
end
|
29
25
|
|
30
26
|
it "should not list the search fields listed as not to be included in adv search" do
|
31
|
-
expect(page).not_to
|
27
|
+
expect(page).not_to have_field 'Dummy field'
|
32
28
|
end
|
33
29
|
end
|
34
30
|
|
@@ -43,7 +39,7 @@ describe "Blacklight Advanced Search Form" do
|
|
43
39
|
end
|
44
40
|
|
45
41
|
it "scope searches to fields" do
|
46
|
-
fill_in "
|
42
|
+
fill_in "Title", :with => "Medicine"
|
47
43
|
click_on "advanced-search-submit"
|
48
44
|
expect(page).to have_content "Remove constraint Title: Medicine"
|
49
45
|
expect(page).to have_content "2007020969"
|
@@ -52,21 +48,20 @@ describe "Blacklight Advanced Search Form" do
|
|
52
48
|
|
53
49
|
it "should show the search fields" do
|
54
50
|
visit '/advanced'
|
55
|
-
expect(page).to
|
51
|
+
expect(page).to have_field 'Title'
|
56
52
|
end
|
57
53
|
|
58
54
|
describe "prepopulated advanced search form" do
|
59
55
|
before do
|
60
|
-
visit '/advanced?
|
56
|
+
visit '/advanced?clause[0][field]=title&clause[0][query]=cheese'
|
61
57
|
end
|
62
58
|
|
63
59
|
it "should not create hidden inputs for search fields" do
|
64
|
-
expect(page).
|
65
|
-
expect(page).to have_selector('.advanced input[type="text"][name="title"]')
|
60
|
+
expect(page).to have_field 'Title', with: 'cheese'
|
66
61
|
end
|
67
62
|
|
68
63
|
it "should not have multiple parameters for a search field" do
|
69
|
-
fill_in "
|
64
|
+
fill_in "Title", :with => "bread"
|
70
65
|
click_on "advanced-search-submit"
|
71
66
|
expect(page.current_url).to match(/bread/)
|
72
67
|
expect(page.current_url).not_to match(/cheese/)
|
@@ -10,16 +10,19 @@ describe BlacklightAdvancedSearch::AdvancedSearchBuilder do
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
let(:
|
14
|
-
|
15
|
-
|
13
|
+
let(:context) { CatalogController.new }
|
14
|
+
|
15
|
+
before { allow(context).to receive(:blacklight_config).and_return(blacklight_config) }
|
16
|
+
|
17
|
+
let(:search_builder_class) do
|
18
|
+
Class.new(Blacklight::SearchBuilder) do
|
16
19
|
include BlacklightAdvancedSearch::AdvancedSearchBuilder
|
17
|
-
def initialize(blacklight_config, blacklight_params)
|
18
|
-
self.blacklight_config = blacklight_config
|
19
|
-
self.blacklight_params = blacklight_params
|
20
|
-
end
|
21
20
|
end
|
22
|
-
|
21
|
+
end
|
22
|
+
let(:search_builder) { search_builder_class.new(context) }
|
23
|
+
|
24
|
+
let(:obj) do
|
25
|
+
search_builder.with(params)
|
23
26
|
end
|
24
27
|
|
25
28
|
let(:params) { {} }
|
data/spec/spec_helper.rb
CHANGED
@@ -9,19 +9,51 @@ require 'rspec/rails'
|
|
9
9
|
require 'capybara/rails'
|
10
10
|
|
11
11
|
RSpec.configure do |config|
|
12
|
-
# Maintain this rspec2 behavior even in rspec3, until we
|
13
|
-
# adjust our stuff. Deprecation warning was:
|
14
|
-
# --------------------------------------------------------------------------------
|
15
|
-
# rspec-rails 3 will no longer automatically infer an example group's spec type
|
16
|
-
# from the file location. You can explicitly opt-in to this feature using this
|
17
|
-
# snippet:
|
18
|
-
|
19
|
-
# RSpec.configure do |config|
|
20
|
-
# config.infer_spec_type_from_file_location!
|
21
|
-
# end
|
22
|
-
|
23
|
-
# If you wish to manually label spec types via metadata you can safely ignore
|
24
|
-
# this warning and continue upgrading to RSpec 3 without addressing it.
|
25
|
-
# --------------------------------------------------------------------------------
|
26
12
|
config.infer_spec_type_from_file_location!
|
13
|
+
config.filter_rails_from_backtrace!
|
14
|
+
|
15
|
+
config.use_transactional_fixtures = true
|
16
|
+
|
17
|
+
config.expect_with :rspec do |expectations|
|
18
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
19
|
+
end
|
20
|
+
|
21
|
+
config.default_formatter = 'doc' if config.files_to_run.one?
|
22
|
+
|
23
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
24
|
+
|
25
|
+
# This allows you to limit a spec run to individual examples or groups
|
26
|
+
# you care about by tagging them with `:focus` metadata. When nothing
|
27
|
+
# is tagged with `:focus`, all examples get run. RSpec also provides
|
28
|
+
# aliases for `it`, `describe`, and `context` that include `:focus`
|
29
|
+
# metadata: `fit`, `fdescribe` and `fcontext`, respectively.
|
30
|
+
config.filter_run_when_matching :focus
|
31
|
+
|
32
|
+
config.example_status_persistence_file_path = 'spec/examples.txt'
|
33
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
34
|
+
# file, and it's useful to allow more verbose output when running an
|
35
|
+
# individual spec file.
|
36
|
+
if config.files_to_run.one?
|
37
|
+
# Use the documentation formatter for detailed output,
|
38
|
+
# unless a formatter has already been configured
|
39
|
+
# (e.g. via a command-line flag).
|
40
|
+
config.default_formatter = 'doc'
|
41
|
+
end
|
42
|
+
|
43
|
+
# Print the 10 slowest examples and example groups at the
|
44
|
+
# end of the spec run, to help surface which specs are running
|
45
|
+
# particularly slow.
|
46
|
+
config.profile_examples = 10
|
47
|
+
|
48
|
+
# Run specs in random order to surface order dependencies. If you find an
|
49
|
+
# order dependency and want to debug it, you can fix the order by providing
|
50
|
+
# the seed, which is printed after each run.
|
51
|
+
# --seed 1234
|
52
|
+
# config.order = :random
|
53
|
+
|
54
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
55
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
56
|
+
# test failures related to randomization by passing the same `--seed` value
|
57
|
+
# as the one that triggered the failure.
|
58
|
+
Kernel.srand config.seed
|
27
59
|
end
|
@@ -1,12 +1,10 @@
|
|
1
1
|
class CatalogController < ApplicationController
|
2
2
|
include Blacklight::Catalog
|
3
|
-
include BlacklightAdvancedSearch::Controller
|
4
3
|
|
5
4
|
configure_blacklight do |config|
|
6
5
|
# default advanced config values
|
7
6
|
config.advanced_search ||= Blacklight::OpenStructWithHashAccess.new
|
8
|
-
|
9
|
-
config.advanced_search[:url_key] ||= 'advanced'
|
7
|
+
config.advanced_search[:enabled] = true
|
10
8
|
config.advanced_search[:query_parser] ||= 'dismax'
|
11
9
|
config.advanced_search[:form_solr_parameters] ||= {}
|
12
10
|
|
metadata
CHANGED
@@ -1,30 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight_advanced_search
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 8.0.0.alpha1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Rochkind
|
8
8
|
- Chris Beer
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-07-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: blacklight
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '7.15'
|
21
|
+
- - "<"
|
19
22
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
23
|
+
version: '9'
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
25
|
-
- - "
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '7.15'
|
31
|
+
- - "<"
|
26
32
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
33
|
+
version: '9'
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
35
|
name: parslet
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,14 +65,14 @@ dependencies:
|
|
59
65
|
requirements:
|
60
66
|
- - "~>"
|
61
67
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
68
|
+
version: '5.0'
|
63
69
|
type: :development
|
64
70
|
prerelease: false
|
65
71
|
version_requirements: !ruby/object:Gem::Requirement
|
66
72
|
requirements:
|
67
73
|
- - "~>"
|
68
74
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
75
|
+
version: '5.0'
|
70
76
|
- !ruby/object:Gem::Dependency
|
71
77
|
name: capybara
|
72
78
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +129,20 @@ dependencies:
|
|
123
129
|
- - ">="
|
124
130
|
- !ruby/object:Gem::Version
|
125
131
|
version: '0'
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
name: rubocop-rails
|
134
|
+
requirement: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
type: :development
|
140
|
+
prerelease: false
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
126
146
|
- !ruby/object:Gem::Dependency
|
127
147
|
name: rubocop-rspec
|
128
148
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,62 +171,35 @@ dependencies:
|
|
151
171
|
- - ">="
|
152
172
|
- !ruby/object:Gem::Version
|
153
173
|
version: '0'
|
154
|
-
description:
|
174
|
+
description:
|
155
175
|
email:
|
156
176
|
- blacklight-development@googlegroups.com
|
157
177
|
executables: []
|
158
178
|
extensions: []
|
159
179
|
extra_rdoc_files: []
|
160
180
|
files:
|
181
|
+
- ".github/workflows/ruby.yml"
|
161
182
|
- ".gitignore"
|
162
183
|
- ".rspec"
|
163
184
|
- ".rubocop.yml"
|
164
185
|
- ".rubocop_todo.yml"
|
165
186
|
- ".solr_wrapper.yml"
|
166
|
-
- ".travis.yml"
|
167
187
|
- Gemfile
|
168
188
|
- LICENSE
|
169
189
|
- README.md
|
170
190
|
- Rakefile
|
171
191
|
- VERSION
|
172
|
-
- app/assets/javascripts/blacklight_advanced_search.js
|
173
|
-
- app/assets/stylesheets/blacklight_advanced_search.css
|
174
|
-
- app/assets/stylesheets/blacklight_advanced_search/advanced_results.css
|
175
|
-
- app/assets/stylesheets/blacklight_advanced_search/blacklight_advanced_search_styles.css.scss
|
176
|
-
- app/controllers/advanced_controller.rb
|
177
|
-
- app/controllers/blacklight_advanced_search/advanced_controller.rb
|
178
|
-
- app/helpers/advanced_helper.rb
|
179
|
-
- app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb
|
180
|
-
- app/views/advanced/_advanced_search_facets.html.erb
|
181
|
-
- app/views/advanced/_advanced_search_facets_as_select.html.erb
|
182
|
-
- app/views/advanced/_advanced_search_fields.html.erb
|
183
|
-
- app/views/advanced/_advanced_search_form.html.erb
|
184
|
-
- app/views/advanced/_advanced_search_help.html.erb
|
185
|
-
- app/views/advanced/_advanced_search_submit_btns.html.erb
|
186
|
-
- app/views/advanced/_facet_limit.html.erb
|
187
|
-
- app/views/advanced/index.html.erb
|
188
|
-
- app/views/blacklight_advanced_search/_facet_limit.html.erb
|
189
192
|
- blacklight_advanced_search.gemspec
|
190
|
-
- config/jetty.yml
|
191
|
-
- config/locales/blacklight_advanced_search.en.yml
|
192
193
|
- config/routes.rb
|
193
194
|
- lib/blacklight_advanced_search.rb
|
194
195
|
- lib/blacklight_advanced_search/advanced_query_parser.rb
|
195
196
|
- lib/blacklight_advanced_search/advanced_search_builder.rb
|
196
|
-
- lib/blacklight_advanced_search/catalog_helper_override.rb
|
197
197
|
- lib/blacklight_advanced_search/controller.rb
|
198
198
|
- lib/blacklight_advanced_search/engine.rb
|
199
|
-
- lib/blacklight_advanced_search/filter_parser.rb
|
200
|
-
- lib/blacklight_advanced_search/parsing_nesting_parser.rb
|
201
199
|
- lib/blacklight_advanced_search/redirect_legacy_params_filter.rb
|
202
|
-
- lib/blacklight_advanced_search/render_constraints_override.rb
|
203
200
|
- lib/blacklight_advanced_search/version.rb
|
204
|
-
- lib/generators/blacklight_advanced_search/assets_generator.rb
|
205
201
|
- lib/generators/blacklight_advanced_search/blacklight_advanced_search_generator.rb
|
206
202
|
- lib/generators/blacklight_advanced_search/install_generator.rb
|
207
|
-
- lib/generators/blacklight_advanced_search/templates/advanced_controller.rb
|
208
|
-
- lib/generators/blacklight_advanced_search/templates/saved_searches_controller.rb
|
209
|
-
- lib/generators/blacklight_advanced_search/templates/search_history_controller.rb
|
210
203
|
- lib/parsing_nesting/Readme.rdoc
|
211
204
|
- lib/parsing_nesting/grammar.rb
|
212
205
|
- lib/parsing_nesting/tree.rb
|
@@ -227,13 +220,9 @@ files:
|
|
227
220
|
- solr/conf/xslt/example_rss.xsl
|
228
221
|
- solr/conf/xslt/luke.xsl
|
229
222
|
- spec/features/blacklight_advanced_search_form_spec.rb
|
230
|
-
- spec/helpers/advanced_helper_spec.rb
|
231
223
|
- spec/integration/blacklight_stub_spec.rb
|
232
224
|
- spec/lib/advanced_search_builder_spec.rb
|
233
|
-
- spec/lib/blacklight_advanced_search/parsing_nesting_parser_spec.rb
|
234
|
-
- spec/lib/blacklight_advanced_search/render_constraints_override_spec.rb
|
235
225
|
- spec/lib/deep_merge_spec.rb
|
236
|
-
- spec/lib/filter_parser_spec.rb
|
237
226
|
- spec/parsing_nesting/build_tree_spec.rb
|
238
227
|
- spec/parsing_nesting/consuming_spec.rb
|
239
228
|
- spec/parsing_nesting/to_solr_spec.rb
|
@@ -245,7 +234,7 @@ homepage: http://projectblacklight.org/
|
|
245
234
|
licenses:
|
246
235
|
- Apache-2.0
|
247
236
|
metadata: {}
|
248
|
-
post_install_message:
|
237
|
+
post_install_message:
|
249
238
|
rdoc_options: []
|
250
239
|
require_paths:
|
251
240
|
- lib
|
@@ -256,23 +245,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
256
245
|
version: '0'
|
257
246
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
258
247
|
requirements:
|
259
|
-
- - "
|
248
|
+
- - ">"
|
260
249
|
- !ruby/object:Gem::Version
|
261
|
-
version:
|
250
|
+
version: 1.3.1
|
262
251
|
requirements: []
|
263
|
-
rubygems_version: 3.
|
264
|
-
signing_key:
|
252
|
+
rubygems_version: 3.3.7
|
253
|
+
signing_key:
|
265
254
|
specification_version: 4
|
266
255
|
summary: Blacklight Advanced Search plugin
|
267
256
|
test_files:
|
268
257
|
- spec/features/blacklight_advanced_search_form_spec.rb
|
269
|
-
- spec/helpers/advanced_helper_spec.rb
|
270
258
|
- spec/integration/blacklight_stub_spec.rb
|
271
259
|
- spec/lib/advanced_search_builder_spec.rb
|
272
|
-
- spec/lib/blacklight_advanced_search/parsing_nesting_parser_spec.rb
|
273
|
-
- spec/lib/blacklight_advanced_search/render_constraints_override_spec.rb
|
274
260
|
- spec/lib/deep_merge_spec.rb
|
275
|
-
- spec/lib/filter_parser_spec.rb
|
276
261
|
- spec/parsing_nesting/build_tree_spec.rb
|
277
262
|
- spec/parsing_nesting/consuming_spec.rb
|
278
263
|
- spec/parsing_nesting/to_solr_spec.rb
|
data/.travis.yml
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
notifications:
|
2
|
-
email: false
|
3
|
-
|
4
|
-
matrix:
|
5
|
-
include:
|
6
|
-
- rvm: 2.6.5
|
7
|
-
env: "RAILS_VERSION=6.0.0 ENGINE_CART_RAILS_OPTIONS=\"--skip-webpack-install\""
|
8
|
-
- rvm: 2.6.5
|
9
|
-
env: "RAILS_VERSION=5.2.3"
|
10
|
-
- rvm: 2.5.7
|
11
|
-
env: "RAILS_VERSION=5.1.7"
|
12
|
-
|
13
|
-
notifications:
|
14
|
-
irc: "irc.freenode.org#blacklight"
|
15
|
-
email:
|
16
|
-
- blacklight-commits@googlegroups.com
|
17
|
-
env:
|
18
|
-
global:
|
19
|
-
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
20
|
-
|
21
|
-
jdk: openjdk11
|
@@ -1,21 +0,0 @@
|
|
1
|
-
/* Classes used for styling our custom components on the search results page */
|
2
|
-
|
3
|
-
/* constraints */
|
4
|
-
|
5
|
-
.inclusive_or.appliedFilter {
|
6
|
-
/* kinda lame, but we have to group the 'any' criteria somehow, as they are still
|
7
|
-
'and'd with facet and other criteria. It's got a bootstrap 'well' class
|
8
|
-
on it already. */
|
9
|
-
display: inline-block;
|
10
|
-
padding: 4px 8px;
|
11
|
-
margin: 0;
|
12
|
-
}
|
13
|
-
|
14
|
-
.inclusive_or .operator {
|
15
|
-
margin-right: 1em;
|
16
|
-
}
|
17
|
-
|
18
|
-
|
19
|
-
#appliedParams .inclusive_or .operator {
|
20
|
-
font-weight: 500;
|
21
|
-
}
|
data/app/assets/stylesheets/blacklight_advanced_search/blacklight_advanced_search_styles.css.scss
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
|
2
|
-
/* Random styles */
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
form.advanced .adv_facet_selections {
|
7
|
-
color:green;
|
8
|
-
font-size: 80%;
|
9
|
-
display: block;
|
10
|
-
margin-top: 0.25em;
|
11
|
-
}
|
12
|
-
|
13
|
-
.advanced-search-form {
|
14
|
-
.query-criteria-heading {
|
15
|
-
// seems neccesary to get select menu to align okay, not sure why.
|
16
|
-
vertical-align: bottom;
|
17
|
-
margin-top: 0;
|
18
|
-
}
|
19
|
-
|
20
|
-
|
21
|
-
select.form-control.sort-select {
|
22
|
-
width: auto; // why does Bootstrap try to insist on explicit width? dunno.
|
23
|
-
display: inline-block;
|
24
|
-
}
|
25
|
-
|
26
|
-
.query-criteria, .limit-criteria, .sort-submit-buttons {
|
27
|
-
margin-bottom: 4em;
|
28
|
-
}
|
29
|
-
|
30
|
-
}
|
31
|
-
|
32
|
-
.blacklight-advanced-facet-select {
|
33
|
-
// have to do some terribly complicated things with display:table and NESTED
|
34
|
-
// tables to add our checkbox and <label> element and still use display-table
|
35
|
-
// to align everything. sorry!
|
36
|
-
.facet-checkbox, .label-and-count {
|
37
|
-
display: table-cell;
|
38
|
-
}
|
39
|
-
|
40
|
-
.label-and-count {
|
41
|
-
width: 100%;
|
42
|
-
padding-left: 1em;
|
43
|
-
}
|
44
|
-
|
45
|
-
.facet-label {
|
46
|
-
padding-left: 18px;
|
47
|
-
}
|
48
|
-
|
49
|
-
|
50
|
-
label {
|
51
|
-
// a nested table, with existing from BL text and count as display:table-cell
|
52
|
-
// already. the "display:table-row" element is implicit and will be added
|
53
|
-
// by browser as a psuedo-element inside this label.
|
54
|
-
display:table;
|
55
|
-
width: 100%;
|
56
|
-
font-weight: normal;
|
57
|
-
|
58
|
-
margin: 0;
|
59
|
-
padding: 0;
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|