blacklight-spotlight 2.6.1.1 → 2.9.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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spotlight/admin/add_another.js +22 -0
  3. data/app/assets/javascripts/spotlight/{add_new_page_button.js → admin/add_new_page_button.js} +0 -0
  4. data/app/assets/javascripts/spotlight/{appearance.js → admin/appearance.js} +0 -0
  5. data/app/assets/javascripts/spotlight/{attachments.js → admin/attachments.js} +0 -0
  6. data/app/assets/javascripts/spotlight/{blacklight_configuration.js → admin/blacklight_configuration.js} +0 -0
  7. data/app/assets/javascripts/spotlight/{block_mixins → admin/block_mixins}/autocompleteable.js +0 -0
  8. data/app/assets/javascripts/spotlight/{block_mixins → admin/block_mixins}/formable.js +0 -0
  9. data/app/assets/javascripts/spotlight/{block_mixins → admin/block_mixins}/plustextable.js +0 -0
  10. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/block.js +0 -0
  11. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/browse_block.js +1 -1
  12. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/iframe_block.js +0 -0
  13. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/link_to_search_block.js +1 -1
  14. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/oembed_block.js +0 -0
  15. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/pages_block.js +1 -1
  16. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/resources_block.js +0 -0
  17. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/rule_block.js +0 -0
  18. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/search_result_block.js +3 -3
  19. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/solr_documents_base_block.js +3 -3
  20. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/solr_documents_block.js +1 -1
  21. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/solr_documents_carousel_block.js +1 -1
  22. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/solr_documents_embed_block.js +1 -1
  23. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/solr_documents_features_block.js +2 -2
  24. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/solr_documents_grid_block.js +1 -1
  25. data/app/assets/javascripts/spotlight/{blocks → admin/blocks}/uploaded_items_block.js +0 -0
  26. data/app/assets/javascripts/spotlight/{catalog_edit.js → admin/catalog_edit.js} +0 -0
  27. data/app/assets/javascripts/spotlight/{copy_email_addresses.js → admin/copy_email_addresses.js} +0 -0
  28. data/app/assets/javascripts/spotlight/{crop.es6 → admin/crop.es6} +5 -0
  29. data/app/assets/javascripts/spotlight/{croppable.js → admin/croppable.js} +1 -1
  30. data/app/assets/javascripts/spotlight/{edit_in_place.js → admin/edit_in_place.js} +0 -0
  31. data/app/assets/javascripts/spotlight/{exhibits.js → admin/exhibits.js} +0 -0
  32. data/app/assets/javascripts/spotlight/{form_observer.js → admin/form_observer.js} +0 -0
  33. data/app/assets/javascripts/spotlight/{iiif.es6 → admin/iiif.es6} +0 -0
  34. data/app/assets/javascripts/spotlight/admin/index.js +18 -0
  35. data/app/assets/javascripts/spotlight/{locks.js → admin/locks.js} +0 -0
  36. data/app/assets/javascripts/spotlight/{multi_image_selector.js → admin/multi_image_selector.js} +0 -0
  37. data/app/assets/javascripts/spotlight/{pages.js.erb → admin/pages.js.erb} +0 -2
  38. data/app/assets/javascripts/spotlight/{readonly_checkbox.js → admin/readonly_checkbox.js} +0 -0
  39. data/app/assets/javascripts/spotlight/{reindex_monitor.js → admin/reindex_monitor.js} +0 -0
  40. data/app/assets/javascripts/spotlight/{search_typeahead.js → admin/search_typeahead.js} +1 -1
  41. data/app/assets/javascripts/spotlight/{select_related_input.js → admin/select_related_input.js} +0 -0
  42. data/app/assets/javascripts/spotlight/{sir-trevor → admin/sir-trevor}/block_controls.js +0 -0
  43. data/app/assets/javascripts/spotlight/{sir-trevor → admin/sir-trevor}/block_limits.js +0 -0
  44. data/app/assets/javascripts/spotlight/{sir-trevor → admin/sir-trevor}/locales.js +0 -0
  45. data/app/assets/javascripts/spotlight/{spotlight_nestable.js → admin/spotlight_nestable.js} +0 -0
  46. data/app/assets/javascripts/spotlight/{tabs.js → admin/tabs.js} +0 -0
  47. data/app/assets/javascripts/spotlight/{translation_progress.js → admin/translation_progress.js} +0 -0
  48. data/app/assets/javascripts/spotlight/{users.js → admin/users.js} +0 -0
  49. data/app/assets/javascripts/spotlight/application.js +2 -22
  50. data/app/assets/javascripts/spotlight/{analytics.js → user/analytics.js} +0 -0
  51. data/app/assets/javascripts/spotlight/user/carousel.js +3 -0
  52. data/app/assets/javascripts/spotlight/{clear_form_button.js → user/clear_form_button.js} +0 -0
  53. data/app/assets/javascripts/spotlight/user/index.js +6 -0
  54. data/app/assets/javascripts/spotlight/{report_a_problem.js → user/report_a_problem.js} +0 -0
  55. data/app/assets/javascripts/spotlight/{zpr_links.js.erb → user/zpr_links.js.erb} +0 -0
  56. data/app/controllers/spotlight/catalog_controller.rb +1 -1
  57. data/app/controllers/spotlight/custom_fields_controller.rb +1 -1
  58. data/app/controllers/spotlight/pages_controller.rb +1 -1
  59. data/app/controllers/spotlight/resources/csv_upload_controller.rb +1 -1
  60. data/app/controllers/spotlight/resources/upload_controller.rb +17 -13
  61. data/app/controllers/spotlight/resources_controller.rb +5 -0
  62. data/app/controllers/spotlight/searches_controller.rb +0 -2
  63. data/app/controllers/spotlight/solr_controller.rb +18 -1
  64. data/app/helpers/spotlight/application_helper.rb +4 -1
  65. data/app/helpers/spotlight/pages_helper.rb +10 -0
  66. data/app/jobs/spotlight/add_uploads_from_csv.rb +1 -1
  67. data/app/jobs/spotlight/rename_sidecar_field_job.rb +21 -7
  68. data/app/models/concerns/spotlight/custom_translation_extension.rb +2 -0
  69. data/app/models/sir_trevor_rails/blocks/featured_pages_block.rb +10 -3
  70. data/app/models/spotlight/blacklight_configuration.rb +5 -3
  71. data/app/models/spotlight/custom_field.rb +20 -20
  72. data/app/models/spotlight/exhibit.rb +11 -1
  73. data/app/models/spotlight/page.rb +11 -4
  74. data/app/models/spotlight/page_content.rb +18 -0
  75. data/app/models/spotlight/page_content/sir_trevor.rb +17 -0
  76. data/app/models/spotlight/solr_document_sidecar.rb +3 -0
  77. data/app/presenters/spotlight/iiif_manifest_presenter.rb +2 -2
  78. data/app/serializers/spotlight/exhibit_export_serializer.rb +5 -1
  79. data/app/services/spotlight/solr_document_builder.rb +1 -1
  80. data/app/services/spotlight/upload_solr_document_builder.rb +10 -3
  81. data/app/values/custom_field_name.rb +6 -6
  82. data/app/views/spotlight/catalog/_edit_sidecar.html.erb +9 -14
  83. data/app/views/spotlight/custom_fields/_form.html.erb +7 -2
  84. data/app/views/spotlight/custom_fields/form_group/_text.html.erb +14 -0
  85. data/app/views/spotlight/custom_fields/form_group/_vocab.html.erb +14 -0
  86. data/app/views/spotlight/pages/_form.html.erb +1 -1
  87. data/app/views/spotlight/resources/new.html.erb +9 -3
  88. data/app/views/spotlight/resources/upload/_form.html.erb +3 -1
  89. data/config/i18n-tasks.yml +1 -0
  90. data/config/locales/spotlight.ar.yml +40 -0
  91. data/config/locales/spotlight.en.yml +5 -0
  92. data/config/locales/spotlight.fr.yml +40 -0
  93. data/db/migrate/20190807085432_add_content_type_to_pages.rb +5 -0
  94. data/db/migrate/20190813085432_add_is_multiple_to_custom_fields.rb +7 -0
  95. data/lib/spotlight/engine.rb +8 -1
  96. data/lib/spotlight/version.rb +1 -1
  97. data/spec/controllers/spotlight/catalog_controller_spec.rb +6 -0
  98. data/spec/controllers/spotlight/resources/csv_upload_controller_spec.rb +1 -1
  99. data/spec/controllers/spotlight/resources/upload_controller_spec.rb +9 -1
  100. data/spec/controllers/spotlight/solr_controller_spec.rb +16 -0
  101. data/spec/examples.txt +1335 -1319
  102. data/spec/factories/pages.rb +6 -0
  103. data/spec/features/add_custom_field_metadata_spec.rb +19 -1
  104. data/spec/features/add_items_spec.rb +19 -2
  105. data/spec/features/exhibits/custom_metadata_fields_spec.rb +23 -0
  106. data/spec/features/exhibits/translation_editing_spec.rb +8 -0
  107. data/spec/features/javascript/locale_selector_spec.rb +6 -0
  108. data/spec/fixtures/sample_solr_documents.yml +110 -110
  109. data/spec/helpers/spotlight/pages_helper_spec.rb +14 -0
  110. data/spec/jobs/spotlight/add_uploads_from_csv_spec.rb +4 -2
  111. data/spec/models/spotlight/blacklight_configuration_spec.rb +2 -2
  112. data/spec/models/spotlight/custom_field_spec.rb +8 -3
  113. data/spec/models/spotlight/custom_translation_extension_spec.rb +23 -0
  114. data/spec/models/spotlight/page_spec.rb +45 -0
  115. data/spec/services/spotlight/solr_document_builder_spec.rb +9 -0
  116. data/spec/spec_helper.rb +14 -16
  117. data/spec/test_app_templates/Gemfile.extra +0 -1
  118. metadata +80 -52
