pageflow 0.5.0 → 0.6.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 +8 -8
- data/Rakefile +2 -1
- data/admins/pageflow/accounts.rb +20 -4
- data/admins/pageflow/entry.rb +4 -5
- data/app/assets/javascripts/pageflow/audio_player.js +16 -7
- data/app/assets/javascripts/pageflow/base.js +5 -0
- data/app/assets/javascripts/pageflow/built_in_widget_types.js +11 -0
- data/app/assets/javascripts/pageflow/cookies.js +43 -0
- data/app/assets/javascripts/pageflow/editor/base.js +2 -10
- data/app/assets/javascripts/pageflow/editor/collections/widgets_collection.js +16 -0
- data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +3 -2
- data/app/assets/javascripts/pageflow/editor/edit_widget.jst.ejs +2 -0
- data/app/assets/javascripts/pageflow/editor/initializers/setup_widget_types.js +3 -0
- data/app/assets/javascripts/pageflow/editor/models/configuration.js +18 -9
- data/app/assets/javascripts/pageflow/editor/models/edit_lock_container.js +1 -0
- data/app/assets/javascripts/pageflow/editor/models/entry.js +13 -3
- data/app/assets/javascripts/pageflow/editor/models/entry_configuration.js +4 -0
- data/app/assets/javascripts/pageflow/editor/models/entry_configuration_file_selection_handler.js +11 -0
- data/app/assets/javascripts/pageflow/editor/models/image_file.js +4 -0
- data/app/assets/javascripts/pageflow/editor/models/mixins/widget_subject.js +37 -0
- data/app/assets/javascripts/pageflow/editor/models/page.js +1 -1
- data/app/assets/javascripts/pageflow/editor/models/page_configuration_file_selection_handler.js +1 -25
- data/app/assets/javascripts/pageflow/editor/models/theming.js +3 -0
- data/app/assets/javascripts/pageflow/editor/models/video_file.js +7 -0
- data/app/assets/javascripts/pageflow/editor/models/widget.js +19 -0
- data/app/assets/javascripts/pageflow/editor/routers/sidebar_router.js +1 -0
- data/app/assets/javascripts/pageflow/editor/templates/background_positioning.jst.ejs +18 -0
- data/app/assets/javascripts/pageflow/editor/templates/background_positioning_preview.jst.ejs +2 -0
- data/app/assets/javascripts/pageflow/editor/templates/background_positioning_sliders.jst.ejs +6 -0
- data/app/assets/javascripts/pageflow/editor/templates/edit_meta_data.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/edit_widget.jst.ejs +2 -0
- data/app/assets/javascripts/pageflow/editor/templates/edit_widgets.jst.ejs +2 -0
- data/app/assets/javascripts/pageflow/editor/templates/entry_preview.jst.ejs +1 -3
- data/app/assets/javascripts/pageflow/editor/views/background_positioning_preview_view.js +39 -0
- data/app/assets/javascripts/pageflow/editor/views/background_positioning_sliders_view.js +94 -0
- data/app/assets/javascripts/pageflow/editor/views/background_positioning_view.js +67 -0
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio_loop.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_image.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_video.js +4 -3
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/internal_links.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +9 -2
- data/app/assets/javascripts/pageflow/editor/views/edit_meta_data_view.js +18 -2
- data/app/assets/javascripts/pageflow/editor/views/edit_widget_view.js +29 -0
- data/app/assets/javascripts/pageflow/editor/views/edit_widgets_view.js +20 -0
- data/app/assets/javascripts/pageflow/editor/views/embedded/background_image_embedded_view.js +8 -3
- data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +53 -9
- data/app/assets/javascripts/pageflow/editor/views/page_item_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +11 -3
- data/app/assets/javascripts/pageflow/events.js +1 -0
- data/app/assets/javascripts/pageflow/features/hashchange_support.js +8 -0
- data/app/assets/javascripts/pageflow/history.js +14 -2
- data/app/assets/javascripts/pageflow/page_types/audio.js +18 -6
- data/app/assets/javascripts/pageflow/page_types/audio_loop.js +19 -7
- data/app/assets/javascripts/pageflow/page_types/background_video.js +41 -33
- data/app/assets/javascripts/pageflow/page_types/mixins/video_helpers.js +7 -16
- data/app/assets/javascripts/pageflow/ready.js +12 -25
- data/app/assets/javascripts/pageflow/slideshow.js +5 -5
- data/app/assets/javascripts/pageflow/slideshow/hide_text_on_swipe.js +1 -1
- data/app/assets/javascripts/pageflow/slideshow/page_widget.js +11 -1
- data/app/assets/javascripts/pageflow/slideshow/scroll_indicator_widget.js +19 -2
- data/app/assets/javascripts/pageflow/slideshow/scroller_widget.js +31 -6
- data/app/assets/javascripts/pageflow/slideshow/swipe_gesture.js +6 -5
- data/app/assets/javascripts/pageflow/ui.js +16 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/object.js +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/renderer.js +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/check_box.jst.ejs +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/file_input.jst.ejs +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/page_reference.jst.ejs +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/select_input.jst.ejs +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/slider_input.jst.ejs +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/text_area_input.jst.ejs +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/text_input.jst.ejs +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/url_input.jst.ejs +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/templates/tabs_view.jst.ejs +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/views/collection_view.js +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/views/configuration_editor_tab_view.js +8 -1
- data/app/assets/javascripts/pageflow/{editor → ui}/views/configuration_editor_view.js +3 -1
- data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/check_box_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/file_input_view.js +10 -8
- data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/page_reference_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/proxy_url_input_view.js +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/select_input_view.js +41 -1
- data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/slider_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/text_area_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/text_input_view.js +8 -2
- data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/url_input_view.js +9 -3
- data/app/assets/javascripts/pageflow/{editor/views → ui/views/mixins}/input_view.js +5 -1
- data/app/assets/javascripts/pageflow/{editor → ui}/views/mixins/subview_container.js +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/views/sortable_collection_view.js +0 -0
- data/app/assets/javascripts/pageflow/{editor → ui}/views/tabs_view.js +11 -2
- data/app/assets/javascripts/pageflow/video_player/lazy.js +4 -1
- data/app/assets/javascripts/pageflow/visited.js +56 -0
- data/app/assets/javascripts/pageflow/widget_types.js +27 -0
- data/app/assets/javascripts/pageflow/widgets/events.js +33 -0
- data/app/assets/javascripts/pageflow/widgets/navigation.js +42 -33
- data/app/assets/javascripts/pageflow/widgets/navigation_mobile.js +60 -38
- data/app/assets/javascripts/pageflow/widgets/overview.js +3 -3
- data/app/assets/javascripts/pageflow/widgets/page_navigation_list.js +34 -4
- data/app/assets/javascripts/pageflow/widgets/share_menu.js +60 -0
- data/app/assets/stylesheets/pageflow/admin.css.scss +1 -0
- data/app/assets/stylesheets/pageflow/admin/tabs_view.css.scss +50 -0
- data/app/assets/stylesheets/pageflow/application_with_simulated_media_queries.css.scss +2 -0
- data/app/assets/stylesheets/pageflow/base.css.scss +2 -1
- data/app/assets/stylesheets/pageflow/editor/{image_positioning.css.scss → background_positioning.css.scss} +66 -65
- data/app/assets/stylesheets/pageflow/editor/base.css.scss +7 -5
- data/app/assets/stylesheets/pageflow/editor/file_thumbnails.css.scss +7 -9
- data/app/assets/stylesheets/pageflow/editor/select_button.css.scss +4 -4
- data/app/assets/stylesheets/pageflow/editor/widgets.css.scss +4 -0
- data/app/assets/stylesheets/pageflow/entries.css.scss +5 -0
- data/app/assets/stylesheets/pageflow/mixins/breakpoints.css.scss +75 -10
- data/app/assets/stylesheets/pageflow/multimedia_alert.css.scss +31 -30
- data/app/assets/stylesheets/pageflow/navigation_bar.css.scss +4 -0
- data/app/assets/stylesheets/pageflow/navigation_mobile.css.scss +57 -58
- data/app/assets/stylesheets/pageflow/player_controls.css.scss +2 -2
- data/app/assets/stylesheets/pageflow/slideshow.css.scss +4 -1
- data/app/assets/stylesheets/pageflow/subshare.css.scss +28 -0
- data/app/assets/stylesheets/pageflow/ui.css.scss +7 -0
- data/app/assets/stylesheets/pageflow/{editor → ui}/forms.css.scss +1 -0
- data/app/assets/stylesheets/pageflow/{editor → ui}/tabs_view.css.scss +1 -0
- data/app/controllers/pageflow/editor/widgets_controller.rb +39 -0
- data/app/controllers/pageflow/entries_controller.rb +10 -1
- data/app/helpers/pageflow/entries_helper.rb +7 -0
- data/app/helpers/pageflow/page_types_helper.rb +7 -7
- data/app/helpers/pageflow/pages_helper.rb +36 -5
- data/app/helpers/pageflow/social_share_helper.rb +54 -0
- data/app/helpers/pageflow/widgets_helper.rb +43 -0
- data/app/models/pageflow/draft_entry.rb +4 -1
- data/app/models/pageflow/entry.rb +1 -0
- data/app/models/pageflow/published_entry.rb +6 -3
- data/app/models/pageflow/revision.rb +5 -0
- data/app/models/pageflow/theming.rb +3 -0
- data/app/models/pageflow/widget.rb +74 -0
- data/app/views/admin/accounts/_form.html.erb +10 -0
- data/app/views/components/pageflow/admin/entries_tab.rb +22 -0
- data/app/views/components/pageflow/admin/members_tab.rb +35 -0
- data/app/views/components/pageflow/admin/revisions_tab.rb +51 -0
- data/app/views/components/pageflow/admin/tabs_view.rb +78 -0
- data/app/views/components/pageflow/admin/users_tab.rb +22 -0
- data/app/views/layouts/pageflow/application.html.erb +5 -5
- data/app/views/pageflow/editor/entries/_entry.json.jbuilder +7 -4
- data/app/views/pageflow/editor/files/_file.json.jbuilder +2 -2
- data/app/views/pageflow/editor/widgets/_widget.json.jbuilder +2 -0
- data/app/views/pageflow/editor/widgets/index.json.jbuilder +1 -0
- data/app/views/pageflow/entries/_entry.html.erb +6 -2
- data/app/views/pageflow/entries/_mobile_navigation.html.erb +56 -0
- data/app/views/pageflow/entries/_navigation.html.erb +3 -53
- data/app/views/pageflow/entries/edit.html.erb +2 -0
- data/app/views/pageflow/entries/navigation/_bar_top.html.erb +7 -3
- data/app/views/pageflow/entries/navigation/_page.html.erb +2 -2
- data/app/views/pageflow/entries/partials.html.erb +1 -1
- data/app/views/pageflow/entries/show.html.erb +12 -4
- data/app/views/pageflow/files/show.html.erb +5 -0
- data/app/views/pageflow/pages/templates/_audio_loop.html.erb +1 -1
- data/app/views/pageflow/pages/templates/_background_video.html.erb +2 -2
- data/app/views/pageflow/pages/templates/_video.html.erb +4 -3
- data/app/views/pageflow/{entries/_social_meta_tags.html.erb → social_share/_entry_meta_tags.html.erb} +2 -2
- data/app/views/pageflow/social_share/_image_tags.html.erb +3 -0
- data/app/views/pageflow/social_share/_page_meta_tags.html.erb +9 -0
- data/config/initializers/admin_resource_tabs.rb +7 -0
- data/config/initializers/paperclip.rb +1 -1
- data/config/initializers/view_components.rb +9 -1
- data/config/initializers/widget_types.rb +4 -0
- data/config/locales/activerecord.de.yml +5 -1
- data/config/locales/admin/tabs.de.yml +8 -0
- data/config/locales/editor.de.yml +5 -4
- data/config/locales/pageflow/editor/background_positioning.de.yml +13 -0
- data/config/locales/pageflow/ui.de.yml +6 -0
- data/config/locales/pageflow/widgets.de.yml +14 -0
- data/config/routes.rb +6 -0
- data/config/spring.rb +2 -1
- data/db/migrate/20141027102310_create_widgets.rb +11 -0
- data/db/migrate/20141028125408_add_emphasize_chapter_beginning_to_revisions.rb +5 -0
- data/db/migrate/20141119164526_add_emphasize_new_pages_to_revisions.rb +5 -0
- data/db/migrate/20141119174032_add_sharing_image_to_revisions.rb +7 -0
- data/lib/pageflow/ability_mixin.rb +2 -0
- data/lib/pageflow/admin/tabs.rb +18 -0
- data/lib/pageflow/built_in_widget_type.rb +27 -0
- data/lib/pageflow/configuration.rb +17 -0
- data/lib/pageflow/engine.rb +2 -0
- data/lib/pageflow/version.rb +1 -1
- data/lib/pageflow/widget_type.rb +52 -0
- data/lib/pageflow/widget_types.rb +50 -0
- data/spec/factories/audio_files.rb +1 -1
- data/spec/factories/chapters.rb +1 -1
- data/spec/factories/entries.rb +2 -2
- data/spec/factories/image_files.rb +1 -1
- data/spec/factories/video_files.rb +1 -1
- data/spec/factories/widgets.rb +6 -0
- data/vendor/assets/javascripts/audio5.min.js +3 -0
- metadata +104 -44
- data/app/assets/javascripts/pageflow/editor/templates/image_positioning.jst.ejs +0 -26
- data/app/assets/javascripts/pageflow/editor/views/image_positioning_view.js +0 -153
- data/app/views/admin/accounts/_entries_panel.html.arb +0 -15
- data/app/views/admin/accounts/_users_panel.html.arb +0 -15
- data/app/views/admin/entries/_members.html.arb +0 -29
- data/app/views/admin/entries/_revisions.html.arb +0 -45
@@ -1,7 +1,7 @@
|
|
1
1
|
pageflow.pageType.register('background_video', _.extend({
|
2
2
|
|
3
3
|
enhance: function(pageElement, configuration) {
|
4
|
-
this._initVideoPlayer(pageElement);
|
4
|
+
this._initVideoPlayer(pageElement, configuration);
|
5
5
|
},
|
6
6
|
|
7
7
|
prepare: function(pageElement, configuration) {
|
@@ -19,6 +19,7 @@ pageflow.pageType.register('background_video', _.extend({
|
|
19
19
|
var that = this;
|
20
20
|
|
21
21
|
this.videoPlayer.ensureCreated();
|
22
|
+
this._resizeToCover(pageElement, configuration);
|
22
23
|
|
23
24
|
if (!pageflow.features.has('mobile platform')) {
|
24
25
|
this.prebufferingPromise = this.videoPlayer.prebuffer().then(function() {
|
@@ -56,6 +57,10 @@ pageflow.pageType.register('background_video', _.extend({
|
|
56
57
|
this.videoPlayer.scheduleDispose();
|
57
58
|
},
|
58
59
|
|
60
|
+
resize: function(pageElement, configuration) {
|
61
|
+
this._resizeToCover(pageElement, configuration);
|
62
|
+
},
|
63
|
+
|
59
64
|
update: function(pageElement, configuration) {
|
60
65
|
pageElement.find('h2 .tagline').text(configuration.get('tagline') || '');
|
61
66
|
pageElement.find('h2 .title').text(configuration.get('title') || '');
|
@@ -65,7 +70,11 @@ pageflow.pageType.register('background_video', _.extend({
|
|
65
70
|
this.updateCommonPageCssClasses(pageElement, configuration);
|
66
71
|
pageElement.find('.shadow').css({opacity: configuration.get('gradient_opacity') / 100});
|
67
72
|
|
68
|
-
var videoPlayer = this.videoPlayer
|
73
|
+
var videoPlayer = this.videoPlayer,
|
74
|
+
x = configuration.getFilePosition('video_file_id', 'x'),
|
75
|
+
y = configuration.getFilePosition('video_file_id', 'y'),
|
76
|
+
posterUrl = configuration.getVideoPosterUrl();
|
77
|
+
|
69
78
|
videoPlayer.ensureCreated();
|
70
79
|
|
71
80
|
if (!this.srcDefined) {
|
@@ -79,19 +88,17 @@ pageflow.pageType.register('background_video', _.extend({
|
|
79
88
|
this.videoPlayer.src(configuration.getVideoFileSources('video_file_id'));
|
80
89
|
}
|
81
90
|
|
82
|
-
|
83
|
-
|
84
|
-
});
|
85
|
-
|
86
|
-
this.updateVideoPoster(pageElement, configuration.getVideoPosterUrl());
|
91
|
+
this.updateBackgroundVideoPosters(pageElement, posterUrl, x, y);
|
92
|
+
this._resizeToCover(pageElement, configuration.attributes);
|
87
93
|
},
|
88
94
|
|
89
|
-
_initVideoPlayer: function(pageElement) {
|
95
|
+
_initVideoPlayer: function(pageElement, configuration) {
|
96
|
+
var that = this;
|
90
97
|
var template = pageElement.find('[data-template=video]');
|
91
98
|
|
92
|
-
|
93
|
-
|
94
|
-
|
99
|
+
this.min_w = 300; // minimum video width allowed
|
100
|
+
this.vid_w_orig = template.attr("data-video-width") || 1280;
|
101
|
+
this.vid_h_orig = template.attr("data-video-height") || 720;
|
95
102
|
|
96
103
|
this.videoPlayer = new pageflow.VideoPlayer.Lazy(template, {
|
97
104
|
width: '100%',
|
@@ -99,30 +106,31 @@ pageflow.pageType.register('background_video', _.extend({
|
|
99
106
|
});
|
100
107
|
|
101
108
|
this.videoPlayer.ready(function() {
|
102
|
-
|
103
|
-
resizeToCover();
|
109
|
+
that._resizeToCover(pageElement, configuration);
|
104
110
|
});
|
111
|
+
},
|
105
112
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
// now scale the video
|
120
|
-
video.width(scale * vid_w_orig).height(scale * vid_h_orig);
|
121
|
-
// and center it
|
122
|
-
video.css({
|
123
|
-
"left": "-" + ((video.width() - jQuery(window).width()) / 2) + "px",
|
124
|
-
"top": "-" + ((video.height() - jQuery(window).height()) / 2) + "px"
|
125
|
-
});
|
113
|
+
_resizeToCover: function(pageElement, configuration) {
|
114
|
+
var x = configuration.hasOwnProperty('video_file_x') ? configuration.video_file_x : 50;
|
115
|
+
var y = configuration.hasOwnProperty('video_file_y') ? configuration.video_file_y : 50;
|
116
|
+
var video = pageElement.find('video');
|
117
|
+
|
118
|
+
// use largest scale factor of horizontal/vertical
|
119
|
+
var scale_h = jQuery(window).width() / this.vid_w_orig;
|
120
|
+
var scale_v = jQuery(window).height() / this.vid_h_orig;
|
121
|
+
var scale = scale_h > scale_v ? scale_h : scale_v;
|
122
|
+
|
123
|
+
// don't allow scaled width < minimum video width
|
124
|
+
if (scale * this.vid_w_orig < this.min_w) {
|
125
|
+
scale = this.min_w / this.vid_w_orig;
|
126
126
|
}
|
127
|
+
|
128
|
+
// now scale the video
|
129
|
+
video.width(scale * this.vid_w_orig).height(scale * this.vid_h_orig);
|
130
|
+
|
131
|
+
video.css({
|
132
|
+
"left": "-" + ((video.width() - jQuery(pageElement).width()) * x / 100) + "px",
|
133
|
+
"top": "-" + ((video.height() - jQuery(pageElement).height()) * y / 100) + "px"
|
134
|
+
});
|
127
135
|
}
|
128
136
|
}, pageflow.volumeFade, pageflow.videoHelpers, pageflow.commonPageCssClasses));
|
@@ -1,21 +1,12 @@
|
|
1
1
|
pageflow.videoHelpers = {
|
2
|
-
updateVideoTagForHighBandwidth: function(video) {
|
3
|
-
if (pageflow.features.has('high bandwidth') && !pageflow.features.has('mobile platform')) {
|
4
|
-
video.attr('poster', video.attr('data-large-poster'));
|
5
|
-
|
6
|
-
if (pageflow.features.has('rewrite video sources support')) {
|
7
|
-
video.find('source').each(function() {
|
8
|
-
var source = $(this);
|
9
|
-
source.attr('src', source.attr('data-high-src'));
|
10
|
-
});
|
11
|
-
}
|
12
|
-
}
|
13
|
-
else {
|
14
|
-
video.attr('poster', video.attr('data-poster'));
|
15
|
-
}
|
16
|
-
},
|
17
|
-
|
18
2
|
updateVideoPoster: function(pageElement, imageUrl) {
|
19
3
|
pageElement.find('.vjs-poster').css('background-image', 'url(' + imageUrl + ')');
|
4
|
+
},
|
5
|
+
|
6
|
+
updateBackgroundVideoPosters: function(pageElement, imageUrl, x, y) {
|
7
|
+
pageElement.find('.vjs-poster, .background-image').css({
|
8
|
+
'background-image': 'url(' + imageUrl + ');',
|
9
|
+
'background-position': x + '% ' + y + '%;'
|
10
|
+
});
|
20
11
|
}
|
21
12
|
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
pageflow.ready = new $.Deferred(function(readyDeferred) {
|
2
|
-
|
2
|
+
window.onload = function() {
|
3
3
|
pageflow.features.detect().then(function() {
|
4
4
|
$('body').one('pagepreloaded', function() {
|
5
5
|
readyDeferred.resolve();
|
@@ -12,16 +12,18 @@ pageflow.ready = new $.Deferred(function(readyDeferred) {
|
|
12
12
|
}, {});
|
13
13
|
|
14
14
|
pageflow.slides = new pageflow.Slideshow($(this), configurationsById);
|
15
|
-
pageflow.history = new pageflow.History(pageflow.slides);
|
16
|
-
});
|
17
15
|
|
18
|
-
|
19
|
-
|
16
|
+
$('.header').header({
|
17
|
+
slideshow: pageflow.slides
|
18
|
+
});
|
19
|
+
$('.overview').overview();
|
20
|
+
$('.multimedia_alert').multimediaAlert();
|
21
|
+
|
22
|
+
pageflow.widgetTypes.enhance($('body'));
|
23
|
+
|
24
|
+
pageflow.slides.update();
|
25
|
+
pageflow.history = new pageflow.History(pageflow.slides);
|
20
26
|
});
|
21
|
-
$('.navigation').navigation();
|
22
|
-
$('.navigation_mobile').navigationMobile();
|
23
|
-
$('.overview').overview();
|
24
|
-
$('.multimedia_alert').multimediaAlert();
|
25
27
|
|
26
28
|
$("body").on('click mousedown', 'a, [tabindex]', function() {
|
27
29
|
$(this).blur();
|
@@ -44,20 +46,5 @@ pageflow.ready = new $.Deferred(function(readyDeferred) {
|
|
44
46
|
return false; }
|
45
47
|
);
|
46
48
|
});
|
47
|
-
}
|
48
|
-
|
49
|
-
function onLoadWithTimeout(callback) {
|
50
|
-
var invoked = false;
|
51
|
-
var invokeOnce = function() {
|
52
|
-
clearTimeout(timeout);
|
53
|
-
|
54
|
-
if (!invoked) {
|
55
|
-
callback();
|
56
|
-
invoked = true;
|
57
|
-
}
|
58
|
-
};
|
59
|
-
|
60
|
-
var timeout = setTimeout(invokeOnce, 10000);
|
61
|
-
window.onload = invokeOnce;
|
62
|
-
}
|
49
|
+
};
|
63
50
|
}).promise();
|
@@ -42,7 +42,7 @@ pageflow.Slideshow = function($el, configurations) {
|
|
42
42
|
};
|
43
43
|
|
44
44
|
this.back = function() {
|
45
|
-
this.goTo(currentPage.prev('.page'));
|
45
|
+
this.goTo(currentPage.prev('.page'), {position: 'bottom'});
|
46
46
|
};
|
47
47
|
|
48
48
|
this.next = function() {
|
@@ -59,7 +59,9 @@ pageflow.Slideshow = function($el, configurations) {
|
|
59
59
|
}
|
60
60
|
};
|
61
61
|
|
62
|
-
this.goTo = function(page) {
|
62
|
+
this.goTo = function(page, options) {
|
63
|
+
options = options || {};
|
64
|
+
|
63
65
|
if (page.length && !page.is(currentPage)) {
|
64
66
|
transitionMutex(function() {
|
65
67
|
var previousPage = currentPage;
|
@@ -69,7 +71,7 @@ pageflow.Slideshow = function($el, configurations) {
|
|
69
71
|
var direction = currentPageIndex > previousPage.index() ? 'forwards' : 'backwards';
|
70
72
|
|
71
73
|
previousPage.page('deactivate', {direction: direction});
|
72
|
-
currentPage.page('activate', {direction: direction});
|
74
|
+
currentPage.page('activate', {direction: direction, position: options.position});
|
73
75
|
|
74
76
|
preload.start(currentPage);
|
75
77
|
$el.trigger('slideshowchangepage');
|
@@ -158,6 +160,4 @@ pageflow.Slideshow = function($el, configurations) {
|
|
158
160
|
scrollIndicator.on('click', _.bind(function(event) {
|
159
161
|
this.next();
|
160
162
|
}, this));
|
161
|
-
|
162
|
-
this.update();
|
163
163
|
};
|
@@ -9,7 +9,7 @@
|
|
9
9
|
pageflow.hideText.activate();
|
10
10
|
});
|
11
11
|
|
12
|
-
this.element.on('touchstart MSPointerDown mousedown', function() {
|
12
|
+
this.element.on('touchstart MSPointerDown pointerdown mousedown', function() {
|
13
13
|
if (pageflow.hideText.isActive()) {
|
14
14
|
pageflow.hideText.deactivate();
|
15
15
|
}
|
@@ -24,6 +24,7 @@
|
|
24
24
|
reactivate: function() {
|
25
25
|
if (this.element.hasClass('active')) {
|
26
26
|
this.content.scroller('enable');
|
27
|
+
this.content.scroller('resetPosition');
|
27
28
|
this.content.scroller('afterAnimationHook');
|
28
29
|
|
29
30
|
this._triggerPageTypeHook('activating');
|
@@ -31,6 +32,11 @@
|
|
31
32
|
}
|
32
33
|
},
|
33
34
|
|
35
|
+
cleanup: function() {
|
36
|
+
this._triggerPageTypeHook('deactivating');
|
37
|
+
this._triggerDelayedPageTypeHook('deactivated');
|
38
|
+
},
|
39
|
+
|
34
40
|
refreshScroller: function() {
|
35
41
|
this.content.scroller('refresh');
|
36
42
|
},
|
@@ -43,6 +49,7 @@
|
|
43
49
|
this.element.addClass('active');
|
44
50
|
|
45
51
|
this.content.scroller('enable');
|
52
|
+
this.content.scroller('resetPosition');
|
46
53
|
this.content.scroller('afterAnimationHook');
|
47
54
|
|
48
55
|
this._trigger('activate', null, {page: this});
|
@@ -73,6 +80,8 @@
|
|
73
80
|
},
|
74
81
|
|
75
82
|
activate: function(options) {
|
83
|
+
options = options || {};
|
84
|
+
|
76
85
|
this.element
|
77
86
|
.removeClass('animate-out-forwards animate-out-backwards')
|
78
87
|
.addClass('animate-in-' + options.direction);
|
@@ -82,13 +91,14 @@
|
|
82
91
|
}, this), 5);
|
83
92
|
|
84
93
|
setTimeout(_.bind(function() {
|
94
|
+
this.content.scroller('enable');
|
85
95
|
this.content.scroller('afterAnimationHook');
|
86
96
|
this.element.removeClass('animate-in-forwards animate-in-backwards');
|
87
97
|
|
88
98
|
this._triggerDelayedPageTypeHook('activated');
|
89
99
|
}, this), 1100);
|
90
100
|
|
91
|
-
this.content.scroller('
|
101
|
+
this.content.scroller('resetPosition', {position: options.position});
|
92
102
|
this._trigger('activate', null, {page: this});
|
93
103
|
this._triggerPageTypeHook('activating');
|
94
104
|
|
@@ -2,10 +2,17 @@
|
|
2
2
|
$.widget('pageflow.scrollIndicator', {
|
3
3
|
_create: function() {
|
4
4
|
var parent = this.options.parent,
|
5
|
-
|
5
|
+
that = this;
|
6
6
|
|
7
7
|
parent.on('pageactivate', function(event) {
|
8
|
-
|
8
|
+
var page = $(event.target);
|
9
|
+
var invertIndicator = page.data('invertIndicator');
|
10
|
+
|
11
|
+
if (typeof invertIndicator === 'undefined') {
|
12
|
+
invertIndicator = page.hasClass('invert');
|
13
|
+
}
|
14
|
+
|
15
|
+
that.element.toggleClass('invert', invertIndicator);
|
9
16
|
});
|
10
17
|
|
11
18
|
parent.on('scrollerhintdown', function() {
|
@@ -26,6 +33,16 @@
|
|
26
33
|
parent.on('scrollernotnearbottom slideshowchangepage', function() {
|
27
34
|
that.element.removeClass('visible');
|
28
35
|
});
|
36
|
+
|
37
|
+
$.when(pageflow.ready, pageflow.manualStart).done(function() {
|
38
|
+
setTimeout(function() {
|
39
|
+
that.element.addClass('attract');
|
40
|
+
setTimeout(function() {
|
41
|
+
that.element.removeClass('attract');
|
42
|
+
}, 1500);
|
43
|
+
}, 3000);
|
44
|
+
});
|
45
|
+
|
29
46
|
}
|
30
47
|
});
|
31
48
|
}(jQuery));
|
@@ -34,7 +34,19 @@
|
|
34
34
|
enable: function() {
|
35
35
|
this.iscroll.enable();
|
36
36
|
this.iscroll.refresh();
|
37
|
-
|
37
|
+
},
|
38
|
+
|
39
|
+
resetPosition: function(options) {
|
40
|
+
options = options || {};
|
41
|
+
|
42
|
+
this.iscroll.refresh();
|
43
|
+
|
44
|
+
if (options.position === 'bottom') {
|
45
|
+
this.iscroll.scrollTo(0, this.iscroll.maxScrollY, 0);
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
this.iscroll.scrollTo(0, 0, 0);
|
49
|
+
}
|
38
50
|
},
|
39
51
|
|
40
52
|
refresh: function() {
|
@@ -49,6 +61,18 @@
|
|
49
61
|
this.iscroll.disable();
|
50
62
|
},
|
51
63
|
|
64
|
+
positionY: function() {
|
65
|
+
return this.iscroll.y;
|
66
|
+
},
|
67
|
+
|
68
|
+
onScroll: function(callback) {
|
69
|
+
this.iscroll.on('scroll', callback);
|
70
|
+
},
|
71
|
+
|
72
|
+
onScrollEnd: function(callback) {
|
73
|
+
this.iscroll.on('scrollEnd', callback);
|
74
|
+
},
|
75
|
+
|
52
76
|
_initMoveEvents: function() {
|
53
77
|
this.iscroll.on('mousewheelup', _.bind(this._triggerMoveEvent, this));
|
54
78
|
this.iscroll.on('mousewheeldown', _.bind(this._triggerMoveEvent, this));
|
@@ -151,7 +175,7 @@
|
|
151
175
|
allowDown = false,
|
152
176
|
startX, startY;
|
153
177
|
|
154
|
-
this.element.on('touchstart MSPointerDown', _.bind(function(event) {
|
178
|
+
this.element.on('touchstart MSPointerDown pointerdown', _.bind(function(event) {
|
155
179
|
var point = event.originalEvent.touches ? event.originalEvent.touches[0] : event.originalEvent;
|
156
180
|
startX = point.pageX;
|
157
181
|
startY = point.pageY;
|
@@ -162,7 +186,7 @@
|
|
162
186
|
}
|
163
187
|
}, this));
|
164
188
|
|
165
|
-
this.element.on('touchmove MSPointerMove', _.bind(function(event) {
|
189
|
+
this.element.on('touchmove MSPointerMove pointermove', _.bind(function(event) {
|
166
190
|
var point = event.originalEvent.touches ? event.originalEvent.touches[0] : event.originalEvent;
|
167
191
|
var deltaX = point.pageX - startX;
|
168
192
|
var deltaY = point.pageY - startY;
|
@@ -181,7 +205,7 @@
|
|
181
205
|
}
|
182
206
|
}, this));
|
183
207
|
|
184
|
-
this.element.on('touchend MSPointerUp', _.bind(function(event) {
|
208
|
+
this.element.on('touchend MSPointerUp pointerup', _.bind(function(event) {
|
185
209
|
if (allowUp) {
|
186
210
|
this._trigger('hintup');
|
187
211
|
}
|
@@ -191,8 +215,9 @@
|
|
191
215
|
}, this));
|
192
216
|
|
193
217
|
function isNonTouchPointer(event) {
|
194
|
-
return
|
195
|
-
|
218
|
+
return event.originalEvent.pointerType &&
|
219
|
+
event.originalEvent.pointerType !== event.originalEvent.MSPOINTER_TYPE_TOUCH &&
|
220
|
+
event.originalEvent.pointerType !== 'touch';
|
196
221
|
}
|
197
222
|
},
|
198
223
|
|
@@ -11,7 +11,7 @@
|
|
11
11
|
maxDuration: 500
|
12
12
|
}, this.options);
|
13
13
|
|
14
|
-
this.element.on('touchstart MSPointerDown', _.bind(function(event) {
|
14
|
+
this.element.on('touchstart MSPointerDown pointerdown', _.bind(function(event) {
|
15
15
|
if (isNonTouchPointer(event)) { return; }
|
16
16
|
var point = event.originalEvent.touches ? event.originalEvent.touches[0] : event.originalEvent;
|
17
17
|
|
@@ -24,7 +24,7 @@
|
|
24
24
|
startTime = new Date().getTime();
|
25
25
|
}, this));
|
26
26
|
|
27
|
-
this.element.on('touchmove MSPointerMove', _.bind(function(event) {
|
27
|
+
this.element.on('touchmove MSPointerMove pointermove', _.bind(function(event) {
|
28
28
|
if (isNonTouchPointer(event)) { return; }
|
29
29
|
var point = event.originalEvent.touches ? event.originalEvent.touches[0] : event.originalEvent;
|
30
30
|
|
@@ -32,7 +32,7 @@
|
|
32
32
|
distY = point.pageY - startY;
|
33
33
|
}, this));
|
34
34
|
|
35
|
-
this.element.on('touchend MSPointerUp', _.bind(function(event) {
|
35
|
+
this.element.on('touchend MSPointerUp pointerup', _.bind(function(event) {
|
36
36
|
if (isNonTouchPointer(event)) { return; }
|
37
37
|
var elapsedTime = new Date().getTime() - startTime;
|
38
38
|
|
@@ -53,8 +53,9 @@
|
|
53
53
|
}, this));
|
54
54
|
|
55
55
|
function isNonTouchPointer(event) {
|
56
|
-
return
|
57
|
-
|
56
|
+
return event.originalEvent.pointerType &&
|
57
|
+
event.originalEvent.pointerType !== event.originalEvent.MSPOINTER_TYPE_TOUCH &&
|
58
|
+
event.originalEvent.pointerType !== 'touch';
|
58
59
|
}
|
59
60
|
}
|
60
61
|
});
|