alchemy_cms 4.2.0.rc1 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +4 -0
  3. data/.rubocop.yml +4 -0
  4. data/CHANGELOG.md +28 -3
  5. data/Gemfile +1 -1
  6. data/README.md +1 -1
  7. data/alchemy_cms.gemspec +5 -6
  8. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +3 -3
  9. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +1 -1
  10. data/app/assets/stylesheets/alchemy/buttons.scss +15 -2
  11. data/app/assets/stylesheets/alchemy/dashboard.scss +2 -0
  12. data/app/assets/stylesheets/alchemy/elements.scss +129 -127
  13. data/app/assets/stylesheets/alchemy/frame.scss +9 -29
  14. data/app/assets/stylesheets/alchemy/navigation.scss +30 -6
  15. data/app/assets/stylesheets/alchemy/preview_window.scss +4 -0
  16. data/app/assets/stylesheets/alchemy/spinner.scss +1 -1
  17. data/app/controllers/alchemy/pages_controller.rb +9 -4
  18. data/app/helpers/alchemy/base_helper.rb +3 -4
  19. data/app/models/alchemy/element.rb +1 -1
  20. data/app/models/alchemy/page/page_scopes.rb +1 -1
  21. data/app/views/alchemy/admin/dashboard/index.html.erb +1 -1
  22. data/app/views/alchemy/admin/dashboard/info.html.erb +23 -22
  23. data/app/views/alchemy/admin/pages/edit.html.erb +10 -10
  24. data/app/views/alchemy/admin/resources/_form.html.erb +0 -8
  25. data/app/views/alchemy/admin/resources/_table_header.html.erb +2 -1
  26. data/app/views/alchemy/essences/_essence_select_editor.html.erb +1 -1
  27. data/config/locales/alchemy.en.yml +6 -1
  28. data/lib/alchemy/on_page_layout.rb +1 -1
  29. data/lib/alchemy/permissions.rb +5 -2
  30. data/lib/alchemy/resources_helper.rb +12 -10
  31. data/lib/alchemy/shell.rb +11 -3
  32. data/lib/alchemy/test_support/factories.rb +3 -1
  33. data/lib/alchemy/test_support/factories/attachment_factory.rb +2 -0
  34. data/lib/alchemy/test_support/factories/content_factory.rb +5 -0
  35. data/lib/alchemy/test_support/factories/dummy_user_factory.rb +2 -0
  36. data/lib/alchemy/test_support/factories/element_factory.rb +3 -0
  37. data/lib/alchemy/test_support/factories/essence_file_factory.rb +2 -0
  38. data/lib/alchemy/test_support/factories/essence_picture_factory.rb +2 -0
  39. data/lib/alchemy/test_support/factories/essence_text_factory.rb +2 -0
  40. data/lib/alchemy/test_support/factories/language_factory.rb +2 -0
  41. data/lib/alchemy/test_support/factories/page_factory.rb +2 -0
  42. data/lib/alchemy/test_support/factories/picture_factory.rb +2 -0
  43. data/lib/alchemy/test_support/factories/site_factory.rb +2 -0
  44. data/lib/alchemy/upgrader/four_point_one.rb +16 -16
  45. data/lib/alchemy/upgrader/four_point_two.rb +37 -20
  46. data/lib/alchemy/upgrader/tasks/cells_upgrader.rb +3 -2
  47. data/lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb +28 -0
  48. data/lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb +34 -19
  49. data/lib/alchemy/version.rb +1 -1
  50. data/lib/tasks/alchemy/upgrade.rake +7 -1
  51. metadata +32 -14
  52. data/.teatro.yml +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 258008e3dd974388f2361414d385f0b607dae59a2f2f1e425cc409517efc1682
4
- data.tar.gz: 99d7b710b6e90b2b71dcd08658767b21ea2f845380aa14889467f73c80c554d3
3
+ metadata.gz: f0f5711f9a2670decb7dc7b607c684e50cd82f95ee20f37c3995a2afe107a563
4
+ data.tar.gz: eae8426cc413eeeb78cd206fa0f1e7cedeca5a59cb5f4aca81ea9997c8a408df
5
5
  SHA512:
