pageflow 12.1.0 → 12.2.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +90 -171
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +22 -2
  5. data/admins/pageflow/entry.rb +3 -1
  6. data/admins/pageflow/user.rb +9 -3
  7. data/app/assets/javascripts/pageflow/browser/agent.js +20 -9
  8. data/app/assets/javascripts/pageflow/browser/autoplay_support.js +3 -2
  9. data/app/assets/javascripts/pageflow/dist/react.js +6000 -4941
  10. data/app/assets/javascripts/pageflow/editor/initializers/setup_collections.js +0 -1
  11. data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +0 -5
  12. data/app/assets/javascripts/pageflow/links.js +0 -7
  13. data/app/assets/javascripts/pageflow/ready.js +2 -0
  14. data/app/assets/javascripts/pageflow/slideshow.js +1 -0
  15. data/app/assets/javascripts/pageflow/slideshow/hide_text_on_swipe.js +10 -5
  16. data/app/assets/javascripts/pageflow/slideshow/page_split_layout.js +74 -0
  17. data/app/assets/javascripts/pageflow/slideshow/page_widget.js +25 -1
  18. data/app/assets/javascripts/pageflow/slideshow/swipe_gesture.js +5 -3
  19. data/app/assets/javascripts/pageflow/ui.js +1 -0
  20. data/app/assets/javascripts/pageflow/ui/templates/inputs/text_area_input.jst.ejs +1 -1
  21. data/app/assets/javascripts/pageflow/ui/templates/inputs/text_input.jst.ejs +1 -1
  22. data/app/assets/javascripts/pageflow/ui/views/inputs/color_input_view.js +105 -0
  23. data/app/assets/javascripts/pageflow/visited.js +62 -34
  24. data/app/assets/javascripts/pageflow/widgets/overview.js +18 -5
  25. data/app/assets/stylesheets/pageflow/base.scss +0 -1
  26. data/app/assets/stylesheets/pageflow/entries.scss +11 -3
  27. data/app/assets/stylesheets/pageflow/mixins.scss +1 -0
  28. data/app/assets/stylesheets/pageflow/mixins/layout_direction.scss +72 -0
  29. data/app/assets/stylesheets/pageflow/mixins/shadow.scss +20 -0
  30. data/app/assets/stylesheets/pageflow/navigation_bar.scss +8 -2
  31. data/app/assets/stylesheets/pageflow/navigation_mobile.scss +1 -2
  32. data/app/assets/stylesheets/pageflow/overview.scss +10 -11
  33. data/app/assets/stylesheets/pageflow/page.scss +3 -37
  34. data/app/assets/stylesheets/pageflow/page_transitions/fade.scss +7 -3
  35. data/app/assets/stylesheets/pageflow/page_transitions/fade_to_black.scss +1 -10
  36. data/app/assets/stylesheets/pageflow/slideshow.scss +1 -2
  37. data/app/assets/stylesheets/pageflow/themes/default/anchors.scss +5 -0
  38. data/app/assets/stylesheets/pageflow/themes/default/base.scss +1 -0
  39. data/app/assets/stylesheets/pageflow/themes/default/loading_spinner.scss +9 -3
  40. data/app/assets/stylesheets/pageflow/themes/default/logo.scss +9 -3
  41. data/app/assets/stylesheets/pageflow/themes/default/logo/alignment.scss +2 -2
  42. data/app/assets/stylesheets/pageflow/themes/default/logo/variant/background_image.scss +52 -5
  43. data/app/assets/stylesheets/pageflow/themes/default/logo/variant/watermark.scss +6 -3
  44. data/app/assets/stylesheets/pageflow/{multimedia_alert.scss → themes/default/multimedia_alert.scss} +32 -11
  45. data/app/assets/stylesheets/pageflow/themes/default/overview.scss +7 -3
  46. data/app/assets/stylesheets/pageflow/themes/default/overview/icons/icon_font.scss +20 -4
  47. data/app/assets/stylesheets/pageflow/themes/default/page.scss +20 -53
  48. data/app/assets/stylesheets/pageflow/themes/default/page/line_lengths.scss +3 -8
  49. data/app/assets/stylesheets/pageflow/themes/default/page/paddings.scss +72 -0
  50. data/app/assets/stylesheets/pageflow/themes/default/page/scroller.scss +3 -0
  51. data/app/assets/stylesheets/pageflow/themes/default/page/shadow.scss +27 -0
  52. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/control_bar.scss +1 -0
  53. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/container.scss +1 -1
  54. data/app/assets/stylesheets/pageflow/ui.scss +2 -0
  55. data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +25 -0
  56. data/app/controllers/pageflow/application_controller.rb +17 -3
  57. data/app/helpers/pageflow/overview_helper.rb +11 -0
  58. data/app/helpers/pageflow/text_direction_helper.rb +7 -0
  59. data/app/policies/pageflow/user_policy.rb +20 -0
  60. data/app/views/admin/accounts/_account_details.html.arb +5 -3
  61. data/app/views/admin/accounts/_theming_details.html.arb +5 -3
  62. data/app/views/admin/entries/_attributes_table.html.arb +3 -1
  63. data/app/views/components/pageflow/admin/extensible_attributes_table.rb +88 -0
  64. data/app/views/layouts/pageflow/application.html.erb +1 -1
  65. data/app/views/pageflow/entries/edit.html.erb +1 -1
  66. data/app/views/pageflow/entries/overview/_page.html.erb +3 -1
  67. data/app/views/pageflow/entries/show.html.erb +2 -1
  68. data/config/initializers/admin_attributes_table_rows.rb +3 -0
  69. data/config/locales/de.yml +1 -1
  70. data/lib/pageflow.rb +4 -2
  71. data/lib/pageflow/ability_mixin.rb +8 -0
  72. data/lib/pageflow/admin/attributes_table_rows.rb +47 -0
  73. data/lib/pageflow/configuration.rb +27 -3
  74. data/lib/pageflow/engine.rb +1 -0
  75. data/lib/pageflow/news_item_api.rb +18 -0
  76. data/lib/pageflow/version.rb +1 -1
  77. data/spec/factories/accounts.rb +7 -2
  78. data/spec/factories/entries.rb +7 -2
  79. data/vendor/assets/javascripts/iscroll.js +49 -34
  80. metadata +53 -12
