blacklight_advanced_search 2.1.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/.gitignore +6 -1
  2. data/.travis.yml +16 -0
  3. data/Gemfile +12 -2
  4. data/README.rdoc +25 -11
  5. data/Rakefile +15 -22
  6. data/VERSION +1 -1
  7. data/app/controllers/blacklight_advanced_search/advanced_controller.rb +12 -6
  8. data/app/helpers/advanced_helper.rb +1 -11
  9. data/app/views/advanced/_facet_limit.html.erb +1 -1
  10. data/app/views/advanced/index.html.erb +1 -3
  11. data/app/views/blacklight_advanced_search/_facet_limit.html.erb +1 -1
  12. data/blacklight_advanced_search.gemspec +2 -5
  13. data/config/jetty.yml +4 -0
  14. data/config/routes.rb +1 -1
  15. data/lib/blacklight_advanced_search/controller.rb +8 -2
  16. data/lib/blacklight_advanced_search/parse_basic_q.rb +1 -1
  17. data/lib/blacklight_advanced_search/render_constraints_override.rb +5 -1
  18. data/lib/generators/blacklight_advanced_search/assets_generator.rb +22 -5
  19. data/lib/generators/blacklight_advanced_search/blacklight_advanced_search_generator.rb +8 -2
  20. data/lib/generators/blacklight_advanced_search/templates/advanced_controller.rb +4 -3
  21. data/lib/parsing_nesting/tree.rb +17 -19
  22. data/spec/{acceptance → features}/blacklight_advanced_search_form_spec.rb +2 -22
  23. data/spec/parsing_nesting/to_solr_spec.rb +25 -11
  24. data/spec/spec_helper.rb +3 -8
  25. data/spec/test_app_templates/Gemfile.extra +14 -0
  26. data/spec/test_app_templates/app/controllers/catalog_controller.rb +25 -0
  27. data/spec/test_app_templates/lib/generators/test_app_generator.rb +34 -0
  28. data/spec/test_app_templates/lib/tasks/blacklight_test_app.rake +14 -0
  29. metadata +53 -86
  30. checksums.yaml +0 -7
  31. data/install.rb +0 -0
  32. data/lib/generators/blacklight_advanced_search/templates/_search_form.html.erb +0 -23
  33. data/spec/internal/app/controllers/application_controller.rb +0 -6
  34. data/spec/internal/app/models/solr_document.rb +0 -3
  35. data/spec/internal/config/database.yml +0 -3
  36. data/spec/internal/config/routes.rb +0 -6
  37. data/spec/internal/config/solr.yml +0 -18
  38. data/spec/internal/db/combustion_test.sqlite +0 -0
  39. data/spec/internal/db/schema.rb +0 -53
  40. data/spec/internal/log/.gitignore +0 -1
  41. data/spec/internal/public/favicon.ico +0 -0
  42. data/uninstall.rb +0 -1
data/.gitignore CHANGED
@@ -2,4 +2,9 @@
2
2
  coverage.data
3
3
  coverage/