6
- metadata.gz: 448bf16870286563145c0d903a2e1ec2b1d4a4951f8122911847088bf941df0d9f00bb8f45dbd87ab1b9a41e2a291e031e4374a0906e59873735b963518f5d20
7
- data.tar.gz: e2b0a2887b4121c1606b46710342ad609322997a69cfa0af2263acb78cfb5d3bbba4efb950a06c185326ae0ceb16168469b5985e921629cb788747169b2ce5df
6
+ metadata.gz: 37f0485eafe6e0e0e89aadb09dcce775579229f69cc342bfa07d2f0acd5f3d0f0873e6f2a7c7e5e3d9eeb43b8d614832a6247920a53e80011ef89ab995409ed0
7
+ data.tar.gz: f51d23e388032bd19f1192da181fe997a47e815c4c7937f5601115c55d09a93d21e3f25f2a1554df3e76ca246cc11223d807ea8e3b6e66ba5cda1a27927e7d20
@@ -0,0 +1,4 @@
1
+ # These are supported funding model platforms
2
+
3
+ patreon: alchemy_cms
4
+ open_collective: alchemy_cms
@@ -41,6 +41,10 @@ Style/GuardClause:
41
41
  Style/SymbolArray:
42
42
  Enabled: false
43
43
 
44
+ Style/SymbolProc:
45
+ Exclude:
46
+ - 'lib/alchemy/permissions.rb'
47
+
44
48
  Style/WordArray:
45
49
  Enabled: false
46
50
 