@@ -95,12 +95,20 @@ jQuery(function($) {
95
95
  });
96
96
 
97
97
  if (scrollerWidth < wrapper.width()) {
98
- var closeButtonLeft = Math.max(400, scrollerWidth - closeButton.width() - 10);
98
+ var closeButtonPos = Math.max(400, scrollerWidth - closeButton.width() - 10);
99
99
 
100
- closeButton.css({
101
- left: closeButtonLeft + 'px',
102
- right: 'auto'
103
- });
100
+ if (isDirLtr(closeButton)) {
101
+ closeButton.css({
102
+ left: closeButtonPos + 'px',
103
+ right: 'auto'
104
+ });
105
+ }
106
+ else {
107
+ closeButton.css({
108
+ right: closeButtonPos + 'px',
109
+ left: 'auto'
110
+ });
111
+ }
104
112
  }
105
113
 
106
114
  closeButton.click(toggleContent);
@@ -111,6 +119,11 @@ jQuery(function($) {
111
119
  toggleContent();
112
120
  }
113
121
  });
122
+
123
+ function isDirLtr(el) {
124
+ var styles = window.getComputedStyle(el[0]);
125
+ return styles.direction == 'ltr';
126
+ }
114
127
  }
115
128
  });
116
129
  });
@@ -72,7 +72,6 @@ a {
72
72
  @import "./header";
73
73
  @import "./focus_outline";
74
74
  @import "./skip_links";
75
- @import "./multimedia_alert";
76
75
  @import "./hide_text";
77
76
  @import "./subshare";
78
77
  @import "./delayed_text_fade_in";
@@ -46,8 +46,16 @@
46
46
  visibility: hidden;
47
47
  white-space: nowrap;
48
48
 
49
- @include desktop {
50
- left: 8%;
49
+ @include dir-ltr {
50
+ @include desktop {
51
+ left: 8%;
52
+ }
53
+ }
54
+
55
+ @include dir-rtl {
56
+ @include desktop {
57
+ right: 8%;
58
+ }
51
59
  }
52
60
 
53
61
  @include phone {
@@ -80,7 +88,7 @@
80
88
 
81
89
  .hidden_text_indicator {
82
90
  display: none;
83
- left: 8%;
91
+ @include position-start(8%);
84
92
  }
85
93
  }
86
94
 
@@ -12,3 +12,4 @@
12
12
  @import "mixins/label";
13
13
  @import "mixins/map_to_css";
14
14
  @import "mixins/ie_fixes";
15
+ @import "mixins/layout_direction";
@@ -0,0 +1,72 @@
1
+ @mixin dir-ltr {
2
+ [dir=ltr] & { @content; }
3
+ }
4
+
5
+ @mixin dir-rtl {
6
+ [dir=rtl] & { @content; }
7
+ }
8
+
9
+ @mixin border-start($value) {
10
+ @include dir-ltr { border-left: $value; }
11
+ @include dir-rtl { border-right: $value; }
12
+ }
13
+
14
+ @mixin border-end($value) {
15
+ @include dir-ltr { border-right: $value; }
16
+ @include dir-rtl { border-left: $value; }
17
+ }
18
+
19
+ @mixin border-start-width($value) {
20
+ @include dir-ltr { border-left-width: $value; }
21
+ @include dir-rtl { border-right-width: $value; }
22
+ }
23
+
24
+ @mixin border-end-width($value) {
25
+ @include dir-ltr { border-right-width: $value; }
26
+ @include dir-rtl { border-left-width: $value; }
27
+ }
28
+
29
+ @mixin padding-start($value) {
30
+ @include dir-ltr { padding-left: $value; }
31
+ @include dir-rtl { padding-right: $value; }
32
+ }
33
+
34
+ @mixin padding-end($value) {
35
+ @include dir-ltr { padding-right: $value; }
36
+ @include dir-rtl { padding-left: $value; }
37
+ }
38
+
39
+ @mixin margin-start($value) {
40
+ @include dir-ltr { margin-left: $value; }
41
+ @include dir-rtl { margin-right: $value; }
42
+ }
43
+
44
+ @mixin margin-end($value) {
45
+ @include dir-ltr { margin-right: $value; }
46
+ @include dir-rtl { margin-left: $value; }
47
+ }
48
+
49
+ @mixin position-start($value) {
50
+ @include dir-ltr { left: $value; }
51
+ @include dir-rtl { right: $value; }
52
+ }
53
+
54
+ @mixin position-end($value) {
55
+ @include dir-ltr { right: $value; }
56
+ @include dir-rtl { left: $value; }
57
+ }
58
+
59
+ @mixin float-start {
60
+ @include dir-ltr { float: left; }
61
+ @include dir-rtl { float: right; }
62
+ }
63
+
64
+ @mixin float-end {
65
+ @include dir-ltr { float: right; }
66
+ @include dir-rtl { float: left; }
67
+ }
68
+
69
+ @mixin text-align-end {
70
+ @include dir-ltr { text-align: right; }
71
+ @include dir-rtl { text-align: left; }
72
+ }
@@ -1,3 +1,23 @@
1
+ @mixin shadow-start($color) {
2
+ @include dir-ltr {
3
+ @include shadow($color)
4
+ }
5
+
6
+ @include dir-rtl {
7
+ @include shadow-right($color)
8
+ }
9
+ }
10
+
11
+ @mixin shadow-end($color) {
12
+ @include dir-ltr {
13
+ @include shadow-right($color)
14
+ }
15
+
16
+ @include dir-rtl {
17
+ @include shadow($color)
18
+ }
19
+ }
20
+
1
21
  @mixin shadow($color) {
2
22
  /* Generated with http://www.colorzilla.com/gradient-editor */
3
23
  background: -moz-linear-gradient(left, rgba($color,1) 0%, rgba($color,0) 100%); /* FF3.6+ */
@@ -135,6 +135,7 @@
135
135
  .navigation_thumbnails a {
136
136
  position: relative;
137
137
  outline: none;
138
+ direction: ltr;
138
139
 
139
140
  &:focus:before {
140
141
  content: " ";
@@ -175,6 +176,10 @@
175
176
  }
176
177
  }
177
178
 
179
+ .navigation_volume_box {
180
+ direction: ltr;
181
+ }
182
+
178
183
  .navigation_share_box {
179
184
  .sub_share {
180
185
  display: none;
@@ -185,8 +190,9 @@
185
190
  min-width: 230px;
186
191
  min-height: 4px;
187
192
 
188
- a.legal, a.copy {
189
- float: left;
193
+ a.legal,
194
+ a.copy {
195
+ @include float-start;
190
196
  }
191
197
  }
192
198
 
@@ -338,10 +338,9 @@ body {
338
338
  border-bottom: 1px solid #465b73;
339
339
 
340
340
  > a {
341
- margin-left: 78px;
342
341
  text-decoration: none;
343
342
  font-size: 24px;
344
- padding-top: 12px;
343
+ padding: 10px 15px 10px 78px;
345
344
  border: 0;
346
345
  height: 80px;
347
346
 
@@ -39,11 +39,11 @@
39
39
  z-index: 1;
40
40
 
41
41
  &.left {
42
- left: 10px;
42
+ @include position-start(10px);
43
43
  }
44
44
 
45
45
  &.right {
46
- right: 0;
46
+ @include position-end(0);
47
47
  }
48
48
 
49
49
  &:active {
@@ -55,8 +55,8 @@
55
55
  position: absolute;
56
56
  top: 0;
57
57
  bottom: 0;
58
- left: 8%;
59
- right: 120px;
58
+ @include position-start(8%);
59
+ @include position-end(4%);
60
60
  height: 555px;
61
61
  overflow: hidden;
62
62
  z-index: 2;
@@ -65,14 +65,14 @@
65
65
  @include transform(translate(200%,0));
66
66
 
67
67
  h2 {
68
- margin-left: 10px;
68
+ @include margin-start(10px);
69
69
  margin-bottom: 0;
70
70
  margin-top: 0;
71
71
  }
72
72
 
73
73
  .close {
74
74
  position: absolute;
75
- right: 0;
75
+ @include position-end(0);
76
76
  top: 20px;
77
77
  }
78
78
 
@@ -84,11 +84,11 @@
84
84
 
85
85
  .ov_chapter {
86
86
  position: relative;
87
- float: left;
87
+ @include float-start;
88
88
  width: 265px;
89
89
  height: 400px;
90
90
  margin-top: 25px;
91
- margin-right: 10px;
91
+ @include margin-end(10px);
92
92
 
93
93
  &:before, &:after {
94
94
  content: " ";
@@ -132,13 +132,12 @@
132
132
  @include perspective(700px);
133
133
  @include perspective-origin(left 50%);
134
134
 
135
- display:block;
135
+ display: block;
136
136
 
137
137
  @include dimensions;
138
138
  position: relative;
139
- margin-left: 15px;
140
- margin-bottom: 5px;
141
139
 
140
+ margin: 0 15px 5px 15px;
142
141
 
143
142
  &.active {
144
143
  cursor: default;
@@ -20,30 +20,12 @@
20
20
 
21
21
  .shadow {
22
22
  @include transition(opacity 0.2s linear, visibility 0.2s linear);
23
- @include shadow(#000);
24
23
  pointer-events: none;
25
24
  }
26
25
 
27
26
  &.invert {
28
27
  color: #000;
29
28
  background-color: #fff;
30
-
31
- .shadow {
32
- @include shadow(#fff);
33
- }
34
- }
35
-
36
- &.text_position_right .shadow {
37
- @include shadow-right(#000);
38
- }
39
-
40
- &.invert.text_position_right {
41
- color: #000;
42
- background-color: #fff;
43
-
44
- .shadow {
45
- @include shadow-right(#fff);
46
- }
47
29
  }
48
30
 
49
31
  .content {
@@ -56,24 +38,12 @@
56
38
  height: 100%;
57
39
  }
58
40
 
59
- .scroller > div, .content_and_background > .page_header {
60
- padding: 200px 0 5% 8%;
41
+ .scroller > div {
61
42
  pointer-events: none;
62
43
  width: 75%;
63
- @include mobile {
64
- padding: 85px 12% 5% 8%;
65
- width: 100%;
66
- }
67
- }
68
44
 
69
- .content_and_background > .page_header {
70
- position: relative;
71
- }
72
-
73
- .videoPage .scroller > div, .audioPage .scroller > div {
74
- padding: 0px 0 5% 8%;
75
45
  @include mobile {
76
- padding: 0px 12% 5% 8%;
46
+ width: 100%;
77
47
  }
78
48
  }
79
49
 
@@ -101,14 +71,10 @@
101
71
 
102
72
  .scroller > div {
103
73
  pointer-events: none;
104
- padding: 15% 14% 5% 8%;
105
74
  width: 100%;
75
+
106
76
  @include mobile {
107
- padding: 25% 12% 5% 8%;
108
77
  width: 100%;
109
- @media (orientation: landscape) {
110
- padding: 10% 12% 5% 8%;
111
- }
112
78
  }
113
79
  }
114
80
  }
@@ -18,7 +18,6 @@ section.fade {
18
18
  .backgroundArea {
19
19
  background-color: black;
20
20
  -webkit-backface-visibility: hidden;
21
- @include transition (opacity 1s ease);
22
21
  }
23
22
 
24
23
  &.invert .backgroundArea {
@@ -29,25 +28,28 @@ section.fade {
29
28
  opacity: 0;
30
29
  }
31
30
  &.animate-out-forwards .backgroundArea{
31
+ @include transition (opacity 1s ease);
32
32
  opacity: 1;
33
33
  }
34
34
  &.animate-in-backwards .backgroundArea{
35
35
  opacity: 0;
36
36
  }
37
37
  &.animate-out-backwards .backgroundArea{
38
+ @include transition (opacity 1s ease);
38
39
  opacity: 1;
39
40
  }
40
41
 
41
42
  &.active .backgroundArea {
43
+ @include transition (opacity 1s ease);
42
44
  opacity: 1;
43
45
  }
44
46
 
45
47
  .content {
46
- @include transition(1s ease);
47
48
  -webkit-backface-visibility: hidden;
48
49
  }
49
50
 
50
51
  &.active div.content {
52
+ @include transition(1s ease);
51
53
  @include transform(translate3d(0,0,0));
52
54
  }
53
55
 
@@ -60,6 +62,7 @@ section.fade {
60
62
  }
61
63
  &.animate-out-forwards {
62
64
  .content {
65
+ @include transition(1s ease);
63
66
  @include transform(translate3d(0,-100%,0));
64
67
  }
65
68
  }
@@ -72,7 +75,8 @@ section.fade {
72
75
  }
73
76
  &.animate-out-backwards {
74
77
  .content {
78
+ @include transition(1s ease);
75
79
  @include transform(translate3d(0,100%,0));
76
80
  }
77
81
  }
78
- }
82
+ }
@@ -37,7 +37,6 @@ section.fade_to_black {
37
37
  opacity: 0;
38
38
  background-color: black;
39
39
  -webkit-backface-visibility: hidden;
40
- @include transition(opacity 1s ease 1s);
41
40
  }
42
41
 
43
42
  &.invert .backgroundArea {
@@ -53,7 +52,6 @@ section.fade_to_black {
53
52
  }
54
53
  &.animate-in-backwards .backgroundArea{
55
54
  opacity: 0;
56
- @include transition(1s ease 1s);
57
55
  }
58
56
  &.animate-out-backwards .backgroundArea{
59
57
  opacity: 0;
@@ -66,16 +64,10 @@ section.fade_to_black {
66
64
  }
67
65
 
68
66
  .content {
69
- @include transition(1s ease);
70
67
  -webkit-backface-visibility: hidden;
71
68
  opacity: 0;
72
69
  }
73
70
 
74
- &.active .backgroundArea {
75
- opacity: 1;
76
- @include transition(1s ease 1s);
77
- }
78
-
79
71
  &.active div.content {
80
72
  opacity: 1;
81
73
  @include transition(1s ease 1s);
@@ -95,7 +87,6 @@ section.fade_to_black {
95
87
  &.animate-in-backwards {
96
88
  .content {
97
89
  opacity: 0;
98
- @include transition(1s ease 1s);
99
90
  }
100
91
  }
101
92
  &.animate-out-backwards {
@@ -104,4 +95,4 @@ section.fade_to_black {
104
95
  @include transition(1s ease);
105
96
  }
106
97
  }
107
- }
98
+ }