blacklight-spotlight 5.2.1 → 5.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/app/assets/javascripts/spotlight/spotlight.esm.js +34 -13
- data/app/assets/javascripts/spotlight/spotlight.esm.js.map +1 -1
- data/app/assets/javascripts/spotlight/spotlight.js +34 -13
- data/app/assets/javascripts/spotlight/spotlight.js.map +1 -1
- data/app/assets/stylesheets/spotlight/_browse.scss +1 -1
- data/app/assets/stylesheets/spotlight/_collapse_toggle.scss +2 -2
- data/app/assets/stylesheets/spotlight/_curation.scss +3 -25
- data/app/assets/stylesheets/spotlight/_header.scss +0 -4
- data/app/assets/stylesheets/spotlight/_multi_up_item_grid.scss +0 -30
- data/app/assets/stylesheets/spotlight/_nestable.scss +0 -3
- data/app/assets/stylesheets/spotlight/_report_a_problem.scss +1 -1
- data/app/assets/stylesheets/spotlight/_sir-trevor_overrides.scss +4 -0
- data/app/assets/stylesheets/spotlight/_slideshow_block.scss +1 -1
- data/app/controllers/spotlight/exhibits_controller.rb +5 -1
- data/app/controllers/spotlight/featured_images_controller.rb +6 -0
- data/app/controllers/spotlight/metadata_configurations_controller.rb +1 -1
- data/app/controllers/spotlight/resources_controller.rb +1 -1
- data/app/helpers/spotlight/application_helper.rb +1 -13
- data/app/helpers/spotlight/crop_helper.rb +1 -0
- data/app/helpers/spotlight/exhibit_theme_helper.rb +20 -0
- data/app/helpers/spotlight/main_app_helpers.rb +1 -13
- data/app/javascript/spotlight/admin/blocks/search_result_block.js +0 -2
- data/app/javascript/spotlight/admin/blocks/solr_documents_block.js +0 -2
- data/app/javascript/spotlight/admin/blocks/solr_documents_carousel_block.js +0 -2
- data/app/javascript/spotlight/admin/blocks/solr_documents_embed_block.js +0 -2
- data/app/javascript/spotlight/admin/blocks/solr_documents_features_block.js +0 -2
- data/app/javascript/spotlight/admin/blocks/solr_documents_grid_block.js +0 -2
- data/app/javascript/spotlight/admin/crop.js +34 -1
- data/app/models/spotlight/exhibit.rb +1 -1
- data/app/models/spotlight/featured_image.rb +0 -7
- data/app/models/spotlight/resource.rb +7 -5
- data/app/models/spotlight/resources/iiif_manifest_v3.rb +2 -2
- data/app/services/spotlight/clone_translated_page_from_locale.rb +1 -1
- data/config/importmap.rb +4 -4
- data/config/locales/spotlight.en.yml +8 -0
- data/lib/spotlight/engine.rb +0 -2
- data/lib/spotlight/version.rb +1 -1
- data/spec/support/features/test_features_helpers.rb +3 -2
- data/spec/support/views/test_view_helpers.rb +1 -0
- metadata +8 -9
- data/app/assets/config/spotlight/manifest.js +0 -3
- data/app/assets/javascripts/spotlight/application.js +0 -7
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
.btn.collapse-toggle {
|
|
4
4
|
& + .collapse-chevron {
|
|
5
5
|
display: inline-block;
|
|
6
|
-
text-align:
|
|
6
|
+
text-align: end;
|
|
7
7
|
transform: rotate(90deg);
|
|
8
8
|
width: 16px;
|
|
9
9
|
}
|
|
10
10
|
&.collapsed + .collapse-chevron {
|
|
11
|
-
text-align:
|
|
11
|
+
text-align: start;
|
|
12
12
|
transform: none;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
display: none;
|
|
28
28
|
}
|
|
29
29
|
[data-expanded-add-button] {
|
|
30
|
-
text-align:
|
|
30
|
+
text-align: start;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -80,28 +80,6 @@
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
.card.page-admin {
|
|
85
|
-
&:hover {
|
|
86
|
-
@include panel-hover-highlighting;
|
|
87
|
-
}
|
|
88
|
-
.card-title {
|
|
89
|
-
@extend .mb-0;
|
|
90
|
-
@extend .py-2;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.page-links, .contact-links {
|
|
94
|
-
text-align: right;
|
|
95
|
-
a {
|
|
96
|
-
padding: 0 2px;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
.main {
|
|
100
|
-
width: 99%;
|
|
101
|
-
vertical-align: text-top;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
83
|
.contacts_admin .card-header.page .main {
|
|
106
84
|
width: 95%;
|
|
107
85
|
}
|
|
@@ -180,7 +158,7 @@ h1,h2,h3,h4,h5,h6 {
|
|
|
180
158
|
.facet-metadata {
|
|
181
159
|
@extend .text-muted;
|
|
182
160
|
font-size: $font-size-base;
|
|
183
|
-
text-align:
|
|
161
|
+
text-align: end;
|
|
184
162
|
}
|
|
185
163
|
|
|
186
164
|
table#exhibit-specific-fields {
|
|
@@ -210,7 +188,7 @@ table.users {
|
|
|
210
188
|
|
|
211
189
|
table.tags {
|
|
212
190
|
td:nth-child(2), th:nth-child(2) {
|
|
213
|
-
text-align:
|
|
191
|
+
text-align: end;
|
|
214
192
|
}
|
|
215
193
|
td:nth-child(3), th:nth-child(3) {
|
|
216
194
|
text-align: center;
|
|
@@ -1,33 +1,3 @@
|
|
|
1
|
-
.item-grid-admin {
|
|
2
|
-
.field {
|
|
3
|
-
input[type='text'] {
|
|
4
|
-
width: 89%;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.twitter-typeahead {
|
|
8
|
-
margin-bottom: 2*$spacer;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
.field-select {
|
|
12
|
-
margin-top: 2*$spacer;
|
|
13
|
-
select {
|
|
14
|
-
display: inline;
|
|
15
|
-
width: auto;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
.dd3-item {
|
|
19
|
-
margin-bottom: 2*$spacer;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
// Hide the secondary caption field
|
|
23
|
-
// for the Features block so we can
|
|
24
|
-
// re-use the rest from the generic
|
|
25
|
-
// multi-up item grid.
|
|
26
|
-
[data-type='item-features'] {
|
|
27
|
-
.secondary-caption {
|
|
28
|
-
display: none;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
1
|
.spotlight-flexbox {
|
|
32
2
|
display: -webkit-box;
|
|
33
3
|
display: -moz-box;
|
|
@@ -54,6 +54,7 @@ module Spotlight
|
|
|
54
54
|
build_initial_exhibit_contact_emails
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
+
# rubocop:disable Metrics/AbcSize
|
|
57
58
|
def create
|
|
58
59
|
@exhibit.attributes = exhibit_params
|
|
59
60
|
|
|
@@ -61,9 +62,12 @@ module Spotlight
|
|
|
61
62
|
@exhibit.roles.create user: current_user, role: 'admin' if current_user
|
|
62
63
|
redirect_to spotlight.exhibit_dashboard_path(@exhibit), notice: t(:'helpers.submit.exhibit.created', model: @exhibit.class.model_name.human.downcase)
|
|
63
64
|
else
|
|
64
|
-
|
|
65
|
+
flash.now[:alert] = t('spotlight.exhibits.new_exhibit_form.errors.slug_taken') if @exhibit.errors[:slug].present?
|
|
66
|
+
|
|
67
|
+
render :new, status: :unprocessable_entity
|
|
65
68
|
end
|
|
66
69
|
end
|
|
70
|
+
# rubocop:enable Metrics/AbcSize
|
|
67
71
|
|
|
68
72
|
def update
|
|
69
73
|
if @exhibit.update(exhibit_params)
|
|
@@ -5,6 +5,8 @@ module Spotlight
|
|
|
5
5
|
class FeaturedImagesController < Spotlight::ApplicationController
|
|
6
6
|
load_and_authorize_resource instance_name: :featured_image, class: 'Spotlight::TemporaryImage'
|
|
7
7
|
|
|
8
|
+
rescue_from CarrierWave::UploadError, with: :handle_upload_error
|
|
9
|
+
|
|
8
10
|
def create
|
|
9
11
|
if @featured_image.save && @featured_image.file_present?
|
|
10
12
|
render json: { tilesource:, id: @featured_image.id }
|
|
@@ -15,6 +17,10 @@ module Spotlight
|
|
|
15
17
|
|
|
16
18
|
private
|
|
17
19
|
|
|
20
|
+
def handle_upload_error(exception)
|
|
21
|
+
render json: { error: [exception.message] }, status: :unprocessable_entity
|
|
22
|
+
end
|
|
23
|
+
|
|
18
24
|
def tilesource
|
|
19
25
|
Spotlight::Engine.config.iiif_service.info_url(@featured_image, request.host)
|
|
20
26
|
end
|
|
@@ -44,7 +44,7 @@ module Spotlight
|
|
|
44
44
|
views = @blacklight_configuration.default_blacklight_config.view.keys | [:show]
|
|
45
45
|
|
|
46
46
|
@blacklight_configuration.blacklight_config.index_fields.keys.index_with do |_element|
|
|
47
|
-
|
|
47
|
+
%i[enabled label weight] | views
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
end
|
|
@@ -55,7 +55,7 @@ module Spotlight
|
|
|
55
55
|
|
|
56
56
|
def resource_params
|
|
57
57
|
params.require(:resource).tap { |x| x['type'] ||= resource_class.name }
|
|
58
|
-
|
|
58
|
+
.permit(:url, :type, *resource_class.stored_attributes[:data], data: params[:resource][:data].try(:keys))
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
end
|
|
@@ -5,6 +5,7 @@ module Spotlight
|
|
|
5
5
|
# General spotlight application helpers
|
|
6
6
|
module ApplicationHelper
|
|
7
7
|
include CrudLinkHelpers
|
|
8
|
+
include ExhibitThemeHelper
|
|
8
9
|
include TitleHelper
|
|
9
10
|
include MetaHelper
|
|
10
11
|
include CropHelper
|
|
@@ -151,19 +152,6 @@ module Spotlight
|
|
|
151
152
|
current_exhibit.blacklight_configuration.default_blacklight_config.view.to_h.reject { |_k, v| v.if == false }
|
|
152
153
|
end
|
|
153
154
|
|
|
154
|
-
def exhibit_stylesheet_link_tag(tag)
|
|
155
|
-
if current_exhibit_theme && current_exhibit.theme != 'default'
|
|
156
|
-
stylesheet_link_tag "#{tag}_#{current_exhibit_theme}"
|
|
157
|
-
else
|
|
158
|
-
Rails.logger.warn "Exhibit theme '#{current_exhibit_theme}' not in the list of available themes: #{current_exhibit.themes}"
|
|
159
|
-
stylesheet_link_tag(tag)
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
def current_exhibit_theme
|
|
164
|
-
current_exhibit.theme if current_exhibit && current_exhibit.theme.present? && current_exhibit.themes.include?(current_exhibit.theme)
|
|
165
|
-
end
|
|
166
|
-
|
|
167
155
|
def render_search_bar
|
|
168
156
|
return super if defined?(super)
|
|
169
157
|
|
|
@@ -27,6 +27,7 @@ module Spotlight
|
|
|
27
27
|
def iiif_upload_tag(f)
|
|
28
28
|
content_tag(:div) do
|
|
29
29
|
concat f.file_field_without_bootstrap :file, name: 'featured_image[image]', data: { endpoint: polymorphic_path(f.object.model_name.route_key) }
|
|
30
|
+
concat content_tag(:div, '', class: 'featured-image invalid-feedback')
|
|
30
31
|
concat f.hidden_field :upload_id
|
|
31
32
|
end
|
|
32
33
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spotlight
|
|
4
|
+
##
|
|
5
|
+
# Exhibit theme/stylesheet helper
|
|
6
|
+
module ExhibitThemeHelper
|
|
7
|
+
def exhibit_stylesheet_link_tag(tag)
|
|
8
|
+
if current_exhibit_theme && current_exhibit&.theme != 'default'
|
|
9
|
+
stylesheet_link_tag "#{tag}_#{current_exhibit_theme}"
|
|
10
|
+
else
|
|
11
|
+
Rails.logger.debug { "Exhibit theme '#{current_exhibit_theme}' not in the list of available themes: #{current_exhibit&.themes}" }
|
|
12
|
+
stylesheet_link_tag(tag)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def current_exhibit_theme
|
|
17
|
+
current_exhibit.theme if current_exhibit && current_exhibit.theme.present? && current_exhibit.themes.include?(current_exhibit.theme)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -5,6 +5,7 @@ module Spotlight
|
|
|
5
5
|
# Helpers that are injected into the main application (because they used in layouts)
|
|
6
6
|
module MainAppHelpers
|
|
7
7
|
include Blacklight::DocumentHelperBehavior
|
|
8
|
+
include Spotlight::ExhibitThemeHelper
|
|
8
9
|
include Spotlight::NavbarHelper
|
|
9
10
|
include Spotlight::MastheadHelper
|
|
10
11
|
|
|
@@ -37,18 +38,5 @@ module Spotlight
|
|
|
37
38
|
blacklight_config.view_config(action_name: :show).document_presenter_class
|
|
38
39
|
end
|
|
39
40
|
end
|
|
40
|
-
|
|
41
|
-
def exhibit_stylesheet_link_tag(tag)
|
|
42
|
-
if current_exhibit_theme && current_exhibit&.theme != 'default'
|
|
43
|
-
stylesheet_link_tag "#{tag}_#{current_exhibit_theme}"
|
|
44
|
-
else
|
|
45
|
-
Rails.logger.debug { "Exhibit theme '#{current_exhibit_theme}' not in the list of available themes: #{current_exhibit&.themes}" }
|
|
46
|
-
stylesheet_link_tag(tag)
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def current_exhibit_theme
|
|
51
|
-
current_exhibit.theme if current_exhibit && current_exhibit.theme.present? && current_exhibit.themes.include?(current_exhibit.theme)
|
|
52
|
-
end
|
|
53
41
|
end
|
|
54
42
|
end
|
|
@@ -285,7 +285,7 @@ export default class Crop {
|
|
|
285
285
|
url: url, //Server script to process data
|
|
286
286
|
type: 'POST',
|
|
287
287
|
success: (data, stat, xhr) => this.successHandler(data, stat, xhr),
|
|
288
|
-
|
|
288
|
+
error: (xhr, stat, error) => this.errorHandler(xhr, stat, error),
|
|
289
289
|
// Form data
|
|
290
290
|
data: this.getData(),
|
|
291
291
|
headers: {
|
|
@@ -301,6 +301,39 @@ export default class Crop {
|
|
|
301
301
|
successHandler(data, stat, xhr) {
|
|
302
302
|
this.setIiifFields({ tilesource: data.tilesource });
|
|
303
303
|
this.setUploadId(data.id);
|
|
304
|
+
this.clearUploadErrors()
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
errorHandler(xhr, stat, error) {
|
|
308
|
+
let errorMessage = "Upload failed"
|
|
309
|
+
if (xhr.responseJSON) {
|
|
310
|
+
if (xhr.responseJSON.errors) {
|
|
311
|
+
errorMessage = xhr.responseJSON.errors.join(', ')
|
|
312
|
+
} else if (xhr.responseJSON.error) {
|
|
313
|
+
errorMessage = xhr.responseJSON.error
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
this.showUploadError(errorMessage)
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
getUploadErrorsElement() {
|
|
320
|
+
return this.cropTool.find(".featured-image.invalid-feedback")
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
showUploadError(errorMessage) {
|
|
324
|
+
const errorsElement = this.getUploadErrorsElement()
|
|
325
|
+
if (errorsElement) {
|
|
326
|
+
errorsElement.text(errorMessage).show()
|
|
327
|
+
} else {
|
|
328
|
+
console.error("uploadFile", error, errorMessage)
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
clearUploadErrors() {
|
|
333
|
+
const errorsElement = this.getUploadErrorsElement()
|
|
334
|
+
if (errorsElement) {
|
|
335
|
+
errorsElement.text("").hide()
|
|
336
|
+
}
|
|
304
337
|
}
|
|
305
338
|
|
|
306
339
|
setUploadId(id) {
|
|
@@ -28,7 +28,7 @@ module Spotlight
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
validates :title, presence: true, if: -> { I18n.locale == I18n.default_locale }
|
|
31
|
-
validates :slug, uniqueness:
|
|
31
|
+
validates :slug, uniqueness: { message: I18n.t('spotlight.exhibits.new_exhibit_form.errors.slug_taken') }
|
|
32
32
|
validates :theme, inclusion: { in: Spotlight::Engine.config.exhibit_themes }, allow_blank: true
|
|
33
33
|
|
|
34
34
|
after_validation :move_friendly_id_error_to_slug
|
|
@@ -24,13 +24,6 @@ module Spotlight
|
|
|
24
24
|
Spotlight::TemporaryImage.find(upload_id).delete if upload_id.present?
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
after_save do
|
|
28
|
-
if image.present?
|
|
29
|
-
image.cache! unless image.cached?
|
|
30
|
-
image.store!
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
27
|
after_save :bust_containing_resource_caches
|
|
35
28
|
|
|
36
29
|
attr_accessor :upload_id
|
|
@@ -7,11 +7,13 @@ module Spotlight
|
|
|
7
7
|
class_attribute :indexing_pipeline, default: (Spotlight::Etl::Pipeline.new do |pipeline|
|
|
8
8
|
pipeline.sources = [Spotlight::Etl::Sources::IdentitySource]
|
|
9
9
|
pipeline.transforms = [
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
{
|
|
11
|
+
reject_blank: Spotlight::Etl::Transforms::RejectBlank,
|
|
12
|
+
reject_missing: Spotlight::Etl::Transforms::RejectMissingUniqueId,
|
|
13
|
+
apply_exhibit_metadata: Spotlight::Etl::Transforms::ApplyExhibitMetadata,
|
|
14
|
+
apply_application_metadata: Spotlight::Etl::Transforms::ApplyApplicationMetadata,
|
|
15
|
+
apply_pipeline_metadata: Spotlight::Etl::Transforms::ApplyPipelineMetadata
|
|
16
|
+
}
|
|
15
17
|
]
|
|
16
18
|
pipeline.loaders = [Spotlight::Etl::SolrLoader]
|
|
17
19
|
end)
|
|
@@ -28,8 +28,8 @@ module Spotlight
|
|
|
28
28
|
@resources ||=
|
|
29
29
|
canvases
|
|
30
30
|
.flat_map(&:items).select { |item| item.type == 'AnnotationPage' }
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
.flat_map(&:items).select { |item| item.motivation == 'painting' }
|
|
32
|
+
.flat_map(&:body)
|
|
33
33
|
.flat_map(&:service)
|
|
34
34
|
end
|
|
35
35
|
|
data/config/importmap.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
pin_all_from File.expand_path('../app/javascript/spotlight', __dir__), under: 'spotlight'
|
|
4
4
|
pin_all_from File.expand_path('../vendor/assets/javascripts', __dir__)
|
|
5
5
|
|
|
6
|
-
pin 'clipboard', to: 'https://cdn.
|
|
7
|
-
pin 'sir-trevor', to: 'https://cdn.
|
|
8
|
-
pin 'sortablejs', to: 'https://cdn.
|
|
9
|
-
pin '@github/auto-complete-element', to: 'https://cdn.
|
|
6
|
+
pin 'clipboard', to: 'https://cdn.jsdelivr.net/npm/clipboard@2.0.11/+esm'
|
|
7
|
+
pin 'sir-trevor', to: 'https://cdn.jsdelivr.net/npm/sir-trevor@0.8.2/+esm'
|
|
8
|
+
pin 'sortablejs', to: 'https://cdn.jsdelivr.net/npm/sortablejs@^1.15.3/+esm'
|
|
9
|
+
pin '@github/auto-complete-element', to: 'https://cdn.jsdelivr.net/npm/@github/auto-complete-element@3.8.0/+esm'
|
|
@@ -23,6 +23,12 @@ en:
|
|
|
23
23
|
spotlight/page:
|
|
24
24
|
display_sidebar?: Show sidebar
|
|
25
25
|
display_title: Show title
|
|
26
|
+
errors:
|
|
27
|
+
models:
|
|
28
|
+
spotlight/exhibit:
|
|
29
|
+
attributes:
|
|
30
|
+
slug:
|
|
31
|
+
taken: Slug is already taken.
|
|
26
32
|
help:
|
|
27
33
|
spotlight/exhibit:
|
|
28
34
|
tag_list: Enter tags separated by commas.
|
|
@@ -616,6 +622,8 @@ en:
|
|
|
616
622
|
new:
|
|
617
623
|
page_title: Create a new exhibit
|
|
618
624
|
new_exhibit_form:
|
|
625
|
+
errors:
|
|
626
|
+
slug_taken: Slug is already taken. Please choose another.
|
|
619
627
|
fields:
|
|
620
628
|
slug:
|
|
621
629
|
help_block: A hyphenated name to be displayed in the URL for the exhibit (e.g., "maps-of-africa").
|
data/lib/spotlight/engine.rb
CHANGED
|
@@ -28,8 +28,6 @@ module Spotlight
|
|
|
28
28
|
require 'redcarpet' # required for markdown support
|
|
29
29
|
require 'openseadragon'
|
|
30
30
|
|
|
31
|
-
config.assets.precompile += %w[spotlight/fallback/*.png] if defined?(Sprockets)
|
|
32
|
-
|
|
33
31
|
config.autoload_paths += %W[
|
|
34
32
|
#{config.root}/app/builders
|
|
35
33
|
#{config.root}/app/controllers/concerns
|
data/lib/spotlight/version.rb
CHANGED
|
@@ -6,8 +6,9 @@ module Spotlight
|
|
|
6
6
|
type = opts[:type] || 'default'
|
|
7
7
|
|
|
8
8
|
# Role=combobox indicates that the auto-complete is initialized
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
find("auto-complete [data-#{type}-typeahead][role='combobox']").fill_in(with: opts[:with])
|
|
10
|
+
# Wait for the autocomplete to show both 'open' and 'aria-expanded="true"' or the results might be stale
|
|
11
|
+
expect(page).to have_css("auto-complete[open] [data-#{type}-typeahead][role='combobox'][aria-expanded='true']")
|
|
11
12
|
first('auto-complete[open] [role="option"]', text: opts[:with]).click
|
|
12
13
|
end
|
|
13
14
|
|
|
@@ -12,6 +12,7 @@ module Spotlight
|
|
|
12
12
|
view.send(:extend, Spotlight::TitleHelper)
|
|
13
13
|
view.send(:extend, Spotlight::NavbarHelper)
|
|
14
14
|
view.send(:extend, Spotlight::CropHelper)
|
|
15
|
+
view.send(:extend, Spotlight::ExhibitThemeHelper)
|
|
15
16
|
view.send(:extend, Spotlight::PagesHelper)
|
|
16
17
|
view.send(:extend, Blacklight::ComponentHelperBehavior)
|
|
17
18
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: blacklight-spotlight
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.2.
|
|
4
|
+
version: 5.2.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Beer
|
|
@@ -35,7 +35,7 @@ dependencies:
|
|
|
35
35
|
version: '5.0'
|
|
36
36
|
- - "<"
|
|
37
37
|
- !ruby/object:Gem::Version
|
|
38
|
-
version: '
|
|
38
|
+
version: '14'
|
|
39
39
|
type: :runtime
|
|
40
40
|
prerelease: false
|
|
41
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -45,7 +45,7 @@ dependencies:
|
|
|
45
45
|
version: '5.0'
|
|
46
46
|
- - "<"
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
|
-
version: '
|
|
48
|
+
version: '14'
|
|
49
49
|
- !ruby/object:Gem::Dependency
|
|
50
50
|
name: blacklight
|
|
51
51
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -129,7 +129,7 @@ dependencies:
|
|
|
129
129
|
version: 2.2.1
|
|
130
130
|
- - "<"
|
|
131
131
|
- !ruby/object:Gem::Version
|
|
132
|
-
version: '
|
|
132
|
+
version: '4'
|
|
133
133
|
type: :runtime
|
|
134
134
|
prerelease: false
|
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -139,7 +139,7 @@ dependencies:
|
|
|
139
139
|
version: 2.2.1
|
|
140
140
|
- - "<"
|
|
141
141
|
- !ruby/object:Gem::Version
|
|
142
|
-
version: '
|
|
142
|
+
version: '4'
|
|
143
143
|
- !ruby/object:Gem::Dependency
|
|
144
144
|
name: csv
|
|
145
145
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -385,7 +385,7 @@ dependencies:
|
|
|
385
385
|
version: '11.0'
|
|
386
386
|
- - "<"
|
|
387
387
|
- !ruby/object:Gem::Version
|
|
388
|
-
version: '
|
|
388
|
+
version: '18'
|
|
389
389
|
type: :runtime
|
|
390
390
|
prerelease: false
|
|
391
391
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -395,7 +395,7 @@ dependencies:
|
|
|
395
395
|
version: '11.0'
|
|
396
396
|
- - "<"
|
|
397
397
|
- !ruby/object:Gem::Version
|
|
398
|
-
version: '
|
|
398
|
+
version: '18'
|
|
399
399
|
- !ruby/object:Gem::Dependency
|
|
400
400
|
name: rails
|
|
401
401
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -801,12 +801,10 @@ files:
|
|
|
801
801
|
- LICENSE
|
|
802
802
|
- README.md
|
|
803
803
|
- Rakefile
|
|
804
|
-
- app/assets/config/spotlight/manifest.js
|
|
805
804
|
- app/assets/images/spotlight/blocks/sir-trevor-icons.svg
|
|
806
805
|
- app/assets/images/spotlight/default_browse_thumbnail.jpg
|
|
807
806
|
- app/assets/images/spotlight/default_thumbnail.jpg
|
|
808
807
|
- app/assets/images/spotlight/fallback/default.png
|
|
809
|
-
- app/assets/javascripts/spotlight/application.js
|
|
810
808
|
- app/assets/javascripts/spotlight/spotlight.esm.js
|
|
811
809
|
- app/assets/javascripts/spotlight/spotlight.esm.js.map
|
|
812
810
|
- app/assets/javascripts/spotlight/spotlight.js
|
|
@@ -962,6 +960,7 @@ files:
|
|
|
962
960
|
- app/helpers/spotlight/browse_helper.rb
|
|
963
961
|
- app/helpers/spotlight/crop_helper.rb
|
|
964
962
|
- app/helpers/spotlight/crud_link_helpers.rb
|
|
963
|
+
- app/helpers/spotlight/exhibit_theme_helper.rb
|
|
965
964
|
- app/helpers/spotlight/job_trackers_helper.rb
|
|
966
965
|
- app/helpers/spotlight/languages_helper.rb
|
|
967
966
|
- app/helpers/spotlight/main_app_helpers.rb
|