@@ -1,5 +1,26 @@
1
- ## 4.2.0 (unreleased)
2
-
1
+ ## 4.2.0 (2019-05-30)
2
+
3
+ - remove unused .teatro.yml [#1585](https://github.com/AlchemyCMS/alchemy_cms/pull/1585) ([kirillshevch](https://github.com/kirillshevch))
4
+ - Use Set to collect callbacks in OnPageLayout [#1583](https://github.com/AlchemyCMS/alchemy_cms/pull/1583) ([mamhoff](https://github.com/mamhoff))
5
+ - Allow Ransack 1.x [#1580](https://github.com/AlchemyCMS/alchemy_cms/pull/1580) ([tvdeyen](https://github.com/tvdeyen))
6
+ - Set a max-width to preview frame [#1578](https://github.com/AlchemyCMS/alchemy_cms/pull/1578) ([tvdeyen](https://github.com/tvdeyen))
7
+ - Rebuild locked pages tabs in flexbox [#1577](https://github.com/AlchemyCMS/alchemy_cms/pull/1577) ([tvdeyen](https://github.com/tvdeyen))
8
+ - Use where.not instead of Arel [#1576](https://github.com/AlchemyCMS/alchemy_cms/pull/1576) ([tvdeyen](https://github.com/tvdeyen))
9
+ - Add missing requires to factories [#1575](https://github.com/AlchemyCMS/alchemy_cms/pull/1575) ([tvdeyen](https://github.com/tvdeyen))
10
+ - Upgrade sqlite3 to version 1.4.1 [#1574](https://github.com/AlchemyCMS/alchemy_cms/pull/1574) ([depfu](https://github.com/apps/depfu))
11
+ - Fix elements window ajax errors [#1573](https://github.com/AlchemyCMS/alchemy_cms/pull/1573) ([tvdeyen](https://github.com/tvdeyen))
12
+ - Use SimpleForm field for datepicker in resources form [#1572](https://github.com/AlchemyCMS/alchemy_cms/pull/1572) ([tvdeyen](https://github.com/tvdeyen))
13
+ - Render warning message in warning helper [#1571](https://github.com/AlchemyCMS/alchemy_cms/pull/1571) ([tvdeyen](https://github.com/tvdeyen))
14
+ - Prohibit coffee-rails 5.0 [#1570](https://github.com/AlchemyCMS/alchemy_cms/pull/1570) ([tvdeyen](https://github.com/tvdeyen))
15
+ - Add Date column support to resources [#1567](https://github.com/AlchemyCMS/alchemy_cms/pull/1567) ([tvdeyen](https://github.com/tvdeyen))
16
+ - Fix pluralization of resource table header [#1566](https://github.com/AlchemyCMS/alchemy_cms/pull/1566) ([tvdeyen](https://github.com/tvdeyen))
17
+ - Fix compact elements style [#1565](https://github.com/AlchemyCMS/alchemy_cms/pull/1565) ([tvdeyen](https://github.com/tvdeyen))
18
+ - Show Ruby and Rails versions in info dialog [#1564](https://github.com/AlchemyCMS/alchemy_cms/pull/1564) ([tvdeyen](https://github.com/tvdeyen))
19
+ - Set spinner color to current text color [#1563](https://github.com/AlchemyCMS/alchemy_cms/pull/1563) ([tvdeyen](https://github.com/tvdeyen))
20
+ - Update links in post install message [#1562](https://github.com/AlchemyCMS/alchemy_cms/pull/1562) ([tvdeyen](https://github.com/tvdeyen))
21
+ - Allow cancancan 3 [#1561](https://github.com/AlchemyCMS/alchemy_cms/pull/1561) ([tvdeyen](https://github.com/tvdeyen))
22
+ - Fix Member Page permissions syntax [#1560](https://github.com/AlchemyCMS/alchemy_cms/pull/1560) ([tvdeyen](https://github.com/tvdeyen))
23
+ - Update upgrader [#1558](https://github.com/AlchemyCMS/alchemy_cms/pull/1558) ([tvdeyen](https://github.com/tvdeyen))
3
24
  - Use element name local in generators [#1556](https://github.com/AlchemyCMS/alchemy_cms/pull/1556) ([tvdeyen](https://github.com/tvdeyen))
4
25
  - Remove invalid bytecode handler [#1555](https://github.com/AlchemyCMS/alchemy_cms/pull/1555) ([tvdeyen](https://github.com/tvdeyen))
5
26
  - Separate render element calls [#1554](https://github.com/AlchemyCMS/alchemy_cms/pull/1554) ([tvdeyen](https://github.com/tvdeyen))
@@ -11,7 +32,7 @@
11
32
  - Upgrade shoulda-matchers to version 4.0.0 [#1542](https://github.com/AlchemyCMS/alchemy_cms/pull/1542) ([depfu](https://github.com/apps/depfu))
12
33
  - Upgrade factory_bot_rails to version 5.0.1 [#1540](https://github.com/AlchemyCMS/alchemy_cms/pull/1540) ([depfu](https://github.com/apps/depfu))
13
34
  - Use Flatpickr as Datepicker [#1533](https://github.com/AlchemyCMS/alchemy_cms/pull/1533) ([mamhoff](https://github.com/mamhoff))
14
- - Use system tests over feature specs [#1528](https://github.com/AlchemyCMS/alchemy_cms/pull/1528) ([tvdeyen](https://github.com/tvdeyen))
35
+ - Use system tests over feature specs [#1528](https://github.com/AlchemyCMS/alchemy_cms/pull/1528) ([tvdeyen](https://github.com/tvdeyen))
15
36
  - Flexible width for admin navigation entry labels [#1527](https://github.com/AlchemyCMS/alchemy_cms/pull/1527) ([tvdeyen](https://github.com/tvdeyen))
16
37
  - Responsive elements window and sidebar [#1519](https://github.com/AlchemyCMS/alchemy_cms/pull/1519) ([tvdeyen](https://github.com/tvdeyen))
17
38
  - Change element eye icon on public state [#1517](https://github.com/AlchemyCMS/alchemy_cms/pull/1517) ([oniram88](https://github.com/oniram88))
@@ -479,3 +500,7 @@ No changes
479
500
  ## 3.0.0 (2014-07-03)
480
501
 
481
502
  [Release Notes](https://github.com/AlchemyCMS/alchemy_cms/releases/tag/v3.0.0)
503
+
504
+
505
+
506
+
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ gem 'rails', '~> 5.2.0'
7
7
  # Profiling
8
8
  gem 'rack-mini-profiler', group: :development, require: false
9
9
 
10
- gem 'sqlite3', '~> 1.3.6' if ENV['DB'].nil? || ENV['DB'] == 'sqlite'
10
+ gem 'sqlite3', '~> 1.4.1' if ENV['DB'].nil? || ENV['DB'] == 'sqlite'
11
11
  gem 'mysql2', '~> 0.5.1' if ENV['DB'] == 'mysql'
12
12
  gem 'pg', '~> 1.0' if ENV['DB'] == 'postgresql'
13
13
  gem 'sassc-rails'
data/README.md CHANGED
@@ -18,7 +18,7 @@ Alchemy is an open source CMS engine written in Ruby on Rails.
18
18
 
19
19
  Read more about Alchemy on the [website](https://alchemy-cms.com) and in the [guidelines](https://guides.alchemy-cms.com).
20
20
 
21
- **CAUTION: This master branch is a development branch that *can* contain bugs. For productive environments you should use the [current Ruby gem version](https://rubygems.org/gems/alchemy_cms), or the [latest stable branch (4.1-stable)](https://github.com/AlchemyCMS/alchemy_cms/tree/4.1-stable).**
21
+ **CAUTION: This master branch is a development branch that *can* contain bugs. For productive environments you should use the [current Ruby gem version](https://rubygems.org/gems/alchemy_cms), or the [latest stable branch (4.2-stable)](https://github.com/AlchemyCMS/alchemy_cms/tree/4.2-stable).**
22
22
 
23
23
 
24
24
  ## ✅ Features
@@ -21,8 +21,8 @@ Gem::Specification.new do |gem|
21
21
  gem.add_runtime_dependency 'active_model_serializers', ['~> 0.10.0']
22
22
  gem.add_runtime_dependency 'acts_as_list', ['~> 0.3']
23
23
  gem.add_runtime_dependency 'awesome_nested_set', ['~> 3.1']
24
- gem.add_runtime_dependency 'cancancan', ['~> 2.1']
25
- gem.add_runtime_dependency 'coffee-rails', ['~> 4.0']
24
+ gem.add_runtime_dependency 'cancancan', ['>= 2.1', '< 4.0']
25
+ gem.add_runtime_dependency 'coffee-rails', ['~> 4.0', '< 5.0']
26
26
  gem.add_runtime_dependency 'dragonfly', ['~> 1.0', '>= 1.0.7']
27
27
  gem.add_runtime_dependency 'dragonfly_svg', ['~> 0.0.4']
28
28
  gem.add_runtime_dependency 'gutentag', ['~> 2.2', '>= 2.2.1']
@@ -33,7 +33,7 @@ Gem::Specification.new do |gem|
33
33
  gem.add_runtime_dependency 'originator', ['~> 3.1']
34
34
  gem.add_runtime_dependency 'non-stupid-digest-assets', ['~> 1.0.8']
35
35
  gem.add_runtime_dependency 'rails', ['~> 5.0', '< 6.0']
36
- gem.add_runtime_dependency 'ransack', ['~> 2.0']
36
+ gem.add_runtime_dependency 'ransack', ['>= 1.8', '< 3.0']
37
37
  gem.add_runtime_dependency 'request_store', ['~> 1.2']
38
38
  gem.add_runtime_dependency 'responders', ['~> 2.0']
39
39
  gem.add_runtime_dependency 'select2-rails', ['>= 3.5.9.1', '< 4.0']
@@ -57,9 +57,8 @@ and follow the onscreen instructions.
57
57
 
58
58
  Need help? Try:
59
59
 
60
- * http://stackoverflow.com/questions/tagged/alchemy-cms
61
- * http://groups.google.com/group/alchemy-cms
62
- * irc://irc.freenode.net#alchemy_cms
60
+ * https://stackoverflow.com/questions/tagged/alchemy-cms
61
+ * https://slackin.alchemy-cms.com
63
62
  -------------------------------------------------------------
64
63
 
65
64
  MSG
@@ -122,7 +122,7 @@ class window.Alchemy.Dialog
122
122
  @show_error(xhr, status)
123
123
 
124
124
  # Displays an error message
125
- show_error: (xhr, status_message) ->
125
+ show_error: (xhr, status_message, $container = @dialog_body) ->
126
126
  error_type = "warning"
127
127
  switch xhr.status
128
128
  when 0
@@ -135,7 +135,7 @@ class window.Alchemy.Dialog
135
135
  error_type = "error"
136
136
  if status_message
137
137
  error_header = status_message
138
- console.error eval(xhr.responseText)
138
+ console.error(xhr.responseText)
139
139
  else
140
140
  error_header = "#{xhr.statusText} (#{xhr.status})"
141
141
  error_body = "Please check log and try again."
@@ -143,7 +143,7 @@ class window.Alchemy.Dialog
143
143
  $errorDiv.append Alchemy.messageIcon(error_type)
144
144
  $errorDiv.append "<h1>#{error_header}</h1>"
145
145
  $errorDiv.append "<p>#{error_body}</p>"
146
- @dialog_body.html $errorDiv
146
+ $container.html $errorDiv
147
147
 
148
148
  # Binds close events on:
149
149
  # - Close button
@@ -53,7 +53,7 @@ Alchemy.ElementsWindow =
53
53
  if @callback
54
54
  @callback.call()
55
55
  .fail (xhr, status, error) =>
56
- Alchemy.AjaxErrorHandler @element_area, xhr.status, status, error
56
+ Alchemy.Dialog::show_error(xhr, error, @element_area)
57
57
 
58
58
  hide: ->
59
59
  @$body.removeClass('elements-window-visible');
@@ -33,6 +33,14 @@ button, input[type="submit"], a.button, input.button {
33
33
  margin-right: 2 * $default-margin;
34
34
  color: inherit;
35
35
  }
36
+
37
+ &[disabled] {
38
+ cursor: not-allowed;
39
+
40
+ & + label {
41
+ display: none;
42
+ }
43
+ }
36
44
  }
37
45
 
38
46
  .icon_button {
@@ -79,13 +87,18 @@ button, input[type="submit"], a.button, input.button {
79
87
  }
80
88
  }
81
89
 
82
- &.disabled {
90
+ &.disabled,
91
+ &[disabled] {
83
92
 
84
93
  span {
85
94
  opacity: 0.3;
86
95
  cursor: not-allowed;
87
96
  }
88
97
 
98
+ i {
99
+ opacity: 0.3;
100
+ }
101
+
89
102
  &:hover {
90
103
  cursor: not-allowed;
91
104
  }
@@ -121,7 +134,7 @@ button.icon_button {
121
134
  margin: 0 2*$default-margin;
122
135
 
123
136
  &.active, &:active, &:hover {
124
- .icon_button {
137
+ .icon_button:not([disabled]) {
125
138
  background-color: $default-border-color;
126
139
  cursor: pointer;
127
140
  }
@@ -43,7 +43,9 @@
43
43
  }
44
44
 
45
45
  #update_check {
46
+ position: relative;
46
47
  height: 16px;
48
+ margin-bottom: 2em;
47
49
 
48
50
  img#load_info {
49
51
  width: 16px;
@@ -43,6 +43,10 @@
43
43
  height: 140px !important;
44
44
  }
45
45
  }
46
+
47
+ > .message {
48
+ margin: 2*$default-margin
49
+ }
46
50
  }
47
51
 
48
52
  #main-content-elements,
@@ -115,6 +119,7 @@
115
119
  }
116
120
 
117
121
  .element-editor {
122
+ position: relative;
118
123
  border: 1px solid $default-border-color;
119
124
  border-radius: $default-border-radius;
120
125
  background-color: $light-gray;
@@ -133,7 +138,7 @@
133
138
  &.dirty {
134
139
  border-color: #d0c83d;
135
140
 
136
- > .element-header {
141
+ >.element-header {
137
142
  background-color: #fff8df;
138
143
  }
139
144
  }
@@ -160,7 +165,8 @@
160
165
  }
161
166
  }
162
167
 
163
- &.with-contents, &.without-contents.not-nestable {
168
+ &.with-contents,
169
+ &.without-contents.not-nestable {
164
170
 
165
171
  .element-content {
166
172
  padding: 2*$default-padding 2*$default-padding 0;
@@ -168,6 +174,85 @@
168
174
  }
169
175
  }
170
176
 
177
+ &.compact {
178
+ .element-toolbar {
179
+ visibility: hidden;
180
+ position: absolute;
181
+ height: 35px;
182
+ padding: 2px 0;
183
+ opacity: 0;
184
+ z-index: 1;
185
+ border-bottom: $default-border;
186
+ background-color: $light-gray;
187
+ transition: all $transition-duration;
188
+ }
189
+
190
+ .element-header:hover+.element-toolbar,
191
+ .element-toolbar:hover {
192
+ visibility: visible;
193
+ opacity: 1;
194
+ }
195
+
196
+ .element-footer {
197
+ margin-top: 0;
198
+ padding-top: 0;
199
+ border-top: 0;
200
+
201
+ .button {
202
+ padding: $small-button-padding;
203
+ }
204
+ }
205
+
206
+ .element-title {
207
+ max-width: 75%;
208
+ }
209
+
210
+ &:not(.folded) .ajax-folder {
211
+ pointer-events: none;
212
+
213
+ i:before {
214
+ content: fa-content($fa-var-ellipsis-v);
215
+ }
216
+ }
217
+
218
+ .element_tools {
219
+ display: flex;
220
+ width: 100%;
221
+ justify-content: space-between;
222
+ margin-left: 0;
223
+ }
224
+
225
+ .element-content {
226
+ padding: 4px 8px;
227
+ }
228
+
229
+ .button_with_label {
230
+ margin: 0 4px;
231
+ }
232
+
233
+ .content_editor,
234
+ .picture_thumbnail {
235
+ width: 100%;
236
+ }
237
+
238
+ .picture_thumbnail {
239
+ margin: 0;
240
+ }
241
+
242
+ .thumbnail_background {
243
+ height: 115px;
244
+ }
245
+
246
+ textarea,
247
+ input[type="url"],
248
+ input[type="text"],
249
+ input[type="email"],
250
+ input[type="password"] {
251
+ padding: 0.5em;
252
+ height: auto;
253
+ }
254
+ }
255
+
171
256
  form {
172
257
  margin: 0;
173
258
  }
@@ -188,22 +273,6 @@
188
273
  margin-bottom: 1em;
189
274
  }
190
275
 
191
- .content_editor_error {
192
- border: 1px solid #f5b04e;
193
- padding: 4px 8px;
194
- line-height: 21px;
195
- background-color: #f5dea9;
196
- margin-top: 4px;
197
- border-radius: $default-border-radius;
198
-
199
- .icon.warning {
200
- position: relative;
201
- top: 2px;
202
- margin-right: 8px;
203
- vertical-align: top;
204
- }
205
- }
206
-
207
276
  .autocomplete_tag_list {
208
277
  padding: $default-padding 0;
209
278
 
@@ -240,7 +309,7 @@
240
309
  cursor: pointer;
241
310
  @include border-top-radius($default-border-radius);
242
311
 
243
- > .hint-with-icon {
312
+ >.hint-with-icon {
244
313
  position: absolute;
245
314
  right: 32px;
246
315
  top: 10px;
@@ -304,8 +373,7 @@
304
373
  right: 0;
305
374
 
306
375
  .icon_button {
307
- @include button-defaults(
308
- $background-color: $medium-gray,
376
+ @include button-defaults($background-color: $medium-gray,
309
377
  $hover-color: darken($medium-gray, 5%),
310
378
  $border: 1px solid #c0c0c0,
311
379
  $box-shadow: none,
@@ -319,27 +387,26 @@
319
387
  width: 29px;
320
388
  height: $form-field-height;
321
389
 
322
- &.disabled, &.disabled:hover {
390
+ &.disabled,
391
+ &.disabled:hover {
323
392
  background-color: $form-field-disabled-bg-color;
324
393
  }
325
394
 
326
395
  &.linked.link-essence {
327
- @include linked-button(
328
- $border-radius: 0,
396
+ @include linked-button($border-radius: 0,
329
397
  $line-height: 30px,
330
- $padding: 0
331
- );
398
+ $padding: 0);
399
+
332
400
  &:focus {
333
401
  border-radius: 0;
334
402
  }
335
403
  }
336
404
 
337
405
  &.linked.unlink-essence {
338
- @include linked-button(
339
- $border-radius: 0 $default-border-radius $default-border-radius 0,
406
+ @include linked-button($border-radius: 0 $default-border-radius $default-border-radius 0,
340
407
  $line-height: 30px,
341
- $padding: 0
342
- );
408
+ $padding: 0);
409
+
343
410
  &:focus {
344
411
  border-radius: 0 $default-border-radius $default-border-radius 0;
345
412
  }
@@ -507,7 +574,8 @@ select.long {
507
574
  padding: $default-padding 0;
508
575
  position: relative;
509
576
 
510
- .thin_border, input[type="text"] {
577
+ .thin_border,
578
+ input[type="text"] {
511
579
  width: 100%;
512
580
  }
513
581
 
@@ -536,15 +604,22 @@ select.long {
536
604
  margin-right: 4px;
537
605
  vertical-align: top;
538
606
 
539
- .thin_border, input[type="text"] {
607
+ .thin_border,
608
+ input[type="text"] {
540
609
  width: 170px;
541
610
  }
542
611
  }
543
612
 
544
613
  &.validation_failed {
545
614
 
546
- label { color: $error_text_color }
547
- input { @extend %field-with-error }
615
+ label {
616
+ color: $error_text_color
617
+ }
618
+
619
+ input {
620
+ @extend %field-with-error
621
+ }
622
+
548
623
  .tinymce_container {
549
624
  outline: 1px solid $error_border_color;
550
625
  }
@@ -572,7 +647,9 @@ select.long {
572
647
 
573
648
  &.essence_select {
574
649
 
575
- label { margin-bottom: 2*$default-margin }
650
+ label {
651
+ margin-bottom: 2*$default-margin
652
+ }
576
653
 
577
654
  .select2-container {
578
655
  width: 100%;
@@ -615,7 +692,7 @@ select.long {
615
692
  padding-left: 1px; // Compensate the box shadow
616
693
  padding-right: $default-padding;
617
694
 
618
- + .essence_picture {
695
+ +.essence_picture {
619
696
  padding-left: $default-padding;
620
697
  padding-right: 1px; // Compensate the box shadow
621
698
  }
@@ -670,7 +747,7 @@ textarea.has_tinymce {
670
747
  .element-handle .hint-with-icon {
671
748
  margin: 0;
672
749
 
673
- > .hint-bubble {
750
+ >.hint-bubble {
674
751
  left: -7px;
675
752
  transform: none;
676
753
 
@@ -688,7 +765,7 @@ textarea.has_tinymce {
688
765
  box-shadow: inset 0 4px 8px -2px darken($medium-gray, 15%);
689
766
  background-color: $medium-gray;
690
767
 
691
- .expanded.element-editor > & {
768
+ .expanded.element-editor>& {
692
769
  padding: 8px 4px 4px;
693
770
  }
694
771
 
@@ -701,113 +778,38 @@ textarea.has_tinymce {
701
778
 
702
779
  .is-fixed {
703
780
  &.with-contents {
704
- > .element-footer {
781
+ >.element-footer {
705
782
  border-top: 0;
706
783
  border-bottom: 1px solid $medium-gray;
707
784
  }
708
785
  }
709
786
 
710
- > .nestable-elements .add-nestable-element-button {
787
+ >.nestable-elements .add-nestable-element-button {
711
788
  width: 100%;
712
789
  text-align: center;
713
790
  }
714
791
  }
715
792
 
716
- .not-fixed .nested-elements {
717
- display: flex;
718
- flex-wrap: wrap;
793
+ .element-editor,
794
+ .droppable_element_placeholder {
795
+ width: 100%;
719
796
 
720
- .element-editor,
721
- .droppable_element_placeholder {
797
+ .not-fixed & {
722
798
  width: calc(100% - 8px);
723
799
  margin: 4px;
800
+ }
724
801
 
725
- &.compact {
726
- width: calc(50% - 8px);
727
- }
802
+ &.compact {
803
+ width: calc(50% - 8px);
728
804
  }
805
+ }
806
+
807
+ .nested-elements {
808
+ display: flex;
809
+ flex-wrap: wrap;
729
810
 
730
811
  .element-editor {
731
812
  position: relative;
732
-
733
- &.compact {
734
- .element-toolbar {
735
- visibility: hidden;
736
- position: absolute;
737
- height: 35px;
738
- padding: 2px 0;
739
- opacity: 0;
740
- z-index: 1;
741
- border-bottom: $default-border;
742
- background-color: $light-gray;
743
- transition: all $transition-duration;
744
- }
745
-
746
- .element-header:hover + .element-toolbar,
747
- .element-toolbar:hover {
748
- visibility: visible;
749
- opacity: 1;
750
- }
751
-
752
- .element-footer {
753
- margin-top: 0;
754
- padding-top: 0;
755
- border-top: 0;
756
-
757
- .button {
758
- padding: $small-button-padding;
759
- }
760
- }
761
-
762
- .element-title {
763
- max-width: 75%;
764
- }
765
-
766
- &:not(.folded) .ajax-folder {
767
- pointer-events: none;
768
-
769
- i:before {
770
- content: fa-content($fa-var-ellipsis-v);
771
- }
772
- }
773
-
774
- .element_tools {
775
- display: flex;
776
- width: 100%;
777
- justify-content: space-between;
778
- margin-left: 0;
779
- }
780
-
781
- .element-content {
782
- padding: 4px 8px;
783
- }
784
-
785
- .button_with_label {
786
- margin: 0 4px;
787
- }
788
-
789
- .content_editor,
790
- .picture_thumbnail {
791
- width: 100%;
792
- }
793
-
794
- .picture_thumbnail {
795
- margin: 0;
796
- }
797
-
798
- .thumbnail_background {
799
- height: 115px;
800
- }
801
-
802
- textarea,
803
- input[type="url"],
804
- input[type="text"],
805
- input[type="email"],
806
- input[type="password"] {
807
- padding: 0.5em;
808
- height: auto;
809
- }
810
- }
811
813
  }
812
814
 
813
815
  .element-header {