pageflow 14.0.0 → 14.1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pageflow might be problematic. Click here for more details.

Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -90
  3. data/admins/pageflow/accounts.rb +6 -2
  4. data/app/assets/javascripts/pageflow/dist/react-client.js +1 -1
  5. data/app/assets/javascripts/pageflow/dist/react-server.js +1 -1
  6. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/general.js +4 -1
  7. data/app/assets/javascripts/pageflow/editor/views/edit_meta_data_view.js +4 -0
  8. data/app/assets/javascripts/pageflow/page_types/mixins/default_page_content.js +1 -1
  9. data/app/assets/javascripts/pageflow/slideshow/page_split_layout.js +1 -1
  10. data/app/assets/javascripts/pageflow/slideshow/page_widget.js +4 -3
  11. data/app/assets/javascripts/pageflow/ui.js +1 -1
  12. data/app/assets/javascripts/pageflow/ui/templates/inputs/check_box_group_input.jst.ejs +5 -0
  13. data/app/assets/javascripts/pageflow/ui/templates/inputs/text_area_input.jst.ejs +45 -6
  14. data/app/assets/javascripts/pageflow/ui/views/inputs/check_box_group_input_view.js +75 -0
  15. data/app/assets/javascripts/pageflow/ui/views/inputs/text_area_input_view.js +131 -18
  16. data/app/assets/javascripts/pageflow/widgets/navigation.js +2 -2
  17. data/app/assets/javascripts/pageflow/widgets/share_menu.js +1 -1
  18. data/app/assets/stylesheets/pageflow/base.scss +7 -0
  19. data/app/assets/stylesheets/pageflow/editor/wysihtml5.scss +84 -5
  20. data/app/assets/stylesheets/pageflow/mixins/icons.scss +3 -1
  21. data/app/assets/stylesheets/pageflow/navigation_mobile.scss +13 -19
  22. data/app/assets/stylesheets/pageflow/subshare.scss +16 -14
  23. data/app/assets/stylesheets/pageflow/themes/default/base.scss +1 -0
  24. data/app/assets/stylesheets/pageflow/themes/default/mobile_navigation.scss +2 -2
  25. data/app/assets/stylesheets/pageflow/themes/default/navigation.scss +7 -1
  26. data/app/assets/stylesheets/pageflow/themes/default/navigation/dimensions.scss +34 -9
  27. data/app/assets/stylesheets/pageflow/themes/default/navigation/icons/icon_font.scss +1 -53
  28. data/app/assets/stylesheets/pageflow/themes/default/navigation/icons/sprite.scss +0 -12
  29. data/app/assets/stylesheets/pageflow/themes/default/navigation_share_box.scss +40 -0
  30. data/app/assets/stylesheets/pageflow/themes/default/navigation_share_box/icon_colors.scss +46 -0
  31. data/app/assets/stylesheets/pageflow/themes/default/overview/icons/icon_font.scss +1 -4
  32. data/app/assets/stylesheets/pageflow/themes/default/page.scss +7 -33
  33. data/app/assets/stylesheets/pageflow/themes/default/page/anchors.scss +10 -8
  34. data/app/assets/stylesheets/pageflow/themes/default/page/colors.scss +41 -0
  35. data/app/assets/stylesheets/pageflow/themes/default/page/content_text_margin.scss +1 -1
  36. data/app/assets/stylesheets/pageflow/themes/default/page/line_lengths.scss +3 -3
  37. data/app/assets/stylesheets/pageflow/ui.scss +1 -0
  38. data/app/assets/stylesheets/pageflow/ui/input/check_box_group_input.scss +15 -0
  39. data/app/controllers/pageflow/entries_controller.rb +2 -1
  40. data/app/helpers/pageflow/navigation_bar_helper.rb +7 -1
  41. data/app/helpers/pageflow/pages_helper.rb +1 -1
  42. data/app/helpers/pageflow/social_share_links_helper.rb +5 -1
  43. data/app/models/pageflow/draft_entry.rb +1 -0
  44. data/app/models/pageflow/published_entry.rb +1 -0
  45. data/app/models/pageflow/revision.rb +10 -0
  46. data/app/models/pageflow/theming.rb +19 -0
  47. data/app/views/admin/accounts/_form.html.erb +5 -0
  48. data/app/views/admin/accounts/_theming_details.html.arb +3 -0
  49. data/app/views/pageflow/config/_editor_seeds.json.jbuilder +2 -1
  50. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -1
  51. data/app/views/pageflow/entries/_mobile_navigation.html.erb +9 -11
  52. data/app/views/pageflow/entries/navigation/_bar_top.html.erb +1 -7
  53. data/app/views/pageflow/entries/navigation/_share_box_content.html.erb +9 -0
  54. data/app/views/pageflow/entries/share_menu/_email_link.html.erb +14 -0
  55. data/app/views/pageflow/entries/share_menu/_facebook_link.html.erb +11 -2
  56. data/app/views/pageflow/entries/share_menu/_linked_in_link.html.erb +18 -0
  57. data/app/views/pageflow/entries/share_menu/_telegram_link.html.erb +17 -0
  58. data/app/views/pageflow/entries/share_menu/_twitter_link.html.erb +16 -2
  59. data/app/views/pageflow/entries/share_menu/_whats_app_link.html.erb +21 -0
  60. data/config/initializers/paperclip.rb +0 -4
  61. data/config/locales/de.yml +22 -1
  62. data/config/locales/en.yml +22 -1
  63. data/db/migrate/20190408144136_add_default_share_providers_to_themings.rb +5 -0
  64. data/db/migrate/20190408161315_add_share_providers_to_revisions.rb +5 -0
  65. data/lib/generators/pageflow/initializer/templates/pageflow.rb +0 -14
  66. data/lib/pageflow/configuration.rb +27 -6
  67. data/lib/pageflow/engine.rb +1 -1
  68. data/lib/pageflow/version.rb +1 -1
  69. metadata +21 -11
  70. data/app/assets/images/pageflow/themes/default/mobile_navigation/sharing_icons_sprite.png +0 -0
  71. data/app/assets/stylesheets/pageflow/themes/default/navigation/share_box.scss +0 -28
  72. data/app/views/pageflow/entries/share_menu/_google_link.html.erb +0 -5
