pageflow 13.2.0 → 13.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -19
- data/app/assets/javascripts/pageflow/dist/react-client.js +16 -3
- data/app/assets/javascripts/pageflow/dist/react-server.js +16 -3
- data/app/assets/javascripts/pageflow/widgets/navigation.js +1 -0
- data/app/assets/javascripts/pageflow/widgets/page_navigation_list.js +8 -3
- data/app/assets/stylesheets/pageflow/themes/default/page.scss +20 -0
- data/app/models/pageflow/revision.rb +25 -4
- data/app/views/pageflow/entries/_navigation.html.erb +1 -2
- data/app/views/pageflow/entries/navigation/_page.html.erb +1 -1
- data/config/locales/de.yml +4 -0
- data/config/locales/en.yml +4 -0
- data/lib/pageflow/version.rb +1 -1
- data/spec/factories/revisions.rb +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c272f47847e7397fbfa1ba7b650ff70a4deeebf7c05f286cee3f45cb5033800d
|
4
|
+
data.tar.gz: '094a2a235ff2572be87cf3bda33fc716a6109df54c6e48570b4b51ef5da9c5ac'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d9f5bfc05baa02e1b67ecf8b8cf0674df5409b25664acedf32473761803e27e024e664485803b9f5de40108c4c609dea25d076fb770f6567f08999fe00de504
|
7
|
+
data.tar.gz: 7610751681d8b0a24f7598cd6983dab4ea00df758c42da941ee2ba6c6d26980e870c40af01cbc4a7300b5a1fdac70f7386800bc5242039173a3aa06ed18f937f
|
data/CHANGELOG.md
CHANGED
@@ -1,26 +1,24 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
-
### Version 13.
|
3
|
+
### Version 13.3.0
|
4
4
|
|
5
|
-
2019-
|
5
|
+
2019-02-20
|
6
6
|
|
7
|
-
[Compare changes](https://github.com/codevise/pageflow/compare/13-
|
8
|
-
|
9
|
-
- Waveform audio player controls
|
10
|
-
([#1092](https://github.com/codevise/pageflow/pull/1092))
|
11
|
-
- Do not use asset host in entry stylesheet link tags
|
12
|
-
([#1107](https://github.com/codevise/pageflow/pull/1107))
|
13
|
-
- Add theme vars for phone typography of tagline and subtitle
|
14
|
-
([#1108](https://github.com/codevise/pageflow/pull/1108))
|
15
|
-
|
16
|
-
##### Internal
|
17
|
-
- Add package-lock.json to version control
|
18
|
-
([#1106](https://github.com/codevise/pageflow/pull/1106))
|
19
|
-
- Upgrade to Semmy 1.1
|
20
|
-
([#1113](https://github.com/codevise/pageflow/pull/1113))
|
21
|
-
- Also release pageflow-support when running release task
|
22
|
-
([#1115](https://github.com/codevise/pageflow/pull/1115))
|
7
|
+
[Compare changes](https://github.com/codevise/pageflow/compare/13-2-stable...v13.3.0)
|
23
8
|
|
9
|
+
- Lazy load navigation bar thumbnails
|
10
|
+
([#1117](https://github.com/codevise/pageflow/pull/1117))
|
11
|
+
- Ensure entries can be filtered by publication date
|
12
|
+
([#1118](https://github.com/codevise/pageflow/pull/1118))
|
13
|
+
- Add missing Active Admin translations for filters
|
14
|
+
([#1119](https://github.com/codevise/pageflow/pull/1119))
|
15
|
+
- Ignore storyline order error in js specs
|
16
|
+
([#1120](https://github.com/codevise/pageflow/pull/1120))
|
17
|
+
- Add typography theme vars for first page of chapter
|
18
|
+
([#1121](https://github.com/codevise/pageflow/pull/1121))
|
19
|
+
- Display text tracks at the top if waveform is present
|
20
|
+
([#1122](https://github.com/codevise/pageflow/pull/1122))
|
21
|
+
|
24
22
|
See
|
25
|
-
[13-
|
23
|
+
[13-2-stable branch](https://github.com/codevise/pageflow/blob/13-2-stable/CHANGELOG.md)
|
26
24
|
for previous changes.
|
@@ -25056,7 +25056,8 @@ pageflow = typeof pageflow === "object" ? pageflow : {}; pageflow["react"] =
|
|
25056
25056
|
muted: props.muted,
|
25057
25057
|
playsInline: props.playsInline,
|
25058
25058
|
defaultTextTrackFileId: props.defaultTextTrackFileId,
|
25059
|
-
textTracksEnabled: props.textTracksEnabled
|
25059
|
+
textTracksEnabled: props.textTracksEnabled,
|
25060
|
+
textTrackPosition: props.textTrackPosition });
|
25060
25061
|
} else if (props.preloadComponent && fileReady && props.pageIsPreloaded) {
|
25061
25062
|
var Preload = props.preloadComponent;
|
25062
25063
|
|
@@ -25304,7 +25305,12 @@ pageflow = typeof pageflow === "object" ? pageflow : {}; pageflow["react"] =
|
|
25304
25305
|
var slimPlayerControlsPresent = (0, _selectors5.widgetPresent)('slimPlayerControls');
|
25305
25306
|
|
25306
25307
|
function textTrackPosition(state, _ref2) {
|
25307
|
-
var playerState = _ref2.playerState
|
25308
|
+
var playerState = _ref2.playerState,
|
25309
|
+
textTrackPosition = _ref2.textTrackPosition;
|
25310
|
+
|
25311
|
+
if (textTrackPosition) {
|
25312
|
+
return textTrackPosition;
|
25313
|
+
}
|
25308
25314
|
|
25309
25315
|
if (slimPlayerControlsPresent(state)) {
|
25310
25316
|
// see pageflow.VideoPlayer#updateCueLineSettings for explanation of values.
|
@@ -30794,7 +30800,8 @@ pageflow = typeof pageflow === "object" ? pageflow : {}; pageflow["react"] =
|
|
30794
30800
|
React.createElement(_media.PageBackgroundAsset, null),
|
30795
30801
|
React.createElement(_media.PageAudioFilePlayer, { file: props.audioFile,
|
30796
30802
|
playerState: props.playerState,
|
30797
|
-
playerActions: props.playerActions
|
30803
|
+
playerActions: props.playerActions,
|
30804
|
+
textTrackPosition: textTrackPosition(playerControlsVariant) })
|
30798
30805
|
);
|
30799
30806
|
}
|
30800
30807
|
|
@@ -30806,6 +30813,12 @@ pageflow = typeof pageflow === "object" ? pageflow : {}; pageflow["react"] =
|
|
30806
30813
|
}
|
30807
30814
|
}
|
30808
30815
|
|
30816
|
+
function textTrackPosition(variant) {
|
30817
|
+
if (variant == 'waveform') {
|
30818
|
+
return 'top';
|
30819
|
+
}
|
30820
|
+
}
|
30821
|
+
|
30809
30822
|
function register() {
|
30810
30823
|
(0, _registerPageType2.default)('audio', {
|
30811
30824
|
|
@@ -25050,7 +25050,8 @@ pageflow = typeof pageflow === "object" ? pageflow : {}; pageflow["react"] =
|
|
25050
25050
|
muted: props.muted,
|
25051
25051
|
playsInline: props.playsInline,
|
25052
25052
|
defaultTextTrackFileId: props.defaultTextTrackFileId,
|
25053
|
-
textTracksEnabled: props.textTracksEnabled
|
25053
|
+
textTracksEnabled: props.textTracksEnabled,
|
25054
|
+
textTrackPosition: props.textTrackPosition });
|
25054
25055
|
} else if (props.preloadComponent && fileReady && props.pageIsPreloaded) {
|
25055
25056
|
var Preload = props.preloadComponent;
|
25056
25057
|
|
@@ -25298,7 +25299,12 @@ pageflow = typeof pageflow === "object" ? pageflow : {}; pageflow["react"] =
|
|
25298
25299
|
var slimPlayerControlsPresent = (0, _selectors5.widgetPresent)('slimPlayerControls');
|
25299
25300
|
|
25300
25301
|
function textTrackPosition(state, _ref2) {
|
25301
|
-
var playerState = _ref2.playerState
|
25302
|
+
var playerState = _ref2.playerState,
|
25303
|
+
textTrackPosition = _ref2.textTrackPosition;
|
25304
|
+
|
25305
|
+
if (textTrackPosition) {
|
25306
|
+
return textTrackPosition;
|
25307
|
+
}
|
25302
25308
|
|
25303
25309
|
if (slimPlayerControlsPresent(state)) {
|
25304
25310
|
// see pageflow.VideoPlayer#updateCueLineSettings for explanation of values.
|
@@ -30772,7 +30778,8 @@ pageflow = typeof pageflow === "object" ? pageflow : {}; pageflow["react"] =
|
|
30772
30778
|
React.createElement(_media.PageBackgroundAsset, null),
|
30773
30779
|
React.createElement(_media.PageAudioFilePlayer, { file: props.audioFile,
|
30774
30780
|
playerState: props.playerState,
|
30775
|
-
playerActions: props.playerActions
|
30781
|
+
playerActions: props.playerActions,
|
30782
|
+
textTrackPosition: textTrackPosition(playerControlsVariant) })
|
30776
30783
|
);
|
30777
30784
|
}
|
30778
30785
|
|
@@ -30784,6 +30791,12 @@ pageflow = typeof pageflow === "object" ? pageflow : {}; pageflow["react"] =
|
|
30784
30791
|
}
|
30785
30792
|
}
|
30786
30793
|
|
30794
|
+
function textTrackPosition(variant) {
|
30795
|
+
if (variant == 'waveform') {
|
30796
|
+
return 'top';
|
30797
|
+
}
|
30798
|
+
}
|
30799
|
+
|
30787
30800
|
function register() {
|
30788
30801
|
(0, _registerPageType2.default)('audio', {
|
30789
30802
|
|
@@ -95,9 +95,14 @@
|
|
95
95
|
return $.when(animation.enabled && animationDurationElapsed()).then(function() {
|
96
96
|
links.each(function() {
|
97
97
|
var link = $(this);
|
98
|
+
var pageIsVisible = visible(currentPagePermaId, link);
|
98
99
|
|
99
|
-
animation.finish(link.parent(),
|
100
|
-
link.parent().andSelf().toggleClass('filtered', !
|
100
|
+
animation.finish(link.parent(), pageIsVisible);
|
101
|
+
link.parent().andSelf().toggleClass('filtered', !pageIsVisible);
|
102
|
+
|
103
|
+
if (pageIsVisible && options.lazyLoadImages) {
|
104
|
+
link.loadLazyImages();
|
105
|
+
}
|
101
106
|
});
|
102
107
|
|
103
108
|
scroller.refresh();
|
@@ -130,4 +135,4 @@
|
|
130
135
|
}
|
131
136
|
}
|
132
137
|
});
|
133
|
-
}(jQuery));
|
138
|
+
}(jQuery));
|
@@ -26,6 +26,12 @@ $page-header-first-page-title-typography: () !default;
|
|
26
26
|
/// Typography for title on first page in phone layout.
|
27
27
|
$page-header-first-page-title-phone-typography: () !default;
|
28
28
|
|
29
|
+
/// Typography for title on first page of chapter.
|
30
|
+
$page-header-chapter-beginning-title-typography: () !default;
|
31
|
+
|
32
|
+
/// Typography for title on first page of chapter in phone layout.
|
33
|
+
$page-header-chapter-beginning-title-phone-typography: () !default;
|
34
|
+
|
29
35
|
/// Typography for header subtitle.
|
30
36
|
$page-header-subtitle-typography: () !default;
|
31
37
|
|
@@ -241,3 +247,17 @@ $page-content-text-line-height: 1.5em !default;
|
|
241
247
|
}
|
242
248
|
}
|
243
249
|
}
|
250
|
+
|
251
|
+
.emphasize_chapter_beginning .page.chapter_beginning:nth-of-type(n+2) {
|
252
|
+
h2 .title {
|
253
|
+
@include typography(
|
254
|
+
$page-header-chapter-beginning-title-typography
|
255
|
+
);
|
256
|
+
|
257
|
+
@include phone {
|
258
|
+
@include typography(
|
259
|
+
$page-header-chapter-beginning-title-phone-typography
|
260
|
+
);
|
261
|
+
}
|
262
|
+
}
|
263
|
+
}
|
@@ -27,10 +27,31 @@ module Pageflow
|
|
27
27
|
has_many :audio_files, -> { extending WithFileUsageExtension },
|
28
28
|
:through => :file_usages, :source => :file, :source_type => 'Pageflow::AudioFile'
|
29
29
|
|
30
|
-
scope
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
scope(:published,
|
31
|
+
lambda do
|
32
|
+
# The following query would be much easier expressed as
|
33
|
+
#
|
34
|
+
# where.not(published_at: nil)
|
35
|
+
# .where(['(published_until IS NULL OR published_until > :now)',
|
36
|
+
# {now: Time.now}])
|
37
|
+
#
|
38
|
+
# But referencing `published_until` without qualifying it
|
39
|
+
# with a table name or alias makes it ambiguous when the
|
40
|
+
# revisions table is joined multiple times in a query.
|
41
|
+
#
|
42
|
+
# The hash syntax makes sure the correct dynamically
|
43
|
+
# generated table alias is used.
|
44
|
+
|
45
|
+
published_indefinitely =
|
46
|
+
where.not(published_at: nil).where(published_until: nil)
|
47
|
+
|
48
|
+
published_until_gt_now = {published_until: 1.second.from_now..DateTime::Infinity.new}
|
49
|
+
|
50
|
+
published_and_not_yet_depublished =
|
51
|
+
where.not(published_at: nil).where(published_until_gt_now)
|
52
|
+
|
53
|
+
published_indefinitely.or(published_and_not_yet_depublished)
|
54
|
+
end)
|
34
55
|
|
35
56
|
scope(:with_password_protection, -> { where('password_protected IS TRUE') })
|
36
57
|
scope(:without_password_protection, -> { where('password_protected IS NOT TRUE') })
|
@@ -5,8 +5,7 @@
|
|
5
5
|
<div class="scroller">
|
6
6
|
<ul class="navigation_thumbnails">
|
7
7
|
<%= render :partial => 'pageflow/entries/navigation/page',
|
8
|
-
:collection => entry.pages.displayed_in_navigation
|
9
|
-
:locals => {:image_style => :navigation_thumbnail_small, :image_width => 85} %>
|
8
|
+
:collection => entry.pages.displayed_in_navigation %>
|
10
9
|
</ul>
|
11
10
|
</div>
|
12
11
|
<%= render 'pageflow/entries/navigation/bar_bottom', :entry => entry %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<li class="<%= page_navigation_css_class(page) %>">
|
2
2
|
<%= link_to "##{page.perma_id}", :data => {:link => page.id, :chapter_id => page.chapter_id} do %>
|
3
|
-
<%= image_tag(page.thumbnail_url(
|
3
|
+
<%= image_tag('', data: {src: asset_path(page.thumbnail_url(:navigation_thumbnail_small))}, width: 85, height: 47) %>
|
4
4
|
<% end %>
|
5
5
|
<div class="navigation_site_detail">
|
6
6
|
<%= page.title %>
|
data/config/locales/de.yml
CHANGED
@@ -93,9 +93,13 @@ de:
|
|
93
93
|
contains: Enthält
|
94
94
|
ends_with: Endet mit
|
95
95
|
equals: Ist gleich
|
96
|
+
from: Von
|
96
97
|
greater_than: Größer als
|
98
|
+
gteq_datetime: Größer gleich
|
97
99
|
less_than: Kleiner als
|
100
|
+
lteq_datetime: Kleiner gleich
|
98
101
|
starts_with: Beginnt mit
|
102
|
+
to: Bis
|
99
103
|
greater_than: Größer als
|
100
104
|
has_many_delete: Löschen
|
101
105
|
has_many_new: "%{model} hinzufügen"
|
data/config/locales/en.yml
CHANGED
@@ -93,9 +93,13 @@ en:
|
|
93
93
|
contains: Contains
|
94
94
|
ends_with: Ends with
|
95
95
|
equals: Equals
|
96
|
+
from: From
|
96
97
|
greater_than: Greater than
|
98
|
+
gteq_datetime: Greater or equal to
|
97
99
|
less_than: Less than
|
100
|
+
lteq_datetime: Lesser or equal to
|
98
101
|
starts_with: Starts with
|
102
|
+
to: To
|
99
103
|
greater_than: Greater than
|
100
104
|
has_many_delete: Delete
|
101
105
|
has_many_new: Add New %{model}
|
data/lib/pageflow/version.rb
CHANGED
data/spec/factories/revisions.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pageflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 13.
|
4
|
+
version: 13.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Codevise Solutions Ltd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|