@@ -100,4 +100,18 @@ describe Spotlight::PagesHelper, type: :helper do
100
100
  expect(helper.sir_trevor_markdown(nil)).to be_blank
101
101
  end
102
102
  end
103
+
104
+ describe '#content_editor_class' do
105
+ context 'with a sir-trevor backed page' do
106
+ it 'has a custom class' do
107
+ expect(helper.content_editor_class(Spotlight::Page.new)).to eq 'js-st-instance'
108
+ end
109
+ end
110
+
111
+ context 'with a sir-trevor backed page' do
112
+ it 'derives a css class name from the editor type' do
113
+ expect(helper.content_editor_class(Spotlight::Page.new(content_type: 'Something::Custom'))).to eq 'js-something-custom-instance'
114
+ end
115
+ end
116
+ end
103
117
  end
@@ -7,7 +7,8 @@ describe Spotlight::AddUploadsFromCSV do
7
7
  let(:data) do
8
8
  [
9
9
  { 'url' => 'x' },
10
- { 'url' => 'y' }
10
+ { 'url' => 'y' },
11
+ { 'url' => '~' }
11
12
  ]
12
13
  end
13
14
 
@@ -29,10 +30,11 @@ describe Spotlight::AddUploadsFromCSV do
29
30
 
30
31
  it 'creates uploaded resources for each row of data' do
