blacklight-spotlight 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/assets/stylesheets/spotlight/_breadcrumbs.scss +2 -4
  4. data/app/builders/spotlight/bootstrap_breadcrumbs_builder.rb +2 -2
  5. data/app/controllers/concerns/spotlight/controller.rb +13 -12
  6. data/app/controllers/spotlight/attachments_controller.rb +1 -1
  7. data/app/controllers/spotlight/custom_search_fields_controller.rb +1 -1
  8. data/app/controllers/spotlight/pages_controller.rb +1 -1
  9. data/app/controllers/spotlight/searches_controller.rb +6 -1
  10. data/app/helpers/spotlight/application_helper.rb +1 -1
  11. data/app/helpers/spotlight/main_app_helpers.rb +1 -1
  12. data/app/mailers/spotlight/confirmation_mailer.rb +2 -1
  13. data/app/models/spotlight/contact_email.rb +1 -1
  14. data/app/models/spotlight/page_configurations.rb +1 -1
  15. data/app/services/spotlight/exhibit_import_export_service.rb +1 -1
  16. data/app/views/spotlight/catalog/admin.html.erb +1 -1
  17. data/app/views/spotlight/confirmation_mailer/confirmation_instructions.html.erb +3 -3
  18. data/app/views/spotlight/exhibits/_import.html.erb +1 -1
  19. data/app/views/spotlight/exhibits/_languages.html.erb +2 -2
  20. data/app/views/spotlight/filters/_form.html.erb +1 -1
  21. data/app/views/spotlight/resources/upload/_form.html.erb +1 -1
  22. data/app/views/spotlight/search_configurations/_document_index_view_types.html.erb +1 -1
  23. data/app/views/spotlight/search_configurations/_facet_metadata.html.erb +4 -2
  24. data/app/views/spotlight/search_configurations/_facets.html.erb +1 -1
  25. data/app/views/spotlight/searches/_form.html.erb +1 -1
  26. data/app/views/spotlight/translations/_browse_categories.html.erb +1 -1
  27. data/app/views/spotlight/translations/_groups.html.erb +1 -1
  28. data/app/views/spotlight/translations/_import.html.erb +1 -1
  29. data/app/views/spotlight/translations/_metadata.html.erb +1 -1
  30. data/app/views/spotlight/translations/_search_fields.html.erb +1 -1
  31. data/config/i18n-tasks.yml +1 -1
  32. data/config/locales/spotlight.en.yml +12 -3
  33. data/lib/generators/spotlight/templates/config/initializers/translation.rb +13 -11
  34. data/lib/spotlight/engine.rb +3 -1
  35. data/lib/spotlight/version.rb +1 -1
  36. data/lib/tasks/spotlight_tasks.rake +20 -5
  37. data/spec/examples.txt +1505 -1496
  38. data/spec/features/edit_search_fields_spec.rb +1 -1
  39. data/spec/features/javascript/blocks/solr_documents_block_spec.rb +2 -0
  40. data/spec/helpers/spotlight/pages_helper_spec.rb +1 -1
  41. data/spec/models/solr_document_spec.rb +3 -3
  42. data/spec/models/spotlight/page_spec.rb +1 -1
  43. data/spec/spec_helper.rb +1 -1
  44. data/spec/test_app_templates/catalog_controller.rb +3 -3
  45. data/spec/views/spotlight/search_configurations/_facet_metadata.html.erb_spec.rb +27 -1
  46. data/spec/views/spotlight/tags/index.html.erb_spec.rb +0 -1
  47. metadata +13 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56b89965ba03cecc57a91706bab8ab9d93033988608116063650459bebd4182c
4
- data.tar.gz: 9600146cf5c35a2d763c144d936ffd7e5bfc27a0f519e356dfba500696cbb8f1
3
+ metadata.gz: c6d38a0f303034a89f2a514617e5bc17b31ad2bb60a2dd865245a1822d5ef27c
4
+ data.tar.gz: 3a1e9f34a1f5bb1486843486dfc9bbb991b0c8504ae69898dbd852828fbb82f9
5
5
  SHA512:
6
- metadata.gz: 40df9ad1c5506195ee5601834532b10e0551e362ad546e6594e88e1f4f00bd59b23b58b788b2c0541de8f907d1cfee87ef5d37131a75a208fa0e903817061a2b
7
- data.tar.gz: 8cb8bc71aa03bd906b2bdea4c51b0783d5c7be866ce0dd6ac25ac34f54c65ae106f271bd84762061c10adb795082c5cc0f358d51fcff24b947e1060b7704707d
6
+ metadata.gz: a9e96166b8445ac6333e6a5fb2647b1688b2007dcdc5907fb81099c5476f6dc49f053a060dbea12c531fb91934ef5f2c3aa6051ae408c1f654155fc6cd7e9816
7
+ data.tar.gz: b72e0ccf54ad7969d11167df4aa8139533d4afd0acab8bfe05cd26f54170ca8b52bfe92575224e216dd1af32c537a0a2c2785f2b691567a0c7b176dc2b73e3ba
data/README.md CHANGED
@@ -9,8 +9,8 @@ Read more about what Spotlight is, our motivations for creating it, and how to i
9
9
 
10
10
  ## Requirements
11
11
 
12
- 1. Ruby (2.5.0 or greater)
13
- 2. Rails (5.1 or greater)
12
+ 1. Ruby (2.7 or greater)
13
+ 2. Rails (5.2 or greater)
14
14
  3. Java (7 or greater) *for Solr*