4
4
  log/*
5
- *.log
5
+ *.log
6
+ /spec/internal
7
+ /jetty
8
+ Gemfile.lock
9
+ pkg/*
10
+ tmp/*
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ notifications:
2
+ email: false
3
+
4
+ rvm:
5
+ - 2.1.0
6
+ - 2.0.0
7
+ - 1.9.3
8
+ - jruby-19mode
9
+
10
+ notifications:
11
+ irc: "irc.freenode.org#blacklight"
12
+ email:
13
+ - blacklight-commits@googlegroups.com
14
+ env:
15
+ global:
16
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
data/Gemfile CHANGED
@@ -2,5 +2,15 @@ source 'http://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- #gem 'combustion'
6
- gem 'blacklight', :git => 'git://github.com/projectblacklight/blacklight.git'
5
+ group :test do
6
+ gem "bootstrap-sass"
7
+ gem 'turbolinks'
8
+ end
9
+
10
+ gem 'activerecord-jdbcsqlite3-adapter', platform: :jruby
11
+ gem 'sqlite3', platform: :ruby
12
+ gem 'jquery-rails'
13
+
14
+ if File.exists?('spec/test_app_templates/Gemfile.extra')
15
+ eval File.read('spec/test_app_templates/Gemfile.extra'), nil, 'spec/test_app_templates/Gemfile.extra'
16
+ end
data/README.rdoc CHANGED
@@ -1,12 +1,19 @@
1
1
  This is an advanced search plugin for Blacklight ( http://www.projectblacklight.org ).
2
2
 
3
- == Pre-requisites:
4
- * The Blacklight plugin ( http://github.com/projectblacklight/blacklight )
5
- * NOTE: Blacklight 3.2.2+ is required for current (1.2.1+) version of Advanced Search plugin, and likewise BL 3.2.x requires current 1.2.1+ version of Advanced Search.
6
- * 1.2.0 was an aborted version of Blacklight 3.2 compatibility, don't use it, if you did, re-do your configuration according to current instructions and delete any local ./app/controllers/advanced_controller.rb file.
7
- * 1.1.x versions will work with older version of Blacklight 3.0.x-3.1.x
8
- * advanced search plugin latest 0.X.X version will work with Blacklight 2.9/Rails2.
9
- * Older tagged versions of Advanced Search may work with even older BL.
3
+ == Blacklight version compatibility
4
+
5
+ This is a plugin for Blacklight: http://github.com/projectblacklight/blacklight
6
+
7
+ It has been hard to keep track of which versions of `blacklight_advanced_search`
8
+ work with which versions of `blacklight`. Some notes:
9
+
10
+ * versions 5.x of Advanced Search plugin should work with Blacklight >= 5.1 and < 6 -- we now synchronize the _major_ version number between `blacklight` and `blacklight_advanced_search`.
11
+ * version 2.2 of `blacklight_advanced_search` should work with `blacklight` 4.x.
12
+ * versions `1.2.*` of Advanced Search plugin can work with blacklight 3.2.2 through latest 3.2.x
13
+ * 1.2.0 was an aborted version, don't use it, if you did, re-do your configuration according to current instructions and delete any local ./app/controllers/advanced_controller.rb file.
14
+ * advanced search 1.1.x versions will work with Blacklights 3.0.x through 3.1.x
15
+ * advanced search plugin latest 0.X.X version will work with Blacklight 2.9/Rails2.
16
+ * Older tagged versions of Advanced Search may work with even older BL.
10
17
 
11
18
  == Installation:
12
19
 
@@ -27,13 +34,14 @@ You may want to `include BlacklightAdvancedSearch::ParseBasicQ` in your Catalog
27
34
 
28
35
  == Accessing
29
36
 
30
- The advanced search form will be available in your app at /advanced
37
+ The advanced search form will be available in your app at /advanced, and in your app using
38
+ routing helper `advanced_search_path`.
31
39
 
32
- url_for(:controller => "advanced", :action => "index")
40
+ advanced_search_path
33
41
 
34
42
  You can also send the advanced search form url parameters representing a search, to have the form add on additional 'advanced' criteria to the search. For example:
35
43
 
36
- url_for( params.merge(:controller => "advanced", :action => "index")
44
+ advanced_search_path( params )
37
45
 
38
46
  By default there won't be any links in your application to the search form. If you've heavily customized your app, you can put them wherever you want as above.
39
47
 
@@ -148,11 +156,17 @@ By default, the advanced search form will show as limits whatever facets are con
148
156
  Complete list of keys that can be supplied inside your configure_blacklight `advanced_search` block:
149
157
 
150
158
  [:qt]
151
- Solr request handler to use for any search that includes advanced search criteria. Defaults to what the application has set as Blacklight.config[:default_qt]
159
+ Solr request handler to use for any search that includes advanced search criteria. Defaults to what the application has set as blacklight_config.default_solr_params[:qt]
152
160
  [:url_key]
153
161
  Key to use in application URLs to indicate advanced search is included in a query, defaults to "advanced". URLs will have "&search_field=[url key]".
154
162
  [:form_solr_paramters]
155
163
  A hash of solr parameters which will be included in Solr request sent before display of advanced search form. Can be used to set facet parameters for advanced search form display.
164
+ [:query_parser]
165
+ advanced searches are translated to solr nested queries, where the inner queries are of a dismax-type.
166
+ By default, they are actually specifically 'dismax', but you can set :query_parser to 'edismax' instead.
167
+ This may make additional features available like * wildcards in advanced searches; but it may also
168
+ cause some user query elements to be interpreted as operators for edismax when they
169
+ were intended as literals. Somewhat experimental. See Github issues #11 and #14.
156
170
 
157
171
 
158
172
  == Translation to Solr Query, technical details
data/Rakefile CHANGED
@@ -5,41 +5,33 @@ require 'rdoc/task'
5
5
  require 'bundler/setup'
6
6
  Bundler::GemHelper.install_tasks
7
7
 
8
+ ZIP_URL = "https://github.com/projectblacklight/blacklight-jetty/archive/v4.0.0.zip"
9
+ APP_ROOT = File.dirname(__FILE__)
10
+
8
11
  require 'rspec/core/rake_task'
12
+ require 'engine_cart/rake_task'
9
13
 
14
+ require 'jettywrapper'
10
15
  require 'blacklight'
11
16
  import File.join(Blacklight.root, 'lib', 'railties', 'solr_marc.rake')
12
17
 
13
- task :default => :spec
18
+ task :default => :ci
14
19
 
15
20
  desc "Run specs"
16
21
  RSpec::Core::RakeTask.new do |t|
17
22
 
18
23
  end
19
24
 
20
-
21
- desc "Execute Continuous Integration build"
22
- task :ci do
23
-
24
- require 'combustion'
25
- require 'blacklight'
26
- Combustion.initialize!
27
- unless ENV['environment'] == 'test'
28
- exec("rake ci environment=test")
25
+ desc "Load fixtures"
26
+ task :fixtures => ['engine_cart:generate'] do
27
+ within_test_app do
28
+ system "rake solr:marc:index_test_data RAILS_ENV=test"
29
+ abort "Error running fixtures" unless $?.success?
30
+ end
29
31
  end
30
32
 
31
- require 'rails/generators'
32
- require File.join(Blacklight.root, 'lib', 'generators', 'blacklight', 'jetty_generator.rb')
33
-
34
- Blacklight::Jetty.start(["--save_location=jetty", "--force"])
35
-
36
- ENV['RAILS_ENV'] = 'test'
37
- ENV['CONFIG_PATH'] = File.expand_path(File.join(Blacklight.root, 'lib', 'generators', 'blacklight', 'templates', 'config', 'SolrMarc', 'config-test.properties'))
38
- ENV['SOLRMARC_JAR_PATH'] = File.expand_path(File.join(Blacklight.root, 'lib', 'SolrMarc.jar'))
39
- ENV['SOLR_PATH'] = File.expand_path(File.join('jetty', 'solr'))
40
- ENV['SOLR_WAR_PATH'] = File.expand_path(File.join('jetty', 'webapps', 'solr.war'))
41
- Rake::Task['solr:marc:index_test_data'].invoke
42
-
33
+ desc "Execute Continuous Integration build"
34
+ task :ci => ['jetty:clean', 'engine_cart:generate'] do
43
35
 
44
36
  require 'jettywrapper'
45
37
  jetty_params = {
@@ -51,6 +43,7 @@ Combustion.initialize!
51
43
  }
52
44
 
53
45
  error = Jettywrapper.wrap(jetty_params) do
46
+ Rake::Task['fixtures'].invoke
54
47
  Rake::Task['spec'].invoke
55
48
  end
56
49
  raise "test failures: #{error}" if error
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.1
1
+ 2.2.0
@@ -25,6 +25,7 @@ class BlacklightAdvancedSearch::AdvancedController < CatalogController
25
25
  trimmed_params.delete(:f_inclusive) # adv facets
26
26
 
27
27
  search_context_params = solr_search_params(trimmed_params)
28
+
28
29
  # Don't want to include the 'q' from basic search in our search
29
30
  # context. Kind of hacky becuase solr_search_params insists on
30
31
  # using controller.params, not letting us over-ride.
@@ -32,11 +33,10 @@ class BlacklightAdvancedSearch::AdvancedController < CatalogController
32
33
  search_context_params.delete("q")
33
34
 
34
35
  # Also delete any facet-related params, or anything else
35
- # we want to set ourselves or inherit from Solr request handler
36
- # defaults.
36
+ # we want to set ourselves
37
37
  search_context_params.delete_if do |k, v|
38
38
  k = k.to_s
39
- (["facet.limit", "facet.sort", "f", "facets", "facet.fields", "qt", "per_page"].include?(k) ||
39
+ (["facet.limit", "facet.sort", "f", "facets", "facet.fields", "per_page"].include?(k) ||
40
40
  k =~ /f\..+\.facet\.limit/ ||
41
41
  k =~ /f\..+\.facet\.sort/
42
42
  )
@@ -45,12 +45,18 @@ class BlacklightAdvancedSearch::AdvancedController < CatalogController
45
45
 
46
46
  input = HashWithIndifferentAccess.new
47
47
  input.merge!( search_context_params )
48
+
49
+ input[:per_page] = 0 # force
50
+
51
+ # force if set
52
+ input[:qt] = blacklight_config.advanced_search[:qt] if blacklight_config.advanced_search[:qt]
48
53
 
49
- input.merge!( :qt => blacklight_config.advanced_search[:qt] || blacklight_config.default_qt , :per_page => 0)
50
54
  input.merge!( blacklight_config.advanced_search[:form_solr_parameters] ) if blacklight_config.advanced_search[:form_solr_parameters]
55
+
56
+ # ensure empty query is all records, to fetch available facets on entire corpus
51
57
  input[:q] ||= '{!lucene}*:*'
52
58
 
53
-
54
- find(input.to_hash)
59
+ # first arg nil, use default search path.
60
+ find(nil, input.to_hash)
55
61
  end
56
62
  end
@@ -34,18 +34,8 @@ module AdvancedHelper
34
34
  end
35
35
 
36
36
  def search_fields_for_advanced_search
37
- # If we could count on 1.9.3 with ordered hashes and
38
- # Hash#select that worked reasonably, this would be trivial.
39
- # instead, a way compat with 1.8.7 and 1.9.x both.
40
37
  @search_fields_for_advanced_search ||= begin
41
- # make it an ActiveSupport::OrderedHash if it needs to be
42
- hash = blacklight_config.search_fields.class.new
43
-
44
- blacklight_config.search_fields.each_pair do |key, value|
45
- hash[key] = value unless value.include_in_advanced_search == false
46
- end
47
-
48
- hash
38
+ blacklight_config.search_fields.select { |k,v| v.include_in_advanced_search or v.include_in_advanced_search.nil? }
49
39
  end
50
40
  end
51
41
 
@@ -1,7 +1,7 @@
1
1
  <ul>
2
2
  <% display_facet.items.each do |item| -%>
3
3
  <li>
4
- <%= label_tag "f_inclusive_#{solr_field}[#{item.value.to_sym}]", (check_box_tag "f_inclusive[#{solr_field}][#{item.value.to_sym}]", 1, facet_value_checked?(solr_field, item.value)) + content_tag(:span, item.value, :class => 'facet-value') + " (#{format_num item.hits})".html_safe, :class => 'checkbox' %>
4
+ <%= label_tag "f_inclusive_#{solr_field}[#{item.value.to_sym}]", (check_box_tag "f_inclusive[#{solr_field}][#{item.value.to_sym}]", 1, facet_value_checked?(solr_field, item.value)) + content_tag(:span, item.value, :class => 'facet-value') + " (#{number_with_delimiter item.hits})".html_safe, :class => 'checkbox' %>
5
5
  </li>
6
6
  <% end -%>
7
7
  </ul>
@@ -5,6 +5,4 @@
5
5
 
6
6
  <h1 class="advanced">More Search Options</h1>
7
7
  <%= render 'advanced_search_form' %>
8
- <%- sidebar_items << capture do -%>
9
- <%= render "advanced_search_help" %>
10
- <%- end -%>
8
+ <%= render "advanced_search_help" %>
@@ -3,7 +3,7 @@
3
3
  <h4>Any of:</h4>
4
4
  <ul>
5
5
  <% @advanced_query.filters[solr_field].each do |value| %>
6
- <li><span class="selected"><%= h(value) %></span> <%= link_to(content_tag(:i, '', :class => "icon-remove") + content_tag(:span, '[remove]', :class => 'hide-text'), remove_facet_params(solr_field, value, params), :class=>"remove") %></li>
6
+ <li><span class="selected"><%= h(value) %></span> <%= link_to(content_tag(:i, '', :class => "icon-remove") + content_tag(:span, '[remove]', :class => 'hide-text'), remove_advanced_facet_param(solr_field, value, params), :class=>"remove") %></li>
7
7
  <% end %>
8
8
  </ul>
9
9
  </div>
@@ -22,10 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.add_dependency "parslet"
23
23
 
24
24
  s.add_development_dependency "rails"
25
- s.add_development_dependency "combustion"
26
25
  s.add_development_dependency "rspec-rails"
27
- s.add_development_dependency "capybara"
28
- s.add_development_dependency "sqlite3"
29
- s.add_development_dependency 'launchy'
30
- s.add_development_dependency 'jettywrapper'
26
+ s.add_development_dependency 'jettywrapper', ">= 1.4.2"
27
+ s.add_development_dependency 'engine_cart'
31
28
  end
data/config/jetty.yml ADDED
@@ -0,0 +1,4 @@
1
+ default:
2
+ startup_wait: 15
3
+ jetty_port: <%= ENV['TEST_JETTY_PORT'] || 8888 %>
4
+ <%= ENV['TEST_JETTY_PATH'] ? "jetty_home: " + ENV['TEST_JETTY_PATH'] : '' %>
data/config/routes.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  Rails.application.routes.draw do
2
- get 'advanced' => 'advanced#index'
2
+ get 'advanced' => 'advanced#index', :as => 'advanced_search'
3
3
  end
@@ -8,7 +8,9 @@ module BlacklightAdvancedSearch::Controller
8
8
  included do
9
9
  # default adv config values
10
10
  self.blacklight_config.advanced_search ||= Blacklight::OpenStructWithHashAccess.new
11
+ #self.blacklight_config.advanced_search[:qt] ||= 'advanced'
11
12
  self.blacklight_config.advanced_search[:url_key] ||= 'advanced'
13
+ self.blacklight_config.advanced_search[:query_parser] ||= 'dismax'
12
14
  self.blacklight_config.advanced_search[:form_solr_parameters] ||= {}
13
15
 
14
16
 
@@ -18,8 +20,13 @@ module BlacklightAdvancedSearch::Controller
18
20
  # Display advanced search constraints properly
19
21
  helper BlacklightAdvancedSearch::RenderConstraintsOverride
20
22
  helper BlacklightAdvancedSearch::CatalogHelperOverride
23
+ helper_method :is_advanced_search?
21
24
  end
22
25
 
26
+ def is_advanced_search? req_params = params
27
+ (req_params[:search_field] == self.blacklight_config.advanced_search[:url_key]) ||
28
+ req_params[:f_inclusive]
29
+ end
23
30
 
24
31
  # this method should get added into the solr_search_params_logic
25
32
  # list, in a position AFTER normal query handling (:add_query_to_solr),
@@ -30,8 +37,7 @@ module BlacklightAdvancedSearch::Controller
30
37
  # map that to solr #q, over-riding whatever some other logic may have set, yeah.
31
38
  # the hint right now is :search_field request param is set to a magic
32
39
  # key. OR of :f_inclusive is set for advanced params, we need processing too.
33
- if ( (req_params[:search_field] == self.blacklight_config.advanced_search[:url_key]) ||
34
- req_params[:f_inclusive] )
40
+ if is_advanced_search? req_params
35
41
  # Set this as a controller instance variable, not sure if some views/helpers depend on it. Better to leave it as a local variable
36
42
  # if not, more investigation later.
37
43
  @advanced_query = BlacklightAdvancedSearch::QueryParser.new(req_params, self.blacklight_config )
@@ -40,7 +40,7 @@ module BlacklightAdvancedSearch::ParseBasicQ
40
40
  # See if we can parse it, if we can't, we're going to give up
41
41
  # and just allow basic search, perhaps with a warning.
42
42
  begin
43
- adv_search_params = ParsingNesting::Tree.parse(req_params[:q]).to_single_query_params( solr_local_params )
43
+ adv_search_params = ParsingNesting::Tree.parse(req_params[:q], blacklight_config.advanced_search[:query_parser]).to_single_query_params( solr_local_params )
44
44
 
45
45
  BlacklightAdvancedSearch.deep_merge!(solr_parameters, solr_direct_params)
46
46
  BlacklightAdvancedSearch.deep_merge!(solr_parameters, adv_search_params)
@@ -4,7 +4,11 @@
4
4
  module BlacklightAdvancedSearch::RenderConstraintsOverride
5
5
 
6
6
  def query_has_constraints?(localized_params = params)
7
- !(localized_params[:q].blank? and localized_params[:f].blank? and localized_params[:f_inclusive].blank?)
7
+ if is_advanced_search? localized_params
8
+ true
9
+ else
10
+ !(localized_params[:q].blank? and localized_params[:f].blank? and localized_params[:f_inclusive].blank?)
11
+ end
8
12
  end
9
13
 
10
14
  #Over-ride of Blacklight method, provide advanced constraints if needed,
@@ -15,21 +15,38 @@ module BlacklightAdvancedSearch
15
15
  class AssetsGenerator < Rails::Generators::Base
16
16
  source_root File.join(BlacklightAdvancedSearch::Engine.root, 'app', 'assets')
17
17
 
18
- def assets
19
- original_css = File.binread("app/assets/stylesheets/application.css")
18
+ def css_asset
19
+ application_css_location = Dir["app/assets/stylesheets/application{.css,.scss,.css.scss}"].first
20
+
21
+ unless application_css_location
22
+ say_status "skipped", "Can not find an application.css, did not insert our require", :red
23
+ return
24
+ end
25
+
26
+ original_css = File.binread(application_css_location)
20
27
  if original_css.include?("require 'blacklight_advanced_search'")
21
28
  say_status("skipped", "insert into app/assets/stylesheets/application.css", :yellow)
22
29
  else
23
- insert_into_file "app/assets/stylesheets/application.css", :before => "*/" do
30
+ insert_into_file application_css_location, :before => "*/" do
24
31
  "\n *= require 'blacklight_advanced_search'\n\n"