@@ -49,11 +49,11 @@
49
49
  });
50
50
 
51
51
  var shareBox = $('.navigation_share_box', element),
52
- links = $('> a', shareBox);
52
+ links = $('.share_box_icons > a', shareBox);
53
53
  shareBox.shareMenu({
54
54
  subMenu: $('.sub_share', element),
55
55
  links: links,
56
- insertAfter: links.last(),
56
+ insertAfter: $('.share_box_icons'),
57
57
  closeOnMouseLeaving: shareBox
58
58
  });
59
59
 
@@ -51,7 +51,7 @@
51
51
 
52
52
  if(!!$closeOnMouseLeaving) {
53
53
  $closeOnMouseLeaving.on('mouseleave', function() {
54
- $links.removeClass('active');
54
+ $links.removeClass('active').blur();
55
55
  $(this).find('.button').removeClass('pressed');
56
56
  $subMenu.hide();
57
57
  });
@@ -1,3 +1,5 @@
1
+ // scss-lint:disable IdSelector
2
+
1
3
  html, body, #outer_wrapper {
2
4
  margin: 0;
3
5
  padding: 0;
@@ -27,6 +29,11 @@ body.js, .js #outer_wrapper {
27
29
  overflow: hidden;
28
30
  }
29
31
 
32
+ // Safari sets background color of fullscreen elements to white.
33
+ #outer_wrapper:-webkit-full-screen {
34
+ background-color: transparent;
35
+ }
36
+
30
37
  // Apps like Twitter and Facebook displays a toolbar at the bottom of
31
38
  // the screen on iOS phone which hides parts of the browser
32
39
  // viewport. Normally this is hidden once the user scrolls, but since
@@ -7,6 +7,7 @@
7
7
  @include background-icon-center($font-size: 12px);
8
8
  @include hidden-text;
9
9
 
10
+ margin: 0;
10
11
  display: inline-block;
11
12
  width: 25px;
12
13
  height: 25px;
@@ -19,7 +20,7 @@
19
20
  }
20
21
  }
21
22
 
22
- .wysihtml5-command-active {
23
+ > .wysihtml5-command-active {
23
24
  border: solid 1px #bbb;
24
25
  background-color: #ddd;
25
26
  }
@@ -37,16 +38,94 @@
37
38
  @include font-underline-icon;
38
39
  }