15
15
  4. ImageMagick (http://www.imagemagick.org/script/index.php) due to [carrierwave](https://github.com/carrierwaveuploader/carrierwave#adding-versions)
16
16
 
@@ -1,8 +1,6 @@
1
- .breadcrumb-item {
2
- .truncated-value {
1
+ .truncated-value {
3
2
  overflow: hidden;
4
3
  text-overflow: ellipsis;
5
4
  white-space: nowrap;
6
- width: 30ex;
7
- }
5
+ max-width: 30ex;
8
6
  }
@@ -25,7 +25,7 @@ module Spotlight
25
25
 
26
26
  html_class = 'active' if current
27
27
 
28
- @context.content_tag(:li, class: "breadcrumb-item #{html_class}") do
28
+ @context.content_tag(:li, class: "breadcrumb-item truncated-value #{html_class}") do
29
29
  @context.link_to_unless(current, element_label(element), compute_path(element), element.options&.except(:current))
30
30
  end
31
31
  end
@@ -33,7 +33,7 @@ module Spotlight
33
33
  private
34
34
 
35
35
  def element_label(element)
36
- @context.content_tag(:span, class: 'truncated-value') { compute_name(element) }
36
+ @context.content_tag(:span) { compute_name(element) }
37
37
  end
38
38
  end
39
39
  end
@@ -67,38 +67,39 @@ module Spotlight
67
67
  end
68
68
  end
69
69
 
70
- def search_action_url(*args)
70
+ def search_action_url(*args, **kwargs)
71
71
  if current_exhibit
72
- exhibit_search_action_url(*args)
72
+ exhibit_search_action_url(*args, **kwargs)
73
73
  else
74
- main_app.search_catalog_url(*args)
74
+ main_app.search_catalog_url(*args, **kwargs)
75
75
  end
76
76
  end
77
77
 
78
- def search_facet_path(*args)
78
+ def search_facet_path(*args, **kwargs)
79
79
  if current_exhibit
80
- exhibit_search_facet_path(*args)
80
+ exhibit_search_facet_path(*args, **kwargs)
81
81
  else
82
- main_app.catalog_facet_url(*args)
82
+ main_app.catalog_facet_url(*args, **kwargs)
83
83
  end
84
84
  end
85
85
 
86
- def exhibit_search_action_url(*args)
86
+ def exhibit_search_action_url(*args, **kwargs)
87
87
  options = args.extract_options!
88
+ options = options.merge(kwargs)
88
89
  only_path = options[:only_path]
89
90
  options.except! :exhibit_id, :only_path
90
91
 
91
92
  if only_path
92
- spotlight.search_exhibit_catalog_path(current_exhibit, *args, options)
93
+ spotlight.search_exhibit_catalog_path(current_exhibit, *args, **options)
93
94
  else
94
- spotlight.search_exhibit_catalog_url(current_exhibit, *args, options)
95
+ spotlight.search_exhibit_catalog_url(current_exhibit, *args, **options)
95
96
  end
96
97
  end
97
98
 
98
- def exhibit_search_facet_path(*args)
99
+ def exhibit_search_facet_path(*args, **kwargs)
99
100
  options = args.extract_options!
100
- options = Blacklight::Parameters.sanitize(params.to_unsafe_h.with_indifferent_access).merge(options).except(:exhibit_id, :only_path)
101
- spotlight.facet_exhibit_catalog_url(current_exhibit, *args, options)
101
+ options = Blacklight::Parameters.sanitize(params.to_unsafe_h.with_indifferent_access).merge(options).merge(kwargs).except(:exhibit_id, :only_path)
102
+ spotlight.facet_exhibit_catalog_url(current_exhibit, *args, **options&.symbolize_keys)
102
103
  end
103
104
  end
104
105
  end
@@ -17,7 +17,7 @@ module Spotlight
17
17
 
18
18
  private
19
19
 
20
- # Only allow a trusted parameter "white list" through.
20
+ # Only allow trusted parameters through.
21
21
  def attachment_params
22
22
  params.require(:attachment).permit(:name, :file, :uid)
23
23
  end
@@ -57,7 +57,7 @@ module Spotlight
57
57
  add_breadcrumb t(:'spotlight.configuration.sidebar.search_configuration'), edit_exhibit_search_configuration_path(@exhibit)
58
58
  end
59
59
 
60
- # Only allow a trusted parameter "white list" through.
60
+ # Only allow trusted parameters through.
61
61
  def custom_search_field_params
62
62
  params.require(:custom_search_field).permit(:slug, :field, :label)
63
63
  end
@@ -189,7 +189,7 @@ module Spotlight
189
189
  add_breadcrumb t(key, title: current_exhibit.title), spotlight.exhibit_root_path(current_exhibit)
190
190
  end
191
191
 
192
- # Only allow a trusted parameter "white list" through.
192
+ # Only allow trusted parameters through.
193
193
  def page_params
194
194
  params.require(controller_name.singularize).permit(allowed_page_params)
195
195
  end
@@ -117,9 +117,14 @@ module Spotlight
117
117
  end
118
118
 
119
119
  def query_params
120
- params.to_unsafe_h.with_indifferent_access.except(:exhibit_id, :search, *blacklisted_search_session_params).reject { |_k, v| v.blank? }
120
+ params.to_unsafe_h.with_indifferent_access.except(:exhibit_id, :search, *excluded_search_session_params).reject { |_k, v| v.blank? }
121
121
  end
122
122
 
123
+ def excluded_search_session_params
124
+ blacklisted_search_session_params
125
+ end
126
+
127
+ # @deprecated
123
128
  def blacklisted_search_session_params
124
129
  %i[id commit counter total search_id page per_page authenticity_token utf8 action controller]
125
130
  end
@@ -162,7 +162,7 @@ module Spotlight
162
162
  if current_exhibit_theme && current_exhibit.theme != 'default'
163
163
  stylesheet_link_tag "#{tag}_#{current_exhibit_theme}"
164
164
  else
165
- Rails.logger.warn "Exhibit theme '#{current_exhibit_theme}' not in white-list of available themes: #{current_exhibit.themes}"
165
+ Rails.logger.warn "Exhibit theme '#{current_exhibit_theme}' not in the list of available themes: #{current_exhibit.themes}"
166
166
  stylesheet_link_tag(tag)
167
167
  end
168
168
  end
@@ -40,7 +40,7 @@ module Spotlight
40
40
  if current_exhibit_theme && current_exhibit&.theme != 'default'
41
41
  stylesheet_link_tag "#{tag}_#{current_exhibit_theme}"
42
42
  else
43
- Rails.logger.warn "Exhibit theme '#{current_exhibit_theme}' not in white-list of available themes: #{current_exhibit&.themes}"
43
+ Rails.logger.warn "Exhibit theme '#{current_exhibit_theme}' not in the list of available themes: #{current_exhibit&.themes}"
44
44
  stylesheet_link_tag(tag)
45
45
  end
46
46
  end
@@ -6,8 +6,9 @@ module Spotlight
6
6
  class ConfirmationMailer < ActionMailer::Base
7
7
  include Devise::Mailers::Helpers
8
8
 
9
- def confirmation_instructions(record, token, opts)
9
+ def confirmation_instructions(record, token, opts, exhibit: nil)
10
10
  @token = token
11
+ @exhibit = exhibit
11
12
  initialize_from_record(record)
12
13
  mail headers_for(:confirmation_instructions, opts)
13
14
  end
@@ -33,7 +33,7 @@ module Spotlight
33
33
  end
34
34
 
35
35
  def send_devise_notification(notification, *args)
36
- notice = notification_mailer.send(notification, self, *args)
36
+ notice = notification_mailer.send(notification, self, *args, exhibit: exhibit)
37
37
  if notice.respond_to? :deliver_now
38
38
  notice.deliver_now
39
39
  else
@@ -57,7 +57,7 @@ module Spotlight
57
57
  end
58
58
 
59
59
  def available_view_configs
60
- available_view_fields.map { |k, v| { key: k, label: v.display_label(k) } }
60
+ available_view_fields.map { |k, v| { key: k, label: v.display_label } }
61
61
  end
62
62
 
63
63
  def attachment_endpoint
@@ -49,7 +49,7 @@ module Spotlight
49
49
  deserialize_featured_image(exhibit, :masthead, hash[:masthead]) if hash[:masthead]
50
50
  deserialize_featured_image(exhibit, :thumbnail, hash[:thumbnail]) if hash[:thumbnail]
51
51
 
52
- exhibit.blacklight_configuration.update hash[:blacklight_configuration].deep_stringify_keys if hash[:blacklight_configuration]
52
+ exhibit.blacklight_configuration.update hash[:blacklight_configuration].with_indifferent_access if hash[:blacklight_configuration]
53
53
 
54
54
  hash[:main_navigations].each do |attr|
55
55
  ar = exhibit.main_navigations.find_or_initialize_by(nav_type: attr[:nav_type])
@@ -10,7 +10,7 @@
10
10
  <%- if @response.empty? %>
11
11
  <%= render "zero_results" %>
12
12
  <%- else %>
13
- <%= render_document_index %>
13
+ <%= render_document_index(@response.documents) %>
14
14
  <%- end %>
15
15
 
16
16
  <%= render 'results_pagination' %>
@@ -1,5 +1,5 @@
1
1
  <p><%= t(:'.welcome', email: @email) %></p>
2
-
3
- <p><%= t(:'.instructions') %></p>
4
-
2
+ <br /><br />
3
+ <%= simple_format t(:'.instructions', exhibit_title: @exhibit&.title) %>
4
+ <br /><br />
5
5
  <p><%= link_to t(:'.confirm'), spotlight.contact_email_confirmation_url(:confirmation_token => @token) %></p>
@@ -4,7 +4,7 @@
4
4
  <p class="instructions"><%= t :'.instructions' %></p>
5
5
  <div class="form-group">
6
6
  <%= file_field_tag :file, class: 'form-control' %>
7
- <%= hidden_field_tag :tab, 'import' %>
7
+ <%= hidden_field_tag :tab, 'import', id: nil %>
8
8
  </div>
9
9
  <div class="form-actions">
10
10
  <div class="primary-actions">
@@ -4,7 +4,7 @@
4
4
  <%= bootstrap_form_for [current_exhibit, Spotlight::Language.new], layout: :horizontal, html: { class: 'row' }, label_col: "col-sm-3", control_col: "col-sm-9" do |f| %>
5
5
  <div class='col-sm-6'>
6
6
  <%= f.select('locale', add_exhibit_language_dropdown_options, prompt: t('.selection_prompt')) %>
7
- <%= hidden_field_tag :tab, 'language' %>
7
+ <%= hidden_field_tag :tab, 'language', id: nil %>
8
8
  </div>
9
9
  <div class='col-sm-6'>
10
10
  <%= f.submit nil, class: 'btn btn-primary' %>
@@ -48,7 +48,7 @@
48
48
  </div>
49
49
  <div class="form-actions">
50
50
  <div class="primary-actions">
51
- <%= hidden_field_tag :tab, 'language' %>
51
+ <%= hidden_field_tag :tab, 'language', id: nil %>
52
52
  <%= f.submit nil, class: 'btn btn-primary' %>
53
53
  </div>
54
54
  </div>
@@ -4,7 +4,7 @@
4
4
 
5
5
  <%= f.text_field :field %>
6
6
  <%= f.text_field :value %>
7
- <%= hidden_field_tag :tab, 'filter' %>
7
+ <%= hidden_field_tag :tab, 'filter', id: nil %>
8
8
 
9
9
  <div class="form-actions">
10
10
  <div class="primary-actions">
@@ -11,7 +11,7 @@
11
11
  <% end %>
12
12
  <div class="form-actions">
13
13
  <div class="primary-actions">
14
- <%= hidden_field_tag :tab, 'upload' %>
14
+ <%= hidden_field_tag :tab, 'upload', id: nil %>
15
15
  <%= cancel_link @resource, :back, class: 'btn-sizing' %>
16
16
  <%= f.submit t('.add_item_and_continue'), name: 'add-and-continue', class: 'btn btn-secondary' %>
17
17
  <%= f.submit t('.add_item'), class: 'btn btn-primary' %>
@@ -1,7 +1,7 @@
1
1
  <%= f.form_group :document_index_view_types, label: {text: t(:'.label'), class: 'pt-0'} do %>
2
2
  <%= f.fields_for :document_index_view_types, @blacklight_configuration.document_index_view_types_selected_hash do |vt| %>
3
3
  <% @blacklight_configuration.default_blacklight_config.view.select { |_k, v| v.if != false }.each do |key, view| %>
4
- <%= vt.check_box key, label: view.display_label(key) %>
4
+ <%= vt.check_box key, label: view.display_label %>
5
5
  <% end %>
6
6
  <% end %>
7
7
  <% end %>
@@ -1,8 +1,10 @@
1
1
  <%= content_tag :span, t(:'.document_count', count: metadata[:document_count]) %>
2
2
  <% if metadata[:document_count] > 0 %>
3
3
 
4
- <% if metadata[:value_count] > Spotlight::FieldMetadata::FACET_LIMIT %>
5
- <%= content_tag :span, t(:'.too_many_values_count', count: Spotlight::FieldMetadata::FACET_LIMIT) %>
4
+ <% limit = field_config&.limit || Spotlight::FieldMetadata::FACET_LIMIT %>
5
+ <% limit = blacklight_config.default_facet_limit if limit == true %>
6
+ <% if metadata[:value_count] >= limit %>
7
+ <%= content_tag :span, t(:'.too_many_values_count', count: limit) %>
6
8
  <% else %>
7
9
  <%= content_tag :span, t(:'.value_count', count: metadata[:value_count]) %>
8
10
  <% end %>
@@ -16,7 +16,7 @@
16
16
  </div>
17
17
  <% when :additional_options %>
18
18
  <div class="facet-metadata mr-3">
19
- <%= render partial: 'facet_metadata', locals: { metadata: metadata } %>
19
+ <%= render partial: 'facet_metadata', locals: { blacklight_config: @blacklight_configuration.blacklight_config, field_config: config, metadata: metadata } %>
20
20
  </div>
21
21
  <% else %>
22
22
  <% end %>
@@ -40,7 +40,7 @@
40
40
  <% end %>
41
41
  <%= f.form_group label: { text: t(:".default_index_view_type"), class: 'pt-0' } do %>
42
42
  <% available_document_index_views.each do |key, view| %>
43
- <%= f.radio_button :default_index_view_type, key, label: view.display_label(key) %>
43
+ <%= f.radio_button :default_index_view_type, key, label: view.display_label %>
44
44
  <% end %>
45
45
  <% end %>
46
46
  <% unless @search.query_params.blank? %>
@@ -2,7 +2,7 @@
2
2
  <%= bootstrap_form_for current_exhibit, url: spotlight.exhibit_translations_path(current_exhibit), layout: :horizontal do |f| %>
3
3
  <% # Add hidden fields for the language and tab so the redirect knows how to come back here %>
4
4
  <%= hidden_field_tag :language, @language %>
5
- <%= hidden_field_tag :tab, 'browse' %>
5
+ <%= hidden_field_tag :tab, 'browse', id: nil %>
6
6
  <div class="row">
7
7
  <div class="col-4 text-right">
8
8
  <span class="browse-translations-header">
@@ -2,7 +2,7 @@
2
2
  <%= bootstrap_form_for current_exhibit, url: spotlight.exhibit_translations_path(current_exhibit), layout: :horizontal do |f| %>
3
3
  <% # Add hidden fields for the language and tab so the redirect knows how to come back here %>
4
4
  <%= hidden_field_tag :language, @language %>
5
- <%= hidden_field_tag :tab, 'groups' %>
5
+ <%= hidden_field_tag :tab, 'groups', id: nil %>
6
6
 
7
7
  <% current_exhibit.groups.each do |group| %>
8
8
  <% title_translation = Translation.find_or_initialize_by(exhibit: current_exhibit, key: "#{group.slug}.title", locale: @language) %>
@@ -8,7 +8,7 @@
8
8
 
9
9
  <div class="input-group col px-0">
10
10
  <%= file_field_tag :file, class: 'form-control' %>
11
- <%= hidden_field_tag :tab, 'import' %>
11
+ <%= hidden_field_tag :tab, 'import', id: nil %>
12
12
  <div class="input-group-append">
13
13
  <%= f.submit t(:'.import_submit'), class: 'btn btn-primary' %>
14
14
  </div>
@@ -2,7 +2,7 @@
2
2
  <%= bootstrap_form_for current_exhibit, url: spotlight.exhibit_translations_path(current_exhibit), layout: :horizontal do |f| %>
3
3
  <% # Add a hidden field for the language so the redirect knows how to come back here %>
4
4
  <%= hidden_field_tag :language, @language %>
5
- <%= hidden_field_tag :tab, 'metadata' %>
5
+ <%= hidden_field_tag :tab, 'metadata', id: nil %>
6
6
 
7
7
  <% non_custom_metadata_fields.each do |key, field_config| %>
8
8
  <% translation = Translation.find_or_initialize_by(exhibit: current_exhibit, key: "blacklight.search.fields.#{key}", locale: @language) %>
@@ -2,7 +2,7 @@
2
2
  <%= bootstrap_form_for current_exhibit, url: spotlight.exhibit_translations_path(current_exhibit), layout: :horizontal do |f| %>
3
3
  <% # Add hidden fields for the language and tab so the redirect knows how to come back here %>
4
4
  <%= hidden_field_tag :language, @language %>
5
- <%= hidden_field_tag :tab, 'search_fields' %>
5
+ <%= hidden_field_tag :tab, 'search_fields', id: nil %>
6
6
 
7
7
  <div class='translation-field-based-search-fields'>
8
8
  <h2 class='translation-subheading'>
@@ -77,7 +77,7 @@ ignore_unused:
77
77
  # TODO Look into these as its unclear
78
78
  - activerecord.models.spotlight.page
79
79
  #- # perhaps removed here? https://github.com/projectblacklight/spotlight/commit/d4fdf04565ab3d648f0cb2a1238d84f262509fcd
80
- - devise.mailer.invitation_instructions.subject # Does this even work? https://github.com/projectblacklight/spotlight/blob/master/app/mailers/spotlight/invitation_mailer.rb#L16
80
+ - devise.mailer.*.* # Does this even work? https://github.com/projectblacklight/spotlight/blob/master/app/mailers/spotlight/invitation_mailer.rb#L16
81
81
  - helpers.submit.solr_document.{batch_error,batch_updated,create,created,destroyed,submit,update,updated} # Do we need this?
82
82
  - helpers.submit.user.{batch_error,batch_updated,create,created,destroyed,submit,update,updated} # Do we need this?
83
83
  - helpers.action.destroy # no idea here
@@ -27,6 +27,10 @@ en:
27
27
  spotlight/group: Browse group
28
28
  spotlight/search: Browse category
29
29
  cancel: Cancel
30
+ devise:
31
+ mailer:
32
+ confirmation_instructions:
33
+ contact_email_subject: Exhibit feedback confirmation
30
34
  drag: Drag
31
35
  helpers:
32
36
  action:
@@ -408,9 +412,14 @@ en:
408
412
  users: Users
409
413
  confirmation_mailer:
410
414
  confirmation_instructions:
411
- confirm: Confirm my account
412
- instructions: 'You can confirm your account email through the link below:'
413
- welcome: Welcome %{email}!
415
+ confirm: Yes, add me to the list of feedback form recipients
416
+ instructions: |
417
+ An administrator of the %{exhibit_title} exhibit has added your email address to the list of feedback form recipients.
418
+ This will enable you to receive any feedback submitted through the feedback form by visitors to the %{exhibit_title} exhibit.
419
+
420
+ To receive feedback from this exhibit, confirm your decision through the link below. If you do not want to
421
+ receive feedback form submissions from this exhibit, you can ignore this email.
422
+ welcome: Hello %{email},
414
423
  contact_form:
415
424
  subject: "%{application_name} exhibit feedback"
416
425
  contacts:
@@ -5,17 +5,19 @@ require 'i18n/backend/fallbacks'
5
5
 
6
6
  Translation = I18n::Backend::ActiveRecord::Translation
7
7
 
8
- if Translation.table_exists?
9
- ##
10
- # Sets up the new Spotlight Translation backend, backed by ActiveRecord. To
11
- # turn on the ActiveRecord backend, uncomment the following lines.
8
+ ActiveSupport::Reloader.to_prepare do
9
+ if Translation.table_exists?
10
+ ##
11
+ # Sets up the new Spotlight Translation backend, backed by ActiveRecord. To
12
+ # turn on the ActiveRecord backend, uncomment the following lines.
12
13
 
13
- I18n.backend = I18n::Backend::ActiveRecord.new
14
- I18n::Backend::ActiveRecord.include I18n::Backend::Memoize
15
- Translation.include Spotlight::CustomTranslationExtension
16
- I18n::Backend::Simple.include I18n::Backend::Memoize
17
- I18n::Backend::Simple.include I18n::Backend::Pluralization
18
- I18n::Backend::Simple.include I18n::Backend::Fallbacks
14
+ I18n.backend = I18n::Backend::ActiveRecord.new
15
+ I18n::Backend::ActiveRecord.include I18n::Backend::Memoize
16
+ Translation.include Spotlight::CustomTranslationExtension
17
+ I18n::Backend::Simple.include I18n::Backend::Memoize
18
+ I18n::Backend::Simple.include I18n::Backend::Pluralization
19
+ I18n::Backend::Simple.include I18n::Backend::Fallbacks
19
20
 
20
- I18n.backend = I18n::Backend::Chain.new(I18n.backend, I18n::Backend::Simple.new)
21
+ I18n.backend = I18n::Backend::Chain.new(I18n.backend, I18n::Backend::Simple.new)
22
+ end
21
23
  end
@@ -179,7 +179,9 @@ module Spotlight
179
179
  config.analytics_provider = nil
180
180
 
181
181
  initializer 'analytics.initialize' do
182
- Spotlight::Engine.config.analytics_provider = Spotlight::Analytics::Ga
182
+ ActiveSupport::Reloader.to_prepare do
183
+ Spotlight::Engine.config.analytics_provider = Spotlight::Analytics::Ga
184
+ end
183
185
  end
184
186
 
185
187
  # If you use Google Analytics, you need to wire your site to report to a Google Analytics property.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spotlight
4
- VERSION = '3.2.0'
4
+ VERSION = '3.3.0'
5
5
  end
@@ -18,11 +18,8 @@ namespace :spotlight do
18
18
 
19
19
  desc 'Create a new exhibit'
20
20
  task exhibit: :environment do
21
- print 'Exhibit title: '
22
- title = $stdin.gets.chomp
23
-
24
- print 'Exhibit URL slug: '
25
- slug = @stdin.gets.chomp
21
+ title = prompt_for_title
22
+ slug = prompt_for_slug
26
23
 
27
24
  exhibit = Spotlight::Exhibit.create!({ title: title, slug: slug })
28
25
 
@@ -91,11 +88,15 @@ namespace :spotlight do
91
88
  end
92
89
 
93
90
  def prompt_for_email
91
+ return ENV['SPOTLIGHT_USER_EMAIL'] if ENV['SPOTLIGHT_USER_EMAIL']
92
+
94
93
  print 'Email: '
95
94
  $stdin.gets.chomp
96
95
  end
97
96
 
98
97
  def prompt_for_password
98
+ return ENV['SPOTLIGHT_USER_PASSWORD'] if ENV['SPOTLIGHT_USER_PASSWORD']
99
+
99
100
  begin
100
101
  system 'stty -echo'
101
102
  print 'Password (must be 8+ characters): '
@@ -107,6 +108,20 @@ namespace :spotlight do
107
108
  password
108
109
  end
109
110
 
111
+ def prompt_for_title
112
+ return ENV['SPOTLIGHT_EXHIBIT_TITLE'] if ENV['SPOTLIGHT_EXHIBIT_TITLE']
113
+
114
+ print 'Exhibit title: '
115
+ $stdin.gets.chomp
116
+ end
117
+
118
+ def prompt_for_slug
119
+ return ENV['SPOTLIGHT_EXHIBIT_SLUG'] if ENV['SPOTLIGHT_EXHIBIT_SLUG']
120
+
121
+ print 'Exhibit URL slug: '
122
+ $stdin.gets.chomp
123
+ end
124
+
110
125
  namespace :check do
111
126
  desc 'Check the Solr connection and controller configuration'
112
127
  task :solr, [:model_name] => ['blacklight:check:solr', :environment] do |_, _args|