25
32
  end
26
33
  end
34
+
35
+ end
36
+
37
+ def js_asset
38
+ application_js_location = Dir["app/assets/javascripts/application{.js,.coffee,.js.coffee}"].first
39
+
40
+ unless application_js_location
41
+ say_status "skipped", "Can not find an application.js, did not insert our require", :red
42
+ return
43
+ end
27
44
 
28
- original_js = File.binread("app/assets/javascripts/application.js")
45
+ original_js = File.binread(application_js_location)
29
46
  if original_js.include?("require 'blacklight_advanced_search'")
30
47
  say_status("skipped", "insert into app/assets/javascripts/application.js", :yellow)
31
48
  else
32
- insert_into_file "app/assets/javascripts/application.js", :after => %r{//= require ['"]?jquery['"]?$} do
49
+ insert_into_file application_js_location, :after => %r{//= require ['"]?jquery['"]?$} do
33
50
  "\n//= require 'blacklight_advanced_search'\n\n"
34
51
  end
35
52
  end
@@ -10,8 +10,14 @@ class BlacklightAdvancedSearchGenerator < Rails::Generators::Base
10
10
 
11
11
 
12
12
  def install_localized_search_form
13
- if options[:force] or yes?("Install local search form with advanced link?")
14
- copy_file("_search_form.html.erb", "app/views/catalog/_search_form.html.erb")
13
+ if options[:force] or yes?("Install local search form with advanced link? (y/N)", :green)
14
+ # We're going to copy the search from from actual currently loaded
15
+ # Blacklight into local app as custom local override -- but add our link at the end too.
16
+ source_file = File.read(File.join(Blacklight.root, "app/views/catalog/_search_form.html.erb"))
17
+
18
+ new_file_contents = source_file + "\n\n<%= link_to 'More options', advanced_search_path(params), :class=>'advanced_search'%>"
19
+
20
+ create_file("app/views/catalog/_search_form.html.erb", new_file_contents)
15
21
  end
16
22
  end
17
23
 
@@ -1,13 +1,14 @@
1
1
  class AdvancedController < BlacklightAdvancedSearch::AdvancedController
2
2
 
3
3
  blacklight_config.configure do |config|
4
- # name of Solr request handler, leave unset to use the same one as your Blacklight.config[:default_qt]
5
- config.advanced_search.qt = 'advanced'
4
+ # name of Solr request handler, leave unset to use the same one your Blacklight
5
+ # is ordinarily using (recommended if possible)
6
+ # config.advanced_search.qt = 'advanced'
6
7
 
7
8
  ##
8
9
  # The advanced search form displays facets as a limit option.
9
10
  # By default it will use whatever facets, if any, are returned
10
- # by the Solr qt request handler in use. However, you can use
11
+ # by the Solr request handler in use. However, you can use
11
12
  # this config option to have it request other facet params than
12
13
  # default in the Solr request handler, in desired.
13
14
  config.advanced_search.form_solr_parameters = {}
@@ -22,8 +22,8 @@ module ParsingNesting::Tree
22
22
  #
23
23
  # the #negate method was an experiment in transforming parse tree in
24
24
  # place, but isn't being used. But it's left as a sign post.
25
- def self.parse(string)
26
- to_node_tree(ParsingNesting::Grammar.new.parse(string))
25
+ def self.parse(string, query_parser='dismax')
26
+ to_node_tree(ParsingNesting::Grammar.new.parse(string), query_parser)
27
27
  end
28
28
 
29
29
 
@@ -31,25 +31,25 @@ module ParsingNesting::Tree
31
31
  # manner in which I'm parsing to Parslet labelled hash isn't exactly what
32
32
  # Parslet Transform is set up to work with, I couldn't figure it out. But
33
33
  # easy enough to do 'manually'.
34
- def self.to_node_tree(tree)
34
+ def self.to_node_tree(tree, query_parser)
35
35
  if tree.kind_of? Array
36
36
  # at one point I was normalizing top-level lists of one item to just
37
37
  # be that item, no list wrapper. But having the list wrapper
38
38
  # at the top level is actually useful for Solr output.
39
- List.new( tree.collect {|i| to_node_tree(i)})
39
+ List.new( tree.collect {|i| to_node_tree(i, query_parser)}, query_parser)
40
40
  elsif tree.kind_of? Hash
41
41
  if list = tree[:list]
42
- List.new( list.collect {|i| to_node_tree(i)} )
42
+ List.new( list.collect {|i| to_node_tree(i, query_parser)}, query_parser)
43
43
  elsif tree.has_key?(:and_list)
44
- AndList.new( tree[:and_list].collect{|i| to_node_tree(i) } )
44
+ AndList.new( tree[:and_list].collect{|i| to_node_tree(i, query_parser) }, query_parser)
45
45
  elsif tree.has_key?(:or_list)
46
- OrList.new( tree[:or_list].collect{|i| to_node_tree(i) } )
46
+ OrList.new( tree[:or_list].collect{|i| to_node_tree(i, query_parser) }, query_parser )
47
47
  elsif not_payload = tree[:not_expression]
48
- NotExpression.new( to_node_tree(not_payload) )
48
+ NotExpression.new( to_node_tree(not_payload, query_parser) )
49
49
  elsif tree.has_key?(:mandatory)
50
- MandatoryClause.new( to_node_tree(tree[:mandatory] ))
50
+ MandatoryClause.new( to_node_tree(tree[:mandatory], query_parser))
51
51
  elsif tree.has_key?(:excluded)
52
- ExcludedClause.new( to_node_tree(tree[:excluded]))
52
+ ExcludedClause.new( to_node_tree(tree[:excluded], query_parser))
53
53
  elsif phrase = tree[:phrase]
54
54
  Phrase.new( phrase )
55
55
  elsif tree.has_key?(:token)
@@ -87,7 +87,7 @@ module ParsingNesting::Tree
87
87
 
88
88
  # if it's pure negative, we need to transform
89
89
  if embeddables.find_all{|n| n.kind_of?(ExcludedClause)}.length == embeddables.length
90
- negated = NotExpression.new( List.new(embeddables.collect {|n| n.operand}))
90
+ negated = NotExpression.new( List.new(embeddables.collect {|n| n.operand}, options[:force_deftype] ))
91
91
  solr_params = solr_params.merge(:mm => "1")
92
92
  return negated.to_query(solr_params)
93
93
  else
@@ -103,8 +103,7 @@ module ParsingNesting::Tree
103
103
 
104
104
  end
105
105
  end
106
-
107
-
106
+
108
107
  # Pass in nil 2nd argument if you DON'T want to embed
109
108
  # "!dismax" in your local params. Used by #to_single_query_params
110
109
  def build_local_params(hash = {}, force_deftype = "dismax")
@@ -135,7 +134,9 @@ module ParsingNesting::Tree
135
134
 
136
135
  class List < Node
137
136
  attr_accessor :list
138
- def initialize(aList)
137
+ attr_reader :query_parser
138
+ def initialize(aList, query_parser)
139
+ @query_parser = query_parser
139
140
  self.list = aList
140
141
  end
141
142
  def can_embed?
@@ -152,7 +153,7 @@ module ParsingNesting::Tree
152
153
  (embeddable, gen_full_query) = list.partition {|i| i.respond_to?(:can_embed?) && i.can_embed?}
153
154
 
154
155
  unless embeddable.empty?
155
- queries << build_nested_query(embeddable, solr_params)
156
+ queries << build_nested_query(embeddable, solr_params, force_deftype: query_parser)
156
157
  end
157
158
 
158
159
  gen_full_query.each do |node|
@@ -185,7 +186,7 @@ module ParsingNesting::Tree
185
186
  {
186
187
  #build_local_params(solr_local_params, nil) + list.collect {|n| n.to_embed}.join(" "),
187
188
  :q => build_nested_query(list, solr_local_params, :always_nested => false, :force_deftype => nil),
188
- :defType => "dismax"
189
+ :defType => query_parser
189
190
  }
190
191
  else
191
192
  # Can't be expressed in a single dismax, do it the normal way
@@ -199,7 +200,6 @@ module ParsingNesting::Tree
199
200
  def negate
200
201
  List.new(list.collect {|i| i.negate})
201
202
  end
202
-
203
203
  end
204
204
 
205
205
  class AndList < List
@@ -355,8 +355,6 @@ module ParsingNesting::Tree
355
355
  false
356
356
  end
357
357
 
358
-
359
-
360
358
  def negate
361
359
  operand
362
360
  end
@@ -2,27 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe "Blacklight Advanced Search Form" do
4
4
  before(:all) do
5
- CatalogController.configure_blacklight do |config|
6
- config.default_solr_params = {
7
- :qt => 'search',
8
- :rows => 10
9
- }
10
-
11
- config.add_facet_field 'language_facet'
12
-
13
- config.add_search_field('title') do |field|
14
- field.solr_local_parameters = { :qf => "title_t", :pf => "title_t"}
15
- end
16
-
17
- config.add_search_field('author') do |field|
18
- field.solr_local_parameters = { :qf => "author_t", :pf => "author_t"}
19
- end
20
-
21
- config.add_search_field('dummy_field') do |field|
22
- field.include_in_advanced_search = false
23
- field.solr_local_parameters = { :qf => "author_t", :pf => "author_t"}
24
- end
25
- end
26
5
  AdvancedController.copy_blacklight_config_from(CatalogController)
27
6
  end
28
7
 
@@ -67,7 +46,8 @@ describe "Blacklight Advanced Search Form" do
67
46
 
68
47
  it "scope searches to fields" do
69
48
  fill_in "title", :with => "Medicine"
70
- click_on "Search"
49
+ click_on "advanced_search"
50
+ puts page.current_url
71
51
  page.should have_content "Remove constraint Title: Medicine"
72
52
  page.should have_content "2007020969"
73
53
  end
@@ -8,8 +8,12 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
8
8
  #load '../../lib/parsing_nesting/tree.rb'
9
9
 
10
10
  module SolrQuerySpecHelper
11
- def parse(s)
12
- ParsingNesting::Tree.parse(s)
11
+ def parse(s, arg=nil)
12
+ if arg
13
+ ParsingNesting::Tree.parse(s, arg)
14
+ else
15
+ ParsingNesting::Tree.parse(s)
16
+ end
13
17
  end
14
18
 
15
19
  # yields localparam string, and the actual internal query
@@ -65,15 +69,6 @@ describe "NestingParser" do
65
69
  before do
66
70
  @query = parse("one two three").to_query(:qf => "field field2^5", :pf=>"$pf_title")
67
71
  end
68
-
69
- it "should insist on dismax for nested query" do
70
- query = parse("one two three").to_query(:defType => "field", :qf=>"$qf")
71
- local_param_match(query) do |params, query|
72
- params.should match(/^\!dismax /)
73
- params.should_not match(/field/)
74
- end
75
- end
76
-
77
72
  it "should include LocalParams" do
78
73
  local_param_match(@query) do |params, query|
79
74
  params.should include("pf=$pf_title")
@@ -87,6 +82,25 @@ describe "NestingParser" do
87
82
  end
88
83
  end
89
84
  end
85
+
86
+ describe "with custom qf" do
87
+ it "should insist on dismax for nested query" do
88
+ query = parse("one two three").to_query(:defType => "field", :qf=>"$qf")
89
+ local_param_match(query) do |params, query|
90
+ params.should match(/^\!dismax /)
91
+ params.should_not match(/field/)
92
+ end
93
+ end
94
+
95
+ it "should insist on edismax for nested query" do
96
+ query = parse("one two three", 'edismax').to_query(:defType => "field", :qf=>"$qf")
97
+ local_param_match(query) do |params, query|
98
+ params.should match(/^\!edismax qf=\$qf/)
99
+ params.should_not match(/field/)
100
+ end
101
+ end
102
+ end
103
+
90
104
 
91
105
  describe "with simple mandatory/excluded terms" do
92
106
  before do
data/spec/spec_helper.rb CHANGED
@@ -1,15 +1,10 @@
1
- require 'rubygems'
2
- require 'combustion'
3
-
4
1
  ENV["RAILS_ENV"] = "test"
5
2
 
6
- require 'capybara/rspec'
7
- Combustion.initialize! :active_model, :action_controller
3
+ require 'engine_cart'
4
+ EngineCart.load_application!
8
5
 
9
- class SolrDocument
10
- include Blacklight::Solr::Document
11
- end
12
6
 
7
+ require 'capybara/rspec'
13
8
  require 'rspec/rails'
14
9
  require 'capybara/rails'
15
10
 
@@ -0,0 +1,14 @@
1
+ platforms :jruby do
2
+ gem 'mediashelf-loggable', '>= 0.4.8'
3
+ gem 'therubyrhino'
4
+ end
5
+
6
+ group :test do
7
+ gem 'rspec-rails', '~> 2.13'
8
+ gem 'generator_spec'
9
+ gem 'capybara'
10
+ gem 'simplecov', :platform => :mri_19
11
+ end
12
+
13
+ gem 'jettywrapper', '>= 1.2.0'
14
+
@@ -0,0 +1,25 @@
1
+ class CatalogController < ApplicationController
2
+ include Blacklight::Catalog
3
+
4
+ configure_blacklight do |config|
5
+ config.default_solr_params = {
6
+ :qt => 'search',
7
+ :rows => 10
8
+ }
9
+
10
+ config.add_facet_field 'language_facet'
11
+
12
+ config.add_search_field('title') do |field|
13
+ field.solr_local_parameters = { :qf => "title_t", :pf => "title_t"}
14
+ end
15
+
16
+ config.add_search_field('author') do |field|
17
+ field.solr_local_parameters = { :qf => "author_t", :pf => "author_t"}
18
+ end
19
+
20
+ config.add_search_field('dummy_field') do |field|
21
+ field.include_in_advanced_search = false
22
+ field.solr_local_parameters = { :qf => "author_t", :pf => "author_t"}
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,34 @@
1
+ require 'rails/generators'
2
+
3
+ class TestAppGenerator < Rails::Generators::Base
4
+ source_root File.expand_path("../../../../test_app_templates", __FILE__)
5
+
6
+ def copy_blacklight_test_app_rake_task
7
+ copy_file "lib/tasks/blacklight_test_app.rake"
8
+ end
9
+
10
+ def remove_index
11
+ remove_file "public/index.html"
12
+ remove_file 'app/assets/images/rails.png'
13
+ end
14
+
15
+ def run_blacklight_generator
16
+ say_status("warning", "GENERATING BL", :yellow)
17
+
18
+ generate 'blacklight', '--marc'
19
+ end
20
+
21
+ def run_blacklight_advanced_search
22
+ generate 'blacklight_advanced_search', '--force'
23
+ end
24
+
25
+ def run_test_support_generator
26
+ say_status("warning", "GENERATING test_support", :yellow)
27
+
28
+ generate 'blacklight:test_support'
29
+ end
30
+
31
+ def copy_blacklight_catalog_controller
32
+ copy_file "app/controllers/catalog_controller.rb", :force => true
33
+ end
34
+ end
@@ -0,0 +1,14 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ desc "run the blacklight gem spec"
4
+ gem_home = File.expand_path('../../../../..', __FILE__)
5
+
6
+ namespace :blacklight_test_app do
7
+
8
+ RSpec::Core::RakeTask.new(:spec) do |t|
9
+ t.pattern = gem_home + '/spec/**/*_spec.rb'
10
+ t.rspec_opts = "--colour"
11
+ t.ruby_opts = "-I#{gem_home}/spec"
12
+ end
13
+
14
+ end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight_advanced_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jonathan Rochkind
@@ -9,11 +10,12 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-07-29 00:00:00.000000000 Z
13
+ date: 2014-03-05 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: blacklight
16
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
17
19
  requirements:
18
20
  - - ~>
19
21
  - !ruby/object:Gem::Version
@@ -21,6 +23,7 @@ dependencies:
21
23
  type: :runtime
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ~>
26
29
  - !ruby/object:Gem::Version
@@ -28,113 +31,81 @@ dependencies:
28
31
  - !ruby/object:Gem::Dependency
29
32
  name: parslet
30
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
31
35
  requirements:
32
- - - '>='
36
+ - - ! '>='
33
37
  - !ruby/object:Gem::Version
34
38
  version: '0'
35
39
  type: :runtime
36
40
  prerelease: false
37
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
38
43
  requirements:
39
- - - '>='
44
+ - - ! '>='
40
45
  - !ruby/object:Gem::Version
41
46
  version: '0'
42
47
  - !ruby/object:Gem::Dependency
43
48
  name: rails
44
49
  requirement: !ruby/object:Gem::Requirement
50
+ none: false
45
51
  requirements:
46
- - - '>='
52
+ - - ! '>='
47
53
  - !ruby/object:Gem::Version
48
54
  version: '0'
49
55
  type: :development
50
56
  prerelease: false
51
57
  version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
52
59
  requirements:
53
- - - '>='
54
- - !ruby/object:Gem::Version
55
- version: '0'
56
- - !ruby/object:Gem::Dependency
57
- name: combustion
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - '>='
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - '>='
60
+ - - ! '>='
68
61
  - !ruby/object:Gem::Version
69
62
  version: '0'
70
63
  - !ruby/object:Gem::Dependency
71
64
  name: rspec-rails
72
65
  requirement: !ruby/object:Gem::Requirement
66
+ none: false
73
67
  requirements:
74
- - - '>='
68
+ - - ! '>='
75
69
  - !ruby/object:Gem::Version
76
70
  version: '0'
77
71
  type: :development
78
72
  prerelease: false
79
73
  version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
80
75
  requirements:
81
- - - '>='
76
+ - - ! '>='
82
77
  - !ruby/object:Gem::Version
83
78
  version: '0'
84
79
  - !ruby/object:Gem::Dependency
85
- name: capybara
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - '>='
89
- - !ruby/object:Gem::Version
90
- version: '0'
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - '>='
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
- - !ruby/object:Gem::Dependency
99
- name: sqlite3
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - '>='
103
- - !ruby/object:Gem::Version
104
- version: '0'
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - '>='
110
- - !ruby/object:Gem::Version
111
- version: '0'
112
- - !ruby/object:Gem::Dependency
113
- name: launchy
80
+ name: jettywrapper
114
81
  requirement: !ruby/object:Gem::Requirement
82
+ none: false
115
83
  requirements:
116
- - - '>='
84
+ - - ! '>='
117
85
  - !ruby/object:Gem::Version
118
- version: '0'
86
+ version: 1.4.2
119
87
  type: :development
120
88
  prerelease: false
121
89
  version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
122
91
  requirements:
123
- - - '>='
92
+ - - ! '>='
124
93
  - !ruby/object:Gem::Version
125
- version: '0'
94
+ version: 1.4.2
126
95
  - !ruby/object:Gem::Dependency
127
- name: jettywrapper
96
+ name: engine_cart
128
97
  requirement: !ruby/object:Gem::Requirement
98
+ none: false
129
99
  requirements:
130
- - - '>='
100
+ - - ! '>='
131
101
  - !ruby/object:Gem::Version
132
102
  version: '0'
133
103
  type: :development
134
104
  prerelease: false
135
105
  version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
136
107
  requirements:
137
- - - '>='
108
+ - - ! '>='
138
109
  - !ruby/object:Gem::Version
139
110
  version: '0'
140
111
  description:
@@ -145,6 +116,7 @@ extensions: []
145
116
  extra_rdoc_files: []
146
117
  files:
147
118
  - .gitignore
119
+ - .travis.yml
148
120
  - Gemfile
149
121
  - LICENSE
150
122
  - README.rdoc
@@ -167,8 +139,8 @@ files:
167
139
  - app/views/advanced/index.html.erb
168
140
  - app/views/blacklight_advanced_search/_facet_limit.html.erb
169
141
  - blacklight_advanced_search.gemspec
142
+ - config/jetty.yml
170
143
  - config/routes.rb
171
- - install.rb
172
144
  - lib/blacklight_advanced_search.rb
173
145
  - lib/blacklight_advanced_search/advanced_query_parser.rb
174
146
  - lib/blacklight_advanced_search/catalog_helper_override.rb
@@ -181,22 +153,12 @@ files:
181
153
  - lib/blacklight_advanced_search/version.rb
182
154
  - lib/generators/blacklight_advanced_search/assets_generator.rb
183
155
  - lib/generators/blacklight_advanced_search/blacklight_advanced_search_generator.rb
184
- - lib/generators/blacklight_advanced_search/templates/_search_form.html.erb
185
156
  - lib/generators/blacklight_advanced_search/templates/advanced_controller.rb
186
157
  - lib/parsing_nesting/Readme.rdoc
187
158
  - lib/parsing_nesting/grammar.rb
188
159
  - lib/parsing_nesting/tree.rb
189
- - spec/acceptance/blacklight_advanced_search_form_spec.rb
160
+ - spec/features/blacklight_advanced_search_form_spec.rb
190
161
  - spec/integration/blacklight_stub_spec.rb
191
- - spec/internal/app/controllers/application_controller.rb
192
- - spec/internal/app/models/solr_document.rb
193
- - spec/internal/config/database.yml
194
- - spec/internal/config/routes.rb
195
- - spec/internal/config/solr.yml
196
- - spec/internal/db/combustion_test.sqlite
197
- - spec/internal/db/schema.rb
198
- - spec/internal/log/.gitignore
199
- - spec/internal/public/favicon.ico
200
162
  - spec/lib/filter_parser_spec.rb
201
163
  - spec/parsing_nesting/build_tree_spec.rb
202
164
  - spec/parsing_nesting/consuming_spec.rb
@@ -204,42 +166,43 @@ files:
204
166
  - spec/rcov.opts
205
167
  - spec/spec.opts
206
168
  - spec/spec_helper.rb
207
- - uninstall.rb
169
+ - spec/test_app_templates/Gemfile.extra
170
+ - spec/test_app_templates/app/controllers/catalog_controller.rb
171
+ - spec/test_app_templates/lib/generators/test_app_generator.rb
172
+ - spec/test_app_templates/lib/tasks/blacklight_test_app.rake
208
173
  homepage: http://projectblacklight.org/
209
174
  licenses: []
210
- metadata: {}
211
175
  post_install_message:
212
176
  rdoc_options: []
213
177
  require_paths:
214
178
  - lib
215
179
  required_ruby_version: !ruby/object:Gem::Requirement
180
+ none: false
216
181
  requirements:
217
- - - '>='
182
+ - - ! '>='
218
183
  - !ruby/object:Gem::Version
219
184
  version: '0'
185
+ segments:
186
+ - 0
187
+ hash: 4211602717521532640
220
188
  required_rubygems_version: !ruby/object:Gem::Requirement
189
+ none: false
221
190
  requirements:
222
- - - '>='
191
+ - - ! '>='
223
192
  - !ruby/object:Gem::Version
224
193
  version: '0'
194
+ segments:
195
+ - 0
196
+ hash: 4211602717521532640
225
197
  requirements: []
226
198
  rubyforge_project: blacklight
227
- rubygems_version: 2.0.5
199
+ rubygems_version: 1.8.23
228
200
  signing_key:
229
- specification_version: 4
201
+ specification_version: 3
230
202
  summary: Blacklight Advanced Search plugin
231
203
  test_files:
232
- - spec/acceptance/blacklight_advanced_search_form_spec.rb
204
+ - spec/features/blacklight_advanced_search_form_spec.rb
233
205
  - spec/integration/blacklight_stub_spec.rb
234
- - spec/internal/app/controllers/application_controller.rb
235
- - spec/internal/app/models/solr_document.rb
236
- - spec/internal/config/database.yml
237
- - spec/internal/config/routes.rb
238
- - spec/internal/config/solr.yml
239
- - spec/internal/db/combustion_test.sqlite
240
- - spec/internal/db/schema.rb
241
- - spec/internal/log/.gitignore
242
- - spec/internal/public/favicon.ico
243
206
  - spec/lib/filter_parser_spec.rb
244
207
  - spec/parsing_nesting/build_tree_spec.rb
245
208
  - spec/parsing_nesting/consuming_spec.rb
@@ -247,3 +210,7 @@ test_files:
247
210
  - spec/rcov.opts
248
211
  - spec/spec.opts
249
212
  - spec/spec_helper.rb
213
+ - spec/test_app_templates/Gemfile.extra
214
+ - spec/test_app_templates/app/controllers/catalog_controller.rb
215
+ - spec/test_app_templates/lib/generators/test_app_generator.rb
216
+ - spec/test_app_templates/lib/tasks/blacklight_test_app.rake
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 88c89d9dad653f511cc4e2dea1697197d202629f
4
- data.tar.gz: 696d97de529662c487dd7222977509f5989cd8b4
5
- SHA512:
6
- metadata.gz: 363640e863a043a78538fa6626ce9e526d4d8e0327dabd41217e7229ed9f85daa98037267bb46cde9e21cb40d86fa8e535b83a9986deae4bbbd14a706ad28db3
7
- data.tar.gz: f46ad4a220c5ce81564a96593f938fdf62b3f156d46a04c929e66a999c97737253912d8626f75744e3b3bc685045308eb7708b02a05aced9f165510b34520cd4
data/install.rb DELETED
File without changes
@@ -1,23 +0,0 @@
1
- <%= form_tag search_action_url, :method => :get, :class => 'search-query-form form-inline clearfix' do %>
2
- <%= search_as_hidden_fields(:omit_keys => [:q, :search_field, :qt, :page]).html_safe %>
3
-
4
- <% unless search_fields.empty? %>
5
- <div class="pull-left">
6
- <label for="search_field" class="hide-text"><%= t('blacklight.search.form.search_field.label') %></label>
7
- <%= select_tag(:search_field, options_for_select(search_fields, h(params[:search_field])), :title => t('blacklight.search.form.search_field.title'), :class=>"search_field input-small") %>
8
- <span class="hide-text"><%= t('blacklight.search.form.search_field.post_label') %></span>
9
- </div>
10
- <% end %>
11
- <div class="input-append pull-left">
12
- <label for="q" class="hide-text"><%= t('blacklight.search.form.q') %></label>
13
- <%= text_field_tag :q, params[:q], :placeholder => t('blacklight.search.form.q'), :class => "search_q q", :id => "q"%>
14
- <button type="submit" class="btn btn-primary search-btn" id="search">
15
- <span class="submit-search-text"><%=t('blacklight.search.form.submit')%></span>
16
- <i class="icon-search icon-white"></i>
17
- </button>
18
-
19
- </div>
20
-
21
- <% end %>
22
-
23
- <%= link_to 'More options', params.merge(:controller=>"advanced", :action=>"index") , :class=>"advanced_search"%>
@@ -1,6 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- include Blacklight::Controller
3
-
4
- layout 'blacklight'
5
-
6
- end
@@ -1,3 +0,0 @@
1
- class SolrDocument
2
- include Blacklight::Solr::Document
3
- end
@@ -1,3 +0,0 @@
1
- test:
2
- adapter: sqlite3
3
- database: db/combustion_test.sqlite
@@ -1,6 +0,0 @@
1
- Rails.application.routes.draw do
2
- Blacklight.add_routes(self)
3
-
4
- root :to => "catalog#index"
5
- #
6
- end
@@ -1,18 +0,0 @@
1
- # = jetty_path key
2
- # each environment can have a jetty_path with absolute or relative
3
- # (to app root) path to a jetty/solr install. This is used
4
- # by the rake tasks that start up solr automatically for testing
5
- # and by rake solr:marc:index.
6
- #
7
- # jetty_path is not used by a running Blacklight application
8
- # at all. In general you do NOT need to deploy solr in Jetty, you can deploy it
9
- # however you want.
10
- # jetty_path is only required for rake tasks that need to know
11
- # how to start up solr, generally for automated testing.
12
-
13
- development:
14
- url: http://127.0.0.1:8983/solr
15
- test: &test
16
- url: http://127.0.0.1:8888/solr
17
- cucumber:
18
- <<: *test
@@ -1,53 +0,0 @@
1
- # encoding: UTF-8
2
- # This file is auto-generated from the current state of the database. Instead
3
- # of editing this file, please use the migrations feature of Active Record to
4
- # incrementally modify your database, and then regenerate this schema definition.
5
- #
6
- # Note that this schema.rb definition is the authoritative source for your
7
- # database schema. If you need to create the application database on another
8
- # system, you should be using db:schema:load, not running all the migrations
9
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
- # you'll amass, the slower it'll run and the greater likelihood for issues).
11
- #
12
- # It's strongly recommended to check this file into your version control system.
13
-
14
- ActiveRecord::Schema.define(:version => 20111123152341) do
15
-
16
- create_table "bookmarks", :force => true do |t|
17
- t.integer "user_id", :null => false
18
- t.string "document_id"
19
- t.string "title"
20
- t.datetime "created_at"
21
- t.datetime "updated_at"
22
- t.string "user_type"
23
- end
24
-
25
- create_table "searches", :force => true do |t|
26
- t.text "query_params"
27
- t.integer "user_id"
28
- t.datetime "created_at"
29
- t.datetime "updated_at"
30
- t.string "user_type"
31
- end
32
-
33
- add_index "searches", ["user_id"], :name => "index_searches_on_user_id"
34
-
35
- create_table "users", :force => true do |t|
36
- t.string "email", :default => "", :null => false
37
- t.string "encrypted_password", :limit => 128, :default => "", :null => false
38
- t.string "reset_password_token"
39
- t.datetime "reset_password_sent_at"
40
- t.datetime "remember_created_at"
41
- t.integer "sign_in_count", :default => 0
42
- t.datetime "current_sign_in_at"
43
- t.datetime "last_sign_in_at"
44
- t.string "current_sign_in_ip"
45
- t.string "last_sign_in_ip"
46
- t.datetime "created_at"
47
- t.datetime "updated_at"
48
- end
49
-
50
- add_index "users", ["email"], :name => "index_users_on_email", :unique => true
51
- add_index "users", ["reset_password_token"], :name => "index_users_on_reset_password_token", :unique => true
52
-
53
- end
@@ -1 +0,0 @@
1
- *.log
File without changes
data/uninstall.rb DELETED
@@ -1 +0,0 @@
1
- # Uninstall hook code here