blacklight-spotlight 0.12.1 → 0.13.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.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/spotlight/_exhibits_index.scss +16 -0
- data/app/assets/stylesheets/spotlight/_nestable.scss +10 -10
- data/app/controllers/spotlight/catalog_controller.rb +10 -7
- data/app/controllers/spotlight/concerns/catalog_search_context.rb +15 -2
- data/app/controllers/spotlight/exhibits_controller.rb +1 -0
- data/app/helpers/spotlight/application_helper.rb +1 -1
- data/app/models/concerns/spotlight/solr_document.rb +20 -20
- data/app/models/concerns/spotlight/user.rb +1 -0
- data/app/models/spotlight/blacklight_configuration.rb +10 -4
- data/app/models/spotlight/custom_field.rb +5 -1
- data/app/models/spotlight/exhibit.rb +1 -1
- data/app/models/spotlight/resource.rb +1 -1
- data/app/models/spotlight/search.rb +1 -1
- data/app/models/spotlight/solr_document_sidecar.rb +1 -1
- data/app/views/layouts/spotlight/spotlight.html.erb +1 -1
- data/app/views/spotlight/exhibits/_exhibit_card.html.erb +3 -0
- data/app/views/spotlight/exhibits/index.html.erb +40 -15
- data/config/locales/spotlight.en.yml +4 -1
- data/lib/spotlight/catalog.rb +14 -11
- data/lib/spotlight/catalog/access_controls_enforcement.rb +2 -1
- data/lib/spotlight/engine.rb +5 -0
- data/lib/spotlight/version.rb +1 -1
- data/spec/controllers/spotlight/about_pages_controller_spec.rb +1 -1
- data/spec/controllers/spotlight/appearances_controller_spec.rb +10 -8
- data/spec/controllers/spotlight/browse_controller_spec.rb +3 -3
- data/spec/controllers/spotlight/catalog_controller_spec.rb +88 -7
- data/spec/controllers/spotlight/confirmations_controller_spec.rb +7 -4
- data/spec/controllers/spotlight/contact_forms_controller_spec.rb +1 -1
- data/spec/controllers/spotlight/exhibits_controller_spec.rb +25 -21
- data/spec/controllers/spotlight/home_pages_controller_spec.rb +23 -24
- data/spec/controllers/spotlight/metadata_configurations_controller_spec.rb +17 -13
- data/spec/controllers/spotlight/resources/upload_controller_spec.rb +1 -1
- data/spec/controllers/spotlight/resources_controller_spec.rb +3 -3
- data/spec/controllers/spotlight/roles_controller_spec.rb +5 -3
- data/spec/controllers/spotlight/search_configurations_controller_spec.rb +10 -8
- data/spec/controllers/spotlight/searches_controller_spec.rb +12 -8
- data/spec/controllers/spotlight/solr_controller_spec.rb +34 -29
- data/spec/controllers/spotlight/versions_controller_spec.rb +2 -2
- data/spec/controllers/spotlight/view_configurations_controller_spec.rb +7 -5
- data/spec/helpers/spotlight/application_helper_spec.rb +1 -1
- data/spec/helpers/spotlight/pages_helper_spec.rb +2 -2
- data/spec/models/solr_document_spec.rb +5 -5
- data/spec/models/spotlight/custom_field_spec.rb +8 -9
- data/spec/models/spotlight/resources/open_graph_spec.rb +1 -1
- data/spec/models/spotlight/search_spec.rb +10 -0
- data/spec/models/spotlight/sitemap_spec.rb +1 -1
- data/spec/models/spotlight/solr_document/atomic_updates_spec.rb +1 -1
- data/spec/models/spotlight/solr_document/uploaded_resource_spec.rb +6 -6
- data/spec/views/spotlight/exhibits/index.html.erb_spec.rb +35 -6
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb_spec.rb +5 -1
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb_spec.rb +3 -3
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb_spec.rb +5 -1
- metadata +2 -5
- data/app/views/shared/_flash_messages.html.erb +0 -7
- data/app/views/spotlight/exhibits/_exhibit_list.html.erb +0 -3
- data/db/migrate/20151210073829_create_spotlight_configuration.rb +0 -7
@@ -73,15 +73,14 @@ describe Spotlight::CustomField, type: :model do
|
|
73
73
|
|
74
74
|
describe '#solr_field' do
|
75
75
|
let(:exhibit) { FactoryGirl.create(:exhibit) }
|
76
|
-
|
77
|
-
|
78
|
-
subject.configuration['label'] = 'xyz'
|
79
|
-
subject.exhibit = exhibit
|
80
|
-
subject.save
|
76
|
+
let(:custom_field) do
|
77
|
+
described_class.create(exhibit: exhibit, configuration: { 'label' => 'xyz' })
|
81
78
|
end
|
82
79
|
|
80
|
+
subject { custom_field.solr_field }
|
81
|
+
|
83
82
|
it 'is auto-generated from the field label' do
|
84
|
-
expect(subject
|
83
|
+
expect(subject).to eq "exhibit_#{exhibit.to_param}_xyz_tesim"
|
85
84
|
end
|
86
85
|
|
87
86
|
context 'with a solr field prefix configured' do
|
@@ -90,17 +89,17 @@ describe Spotlight::CustomField, type: :model do
|
|
90
89
|
end
|
91
90
|
|
92
91
|
it 'uses the solr field prefix' do
|
93
|
-
expect(subject
|
92
|
+
expect(subject).to eq "prefix_exhibit_#{exhibit.to_param}_xyz_tesim"
|
94
93
|
end
|
95
94
|
end
|
96
95
|
|
97
96
|
context 'for a legacy solr field name' do
|
98
97
|
before do
|
99
|
-
|
98
|
+
custom_field.field = "exhibit_#{exhibit.to_param}_xyz_tesim"
|
100
99
|
end
|
101
100
|
|
102
101
|
it 'returns the original field name' do
|
103
|
-
expect(subject
|
102
|
+
expect(subject).to eq "exhibit_#{exhibit.to_param}_xyz_tesim"
|
104
103
|
end
|
105
104
|
end
|
106
105
|
end
|
@@ -6,7 +6,7 @@ describe Spotlight::Resources::OpenGraph, type: :model do
|
|
6
6
|
include Spotlight::Resources::OpenGraph
|
7
7
|
end
|
8
8
|
|
9
|
-
let(:exhibit) { double(solr_data: {}) }
|
9
|
+
let(:exhibit) { double(solr_data: {}, blacklight_config: Blacklight::Configuration.new) }
|
10
10
|
|
11
11
|
subject { TestResource.new url: 'info:url' }
|
12
12
|
|
@@ -99,4 +99,14 @@ describe Spotlight::Search, type: :model do
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
end
|
102
|
+
|
103
|
+
describe '#repository' do
|
104
|
+
let(:search) { FactoryGirl.create(:search) }
|
105
|
+
before do
|
106
|
+
allow(search).to receive(:blacklight_config).and_return blacklight_config
|
107
|
+
end
|
108
|
+
it 'returns an exhibit specific config' do
|
109
|
+
expect(search.send(:repository).blacklight_config).to eql blacklight_config
|
110
|
+
end
|
111
|
+
end
|
102
112
|
end
|
@@ -89,7 +89,7 @@ describe Spotlight::Sitemap do
|
|
89
89
|
end
|
90
90
|
|
91
91
|
describe '#add_resources' do
|
92
|
-
let(:document) {
|
92
|
+
let(:document) { blacklight_config.document_model.new(id: 'a') }
|
93
93
|
|
94
94
|
before do
|
95
95
|
allow(exhibit).to receive(:solr_documents).and_return([document])
|
@@ -2,16 +2,16 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Spotlight::SolrDocument::UploadedResource, type: :model do
|
4
4
|
let(:valid_resource) do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
SolrDocument.new(id: '123',
|
6
|
+
full_image_url_ssm: ['http://example.com/png.png'],
|
7
|
+
spotlight_full_image_height_ssm: ['1400'],
|
8
|
+
spotlight_full_image_width_ssm: ['1000'],
|
9
|
+
spotlight_resource_type_ssim: ['spotlight/resources/uploads'])
|
10
10
|
end
|
11
11
|
|
12
12
|
describe 'SolrDocument.use_extension' do
|
13
13
|
it 'does not include the uploaded resource extension when the spotlight resource type is not correct' do
|
14
|
-
expect(
|
14
|
+
expect(SolrDocument.new(id: '123', spotlight_resource_type_ssim: ['not-correct'])).to_not be_a_kind_of(described_class)
|
15
15
|
end
|
16
16
|
it 'includes the uploaded resource extension when the correct fields are present with the correct data' do
|
17
17
|
expect(valid_resource).to be_a_kind_of(described_class)
|
@@ -8,7 +8,7 @@ module Spotlight
|
|
8
8
|
|
9
9
|
before do
|
10
10
|
assign(:exhibits, exhibits)
|
11
|
-
allow(view).to receive_messages(exhibit_path: '/', current_ability: ability)
|
11
|
+
allow(view).to receive_messages(exhibit_path: '/', current_user: user, current_ability: ability)
|
12
12
|
end
|
13
13
|
|
14
14
|
context 'with published exhibits' do
|
@@ -29,24 +29,53 @@ module Spotlight
|
|
29
29
|
expect(rendered).not_to include 'Private exhibits'
|
30
30
|
end
|
31
31
|
|
32
|
-
|
32
|
+
it 'does not include the tab bar' do
|
33
|
+
render
|
34
|
+
|
35
|
+
expect(rendered).not_to have_selector '.nav-tabs'
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'with an exhibit admin' do
|
39
|
+
let(:user) { FactoryGirl.create(:exhibit_admin) }
|
40
|
+
|
41
|
+
it 'includes a tab with the exhibits curated by the user' do
|
42
|
+
render
|
43
|
+
|
44
|
+
expect(rendered).to have_selector '.nav-tabs'
|
45
|
+
expect(rendered).to have_link 'Your exhibits'
|
46
|
+
expect(rendered).to have_text user.exhibits.first.title
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'does not include a tab for unpublished exhibits' do
|
50
|
+
render
|
51
|
+
|
52
|
+
expect(rendered).to have_selector '.nav-tabs'
|
53
|
+
expect(rendered).not_to have_link 'Unpublished exhibits'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'with a site admin' do
|
33
58
|
let(:user) { FactoryGirl.create(:site_admin) }
|
34
59
|
|
35
|
-
|
60
|
+
before do
|
61
|
+
allow(view).to receive_messages(can?: true, new_exhibit_path: '/exhibits/new')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'includes a tab with unpublished exhibits' do
|
36
65
|
render
|
37
66
|
|
38
|
-
expect(rendered).to
|
67
|
+
expect(rendered).to have_selector '.nav-tabs'
|
68
|
+
expect(rendered).to have_link 'Unpublished exhibits'
|
39
69
|
expect(rendered).to have_text exhibit_c.title
|
40
70
|
end
|
41
71
|
end
|
42
72
|
end
|
43
73
|
|
44
74
|
context 'with an authorized user' do
|
45
|
-
let(:
|
75
|
+
let(:user) { FactoryGirl.build(:site_admin) }
|
46
76
|
|
47
77
|
before do
|
48
78
|
allow(view).to receive_messages(can?: true,
|
49
|
-
current_user: current_user,
|
50
79
|
new_exhibit_path: '/exhibits/new')
|
51
80
|
end
|
52
81
|
|
@@ -6,7 +6,7 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_block.html.erb', type: :vi
|
|
6
6
|
let(:block) do
|
7
7
|
SirTrevorRails::Blocks::SolrDocumentsBlock.new({ type: 'block', data: { title: 'Some title', text: 'Some text', 'text-align' => 'right' } }, page)
|
8
8
|
end
|
9
|
-
let(:doc) {
|
9
|
+
let(:doc) { blacklight_config.document_model.new(id: 1) }
|
10
10
|
let(:blacklight_config) do
|
11
11
|
Blacklight::Configuration.new do |config|
|
12
12
|
config.view.embed.partials = %w(a b c)
|
@@ -7,7 +7,11 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb',
|
|
7
7
|
end
|
8
8
|
|
9
9
|
before do
|
10
|
-
allow(block).to receive(:each_document).and_return([
|
10
|
+
allow(block).to receive(:each_document).and_return([
|
11
|
+
[{}, SolrDocument.new(id: 1)],
|
12
|
+
[{}, SolrDocument.new(id: 2)],
|
13
|
+
[{}, SolrDocument.new(id: 3)]
|
14
|
+
])
|
11
15
|
allow(block).to receive_messages(documents?: true)
|
12
16
|
allow(view).to receive_messages(solr_documents_carousel_block: block)
|
13
17
|
allow(view).to receive_messages(has_thumbnail?: true, render_thumbnail_tag: 'thumb')
|
@@ -6,7 +6,7 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb', typ
|
|
6
6
|
let(:block) do
|
7
7
|
SirTrevorRails::Blocks::SolrDocumentsEmbedBlock.new({ type: 'block', data: { title: 'Some title', text: 'Some text', 'text-align' => 'right' } }, page)
|
8
8
|
end
|
9
|
-
let(:doc) {
|
9
|
+
let(:doc) { blacklight_config.document_model.new(id: 1) }
|
10
10
|
let(:blacklight_config) do
|
11
11
|
Blacklight::Configuration.new do |config|
|
12
12
|
config.view.embed.partials = %w(a b c)
|
@@ -7,9 +7,9 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb',
|
|
7
7
|
end
|
8
8
|
|
9
9
|
before do
|
10
|
-
doc1 = [{},
|
11
|
-
doc2 = [{},
|
12
|
-
doc3 = [{},
|
10
|
+
doc1 = [{}, SolrDocument.new(id: 1, x: 'a' * 100)]
|
11
|
+
doc2 = [{}, SolrDocument.new(id: 2)]
|
12
|
+
doc3 = [{}, SolrDocument.new(id: 3)]
|
13
13
|
allow(block).to receive(:each_document).and_return([doc1, doc2, doc3])
|
14
14
|
allow(block).to receive_messages(documents?: true)
|
15
15
|
allow(view).to receive_messages(solr_documents_features_block: block)
|
@@ -8,7 +8,11 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb', type
|
|
8
8
|
end
|
9
9
|
|
10
10
|
before do
|
11
|
-
allow(block).to receive(:each_document).and_return([
|
11
|
+
allow(block).to receive(:each_document).and_return([
|
12
|
+
[{}, SolrDocument.new(id: 1)],
|
13
|
+
[{}, SolrDocument.new(id: 2)],
|
14
|
+
[{}, SolrDocument.new(id: 3)]
|
15
|
+
])
|
12
16
|
end
|
13
17
|
|
14
18
|
before do
|
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: 0.
|
4
|
+
version: 0.13.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: 2015-12-
|
14
|
+
date: 2015-12-15 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
@@ -918,7 +918,6 @@ files:
|
|
918
918
|
- app/views/shared/_exhibit_masthead.html.erb
|
919
919
|
- app/views/shared/_exhibit_masthead_and_navbar.html.erb
|
920
920
|
- app/views/shared/_exhibit_navbar.html.erb
|
921
|
-
- app/views/shared/_flash_messages.html.erb
|
922
921
|
- app/views/shared/_footer.html.erb
|
923
922
|
- app/views/shared/_header_navbar.html.erb
|
924
923
|
- app/views/shared/_home_sidebar.html.erb
|
@@ -975,7 +974,6 @@ files:
|
|
975
974
|
- app/views/spotlight/exhibits/_contact.html.erb
|
976
975
|
- app/views/spotlight/exhibits/_delete.html.erb
|
977
976
|
- app/views/spotlight/exhibits/_exhibit_card.html.erb
|
978
|
-
- app/views/spotlight/exhibits/_exhibit_list.html.erb
|
979
977
|
- app/views/spotlight/exhibits/_export.html.erb
|
980
978
|
- app/views/spotlight/exhibits/_form.html.erb
|
981
979
|
- app/views/spotlight/exhibits/_import.html.erb
|
@@ -1098,7 +1096,6 @@ files:
|
|
1098
1096
|
- db/migrate/20151124101123_remove_default_from_spotlight_exhibit.rb
|
1099
1097
|
- db/migrate/20151124105543_update_custom_field_names.rb
|
1100
1098
|
- db/migrate/20151208085432_add_weight_to_exhibits.rb
|
1101
|
-
- db/migrate/20151210073829_create_spotlight_configuration.rb
|
1102
1099
|
- lib/blacklight/spotlight.rb
|
1103
1100
|
- lib/generators/spotlight/install_generator.rb
|
1104
1101
|
- lib/generators/spotlight/templates/catalog_controller.rb
|