blacklight-spotlight 0.24.0 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/spotlight/blocks/sir-trevor-icons.svg +320 -0
  3. data/app/assets/javascripts/spotlight/application.js +2 -1
  4. data/app/assets/javascripts/spotlight/block_mixins/autocompleteable.js +1 -1
  5. data/app/assets/javascripts/spotlight/block_mixins/formable.js +4 -4
  6. data/app/assets/javascripts/spotlight/block_mixins/{textable.js → plustextable.js} +2 -2
  7. data/app/assets/javascripts/spotlight/blocks/block.js +6 -3
  8. data/app/assets/javascripts/spotlight/blocks/browse_block.js +4 -2
  9. data/app/assets/javascripts/spotlight/blocks/oembed_block.js +1 -1
  10. data/app/assets/javascripts/spotlight/blocks/pages_block.js +1 -1
  11. data/app/assets/javascripts/spotlight/blocks/resources_block.js +5 -5
  12. data/app/assets/javascripts/spotlight/blocks/rule_block.js +0 -2
  13. data/app/assets/javascripts/spotlight/blocks/search_result_block.js +3 -3
  14. data/app/assets/javascripts/spotlight/blocks/solr_documents_block.js +1 -1
  15. data/app/assets/javascripts/spotlight/blocks/solr_documents_carousel_block.js +3 -3
  16. data/app/assets/javascripts/spotlight/blocks/solr_documents_embed_block.js +1 -1
  17. data/app/assets/javascripts/spotlight/blocks/solr_documents_features_block.js +3 -3
  18. data/app/assets/javascripts/spotlight/blocks/uploaded_items_block.js +3 -3
  19. data/app/assets/javascripts/spotlight/pages.js.erb +40 -0
  20. data/app/assets/javascripts/spotlight/sir-trevor.js +0 -7
  21. data/app/assets/javascripts/spotlight/sir-trevor/block_controls.js +111 -0
  22. data/app/assets/javascripts/spotlight/sir-trevor/block_limits.js +15 -20
  23. data/app/assets/javascripts/spotlight/sir-trevor/locales.js +0 -4
  24. data/app/assets/stylesheets/spotlight/_sir-trevor_overrides.scss +40 -166
  25. data/app/assets/stylesheets/spotlight/application.scss +1 -2
  26. data/app/assets/stylesheets/spotlight/typeahead.css +32 -28
  27. data/app/controllers/spotlight/catalog_controller.rb +1 -0
  28. data/app/helpers/spotlight/application_helper.rb +15 -27
  29. data/app/helpers/spotlight/meta_helper.rb +110 -0
  30. data/app/models/spotlight/feature_page.rb +0 -2
  31. data/app/models/spotlight/page.rb +2 -0
  32. data/app/models/spotlight/reindex_progress.rb +1 -1
  33. data/app/views/spotlight/browse/_tophat.html.erb +1 -0
  34. data/app/views/spotlight/browse/show.html.erb +1 -0
  35. data/app/views/spotlight/catalog/_tophat_default.html.erb +1 -0
  36. data/app/views/spotlight/exhibits/index.html.erb +1 -1
  37. data/app/views/spotlight/home_pages/_tophat.html.erb +1 -1
  38. data/app/views/spotlight/pages/_tophat.html.erb +1 -0
  39. data/lib/generators/spotlight/templates/spotlight.scss +1 -2
  40. data/lib/spotlight/engine.rb +1 -1
  41. data/lib/spotlight/version.rb +1 -1
  42. data/spec/features/browse_category_spec.rb +11 -0
  43. data/spec/features/catalog_spec.rb +14 -0
  44. data/spec/features/feature_page_spec.rb +18 -0
  45. data/spec/features/home_page_spec.rb +4 -0
  46. data/spec/features/javascript/block_controls_spec.rb +3 -3
  47. data/spec/features/javascript/home_page_edit_spec.rb +2 -3
  48. data/spec/helpers/spotlight/application_helper_spec.rb +54 -37
  49. data/spec/helpers/spotlight/meta_helper_spec.rb +43 -0
  50. data/spec/models/spotlight/reindex_progress_spec.rb +6 -4
  51. data/spec/support/features/test_features_helpers.rb +7 -11
  52. data/spec/views/spotlight/browse/show.html.erb_spec.rb +1 -0
  53. data/spec/views/spotlight/pages/show.html.erb_spec.rb +1 -0
  54. data/vendor/assets/images/sir-trevor-icons.svg +263 -0
  55. data/vendor/assets/javascripts/eventable.js +205 -0
  56. data/vendor/assets/javascripts/sir-trevor.js +21123 -12549
  57. data/vendor/assets/stylesheets/sir-trevor/_icons.scss +6 -0
  58. data/vendor/assets/stylesheets/sir-trevor/_variables.scss +23 -0
  59. data/vendor/assets/stylesheets/sir-trevor/base.scss +28 -0
  60. data/vendor/assets/stylesheets/sir-trevor/block-addition-top.scss +95 -0
  61. data/vendor/assets/stylesheets/sir-trevor/block-addition.scss +72 -0
  62. data/vendor/assets/stylesheets/sir-trevor/block-controls.scss +38 -0
  63. data/vendor/assets/stylesheets/sir-trevor/block-positioner.scss +34 -0
  64. data/vendor/assets/stylesheets/sir-trevor/block-replacer.scss +43 -0
  65. data/vendor/assets/stylesheets/sir-trevor/block-ui.scss +120 -0
  66. data/vendor/assets/stylesheets/sir-trevor/block.scss +300 -0
  67. data/vendor/assets/stylesheets/sir-trevor/errors.scss +21 -0
  68. data/vendor/assets/stylesheets/sir-trevor/format-bar.scss +65 -0
  69. data/vendor/assets/stylesheets/sir-trevor/inputs.scss +45 -0
  70. data/vendor/assets/stylesheets/sir-trevor/main.scss +24 -0
  71. data/vendor/assets/stylesheets/sir-trevor/patterns/ui-popup.scss +38 -0
  72. data/vendor/assets/stylesheets/sir-trevor/utils.scss +10 -0
  73. metadata +29 -45
  74. data/app/assets/images/spotlight/blocks/browse-on.png +0 -0
  75. data/app/assets/images/spotlight/blocks/browse.png +0 -0
  76. data/app/assets/images/spotlight/blocks/features-on.png +0 -0
  77. data/app/assets/images/spotlight/blocks/features.png +0 -0
  78. data/app/assets/images/spotlight/blocks/item-carousel-on.png +0 -0
  79. data/app/assets/images/spotlight/blocks/item-carousel.png +0 -0
  80. data/app/assets/images/spotlight/blocks/item-embed-on.png +0 -0
  81. data/app/assets/images/spotlight/blocks/item-embed.png +0 -0
  82. data/app/assets/images/spotlight/blocks/item-grid-on.png +0 -0
  83. data/app/assets/images/spotlight/blocks/item-grid.png +0 -0
  84. data/app/assets/images/spotlight/blocks/item-row-on.png +0 -0
  85. data/app/assets/images/spotlight/blocks/item-row.png +0 -0
  86. data/app/assets/images/spotlight/blocks/item-slideshow-on.png +0 -0
  87. data/app/assets/images/spotlight/blocks/item-slideshow.png +0 -0
  88. data/app/assets/images/spotlight/blocks/results-on.png +0 -0
  89. data/app/assets/images/spotlight/blocks/results.png +0 -0
  90. data/app/assets/images/spotlight/blocks/rule-on.png +0 -0
  91. data/app/assets/images/spotlight/blocks/rule.png +0 -0
  92. data/app/assets/images/spotlight/blocks/text-on.png +0 -0
  93. data/app/assets/images/spotlight/blocks/text.png +0 -0
  94. data/app/assets/javascripts/spotlight/block_mixins/previewable.js +0 -103
  95. data/app/assets/javascripts/spotlight/block_mixins/titleable.js +0 -12
  96. data/app/assets/javascripts/spotlight/pages.js +0 -28
  97. data/app/assets/javascripts/spotlight/sir-trevor/grouped_block_controls.js +0 -33
  98. data/spec/features/javascript/preview_block_spec.rb +0 -37
  99. data/vendor/assets/stylesheets/sir-trevor-icons.css +0 -6
  100. data/vendor/assets/stylesheets/sir-trevor.css +0 -464
