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,6 @@
1
+ .st-icon {
2
+ cursor:pointer;
3
+ width: 1em;
4
+ height: 1em;
5
+ fill: currentColor;
6
+ }
@@ -0,0 +1,23 @@
1
+ // Adjusted from upstream to use bootstrap's colors.
2
+
3
+ $text-block-font-size: 1.275em;
4
+
5
+ $text-block-font-color: $text-color;
6
+ $accent-color: $btn-primary-bg;
7
+ $base-ui-color: $gray;
8
+ $light-ui-color: $gray-light;
9
+ $blocks-control-bg-color: $panel-default-heading-bg;
10
+ $blocks-control-border-color: $panel-default-border;
11
+ $error-color: $brand-danger;
12
+ $selection-color: inherit;
13
+
14
+ $inner-block-padding: $grid-gutter-width $grid-gutter-width $grid-gutter-width + 18px $grid-gutter-width;
15
+
16
+ $block-controls-height: 164px;
17
+ $block-add-height: $line-height-computed * 2;
18
+ $block-controls-color:#9B9B9B;
19
+
20
+ $border-size: 2px;
21
+ $border-style: solid;
22
+ $default-border: $border-size $border-style $accent-color;
23
+
@@ -0,0 +1,28 @@
1
+ .st-outer {
2
+ font-size: 16px;
3
+ position: relative;
4
+ background:#fff;
5
+ }
6
+
7
+ .st-icon {
8
+ cursor:pointer;
9
+ width: 100%;
10
+ height: 100%;
11
+ fill: currentColor;
12
+ }
13
+
14
+ .st-block__inner {
15
+ ::-moz-selection {
16
+ background: $selection-color;
17
+ text-shadow: none;
18
+ }
19
+ ::selection {
20
+ background: $selection-color;
21
+ text-shadow: none;
22
+ }
23
+ }
24
+
25
+ .st-spinner {
26
+ position: absolute!important;
27
+ left: 50%; top: 50%;
28
+ }
@@ -0,0 +1,95 @@
1
+ .st-block-addition-top {
2
+ transition: all $animation-speed 0.2s ease-in-out;
3
+ text-align: left;
4
+ outline:none;
5
+ border:none;
6
+ width:100%;
7
+ background-color:transparent;
8
+ padding:0;
9
+ z-index: 2;
10
+ position: relative;
11
+ cursor: text;
12
+ display: none;
13
+
14
+ &::-moz-focus-inner {
15
+ padding:0;
16
+ margin:0;
17
+ margin-left:-1px;
18
+ }
19
+
20
+ position: absolute;
21
+ top: -2em;
22
+ height: 30px;
23
+ opacity: 0;
24
+ display: block;
25
+
26
+ &:before {
27
+ transition: all $animation-speed 0.1s ease-in-out;
28
+ background: $accent-color;
29
+ position: absolute;
30
+ height: 2px;
31
+ top: 50%;
32
+ left: 110px;
33
+ right: 110px;
34
+ content: "";
35
+ display: block;
36
+ transform: translateY(-50%) translateZ(0);
37
+ }
38
+
39
+ .st-block--empty & {
40
+ display: none !important;
41
+ }
42
+
43
+ &:hover {
44
+ opacity: 1;
45
+ }
46
+
47
+ .st-block--textable &,
48
+ .st-block[data-type="list"] & {
49
+ top: -1.5em;
50
+ }
51
+
52
+ .st-block:nth-child(3) & {
53
+ display: none;
54
+ }
55
+
56
+ .st-block--empty + .st-block & {
57
+ display: none;
58
+ }
59
+ }
60
+
61
+ .st-block-addition-top__icon {
62
+ transition: all $animation-speed 0.1s ease-in-out;
63
+ border: 1px solid transparent;
64
+ color: #444444;
65
+ position:absolute;
66
+ top: 50%;
67
+ box-sizing:border-box;
68
+ padding-left: 35px;
69
+ display: inline-block;
70
+ margin: 0 auto;
71
+ cursor: pointer;
72
+ opacity: 0.2;
73
+ transform: translateY(-50%) translateZ(0);
74
+
75
+ .st-icon {
76
+ width: 41px;
77
+ height: 41px;
78
+ color: inherit;
79
+ }
80
+
81
+ .st-block-addition-top:hover &,
82
+ .st-block--active & {
83
+ color: $accent-color;
84
+ opacity: 1;
85
+ }
86
+ }
87
+
88
+ .st-block-addition-top__button {
89
+ position: absolute;
90
+ top: 0;
91
+ left: 76px;
92
+ right: 0;
93
+ bottom: 0;
94
+ display: inline-block;
95
+ }
@@ -0,0 +1,72 @@
1
+
2
+ $animation-speed: 0.2s;
3
+
4
+ .st-top-controls {
5
+ min-height: 1.750em;
6
+ position: relative;
7
+ z-index: 2;
8
+ }
9
+
10
+ .st-block-addition {
11
+ text-align: center;
12
+ outline:none;
13
+ border:none;
14
+ display:none;
15
+ width:100%;
16
+ background-color:transparent;
17
+ padding:0;
18
+ z-index: 2;
19
+
20
+ &::-moz-focus-inner {
21
+ padding:0;
22
+ margin:0;
23
+ margin-left:-1px;
24
+ }
25
+
26
+ .st-top-controls &,
27
+ .st-block:last-child:not(.st-block--empty):not(.st-block--textable) & {
28
+ display: block;
29
+ }
30
+ }
31
+
32
+ .st--hide-top-controls {
33
+ .st-top-controls .st-block-addition {
34
+ display: none;
35
+ }
36
+ }
37
+
38
+ .st--block-limit-reached {
39
+ .st-top-controls,
40
+ .st-block-addition {
41
+ display: none;
42
+ }
43
+ }
44
+
45
+ .st-block-addition__button {
46
+ transition: all $animation-speed 0.3s ease-in-out;
47
+ border: 1px solid transparent;
48
+ color: #444444;
49
+ position:relative;
50
+ box-sizing:border-box;
51
+ padding:.2em;
52
+ display: inline-block;
53
+ margin: 0 auto;
54
+ width: 100%;
55
+ cursor: pointer;
56
+ opacity: 0.2;
57
+ cursor: pointer;
58
+
59
+ transform:translateZ(0);
60
+
61
+ .st-icon {
62
+ height: 20px;
63
+ width: 20px;
64
+ color: inherit;
65
+ }
66
+
67
+ .st-block-addition:hover &,
68
+ .st-block--active & {
69
+ color: $accent-color;
70
+ opacity: 1;
71
+ }
72
+ }
@@ -0,0 +1,38 @@
1
+ // Block Controls
2
+
3
+ .st-block-controls {
4
+ position: absolute;
5
+ left: 0;
6
+ top: 50%;
7
+ right: 0;
8
+ font-size:0.8em;
9
+ padding: 0px 110px;
10
+ transform: translateY(-50%);
11
+ z-index: 1;
12
+ }
13
+
14
+ .st-block-controls__buttons {
15
+ text-align: center;
16
+ }
17
+
18
+ .st-block-controls__button {
19
+ border:none;
20
+ background:transparent;
21
+ font-size: 12px;
22
+ text-transform: uppercase;
23
+ display: inline-block;
24
+ cursor: pointer;
25
+ margin: 0.5em;
26
+ text-transform: uppercase;
27
+ }
28
+
29
+ .st-block-controls__button .st-icon {
30
+ margin: 0 0 10px 0;
31
+ display: block;
32
+ width: 42px;
33
+ height: 42px;
34
+ }
35
+
36
+ .st-block-controls__button:hover {
37
+ color: $accent-color;
38
+ }
@@ -0,0 +1,34 @@
1
+ .st-block-positioner {
2
+ @include ui-popup;
3
+ right: 4em;
4
+ top: 0;
5
+ &:before {
6
+ left: auto;
7
+ right: -0.3em;
8
+ }
9
+ }
10
+
11
+ .st-block-positioner__inner {
12
+ background: #fff;
13
+ position: relative;
14
+ z-index: 2;
15
+ padding: 0.3em 0.5em;
16
+ }
17
+
18
+ .st-block-positioner__select {
19
+ display:block;
20
+ }
21
+
22
+ .st-block--with-errors, .st-block--delete-active {
23
+ & > .st-block__inner {
24
+
25
+ & > .st-block__ui {
26
+ .st-block-positioner {
27
+ border-color: $error-color;
28
+ &:after {
29
+ border-color: $error-color;
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,43 @@
1
+ .st-block-replacer {
2
+ position: absolute;
3
+ text-align: center;
4
+ transform: translateY(-50%);
5
+ outline:none;
6
+ border:none;
7
+ font-size:1.3em;
8
+ display:none;
9
+ background-color:transparent;
10
+ padding:0;
11
+ z-index: 2;
12
+ top: 50%;
13
+ left: 35px;
14
+
15
+ &::-moz-focus-inner {
16
+ padding:0;
17
+ margin:0;
18
+ margin-left:-1px;
19
+ }
20
+
21
+ .st-block--textable.st-block--empty & {
22
+ display: block;
23
+ }
24
+
25
+ }
26
+
27
+ .st-block-replacer__button {
28
+ transition: all $animation-speed ease-in-out;
29
+ color: $accent-color;
30
+ position:relative;
31
+ box-sizing:border-box;
32
+ display: inline-block;
33
+ margin: 0 auto;
34
+ width: 41px;
35
+ height: 41px;
36
+ cursor: pointer;
37
+
38
+ transform:translateZ(0);
39
+
40
+ .st-block--controls-active & {
41
+ transform: rotate(45deg);
42
+ }
43
+ }
@@ -0,0 +1,120 @@
1
+ .st-block__control-ui {
2
+ position: absolute;
3
+ bottom: 0; left: 0;
4
+ opacity: 1;
5
+ }
6
+
7
+ .st-block__inner:hover .st-block__ui,
8
+ .st-block__inner:hover .st-block__control-ui {
9
+ opacity: 1;
10
+ }
11
+
12
+ .st-block-ui__confirm {
13
+ color: $error-color;
14
+ border:1px solid $error-color;
15
+ background:none;
16
+ padding: 0.15em .4em;
17
+ margin: 0 0.1em;
18
+ font-size:.9em;
19
+ cursor:pointer;
20
+ }
21
+
22
+ %st-block-ui-btn {
23
+ @extend .st-icon;
24
+ display: block;
25
+ cursor: pointer;
26
+ width: 1em;
27
+ height: 1em;
28
+ color:$block-controls-color;
29
+ }
30
+
31
+ .st-block-ui-btn__reorder {
32
+ @extend %st-block-ui-btn;
33
+ position: absolute;
34
+ right: 2em;
35
+ transform: scaleX(-1);
36
+ top: 0.5em;
37
+ opacity: 0.2;
38
+ transition: opacity 0.3s ease-in-out;
39
+ &:hover,
40
+ &:focus {
41
+ color:$accent-color;
42
+ opacity: 1;
43
+ }
44
+ }
45
+
46
+ .st-block-ui-btn__delete {
47
+ @extend %st-block-ui-btn;
48
+ position: absolute;
49
+ right: 1em;
50
+ top: 1.5em;
51
+ font-size:1.5em;
52
+ opacity: 0.5;
53
+ &:hover,
54
+ &:focus {
55
+ color:$error-color;
56
+ opacity: 1;
57
+ }
58
+
59
+ .st-block--textable &,
60
+ .st-block[data-type="list"] &,
61
+ .st-block {
62
+ display: none;
63
+ }
64
+ .st-block[data-type="quote"] & {
65
+ display: block;
66
+ }
67
+ }
68
+
69
+ .st-block-control-ui-btn {
70
+ @extend %st-block-ui-btn;
71
+ width: 2em;
72
+ line-height: 1.25em;
73
+ height: 1.25em;
74
+ font-size: 1em;
75
+ display: inline-block;
76
+ padding: 3px;
77
+ transition: color .1s;
78
+ &:hover,
79
+ &:focus {
80
+ color:$accent-color;
81
+ }
82
+ }
83
+ .st-block-control-ui-btn--selected {
84
+ color:$accent-color;
85
+ }
86
+
87
+ .st-block--with-errors .st-block-control-ui-btn,
88
+ .st-block--delete-active .st-block-control-ui-btn {
89
+ color: $error-color;
90
+ border-color: $error-color;
91
+
92
+ &:hover,
93
+ &.active {
94
+ color: #fff;
95
+ background-color: $error-color;
96
+ }
97
+ }
98
+
99
+ .st-block__ui-delete-controls {
100
+ @include ui-popup;
101
+ right: 4em;
102
+ top: 1.85em;
103
+ padding: 0.3em .5em;
104
+ border-color:$error-color;
105
+
106
+ &:before {
107
+ left:auto;
108
+ right:-0.3em;
109
+ border-color:$error-color;
110
+ }
111
+ }
112
+
113
+ .st-block--with-errors {
114
+ opacity: 1;
115
+ z-index: 2;
116
+ }
117
+
118
+ .st-block__delete-label {
119
+ color: $error-color;
120
+ }