31
32
  upload = FactoryBot.create(:uploaded_resource)
32
- expect(Spotlight::Resources::Upload).to receive(:new).at_least(:once).and_return(upload)
33
+ expect(Spotlight::Resources::Upload).to receive(:new).exactly(3).times.and_return(upload)
33
34
 
34
35
  expect(upload).to receive(:build_upload).with(remote_image_url: 'x').and_call_original
35
36
  expect(upload).to receive(:build_upload).with(remote_image_url: 'y').and_call_original
37
+ expect(upload).not_to receive(:build_upload).with(remote_image_url: '~')
36
38
  expect(upload).to receive(:save_and_index).at_least(:once)
37
39
 
38
40
  job.perform_now
@@ -96,7 +96,7 @@ describe Spotlight::BlacklightConfiguration, type: :model do
96
96
 
97
97
  it 'defaults to not showing a custom field in the facets' do
98
98
  field = double('field', new_record?: false, field: 'a', solr_field: 'a', configuration: {})
99
- custom_fields = double('custom_fields', vocab: [field], reject: [])
99
+ custom_fields = double('custom_fields', facetable: [field], reject: [])
100
100
  allow(custom_fields).to receive(:map).and_yield(field)
101
101
  allow(subject.exhibit).to receive(:custom_fields).and_return(custom_fields)
102
102
  subject.facet_fields = { 'a' => { enabled: '1', label: 'Label' } }
@@ -523,7 +523,7 @@ describe Spotlight::BlacklightConfiguration, type: :model do
523
523
 
524
524
  describe '#custom_facet_fields' do
525
525
  it 'converts exhibit-specific fields to Blacklight configurations' do