@@ -0,0 +1,300 @@
1
+ .st-blocks {
2
+ overflow: hidden;
3
+ position:relative;
4
+ }
5
+
6
+ .st-block {
7
+ position: relative;
8
+ }
9
+
10
+ .st-block__inner {
11
+ position: relative;
12
+ margin: 0 110px;
13
+ margin-top: 1em;
14
+ margin-bottom: 1em;
15
+
16
+ .st-block--textable & {
17
+ margin-top: 0;
18
+ margin-bottom: 0;
19
+ }
20
+ }
21
+
22
+ .st-block__inner--droppable {
23
+ border: 1px solid $blocks-control-border-color;
24
+ background: $blocks-control-bg-color;
25
+ cursor: pointer;
26
+ margin-top: 2em;
27
+ margin-bottom: 2em;
28
+
29
+ &:focus {
30
+ border-color: $accent-color;
31
+ outline: none;
32
+ }
33
+ }
34
+
35
+ .st-block__inner {
36
+ .st-block[data-type="quote"] & {
37
+ margin-left: 155px;
38
+ margin-right: 155px;
39
+ margin-top: 2em;
40
+ margin-bottom: 2em;
41
+ }
42
+ }
43
+
44
+ .st-block__inner--controllable {
45
+ padding-bottom: 3em;
46
+ transition: all 0.2s;
47
+ }
48
+
49
+ .st-block--with-errors .st-block__inner,
50
+ .st-block--delete-active .st-block__inner {
51
+ border-color: $error-color;
52
+ }
53
+
54
+ .st-block--with-plus:after,
55
+ .st-icon--add:after {
56
+ display: block;
57
+ position: relative; z-index: 1;
58
+ bottom: 0;
59
+ }
60
+
61
+ .st--block-limit-reached .st-block-addition {
62
+ display: none;
63
+ }
64
+
65
+ .st-icon--add:after {
66
+ text-align: center;
67
+ font-size: 1.875em;
68
+ padding: 0.3em 0;
69
+ line-height: 0.9;
70
+ border-radius: 0.2em;
71
+ }
72
+
73
+ .st-block--with-plus:after {
74
+ background: $blocks-control-bg-color;
75
+ color: $accent-color;
76
+ cursor: pointer;
77
+ }
78
+
79
+ .with-st-controls:after,
80
+ .with-st-controls:before {
81
+ display:none
82
+ }
83
+
84
+ .st-block.st-drag-over:after,
85
+ .st-block.st-drag-over:last-child:after,
86
+ .st-top-controls.st-drag-over:before {
87
+ content: "";
88
+ background: transparent;
89
+ display:block;
90
+ width:100%;
91
+ height:3px;
92
+ position:absolute;
93
+ bottom:0;
94
+ left:0;
95
+ background:$accent-color;
96
+ }
97
+
98
+ .st-drag-element {
99
+ background:#fff;
100
+ box-shadow: 3px 3px $accent-color inset, -3px -3px $accent-color inset ;
101
+ position:absolute;
102
+ width:100%;
103
+ z-index:-1;
104
+
105
+ .st-block-addition {
106
+ display:none;
107
+ }
108
+ }
109
+
110
+ .st-block--dragging {
111
+ background:#f6f7f9;
112
+ & > * {
113
+ opacity:0;
114
+ }
115
+ & .st-block-addition {
116
+ opacity:1;
117
+ }
118
+ }
119
+
120
+ .st-drag-over {
121
+ & .st-block-addition {
122
+ opacity:0;
123
+ }
124
+ }
125
+
126
+ .st-text-block {
127
+ @include st-input;
128
+ @include st-input-active;
129
+ font-size: $text-block-font-size;
130
+ line-height: 1.45;
131
+ overflow:visible;
132
+
133
+ .st-block--empty & {
134
+ line-height: 55px;
135
+ }
136
+ }
137
+
138
+ .st-text-block p {
139
+ // display: inline;
140
+ // margin: 0;
141
+ vertical-align: 14%;
142
+ }
143
+
144
+ .st-text-block--heading {
145
+ line-height: 1.45;
146
+ font-size: 1.5em;
147
+ min-height: 1em;
148
+ font-weight: 700;
149
+ margin: 0.58em 0;
150
+ overflow: visible;
151
+ }
152
+
153
+ .st-text-block--heading p {
154
+ margin:.5em 0;
155
+ }
156
+
157
+ .st-text-block--quote {
158
+ font-size: 1.875em;
159
+ line-height: 1.3;
160
+ margin-bottom: 1.8em;
161
+ }
162
+
163
+ ul.st-text-block {
164
+ margin-left: 1.875em;
165
+ }
166
+
167
+ .st-list-block__list {
168
+ font-size: $text-block-font-size;
169
+ margin: 0;
170
+ padding-left: 1em;
171
+ }
172
+
173
+ .st-list-block__editor {
174
+ width: 100%;
175
+ line-height: 1.8em;
176
+ }
177
+
178
+ .st-block__inputs {
179
+ padding: 1.6em 0 1em;
180
+ border-radius: 0.2em;
181
+ border-top: $border-size $border-style transparent;
182
+ }
183
+
184
+ .st-block__dropzone .st-icon {
185
+ font-size: 4em;
186
+ color: $base-ui-color;
187
+ display: block;
188
+ text-align: center;
189
+ margin: 0 auto 0.2em;
190
+ }
191
+
192
+ .st-block__dropzone p {
193
+ text-align: center;
194
+ color: $base-ui-color;
195
+ font-size: 1.2em;
196
+ margin: 0;
197
+ }
198
+
199
+ .st-block__dropzone p span {
200
+ font-weight: 700;
201
+ }
202
+
203
+ .st-drag-over .st-block__inputs {
204
+ border-top-color: darken($blocks-control-bg-color, 15%);
205
+ }
206
+
207
+ .st-block .st-block__paste-input[type="text"] {
208
+ text-align: center;
209
+ width: 80%;
210
+ display: block;
211
+ margin: 0.4em auto 0;
212
+ }
213
+
214
+ .st-upload-btn {
215
+ border: 0;
216
+ background: $base-ui-color;
217
+ border-radius: 0.2em;
218
+ padding: 0.35em 1em;
219
+ font-size: 1.125em;
220
+ cursor: pointer;
221
+ color: #fff;
222
+ position: relative;
223
+ z-index: 10;
224
+ }
225
+
226
+ .st-block__upload-container:hover .st-upload-btn {
227
+ background:$accent-color;
228
+ color: #fff;
229
+ }
230
+
231
+ .st-block__editor--with-square-media {
232
+ padding-top: 100%; /* 16:9 */
233
+ height: 0;
234
+ position: relative;
235
+ width: 100%;
236
+ }
237
+
238
+ .st-block__editor--with-sixteen-by-nine-media {
239
+ padding-top: 56.25%; /* 16:9 */
240
+ height: 0;
241
+ position: relative;
242
+ width: 100%;
243
+ }
244
+
245
+ .st-block__editor--with-square-media video,
246
+ .st-block__editor--with-square-media iframe,
247
+ .st-block__editor--with-sixteen-by-nine-media video,
248
+ .st-block__editor--with-sixteen-by-nine-media iframe {
249
+ height: 100%;
250
+ width: 100%;
251
+ left: 0; top: 0;
252
+ position: absolute;
253
+ }
254
+
255
+ .st-block__editor img {
256
+ width: 100%;
257
+ height: auto;
258
+ }
259
+
260
+ .st-block__upload-container {
261
+ margin: 0.4em 0 0 0;
262
+ text-align: center;
263
+ }
264
+
265
+ .st-block__upload-container input[type="file"] {
266
+ position: absolute;
267
+ z-index: 50;
268
+ opacity: 0;
269
+ cursor: pointer;
270
+ left: 0;
271
+ width: 100%;
272
+ padding: 7px 0;
273
+ text-align: center;
274
+ }
275
+
276
+ .st-block__messages {
277
+ display: none;
278
+ position: relative;
279
+ padding: .3em .5em;
280
+ border: $default-border;
281
+ border-left: none;
282
+ border-top: none;
283
+ max-width: 80%;
284
+ }
285
+
286
+ .st-block__messages--is-visible {
287
+ display: block;
288
+ }
289
+
290
+ .st-block--with-errors .st-block__messages {
291
+ border-color: $error-color;
292
+ }
293
+
294
+ .st-block__messages span {
295
+ display: block;
296
+ }
297
+
298
+ .st-msg--error {
299
+ color: $error-color;
300
+ }
@@ -0,0 +1,21 @@
1
+ .st-errors {
2
+ background-color: lighten($error-color, 52%);
3
+ padding: 2em;
4
+ color: $error-color;
5
+ margin-bottom: 2em;
6
+ }
7
+
8
+ .st-errors p,
9
+ .st-errors ul {
10
+ margin: 0;
11
+ }
12
+
13
+ .st-errors ul {
14
+ padding-left: 1em;
15
+ }
16
+
17
+ .st-errors p {
18
+ margin-bottom: 0.5em;
19
+ font-weight: 700;
20
+ }
21
+
@@ -0,0 +1,65 @@
1
+ .st-format-bar {
2
+ top: 0;
3
+ position: absolute;
4
+ margin: -4.5em 0 0 0;
5
+ background: #252525;
6
+ opacity: 0;
7
+ visibility: hidden;
8
+ z-index: 10;
9
+ border-radius: 0.4em;
10
+ padding: 0;
11
+
12
+ transition: opacity 0.2s ease-in-out;
13
+ }
14
+
15
+ .st-format-bar:before {
16
+ content: '';
17
+ display: block;
18
+ position: absolute;
19
+ left: 50%;
20
+ top: 3.3em;
21
+ width: 0;
22
+ height: 0;
23
+ border-left: 0.875em solid transparent;
24
+ border-right: 0.875em solid transparent;
25
+ border-top: 0.875em solid #252525;
26
+ margin-left: -0.875em;
27
+ }
28
+
29
+ .st-format-bar--is-ready {
30
+ visibility: visible;
31
+ opacity: 1;
32
+ }
33
+
34
+ .st-format-btn {
35
+ background: transparent;
36
+ border: 0;
37
+ color: #fff;
38
+ font-size: 1em;
39
+ line-height: 1;
40
+ padding: 0.5em 0.6em;
41
+ vertical-align: middle;
42
+ text-align: center;
43
+
44
+ &:focus {
45
+ outline: 0;
46
+ }
47
+ }
48
+ .st-format-btn .st-icon {
49
+ width: 35px;
50
+ height: 35px;
51
+ }
52
+
53
+ .st-format-btn--Heading,
54
+ .st-format-btn--Quote {
55
+ border-left: 1px solid #3e4245;
56
+ }
57
+
58
+ .st-format-btn:hover,
59
+ .st-format-btn--is-active {
60
+ color:$accent-color;
61
+ }
62
+
63
+ .st-format-btn--Unlink {
64
+ text-decoration: line-through;
65
+ }
@@ -0,0 +1,45 @@
1
+ // Reset all our input styles
2
+ .st-input-label {
3
+ display: block;
4
+ margin-bottom: 0.5em;
5
+ font-size: 13px;
6
+ text-transform: uppercase;
7
+ }
8
+
9
+ // Generic styles
10
+ @mixin st-input {
11
+ font-size: inherit;
12
+ margin: 0;
13
+ /*padding: 0.3em 0;*/
14
+ }
15
+
16
+ .st-block input[type="text"],
17
+ .st-block textarea {
18
+ @include st-input;
19
+ }
20
+
21
+ // Focus / Active styles
22
+ @mixin st-input-active {
23
+ outline: none;
24
+ border: none;
25
+ }
26
+
27
+ .st-block [contenteditable="true"],
28
+ .st-block [contenteditable="true"]:active,
29
+ .st-block [contenteditable="true"]:focus,
30
+ .st-block input[type="text"],
31
+ .st-block input[type="text"]:active,
32
+ .st-block input[type="text"]:focus,
33
+ .st-block textarea,
34
+ .st-block textarea:hover,
35
+ .st-block textarea:active {
36
+ @include st-input-active;
37
+ }
38
+
39
+ .st-block input[type="text"],
40
+ .st-block input[type="text"]:active,
41
+ .st-block input[type="text"]:focus {
42
+ color: #42474b;
43
+ border: 0.1em solid #d4d4d4;
44
+ padding:.6em;
45
+ }
@@ -0,0 +1,24 @@
1
+ @import '_variables';
2
+ @import '_icons';
3
+
4
+
5
+ @import 'patterns/ui-popup';
6
+ @import 'utils';
7
+ @import 'base';
8
+ @import 'inputs';
9
+
10
+ @import 'errors';
11
+
12
+ // Block Controls
13
+ @import 'block-addition';
14
+ @import 'block-addition-top';
15
+ @import 'block-controls';
16
+ @import 'block-replacer';
17
+
18
+ // Blocks
19
+ @import 'block';
20
+ @import 'block-positioner';
21
+ @import 'block-ui';
22
+
23
+ // Format Bar
24
+ @import 'format-bar';