blacklight-spotlight 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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|