526
- allow(subject.exhibit).to receive_message_chain(:custom_fields, vocab: [
526
+ allow(subject.exhibit).to receive_message_chain(:custom_fields, facetable: [
527
527
  stub_model(Spotlight::CustomField, field: 'abc', configuration: { a: 1 }, exhibit: subject.exhibit),
528
528
  stub_model(Spotlight::CustomField, field: 'xyz', configuration: { x: 2 }, exhibit: subject.exhibit)
529
529
  ])
@@ -67,13 +67,13 @@ describe Spotlight::CustomField, type: :model do
67
67
  it 'ends in the text suffix if it is a text field' do
68
68
  subject.field_type = 'text'
69
69
  subject.save
70
- expect(subject.field).to end_with Spotlight::Engine.config.solr_fields.text_suffix
70
+ expect(subject.field).to end_with '_tesim'
71
71
  end
72
72
 
73
73
  it 'ends in a string suffix if it is a vocab field' do
74
74
  subject.field_type = 'vocab'
75
75
  subject.save
76
- expect(subject.field).to end_with Spotlight::Engine.config.solr_fields.string_suffix
76
+ expect(subject.field).to end_with '_ssim'
77
77
  end
78
78
 
79
79
  it 'begins with readonly if it is readonly' do
@@ -182,7 +182,12 @@ describe Spotlight::CustomField, type: :model do
182
182
  end
183
183
 
184
184
  it 'queues a job to reindex any documents with data in the old field' do
185
- expect(Spotlight::RenameSidecarFieldJob).to receive(:perform_later).with(exhibit, subject.field, subject.field.sub('tesim', 'ssim'))
185
+ expect(Spotlight::RenameSidecarFieldJob).to receive(:perform_later).with(
186
+ exhibit,
187
+ subject.field, subject.field.sub('tesim', 'ssim'),
188
+ subject.slug, subject.slug
189
+ )
190
+
186
191
  subject.field_type = 'vocab'
187
192
  subject.save
188
193
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe Spotlight::CustomTranslationExtension do
4
+ let(:exhibit) { FactoryBot.create(:exhibit) }
5
+ subject do
6
+ Class.new(ActiveRecord::Base) do
7
+ include Spotlight::CustomTranslationExtension
8
+ end
9
+ end
10
+
11
+ describe '.current_exhibit' do
12
+ it 'sets the current exhibit' do
13
+ subject.current_exhibit = exhibit
14
+ expect(subject.current_exhibit).to eq exhibit
15
+ end
16
+
17
+ it 'reloads the i18n' do
18
+ allow(I18n.backend).to receive(:reload!)
19
+
20
+ subject.current_exhibit = exhibit
21
+ end
22
+ end
23
+ end
@@ -65,6 +65,28 @@ describe Spotlight::Page, type: :model do
65
65
  page.content = []
66
66
  expect(page.content).to be_a_kind_of SirTrevorRails::BlockArray
67
67
  end
68
+
69
+ context 'with an alternate page content type' do
70
+ let(:page) { FactoryBot.create(:feature_page, content_type: 'Static') }
71
+ let(:fake_class) do
72
+ Class.new do
73
+ def self.parse(*_args)
74
+ 'xyz'
75
+ end
76
+ end
77
+ end
78
+
79
+ before do
80
+ # needed so we don't accidentally stub Spotlight::PageContent below
81
+ require 'spotlight/page_content'
82
+ stub_const('Spotlight::PageContent::Static', fake_class)
83
+ end
84
+
85
+ it 'works' do
86
+ page.content = [].to_json
87
+ expect(page.content).to eq 'xyz'
88
+ end
89
+ end
68
90
  end
69
91
 
70
92
  describe '#content?' do
@@ -81,6 +103,19 @@ describe Spotlight::Page, type: :model do
81
103
  end
82
104
  end
83
105
 
106
+ describe '#content_type' do
107
+ let(:page) { FactoryBot.create(:feature_page) }
108
+
109
+ it 'can be set as an attribute' do
110
+ page.content_type = 'Xyz'
111
+ expect(page.content_type).to eq 'Xyz'
112
+ end
113
+
114
+ it 'defauts to SirTrevor' do
115
+ expect(page.content_type).to eq 'SirTrevor'
116
+ end
117
+ end
118
+
84
119
  describe '#slug' do
85
120
  let(:page) { FactoryBot.create(:feature_page) }
86
121
 
@@ -172,6 +207,16 @@ describe Spotlight::Page, type: :model do
172
207
  end
173
208
  end
174
209
 
210
+ context 'when cloning a page that has been deleted with a FriendlyId UUID added' do
211
+ let(:feature_page_static_title) { FactoryBot.create(:feature_page_static_title, exhibit: exhibit) }
212
+ let(:feature_page_static_title_two) { FactoryBot.create(:feature_page_static_title, exhibit: exhibit) }
213
+ it 'translated page has the same UUID' do
214
+ expect(feature_page_static_title.slug).to eq 'featurepage'
215
+ expect(feature_page_static_title_two.slug).not_to eq feature_page_static_title.slug
216
+ expect(feature_page_static_title_two.clone_for_locale('es').slug).to eq feature_page_static_title_two.slug
217
+ end
218
+ end
219
+
175
220
  context 'when cloning a parent page whose children pages have already been cloned' do
176
221
  let(:parent_page_es) { parent_page.clone_for_locale('es') }
177
222
  let(:child_page_es) { child_page.clone_for_locale('es') }
@@ -51,6 +51,15 @@ describe Spotlight::SolrDocumentBuilder do
51
51
  expect(sidecar.exhibit).to eq resource.exhibit
52
52
  expect(sidecar.resource).to eq resource
53
53
  end
54
+
55
+ context 'without a persisted resource' do
56
+ let(:resource) { FactoryBot.build(:resource) }
57
+
58
+ it 'does not implicitly persist the resource' do
59
+ resource.document_builder.documents_to_index.first
60
+ expect(resource).not_to be_persisted
61
+ end
62
+ end
54
63
  end
55
64
  end
56
65
  end
@@ -15,26 +15,26 @@ require 'rspec/rails'
15
15
  require 'rspec/active_model/mocks'
16
16
  require 'paper_trail/frameworks/rspec'
17
17
 
18
- require 'chromedriver-helper'
19
18
  require 'selenium-webdriver'
19
+ require 'webdrivers'
20
20
  require 'webmock/rspec'
21
21
 
22
22
  Capybara.javascript_driver = :headless_chrome
23
23
 
24
- # @note In January 2018, TravisCI disabled Chrome sandboxing in its Linux
25
- # container build environments to mitigate Meltdown/Spectre
26
- # vulnerabilities, at which point Spotlight needs to use the --no-sandbox
27
- # flag. https://github.com/travis-ci/docs-travis-ci-com/blob/c1da4af0b7ee5de35fa4490fa8e0fc4b44881089/user/chrome.md
28
- # h/t @mjgiarlo
29
24
  Capybara.register_driver :headless_chrome do |app|
30
- capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
31
- chromeOptions: { args: %w[headless disable-gpu no-sandbox window-size=1280,1696] }
32
- )
33
-
34
- Capybara::Selenium::Driver.new(app,
35
- browser: :chrome,
36
- desired_capabilities: capabilities)
25
+ Capybara::Selenium::Driver.load_selenium
26
+ browser_options = ::Selenium::WebDriver::Chrome::Options.new.tap do |opts|
27
+ opts.args << '--headless'
28
+ opts.args << '--disable-gpu'
29
+ opts.args << '--no-sandbox'
30
+ opts.args << '--window-size=1280,1696'
31
+ end
32
+ Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
37
33
  end
34
+ require 'webmock/rspec'
35
+ allowed_sites = ['chromedriver.storage.googleapis.com']
36
+
37
+ WebMock.disable_net_connect!(allow_localhost: true, allow: allowed_sites)
38
38
 
39
39
  if ENV['COVERAGE'] || ENV['CI']
40
40
  require 'simplecov'
@@ -61,9 +61,7 @@ RSpec.configure do |config|
61
61
  config.filter_rails_from_backtrace!
62
62
 
63
63
  config.use_transactional_fixtures = true
64
- config.before :all do
65
- WebMock.disable_net_connect!(allow_localhost: true)
66
- end
64
+
67
65
  config.before :each do
68
66
  # The first user is automatically granted admin privileges; we don't want that behavior for many of our tests
69
67
  Spotlight::Engine.user_class.create email: 'initial+admin@example.com', password: 'password', password_confirmation: 'password'
@@ -1,2 +1 @@
1
1
  gem 'thor', '~> 0.20'
2
- gem 'i18n', '< 1.1' # pinned until Rails and i18n sort our compatibility https://github.com/rails/rails/pull/33574
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: 2.6.1.1
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2019-05-21 00:00:00.000000000 Z
14
+ date: 2019-10-04 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -509,6 +509,20 @@ dependencies:
509
509
  - - ">="
510
510
  - !ruby/object:Gem::Version
511
511
  version: '0'
512
+ - !ruby/object:Gem::Dependency
513
+ name: i18n
514
+ requirement: !ruby/object:Gem::Requirement
515
+ requirements:
516
+ - - ">="
517
+ - !ruby/object:Gem::Version
518
+ version: '0'
519
+ type: :runtime
520
+ prerelease: false
521
+ version_requirements: !ruby/object:Gem::Requirement
522
+ requirements:
523
+ - - ">="
524
+ - !ruby/object:Gem::Version
525
+ version: '0'
512
526
  - !ruby/object:Gem::Dependency
513
527
  name: sqlite3
514
528
  requirement: !ruby/object:Gem::Requirement
@@ -636,7 +650,7 @@ dependencies:
636
650
  - !ruby/object:Gem::Version
637
651
  version: '1.25'
638
652
  - !ruby/object:Gem::Dependency
639
- name: chromedriver-helper
653
+ name: webdrivers
640
654
  requirement: !ruby/object:Gem::Requirement
641
655
  requirements:
642
656
  - - ">="
@@ -775,57 +789,61 @@ files:
775
789
  - app/assets/images/spotlight/default_browse_thumbnail.jpg
776
790
  - app/assets/images/spotlight/default_thumbnail.jpg
777
791
  - app/assets/images/spotlight/fallback/default.png
778
- - app/assets/javascripts/spotlight/add_new_page_button.js
779
- - app/assets/javascripts/spotlight/analytics.js
780
- - app/assets/javascripts/spotlight/appearance.js
792
+ - app/assets/javascripts/spotlight/admin/add_another.js
793
+ - app/assets/javascripts/spotlight/admin/add_new_page_button.js
794
+ - app/assets/javascripts/spotlight/admin/appearance.js
795
+ - app/assets/javascripts/spotlight/admin/attachments.js
796
+ - app/assets/javascripts/spotlight/admin/blacklight_configuration.js
797
+ - app/assets/javascripts/spotlight/admin/block_mixins/autocompleteable.js
798
+ - app/assets/javascripts/spotlight/admin/block_mixins/formable.js
799
+ - app/assets/javascripts/spotlight/admin/block_mixins/plustextable.js
800
+ - app/assets/javascripts/spotlight/admin/blocks/block.js
801
+ - app/assets/javascripts/spotlight/admin/blocks/browse_block.js
802
+ - app/assets/javascripts/spotlight/admin/blocks/iframe_block.js
803
+ - app/assets/javascripts/spotlight/admin/blocks/link_to_search_block.js
804
+ - app/assets/javascripts/spotlight/admin/blocks/oembed_block.js
805
+ - app/assets/javascripts/spotlight/admin/blocks/pages_block.js
806
+ - app/assets/javascripts/spotlight/admin/blocks/resources_block.js
807
+ - app/assets/javascripts/spotlight/admin/blocks/rule_block.js
808
+ - app/assets/javascripts/spotlight/admin/blocks/search_result_block.js
809
+ - app/assets/javascripts/spotlight/admin/blocks/solr_documents_base_block.js
810
+ - app/assets/javascripts/spotlight/admin/blocks/solr_documents_block.js
811
+ - app/assets/javascripts/spotlight/admin/blocks/solr_documents_carousel_block.js
812
+ - app/assets/javascripts/spotlight/admin/blocks/solr_documents_embed_block.js
813
+ - app/assets/javascripts/spotlight/admin/blocks/solr_documents_features_block.js
814
+ - app/assets/javascripts/spotlight/admin/blocks/solr_documents_grid_block.js
815
+ - app/assets/javascripts/spotlight/admin/blocks/uploaded_items_block.js
816
+ - app/assets/javascripts/spotlight/admin/catalog_edit.js
817
+ - app/assets/javascripts/spotlight/admin/copy_email_addresses.js
818
+ - app/assets/javascripts/spotlight/admin/crop.es6
819
+ - app/assets/javascripts/spotlight/admin/croppable.js
820
+ - app/assets/javascripts/spotlight/admin/edit_in_place.js
821
+ - app/assets/javascripts/spotlight/admin/exhibits.js
822
+ - app/assets/javascripts/spotlight/admin/form_observer.js
823
+ - app/assets/javascripts/spotlight/admin/iiif.es6
824
+ - app/assets/javascripts/spotlight/admin/index.js
825
+ - app/assets/javascripts/spotlight/admin/locks.js
826
+ - app/assets/javascripts/spotlight/admin/multi_image_selector.js
827
+ - app/assets/javascripts/spotlight/admin/pages.js.erb
828
+ - app/assets/javascripts/spotlight/admin/readonly_checkbox.js
829
+ - app/assets/javascripts/spotlight/admin/reindex_monitor.js
830
+ - app/assets/javascripts/spotlight/admin/search_typeahead.js
831
+ - app/assets/javascripts/spotlight/admin/select_related_input.js
832
+ - app/assets/javascripts/spotlight/admin/sir-trevor/block_controls.js
833
+ - app/assets/javascripts/spotlight/admin/sir-trevor/block_limits.js
834
+ - app/assets/javascripts/spotlight/admin/sir-trevor/locales.js
835
+ - app/assets/javascripts/spotlight/admin/spotlight_nestable.js
836
+ - app/assets/javascripts/spotlight/admin/tabs.js
837
+ - app/assets/javascripts/spotlight/admin/translation_progress.js
838
+ - app/assets/javascripts/spotlight/admin/users.js
781
839
  - app/assets/javascripts/spotlight/application.js
782
- - app/assets/javascripts/spotlight/attachments.js
783
- - app/assets/javascripts/spotlight/blacklight_configuration.js
784
- - app/assets/javascripts/spotlight/block_mixins/autocompleteable.js
785
- - app/assets/javascripts/spotlight/block_mixins/formable.js
786
- - app/assets/javascripts/spotlight/block_mixins/plustextable.js
787
- - app/assets/javascripts/spotlight/blocks/block.js
788
- - app/assets/javascripts/spotlight/blocks/browse_block.js
789
- - app/assets/javascripts/spotlight/blocks/iframe_block.js
790
- - app/assets/javascripts/spotlight/blocks/link_to_search_block.js
791
- - app/assets/javascripts/spotlight/blocks/oembed_block.js
792
- - app/assets/javascripts/spotlight/blocks/pages_block.js
793
- - app/assets/javascripts/spotlight/blocks/resources_block.js
794
- - app/assets/javascripts/spotlight/blocks/rule_block.js
795
- - app/assets/javascripts/spotlight/blocks/search_result_block.js
796
- - app/assets/javascripts/spotlight/blocks/solr_documents_base_block.js
797
- - app/assets/javascripts/spotlight/blocks/solr_documents_block.js
798
- - app/assets/javascripts/spotlight/blocks/solr_documents_carousel_block.js
799
- - app/assets/javascripts/spotlight/blocks/solr_documents_embed_block.js
800
- - app/assets/javascripts/spotlight/blocks/solr_documents_features_block.js
801
- - app/assets/javascripts/spotlight/blocks/solr_documents_grid_block.js
802
- - app/assets/javascripts/spotlight/blocks/uploaded_items_block.js
803
- - app/assets/javascripts/spotlight/catalog_edit.js
804
- - app/assets/javascripts/spotlight/clear_form_button.js
805
- - app/assets/javascripts/spotlight/copy_email_addresses.js
806
- - app/assets/javascripts/spotlight/crop.es6
807
- - app/assets/javascripts/spotlight/croppable.js
808
- - app/assets/javascripts/spotlight/edit_in_place.js
809
- - app/assets/javascripts/spotlight/exhibits.js
810
- - app/assets/javascripts/spotlight/form_observer.js
811
- - app/assets/javascripts/spotlight/iiif.es6
812
- - app/assets/javascripts/spotlight/locks.js
813
- - app/assets/javascripts/spotlight/multi_image_selector.js
814
- - app/assets/javascripts/spotlight/pages.js.erb
815
- - app/assets/javascripts/spotlight/readonly_checkbox.js
816
- - app/assets/javascripts/spotlight/reindex_monitor.js
817
- - app/assets/javascripts/spotlight/report_a_problem.js
818
- - app/assets/javascripts/spotlight/search_typeahead.js
819
- - app/assets/javascripts/spotlight/select_related_input.js
820
- - app/assets/javascripts/spotlight/sir-trevor/block_controls.js
821
- - app/assets/javascripts/spotlight/sir-trevor/block_limits.js
822
- - app/assets/javascripts/spotlight/sir-trevor/locales.js
823
840
  - app/assets/javascripts/spotlight/spotlight.js
824
- - app/assets/javascripts/spotlight/spotlight_nestable.js
825
- - app/assets/javascripts/spotlight/tabs.js
826
- - app/assets/javascripts/spotlight/translation_progress.js
827
- - app/assets/javascripts/spotlight/users.js
828
- - app/assets/javascripts/spotlight/zpr_links.js.erb
841
+ - app/assets/javascripts/spotlight/user/analytics.js
842
+ - app/assets/javascripts/spotlight/user/carousel.js
843
+ - app/assets/javascripts/spotlight/user/clear_form_button.js
844
+ - app/assets/javascripts/spotlight/user/index.js
845
+ - app/assets/javascripts/spotlight/user/report_a_problem.js
846
+ - app/assets/javascripts/spotlight/user/zpr_links.js.erb
829
847
  - app/assets/stylesheets/spotlight/_attachments.css
830
848
  - app/assets/stylesheets/spotlight/_blacklight_configuration.scss
831
849
  - app/assets/stylesheets/spotlight/_blacklight_overrides.scss
@@ -976,6 +994,8 @@ files:
976
994
  - app/models/spotlight/masthead.rb
977
995
  - app/models/spotlight/page.rb
978
996
  - app/models/spotlight/page_configurations.rb
997
+ - app/models/spotlight/page_content.rb
998
+ - app/models/spotlight/page_content/sir_trevor.rb
979
999
  - app/models/spotlight/reindex_progress.rb
980
1000
  - app/models/spotlight/reindexing_log_entry.rb
981
1001
  - app/models/spotlight/resource.rb
@@ -1065,6 +1085,8 @@ files:
1065
1085
  - app/views/spotlight/contacts/new.html.erb
1066
1086
  - app/views/spotlight/custom_fields/_form.html.erb
1067
1087
  - app/views/spotlight/custom_fields/edit.html.erb
1088
+ - app/views/spotlight/custom_fields/form_group/_text.html.erb
1089
+ - app/views/spotlight/custom_fields/form_group/_vocab.html.erb
1068
1090
  - app/views/spotlight/custom_fields/new.html.erb
1069
1091
  - app/views/spotlight/dashboards/_analytics.html.erb
1070
1092
  - app/views/spotlight/dashboards/_page.html.erb
@@ -1183,7 +1205,9 @@ files:
1183
1205
  - app/views/spotlight/translations/edit.html.erb
1184
1206
  - config/i18n-tasks.yml
1185
1207
  - config/locales/devise.en.yml
1208
+ - config/locales/spotlight.ar.yml
1186
1209
  - config/locales/spotlight.en.yml
1210
+ - config/locales/spotlight.fr.yml
1187
1211
  - config/locales/spotlight.it.yml
1188
1212
  - config/locales/spotlight.zh.yml
1189
1213
  - config/routes.rb
@@ -1250,6 +1274,8 @@ files:
1250
1274
  - db/migrate/20180529225807_change_spotlight_pages_content_column_to_medium_text.rb
1251
1275
  - db/migrate/20180822233601_change_type_of_taggings_taggable.rb
1252
1276
  - db/migrate/20181127085432_change_weight_on_pages.rb
1277
+ - db/migrate/20190807085432_add_content_type_to_pages.rb
1278
+ - db/migrate/20190813085432_add_is_multiple_to_custom_fields.rb
1253
1279
  - lib/blacklight/spotlight.rb
1254
1280
  - lib/generators/spotlight/install_generator.rb
1255
1281
  - lib/generators/spotlight/scaffold_resource_generator.rb
@@ -1423,6 +1449,7 @@ files:
1423
1449
  - spec/models/spotlight/contact_image_spec.rb
1424
1450
  - spec/models/spotlight/contact_spec.rb
1425
1451
  - spec/models/spotlight/custom_field_spec.rb
1452
+ - spec/models/spotlight/custom_translation_extension_spec.rb
1426
1453
  - spec/models/spotlight/exhibit_spec.rb
1427
1454
  - spec/models/spotlight/exhibit_thumbnail_spec.rb
1428
1455
  - spec/models/spotlight/feature_page_spec.rb
@@ -1662,6 +1689,7 @@ test_files:
1662
1689
  - spec/models/spotlight/exhibit_spec.rb
1663
1690
  - spec/models/spotlight/featured_image_spec.rb
1664
1691
  - spec/models/spotlight/ability_spec.rb
1692
+ - spec/models/spotlight/custom_translation_extension_spec.rb
1665
1693
  - spec/models/spotlight/site_spec.rb
1666
1694
  - spec/models/spotlight/solr_document_sidecar_spec.rb
1667
1695
  - spec/models/spotlight/search_spec.rb