39
40
 
41
+ [data-wysihtml5-command="insertOrderedList"] {
42
+ @include font-list-ol-icon;
43
+ }
44
+
45
+ [data-wysihtml5-command="insertUnorderedList"] {
46
+ @include font-list-ul-icon;
47
+ }
48
+
40
49
  [data-wysihtml5-command="createLink"] {
41
50
  @include link-icon;
42
51
 
43
- &.wysihtml5-command-active + .dialog [data-wysihtml5-dialog-action="cancel"] {
44
- display: none;
52
+ &.wysihtml5-command-active + .dialog {
53
+ [data-wysihtml5-dialog-action="cancel"] {
54
+ display: none;
55
+ }
56
+
57
+ [data-wysihtml5-command="removeLink"] {
58
+ display: block;
59
+ }
45
60
  }
46
61
  }
47
62
 
63
+ [data-wysihtml5-command="removeLink"] {
64
+ display: none;
65
+ float: right;
66
+ margin-top: 8px;
67
+ }
68
+
48
69
  .wysihtml5-command-dialog-opened {
49
- margin-bottom: 83px;
70
+ margin-bottom: 133px;
71
+ }
72
+
73
+ &.fragment_link_panel_active {
74
+ .wysihtml5-command-dialog-opened {
75
+ margin-bottom: 143px;
76
+ }
77
+
78
+ .fragment_link_panel {
79
+ display: block;
80
+ }
81
+
82
+ .url_link_panel {
83
+ display: none;
84
+ }
85
+ }
86
+
87
+ .fragment_link_panel {
88
+ display: none;
89
+ margin: 0 -2px;
90
+
91
+ label {
92
+ margin: -1px 2px;
93
+ }
94
+ }
95
+
96
+ .link_type_select {
97
+ label {
98
+ display: inline;
99
+ }
100
+ }
101
+
102
+ .open_in_new_tab_section {
103
+ position: relative;
104
+ margin: 4px -4px 0 0;
105
+ padding-right: 20px;
106
+
107
+ label {
108
+ z-index: 4;
109
+ }
110
+
111
+ .inline_help {
112
+ top: -3px;
113
+ }
114
+ }
115
+
116
+ .internal {
117
+ display: none;
118
+ }
119
+
120
+ label input {
121
+ display: inline;
122
+ width: 15px;
123
+ margin: 5px 0;
124
+ vertical-align: middle;
125
+
126
+ &:focus {
127
+ outline: none;
128
+ }
50
129
  }
51
130
 
52
131
  .dialog {
@@ -59,7 +138,7 @@
59
138
  background-color: #fff;
60
139
  border: solid 1px #444;
61
140
 
62
- a {
141
+ .button {
63
142
  @include button;
64
143
  padding: 5px 10px;
65
144
  margin-top: 5px;
@@ -19,4 +19,6 @@
19
19
 
20
20
  @mixin font-italic-icon { @include fontawesome-icon("\f033"); }
21
21
  @mixin font-underline-icon { @include fontawesome-icon("\f0cd"); }
22
- @mixin font-bold-icon { @include fontawesome-icon("\f032"); }
22
+ @mixin font-bold-icon { @include fontawesome-icon("\f032"); }
23
+ @mixin font-list-ol-icon { @include fontawesome-icon("\f0cb"); }
24
+ @mixin font-list-ul-icon { @include fontawesome-icon("\f0ca"); }
@@ -137,6 +137,10 @@ body {
137
137
  }
138
138
  }
139
139
 
140
+ &.without_sharing_button .menu.sharing {
141
+ display: none;
142
+ }
143
+
140
144
  .overview_mobile, .imprint_mobile, .sharing_mobile {
141
145
  position: absolute;
142
146
  top: 0;
@@ -338,9 +342,6 @@ body {
338
342
  }
339
343
 
340
344
  .sharing_mobile {
341
- .wrapper {
342
- top: 0;
343
- }
344
345
  li {
345
346
  width: 200px;
346
347
  border-bottom: 1px solid #465b73;
@@ -348,32 +349,25 @@ body {
348
349
  > a {
349
350
  text-decoration: none;
350
351
  font-size: 24px;
351
- padding: 10px 15px 10px 78px;
352
+ padding: 10px 10px 10px 72px;
352
353
  border: 0;
353
354
  height: 80px;
354
355
 
355
- &:before {
356
- content: "";
356
+ svg {
357
357
  position: absolute;
358
- width: 42px;
359
- height: 37px;
360
- background-size: 100% auto;
361
- left: 30px;
362
- top: 30px;
358
+ left: 25px;
359
+ top: 36px;
360
+ width: 30px;
361
+ height: 30px;
363
362
  }
364
363
 
365
- &.facebook:before {
366
- background-position: center top;
367
- }
368
- &.twitter:before {
369
- background-position: center 122px;
370
- }
371
- &.google:before {
372
- background-position: center bottom;
364
+ p {
365
+ padding-top: 3px;
373
366
  }
374
367
  }
375
368
  }
376
369
  }
370
+
377
371
  .sub_share {
378
372
  display: none;
379
373
  }
@@ -1,21 +1,23 @@
1
1
  div.sub_share {
2
2
  display: none;
3
- }
3
+ width: 210px;
4
+ margin: 15px auto 0;
4
5
 
5
- .navigation_share_box div.sub_share a, .navigation_mobile div.sub_share a {
6
- width: 45%;
7
- padding: 5px 3px;
8
- color: white;
9
- font-family: SourceSansPro;
10
- font-size: 13px;
11
- text-align: center;
12
- margin: 20px 1% 0;
13
- background-color: rgba(0, 0, 0, 0.3);
14
- display: inline-block;
15
- text-decoration: none;
6
+ a {
7
+ line-height: 1;
8
+ width: 100px;
9
+ padding: 7px 0;
10
+ color: #ffffff;
11
+ font-family: inherit;
12
+ font-size: 13px;
13
+ text-align: center;
14
+ background-color: rgba(0, 0, 0, 0.3);
15
+ display: inline-block;
16
+ text-decoration: none;
16
17
 
17
- &:hover {
18
- background-color: rgba(0, 0, 0, 0.6);
18
+ &:hover {
19
+ background-color: rgba(0, 0, 0, 0.6);
20
+ }
19
21
  }
20
22
  }
21
23
 
@@ -22,6 +22,7 @@
22
22
  @import "./page";
23
23
  @import "./indicators";
24
24
  @import "./navigation";
25
+ @import "./navigation_share_box";
25
26
  @import "./mobile_navigation";
26
27
  @import "./background_media_unmute_button";
27
28
  @import "./multimedia_alert";
@@ -97,8 +97,8 @@ $mobile-navigation-pictogram-visibility: $standard-page-pictogram-visibility !de
97
97
  .sharing_mobile a {
98
98
  color: $mobile-navigation-share-link-color;
99
99
 
100
- &::before {
101
- background-image: image-url("#{$image-dir}/sharing_icons_sprite.png");
100
+ svg {
101
+ fill: $mobile-navigation-share-link-color;
102
102
  }
103
103
  }
104
104
  }
@@ -54,7 +54,6 @@ $navigation-current-page-marker-color: $main-color !default;
54
54
  @import "./navigation/icons/icon_font";
55
55
  @import "./navigation/icons/sprite";
56
56
  @import "./navigation/menu_boxes";
57
- @import "./navigation/share_box";
58
57
  @import "./navigation/credits";
59
58
  @import "./navigation/separator_lines";
60
59
  @import "./navigation/volume_control";
@@ -100,3 +99,10 @@ $navigation-current-page-marker-color: $main-color !default;
100
99
  background-color: $navigation-bar-background-color;
101
100
  background-image: $navigation-background-image;
102
101
  }
102
+
103
+ body.has_no_phone_platform {
104
+ a.share.whats_app,
105
+ a.share.telegram {
106
+ display: none !important;
107
+ }
108
+ }
@@ -2,14 +2,15 @@
2
2
  $navigation-bar-padding-top: null !default;
3
3
 
4
4
  $top-height: 44px;
5
- $item-height: 44px;
5
+ $top-item-height: 44px;
6
6
  $bottom-height: 268px;
7
+ $bottom-item-height: 36px;
7
8
 
8
9
  $scroll-indicator-height: 30px;
9
10
  $scroll-indicator-offset: 35px;
10
11
 
11
12
  @if $navigation-display-header-button {
12
- $top-height: $top-height + $item-height;
13
+ $top-height: $top-height + $top-item-height;
13
14
  } @else {
14
15
  .menu_li {
15
16
  display: none;
@@ -18,10 +19,10 @@ $scroll-indicator-offset: 35px;
18
19
 
19
20
  @if not $navigation-display-share-button and
20
21
  not $navigation-display-hide-text-button {
21
- $bottom-height: 196px;
22
+ $bottom-height: $bottom-height - 2 * $bottom-item-height;
22
23
  } @elseif not $navigation-display-share-button or
23
24
  not $navigation-display-hide-text-button{
24
- $bottom-height: 232px;
25
+ $bottom-height: $bottom-height - $bottom-item-height;
25
26
  }
26
27
 
27
28
  @if not $navigation-display-share-button {
@@ -62,15 +63,15 @@ $scroll-indicator-offset: 35px;
62
63
 
63
64
  @mixin top_positions($top-height) {
64
65
  .navigation_bar_top {
65
- height: $top-height + $item-height;
66
+ height: $top-height + $top-item-height;
66
67
  }
67
68
 
68
69
  .scroller {
69
- top: $top-height + $item-height;
70
+ top: $top-height + $top-item-height;
70
71
  }
71
72
 
72
73
  .navigation_scroll_indicator.top {
73
- top: $top-height + $item-height - $scroll-indicator-offset;
74
+ top: $top-height + $top-item-height - $scroll-indicator-offset;
74
75
  }
75
76
  }
76
77
 
@@ -78,10 +79,34 @@ $scroll-indicator-offset: 35px;
78
79
 
79
80
  &.with_home_button,
80
81
  &.with_overview_button {
81
- @include top_positions($top-height + $item-height);
82
+ @include top_positions($top-height + $top-item-height);
82
83
  }
83
84
 
84
85
  &.with_home_button.with_overview_button {
85
- @include top_positions($top-height + 2 * $item-height);
86
+ @include top_positions($top-height + 2 * $top-item-height);
87
+ }
88
+
89
+ // dynamically added class when no share providers are configured
90
+ &.without_sharing_button,
91
+ &.mobile_sharing_only {
92
+ @if $navigation-display-share-button {
93
+ .navigation_menu.share {
94
+ display: none;
95
+ }
96
+
97
+ .navigation_bar_bottom {
98
+ height: $bottom-height - $bottom-item-height;
99
+ }
100
+
101
+ .scroller {
102
+ bottom: $bottom-height - $bottom-item-height;
103
+ }
104
+
105
+ .navigation_scroll_indicator {
106
+ &.bottom {
107
+ bottom: $bottom-height - $scroll-indicator-offset - $bottom-item-height;
108
+ }
109
+ }
110
+ }
86
111
  }
87
112
  }
@@ -6,10 +6,7 @@
6
6
  $active-button-icon-color,
7
7
  $deactivated-button-icon-color,
8
8
 
9
- $scroll-indicator-color: #888,
10
-
11
- $share-icon-color: #fff,
12
- $active-share-icon-color: $main-color
9
+ $scroll-indicator-color: #888
13
10
  ) {
14
11
 
15
12
  .navigation_bullet,
@@ -163,55 +160,6 @@
163
160
  }
164
161
  }
165
162
 
166
- .navigation_share_box {
167
- a {
168
- text-align: center;
169
-
170
- p {
171
- font-family: SourceSansPro;
172
- font-size: 12px;
173
- }
174
- }
175
-
176
- .share_google,
177
- .share_facebook,
178
- .share_twitter {
179
- font-size: 1.5em;
180
-
181
- &:before {
182
- font-family: "FontAwesome";
183
- color: $share-icon-color;
184
- text-shadow: none;
185
- }
186
- }
187
-
188
- a:hover {
189
- p {
190
- color: $active-share-icon-color;
191
- }
192
-
193
- .share_google,
194
- .share_facebook,
195
- .share_twitter {
196
- &:before {
197
- color: $active-share-icon-color;
198
- }
199
- }
200
- }
201
-
202
- .share_google {
203
- @include fa-google-plus-icon;
204
- }
205
-
206
- .share_facebook {
207
- @include fa-facebook-icon;
208
- }
209
-
210
- .share_twitter {
211
- @include fa-twitter-icon;
212
- }
213
- }
214
-
215
163
  .volume-control {
216
164
  @include background-icon-left(
217
165
  $left: -21px,