blacklight-spotlight 0.7.2 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spotlight/blocks/resources_block.js +10 -9
- data/app/assets/javascripts/spotlight/blocks/uploaded_items_block.js +129 -0
- data/app/assets/javascripts/spotlight/sir-trevor/locales.js +7 -2
- data/app/assets/stylesheets/spotlight/_exhibits_index.scss +97 -0
- data/app/assets/stylesheets/spotlight/_sir-trevor_overrides.scss +10 -1
- data/app/assets/stylesheets/spotlight/_spotlight.scss +2 -0
- data/app/assets/stylesheets/spotlight/_uploaded_items_block.scss +7 -0
- data/app/assets/stylesheets/spotlight/_variables.scss +11 -4
- data/app/controllers/spotlight/exhibits_controller.rb +17 -2
- data/app/helpers/spotlight/main_app_helpers.rb +1 -1
- data/app/helpers/spotlight/navbar_helper.rb +1 -1
- data/app/models/concerns/spotlight/exhibit_documents.rb +36 -0
- data/app/models/concerns/spotlight/sitemap.rb +89 -0
- data/app/models/sir_trevor_rails/blocks/browse_block.rb +3 -1
- data/app/models/sir_trevor_rails/blocks/featured_pages_block.rb +3 -1
- data/app/models/sir_trevor_rails/blocks/uploaded_items_block.rb +14 -0
- data/app/models/spotlight/contact.rb +4 -0
- data/app/models/spotlight/exhibit.rb +4 -16
- data/app/serializers/spotlight/exhibit_export_serializer.rb +10 -4
- data/app/serializers/spotlight/featured_image_representer.rb +25 -0
- data/app/serializers/spotlight/page_representer.rb +3 -1
- data/app/views/layouts/spotlight/home.html.erb +1 -0
- data/app/views/layouts/spotlight/spotlight.html.erb +6 -17
- data/app/views/shared/_exhibit_masthead.html.erb +1 -1
- data/app/views/shared/_exhibit_masthead_and_navbar.html.erb +9 -0
- data/app/views/shared/_flash_messages.html.erb +7 -0
- data/app/views/shared/_header_navbar.html.erb +0 -10
- data/app/views/shared/_home_sidebar.html.erb +1 -0
- data/app/views/shared/_modal.html.erb +6 -0
- data/app/views/spotlight/exhibits/_exhibit_card.html.erb +30 -0
- data/app/views/spotlight/exhibits/_initial_resources_form.html.erb +0 -0
- data/app/views/spotlight/exhibits/_missing_exhibits.html.erb +17 -0
- data/app/views/spotlight/exhibits/_new_exhibit_form.html.erb +14 -0
- data/app/views/spotlight/exhibits/index.html.erb +17 -0
- data/app/views/spotlight/exhibits/new.html.erb +1 -1
- data/app/views/spotlight/search_configurations/_default_per_page.html.erb +1 -1
- data/app/views/spotlight/search_configurations/_document_index_view_types.html.erb +1 -1
- data/app/views/spotlight/search_configurations/_search_fields.html.erb +7 -8
- data/app/views/spotlight/sir_trevor/blocks/_uploaded_items_block.html.erb +22 -0
- data/config/locales/spotlight.en.yml +20 -3
- data/config/routes.rb +2 -2
- data/db/migrate/20140128155151_create_exhibits.rb +0 -2
- data/db/migrate/20150116161616_add_published_to_exhibit.rb +1 -1
- data/db/migrate/20151117153210_change_spotlight_exhibit_published_default.rb +5 -0
- data/lib/generators/spotlight/install_generator.rb +12 -3
- data/lib/generators/spotlight/templates/config/sitemap.rb +11 -0
- data/lib/spotlight/engine.rb +0 -1
- data/lib/spotlight/version.rb +1 -1
- data/spec/controllers/spotlight/exhibits_controller_spec.rb +27 -0
- data/spec/controllers/spotlight/searches_controller_spec.rb +1 -1
- data/spec/factories/exhibits.rb +1 -4
- data/spec/factories/featured_images.rb +9 -0
- data/spec/factories/pages.rb +2 -2
- data/spec/factories/searches.rb +2 -5
- data/spec/features/about_page_spec.rb +1 -1
- data/spec/features/add_custom_field_metadata_spec.rb +1 -1
- data/spec/features/add_item_bookmarklet_spec.rb +1 -1
- data/spec/features/browse_category_admin_spec.rb +1 -1
- data/spec/features/catalog_spec.rb +1 -1
- data/spec/features/confirm_email_spec.rb +1 -1
- data/spec/features/create_exhibit_spec.rb +0 -10
- data/spec/features/create_page_spec.rb +1 -1
- data/spec/features/dashboard_spec.rb +1 -1
- data/spec/features/edit_search_fields_spec.rb +1 -1
- data/spec/features/exhibits/add_tags_spec.rb +1 -1
- data/spec/features/exhibits/administration_spec.rb +1 -1
- data/spec/features/exhibits/custom_metadata_fields_spec.rb +1 -1
- data/spec/features/exhibits/edit_metadata_fields_spec.rb +1 -1
- data/spec/features/exhibits_index_spec.rb +26 -0
- data/spec/features/feature_page_spec.rb +1 -1
- data/spec/features/home_page_spec.rb +1 -1
- data/spec/features/import_exhibit_spec.rb +1 -1
- data/spec/features/item_admin_spec.rb +1 -1
- data/spec/features/javascript/about_page_admin_spec.rb +1 -1
- data/spec/features/javascript/block_controls_spec.rb +1 -1
- data/spec/features/javascript/blocks/featured_browse_categories_block_spec.rb +1 -1
- data/spec/features/javascript/blocks/featured_pages_block_spec.rb +34 -7
- data/spec/features/javascript/blocks/search_result_block_spec.rb +1 -1
- data/spec/features/javascript/blocks/solr_documents_block_spec.rb +1 -1
- data/spec/features/javascript/blocks/uploaded_items_block_spec.rb +63 -0
- data/spec/features/javascript/edit_in_place_spec.rb +1 -1
- data/spec/features/javascript/feature_page_admin_spec.rb +1 -1
- data/spec/features/javascript/home_page_edit_spec.rb +1 -1
- data/spec/features/javascript/metadata_admin_spec.rb +1 -1
- data/spec/features/javascript/multi_image_select_spec.rb +1 -1
- data/spec/features/javascript/preview_block_spec.rb +1 -1
- data/spec/features/javascript/rule_block_spec.rb +1 -1
- data/spec/features/javascript/search_config_admin_spec.rb +2 -2
- data/spec/features/javascript/search_context_spec.rb +1 -1
- data/spec/features/main_navigation_spec.rb +1 -1
- data/spec/features/metadata_admin_spec.rb +1 -1
- data/spec/features/multiple_exhibits_spec.rb +3 -3
- data/spec/features/report_a_problem_spec.rb +1 -1
- data/spec/features/site_masthead_spec.rb +1 -1
- data/spec/features/slideshow_spec.rb +1 -1
- data/spec/features/tags_admin_spec.rb +1 -1
- data/spec/features/upload_non_repository_item_spec.rb +1 -1
- data/spec/features/user_admin_spec.rb +1 -1
- data/spec/helpers/spotlight/navbar_helper_spec.rb +2 -2
- data/spec/models/spotlight/contact_spec.rb +8 -0
- data/spec/models/spotlight/exhibit_spec.rb +29 -42
- data/spec/models/spotlight/sitemap_spec.rb +112 -0
- data/spec/serializers/spotlight/exhibit_export_serializer_spec.rb +81 -4
- data/spec/views/shared/_exhibit_masthead_and_navbar.html.erb_spec.rb +36 -0
- data/spec/views/shared/_header_navbar.html.erb_spec.rb +3 -25
- data/spec/views/spotlight/exhibits/index.html.erb_spec.rb +52 -0
- metadata +48 -6
- data/app/controllers/spotlight/default_controller.rb +0 -11
- data/lib/spotlight/rails/routes.rb +0 -11
- data/spec/lib/spotlight/routes_spec.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 351909ac5de4d14fb42941ccf4a0f256a1e5f33a
|
4
|
+
data.tar.gz: dc6ff75445a24ca3ee49ef3776ea0b3ab6b37b62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d26fcd3db00fb8981613e734e698e05d1cc416ce1e8e205bdf2f6748e7a912fcefab2008a3b432a124e363e54a2b26623edfbf6c34299cbd67f18d7b47c59504
|
7
|
+
data.tar.gz: b6abc8e74091524fcb57b34175a54541929b070ad9c44c24349e8539d6e11e7c19fe8819960b10a0dafb86c43a0eaaa1cca74b924351bdd96d3d433e16c81ef9
|
@@ -5,13 +5,13 @@ Spotlight.Block.Resources = (function(){
|
|
5
5
|
formable: true,
|
6
6
|
autocompleteable: true,
|
7
7
|
show_heading: true,
|
8
|
-
|
8
|
+
|
9
9
|
title: function() { return i18n.t("blocks:" + this.type + ":title"); },
|
10
10
|
description: function() { return i18n.t("blocks:" + this.type + ":description"); },
|
11
11
|
|
12
12
|
icon_name: "resources",
|
13
13
|
blockGroup: function() { return i18n.t("blocks:group:items") },
|
14
|
-
|
14
|
+
|
15
15
|
primary_field_key: "primary-caption-field",
|
16
16
|
show_primary_field_key: "show-primary-caption",
|
17
17
|
secondary_field_key: "secondary-caption-field",
|
@@ -63,11 +63,11 @@ Spotlight.Block.Resources = (function(){
|
|
63
63
|
var panel = $(_.template(markup)(this));
|
64
64
|
var context = this;
|
65
65
|
|
66
|
-
$('.remove a', panel).on('click', function(e) {
|
67
|
-
e.preventDefault();
|
66
|
+
$('.remove a', panel).on('click', function(e) {
|
67
|
+
e.preventDefault();
|
68
68
|
$(this).closest('.field').remove();
|
69
69
|
context.afterPanelDelete();
|
70
|
-
|
70
|
+
|
71
71
|
});
|
72
72
|
|
73
73
|
this.afterPanelRender(data, panel);
|
@@ -78,14 +78,15 @@ Spotlight.Block.Resources = (function(){
|
|
78
78
|
afterPanelRender: function(data, panel) {
|
79
79
|
|
80
80
|
},
|
81
|
-
|
81
|
+
|
82
82
|
afterPanelDelete: function() {
|
83
83
|
|
84
84
|
},
|
85
85
|
|
86
|
-
createItemPanel: function(data) {
|
86
|
+
createItemPanel: function(data) {
|
87
87
|
var panel = this._itemPanel(data);
|
88
88
|
$(panel).appendTo(this.$el.find('.panels > ol'));
|
89
|
+
this.$el.find('[data-behavior="nestable"]').trigger('change');
|
89
90
|
},
|
90
91
|
|
91
92
|
item_options: function() { return ""; },
|
@@ -126,7 +127,7 @@ Spotlight.Block.Resources = (function(){
|
|
126
127
|
|
127
128
|
this.$el.find('[data-input-select-target]').selectRelatedInput();
|
128
129
|
},
|
129
|
-
|
130
|
+
|
130
131
|
afterLoadData: function(data) {
|
131
132
|
var context = this;
|
132
133
|
$.each(Object.keys(data.item || {}).map(function(k) { return data.item[k]}).sort(function(a,b) { return a.weight - b.weight; }), function(index, item) {
|
@@ -135,4 +136,4 @@ Spotlight.Block.Resources = (function(){
|
|
135
136
|
},
|
136
137
|
});
|
137
138
|
|
138
|
-
})();
|
139
|
+
})();
|
@@ -0,0 +1,129 @@
|
|
1
|
+
SirTrevor.Blocks.UploadedItems = (function(){
|
2
|
+
return Spotlight.Block.Resources.extend({
|
3
|
+
textable: true,
|
4
|
+
uploadable: true,
|
5
|
+
autocompleteable: false,
|
6
|
+
|
7
|
+
id_key: 'file',
|
8
|
+
|
9
|
+
type: 'uploaded_items',
|
10
|
+
|
11
|
+
icon_name: 'items',
|
12
|
+
|
13
|
+
blockGroup: 'undefined',
|
14
|
+
|
15
|
+
// Clear out the default Uploadable upload options
|
16
|
+
// since we will be using our own custom controls
|
17
|
+
upload_options: { html: '' },
|
18
|
+
|
19
|
+
fileInput: function() { return this.$el.find('input[type="file"]'); },
|
20
|
+
|
21
|
+
onBlockRender: function(){
|
22
|
+
SpotlightNestable.init(this.$el.find('[data-behavior="nestable"]'));
|
23
|
+
|
24
|
+
this.fileInput().on('change', (function(ev) {
|
25
|
+
this.onDrop(ev.currentTarget);
|
26
|
+
}).bind(this));
|
27
|
+
},
|
28
|
+
|
29
|
+
onDrop: function(transferData){
|
30
|
+
var file = transferData.files[0],
|
31
|
+
urlAPI = (typeof URL !== "undefined") ? URL : (typeof webkitURL !== "undefined") ? webkitURL : null;
|
32
|
+
|
33
|
+
// Handle one upload at a time
|
34
|
+
if (/image/.test(file.type)) {
|
35
|
+
this.loading();
|
36
|
+
|
37
|
+
this.uploader(
|
38
|
+
file,
|
39
|
+
function(data) {
|
40
|
+
this.createItemPanel(data);
|
41
|
+
this.fileInput().val('');
|
42
|
+
this.ready();
|
43
|
+
},
|
44
|
+
function(error) {
|
45
|
+
this.addMessage(i18n.t('blocks:image:upload_error'));
|
46
|
+
this.ready();
|
47
|
+
}
|
48
|
+
);
|
49
|
+
}
|
50
|
+
},
|
51
|
+
|
52
|
+
title: function() { return i18n.t('blocks:uploaded_items:title'); },
|
53
|
+
description: function() { return i18n.t('blocks:uploaded_items:description'); },
|
54
|
+
|
55
|
+
globalIndex: 0,
|
56
|
+
|
57
|
+
_itemPanel: function(data) {
|
58
|
+
var index = "file_" + this.globalIndex++;
|
59
|
+
var checked = 'checked="checked"';
|
60
|
+
|
61
|
+
if (data.display == 'false') {
|
62
|
+
checked = '';
|
63
|
+
}
|
64
|
+
|
65
|
+
var dataId = data.id || data.uid;
|
66
|
+
var dataTitle = data.title || data.name;
|
67
|
+
var dataUrl = data.url || data.file.url;
|
68
|
+
|
69
|
+
var markup = [
|
70
|
+
'<li class="field form-inline dd-item dd3-item" data-id="' + index + '" id="' + this.formId("item_" + dataId) + '">',
|
71
|
+
'<input type="hidden" name="item[' + index + '][id]" value="' + dataId + '" />',
|
72
|
+
'<input type="hidden" name="item[' + index + '][title]" value="' + dataTitle + '" />',
|
73
|
+
'<input type="hidden" name="item[' + index + '][url]" data-item-grid-thumbnail="true" value="' + dataUrl + '"/>',
|
74
|
+
'<input data-property="weight" type="hidden" name="item[' + index + '][weight]" value="' + data.weight + '" />',
|
75
|
+
'<div class="dd-handle dd3-handle"><%= i18n.t("blocks:resources:panel:drag") %></div>',
|
76
|
+
'<div class="dd3-content panel panel-default">',
|
77
|
+
'<div class="panel-heading item-grid">',
|
78
|
+
'<div class="checkbox">',
|
79
|
+
'<input name="item[' + index + '][display]" type="hidden" value="false" />',
|
80
|
+
'<input name="item[' + index + '][display]" id="'+ this.formId(this.display_checkbox + '_' + dataId) + '" type="checkbox" ' + checked + ' class="item-grid-checkbox" value="true" />',
|
81
|
+
'<label class="sr-only" for="'+ this.formId(this.display_checkbox + '_' + dataId) +'"><%= i18n.t("blocks:resources:panel:display") %></label>',
|
82
|
+
'</div>',
|
83
|
+
'<div class="pic thumbnail">',
|
84
|
+
'<img src="' + dataUrl + '" />',
|
85
|
+
'</div>',
|
86
|
+
'<div class="main">',
|
87
|
+
'<div class="title panel-title">' + dataTitle + '</div>',
|
88
|
+
'</div>',
|
89
|
+
'<div class="remove pull-right">',
|
90
|
+
'<a data-item-grid-panel-remove="true" href="#"><%= i18n.t("blocks:resources:panel:remove") %></a>',
|
91
|
+
'</div>',
|
92
|
+
'</div>',
|
93
|
+
'</div>',
|
94
|
+
'</li>'
|
95
|
+
].join("\n");
|
96
|
+
|
97
|
+
var panel = $(_.template(markup)(this));
|
98
|
+
var context = this;
|
99
|
+
|
100
|
+
$('.remove a', panel).on('click', function(e) {
|
101
|
+
e.preventDefault();
|
102
|
+
$(this).closest('.field').remove();
|
103
|
+
context.afterPanelDelete();
|
104
|
+
});
|
105
|
+
|
106
|
+
this.afterPanelRender(data, panel);
|
107
|
+
|
108
|
+
return panel;
|
109
|
+
},
|
110
|
+
|
111
|
+
template: [
|
112
|
+
'<div class="form oembed-text-admin clearfix">',
|
113
|
+
'<div class="widget-header">',
|
114
|
+
'<%= description() %>',
|
115
|
+
'</div>',
|
116
|
+
'<div class="row">',
|
117
|
+
'<div class="form-group col-md-8">',
|
118
|
+
'<div class="panels dd nestable-item-grid" data-behavior="nestable" data-max-depth="1">',
|
119
|
+
'<ol class="dd-list">',
|
120
|
+
'</ol>',
|
121
|
+
'</div>',
|
122
|
+
'<input type="file" id="uploaded_item_url" name="file[file_0][file_data]" />',
|
123
|
+
'</div>',
|
124
|
+
'</div>',
|
125
|
+
'<%= text_area() %>',
|
126
|
+
'</div>'
|
127
|
+
].join("\n")
|
128
|
+
});
|
129
|
+
})();
|
@@ -21,6 +21,11 @@ SirTrevor.Locales.en.blocks = $.extend(SirTrevor.Locales.en.blocks, {
|
|
21
21
|
url: "URL",
|
22
22
|
},
|
23
23
|
|
24
|
+
uploaded_items: {
|
25
|
+
title: "Uploaded Item Row",
|
26
|
+
description: "This widget displays uploaded items in a horizontal row. Optionally, you can add a heading and/or text to be displayed adjacent to the items."
|
27
|
+
},
|
28
|
+
|
24
29
|
featured_pages: {
|
25
30
|
title: "Feature Pages",
|
26
31
|
description: "This widget highlights feature pages. Each highlighted item links to the corresponding feature page."
|
@@ -68,7 +73,7 @@ SirTrevor.Locales.en.blocks = $.extend(SirTrevor.Locales.en.blocks, {
|
|
68
73
|
title: "Maximum carousel height"
|
69
74
|
}
|
70
75
|
},
|
71
|
-
|
76
|
+
|
72
77
|
solr_documents_embed: {
|
73
78
|
title: "Item Embed",
|
74
79
|
description: "This widget embeds exhibit items on a page. Optionally, you can add a heading and/or text to be displayed adjacent to the items.",
|
@@ -98,4 +103,4 @@ SirTrevor.Locales.en.blocks = $.extend(SirTrevor.Locales.en.blocks, {
|
|
98
103
|
undefined: "Standard widgets",
|
99
104
|
items: "Exhibit item widgets"
|
100
105
|
}
|
101
|
-
});
|
106
|
+
});
|
@@ -0,0 +1,97 @@
|
|
1
|
+
.exhibit-card {
|
2
|
+
box-sizing: border-box;
|
3
|
+
float: left;
|
4
|
+
height: $exhibit-card-height;
|
5
|
+
margin: 0 -1 * $exhibit-card-gutter $exhibit-card-gutter $exhibit-card-gutter;
|
6
|
+
// image width + gutter + border (x2)
|
7
|
+
max-width: $exhibit-card-image-size + $exhibit-card-gutter + 2px;
|
8
|
+
padding: 0 $exhibit-card-gutter 0 0;
|
9
|
+
perspective: 1000; // for flip animation
|
10
|
+
position: relative;
|
11
|
+
|
12
|
+
.flipper {
|
13
|
+
position: relative;
|
14
|
+
transform-style: preserve-3d;
|
15
|
+
transition: 0.6s;
|
16
|
+
}
|
17
|
+
|
18
|
+
&.hover .flipper,
|
19
|
+
&:hover .flipper {
|
20
|
+
-ms-filter: "FlipH"; // autoprefixer doesn't handle this case.
|
21
|
+
filter: FlipH;
|
22
|
+
transform: rotateY(180deg);
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
.card-face {
|
27
|
+
backface-visibility: hidden;
|
28
|
+
background-color: $exhibit-card-bg;
|
29
|
+
border: 1px solid $exhibit-card-border;
|
30
|
+
height: $exhibit-card-height;
|
31
|
+
left: 0;
|
32
|
+
position: absolute;
|
33
|
+
top: 0;
|
34
|
+
transform-style: preserve-3d;
|
35
|
+
transition: 0.6s;
|
36
|
+
width: 100%;
|
37
|
+
}
|
38
|
+
|
39
|
+
.card-title {
|
40
|
+
@extend .h5;
|
41
|
+
@extend .text-center;
|
42
|
+
|
43
|
+
font-size: $font-size-h4;
|
44
|
+
}
|
45
|
+
|
46
|
+
.card-front {
|
47
|
+
transform: rotateY(0deg);
|
48
|
+
z-index: 2;
|
49
|
+
|
50
|
+
img {
|
51
|
+
height: $exhibit-card-image-size;
|
52
|
+
object-fit: cover;
|
53
|
+
width: $exhibit-card-image-size;
|
54
|
+
}
|
55
|
+
|
56
|
+
.card-title {
|
57
|
+
padding-top: $padding-large-vertical;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
.card-back {
|
62
|
+
box-shadow: $exhibit-card-shadow;
|
63
|
+
padding: 0 $exhibit-card-gutter;
|
64
|
+
transform: rotateY(-180deg);
|
65
|
+
|
66
|
+
.card-title {
|
67
|
+
border-bottom: 1px dotted $exhibit-card-border;
|
68
|
+
line-height: $headings-line-height;
|
69
|
+
margin-bottom: $padding-base-vertical;
|
70
|
+
padding-bottom: $padding-base-vertical;
|
71
|
+
}
|
72
|
+
|
73
|
+
.subtitle {
|
74
|
+
@extend .h5;
|
75
|
+
@extend .text-center;
|
76
|
+
line-height: $headings-line-height;
|
77
|
+
}
|
78
|
+
|
79
|
+
.description {
|
80
|
+
font-size: $font-size-h6;
|
81
|
+
}
|
82
|
+
|
83
|
+
.visit-exhibit {
|
84
|
+
bottom: $exhibit-card-gutter;
|
85
|
+
position: absolute;
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
.center-btn {
|
90
|
+
left: 50%;
|
91
|
+
position: absolute;
|
92
|
+
|
93
|
+
.btn {
|
94
|
+
left: -50%;
|
95
|
+
position: relative;
|
96
|
+
}
|
97
|
+
}
|
@@ -91,6 +91,15 @@
|
|
91
91
|
}
|
92
92
|
}
|
93
93
|
|
94
|
+
.st-icon-uploaded_items {
|
95
|
+
@extend .icon;
|
96
|
+
background-image: image-url('spotlight/blocks/item-row.png');
|
97
|
+
|
98
|
+
&:hover {
|
99
|
+
background-image: image-url('spotlight/blocks/item-row-on.png');
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
94
103
|
.st-icon-search_results {
|
95
104
|
@extend .icon;
|
96
105
|
background-image: image-url('spotlight/blocks/results.png');
|
@@ -196,4 +205,4 @@
|
|
196
205
|
|
197
206
|
.st-block-positioner {
|
198
207
|
left: -6.5em;
|
199
|
-
}
|
208
|
+
}
|
@@ -16,6 +16,7 @@
|
|
16
16
|
@import "spotlight/edit_in_place";
|
17
17
|
@import "spotlight/featured_browse_categories_block";
|
18
18
|
@import "spotlight/item_text_block";
|
19
|
+
@import "spotlight/uploaded_items_block";
|
19
20
|
@import "spotlight/multi_image_selector";
|
20
21
|
@import "spotlight/multi_up_item_grid";
|
21
22
|
@import "spotlight/slideshow_block";
|
@@ -26,6 +27,7 @@
|
|
26
27
|
@import "spotlight/bootstrap_overrides";
|
27
28
|
@import "spotlight/blacklight_overrides";
|
28
29
|
@import "spotlight/report_a_problem";
|
30
|
+
@import "spotlight/exhibits_index";
|
29
31
|
|
30
32
|
|
31
33
|
|
@@ -1,4 +1,11 @@
|
|
1
|
-
$footer-top-margin: 3 * $padding-small-vertical;
|
2
|
-
$footer-height: 118px;
|
3
|
-
$white: #
|
4
|
-
$black: #000000;
|
1
|
+
$footer-top-margin: 3 * $padding-small-vertical !default;
|
2
|
+
$footer-height: 118px !default;
|
3
|
+
$white: #ffffff !default;
|
4
|
+
$black: #000000 !default;
|
5
|
+
|
6
|
+
$exhibit-card-height: 350px !default;
|
7
|
+
$exhibit-card-bg: $well-bg !default;
|
8
|
+
$exhibit-card-border: $well-border !default;
|
9
|
+
$exhibit-card-gutter: $padding-large-horizontal !default;
|
10
|
+
$exhibit-card-image-size: 273px !default;
|
11
|
+
$exhibit-card-shadow: inset 2px 2px 5px -2px $exhibit-card-border !default;
|
@@ -2,18 +2,26 @@ module Spotlight
|
|
2
2
|
##
|
3
3
|
# Administrative CRUD actions for an exhibit
|
4
4
|
class ExhibitsController < Spotlight::ApplicationController
|
5
|
-
before_action :authenticate_user
|
5
|
+
before_action :authenticate_user!, except: [:index]
|
6
6
|
include Blacklight::SearchHelper
|
7
7
|
|
8
8
|
load_and_authorize_resource
|
9
9
|
|
10
|
+
def index
|
11
|
+
if @exhibits.one?
|
12
|
+
redirect_to @exhibits.first
|
13
|
+
else
|
14
|
+
render layout: 'spotlight/home'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
10
18
|
def new
|
11
19
|
build_initial_exhibit_contact_emails
|
12
20
|
end
|
13
21
|
|
14
22
|
def process_import
|
15
23
|
@exhibit.import(JSON.parse(import_exhibit_params.read))
|
16
|
-
if @exhibit.save
|
24
|
+
if @exhibit.save && @exhibit.reindex_later
|
17
25
|
redirect_to spotlight.exhibit_dashboard_path(@exhibit), notice: t(:'helpers.submit.exhibit.updated', model: @exhibit.class.model_name.human.downcase)
|
18
26
|
else
|
19
27
|
render action: :import
|
@@ -80,6 +88,13 @@ module Spotlight
|
|
80
88
|
)
|
81
89
|
end
|
82
90
|
|
91
|
+
def create_params
|
92
|
+
params.require(:exhibit).permit(
|
93
|
+
:title,
|
94
|
+
:slug
|
95
|
+
)
|
96
|
+
end
|
97
|
+
|
83
98
|
def import_exhibit_params
|
84
99
|
params.require(:file)
|
85
100
|
end
|
@@ -4,7 +4,7 @@ module Spotlight
|
|
4
4
|
module MainAppHelpers
|
5
5
|
include Spotlight::NavbarHelper
|
6
6
|
def cache_key_for_spotlight_exhibits
|
7
|
-
Spotlight::Exhibit.maximum(:updated_at).try(:utc)
|
7
|
+
"#{Spotlight::Exhibit.count}/#{Spotlight::Exhibit.maximum(:updated_at).try(:utc)}"
|
8
8
|
end
|
9
9
|
|
10
10
|
def on_browse_page?
|
@@ -7,7 +7,7 @@ module Spotlight
|
|
7
7
|
# if the exhibit is not searchable, we're not in an exhibit, or the top-level
|
8
8
|
# exhibit masthead isn't being used (e.g. on a browse category)
|
9
9
|
def should_render_spotlight_search_bar?
|
10
|
-
exhibit_masthead? &&
|
10
|
+
exhibit_masthead? && current_exhibit && current_exhibit.searchable?
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|