pageflow 0.8.2 → 0.9.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/CHANGELOG.md +810 -0
- data/README.md +179 -0
- data/admins/pageflow/accounts.rb +46 -3
- data/admins/pageflow/entry.rb +35 -7
- data/app/assets/javascripts/pageflow/audio.js +62 -0
- data/app/assets/javascripts/pageflow/audio/multi_player.js +127 -0
- data/app/assets/javascripts/pageflow/audio/player_pool.js +15 -0
- data/app/assets/javascripts/pageflow/audio_player.js +23 -1
- data/app/assets/javascripts/pageflow/audio_player/null.js +37 -0
- data/app/assets/javascripts/pageflow/audio_player/pause_in_background.js +34 -0
- data/app/assets/javascripts/pageflow/audio_player/rewind_method.js +17 -0
- data/app/assets/javascripts/pageflow/audio_player/seek_with_invalid_state_handling.js +41 -0
- data/app/assets/javascripts/pageflow/base.js +10 -0
- data/app/assets/javascripts/pageflow/browser.js +123 -0
- data/app/assets/javascripts/pageflow/{features → browser}/hashchange_support.js +1 -1
- data/app/assets/javascripts/pageflow/{features → browser}/high_bandwidth.js +1 -1
- data/app/assets/javascripts/pageflow/{features → browser}/ie_platform.js +1 -1
- data/app/assets/javascripts/pageflow/browser/ios_platform.js +6 -0
- data/app/assets/javascripts/pageflow/{features → browser}/mobile_platform.js +1 -1
- data/app/assets/javascripts/pageflow/{features → browser}/phone_platform.js +1 -1
- data/app/assets/javascripts/pageflow/browser/pushstate_support.js +3 -0
- data/app/assets/javascripts/pageflow/{features → browser}/touch_support.js +1 -1
- data/app/assets/javascripts/pageflow/browser/video.js +16 -0
- data/app/assets/javascripts/pageflow/browser/volume_control_support.js +3 -0
- data/app/assets/javascripts/pageflow/chapter_filter.js +56 -0
- data/app/assets/javascripts/pageflow/editor/api.js +29 -0
- data/app/assets/javascripts/pageflow/editor/api/page_type.js +42 -0
- data/app/assets/javascripts/pageflow/editor/api/page_types.js +47 -0
- data/app/assets/javascripts/pageflow/editor/base.js +7 -1
- data/app/assets/javascripts/pageflow/editor/collections/subset_collection.js +5 -1
- data/app/assets/javascripts/pageflow/editor/initializers/boot.js +10 -2
- data/app/assets/javascripts/pageflow/editor/initializers/setup_audio.js +8 -0
- data/app/assets/javascripts/pageflow/editor/initializers/setup_collections.js +7 -0
- data/app/assets/javascripts/pageflow/editor/initializers/setup_features.js +3 -0
- data/app/assets/javascripts/pageflow/editor/initializers/setup_hotkeys.js +20 -0
- data/app/assets/javascripts/pageflow/editor/initializers/setup_page_types.js +1 -6
- data/app/assets/javascripts/pageflow/editor/models/audio_file.js +8 -0
- data/app/assets/javascripts/pageflow/editor/models/chapter.js +23 -4
- data/app/assets/javascripts/pageflow/editor/models/chapter_configuration.js +7 -0
- data/app/assets/javascripts/pageflow/editor/models/configuration.js +5 -3
- data/app/assets/javascripts/pageflow/editor/models/entry.js +6 -4
- data/app/assets/javascripts/pageflow/editor/models/mixins/delayed_destroying.js +1 -1
- data/app/assets/javascripts/pageflow/editor/models/mixins/stage_provider.js +3 -2
- data/app/assets/javascripts/pageflow/editor/models/page.js +11 -4
- data/app/assets/javascripts/pageflow/editor/models/preview_entry_data.js +31 -0
- data/app/assets/javascripts/pageflow/editor/models/theming.js +8 -0
- data/app/assets/javascripts/pageflow/editor/models/uploaded_file.js +8 -0
- data/app/assets/javascripts/pageflow/editor/templates/drop_down_button.jst.ejs +6 -0
- data/app/assets/javascripts/pageflow/editor/templates/drop_down_button_item.jst.ejs +1 -0
- data/app/assets/javascripts/pageflow/editor/templates/files_explorer.jst.ejs +2 -2
- data/app/assets/javascripts/pageflow/editor/templates/inputs/reference.jst.ejs +7 -0
- data/app/assets/javascripts/pageflow/editor/templates/list.jst.ejs +5 -0
- data/app/assets/javascripts/pageflow/editor/templates/list_blank_slate.jst.ejs +1 -0
- data/app/assets/javascripts/pageflow/editor/templates/list_item.jst.ejs +11 -0
- data/app/assets/javascripts/pageflow/editor/templates/loading.jst.ejs +7 -1
- data/app/assets/javascripts/pageflow/editor/templates/other_entries_blank_slate.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/page_link_item.jst.ejs +7 -0
- data/app/assets/javascripts/pageflow/editor/templates/page_links.jst.ejs +6 -0
- data/app/assets/javascripts/pageflow/editor/templates/page_selection.jst.ejs +12 -0
- data/app/assets/javascripts/pageflow/editor/templates/publish_entry.jst.ejs +44 -8
- data/app/assets/javascripts/pageflow/editor/views/chapter_item_view.js +3 -1
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/options.js +34 -2
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/page_transitions.js +6 -0
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +6 -1
- data/app/assets/javascripts/pageflow/editor/views/disabled_atmo_indicator_view.js +27 -0
- data/app/assets/javascripts/pageflow/editor/views/drop_down_button_item_view.js +33 -0
- data/app/assets/javascripts/pageflow/editor/views/drop_down_button_view.js +80 -0
- data/app/assets/javascripts/pageflow/editor/views/edit_chapter_view.js +25 -5
- data/app/assets/javascripts/pageflow/editor/views/edit_entry_view.js +9 -1
- data/app/assets/javascripts/pageflow/editor/views/edit_page_view.js +7 -5
- data/app/assets/javascripts/pageflow/editor/views/edit_widget_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/embedded/background_image_embedded_view.js +4 -1
- data/app/assets/javascripts/pageflow/editor/views/embedded/lazy_video_embedded_view.js +41 -0
- data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +6 -6
- data/app/assets/javascripts/pageflow/editor/views/inputs/page_link_input_view.js +9 -0
- data/app/assets/javascripts/pageflow/editor/views/inputs/reference_input_view.js +66 -0
- data/app/assets/javascripts/pageflow/editor/views/list_item_view.js +95 -0
- data/app/assets/javascripts/pageflow/editor/views/list_view.js +59 -0
- data/app/assets/javascripts/pageflow/editor/views/loading_view.js +5 -0
- data/app/assets/javascripts/pageflow/editor/views/model_thumbnail_view.js +37 -0
- data/app/assets/javascripts/pageflow/editor/views/navigatable_page_item_view.js +1 -0
- data/app/assets/javascripts/pageflow/editor/views/other_entries_collection_view.js +4 -4
- data/app/assets/javascripts/pageflow/editor/views/other_entry_item_view.js +2 -1
- data/app/assets/javascripts/pageflow/editor/views/page_item_view.js +2 -2
- data/app/assets/javascripts/pageflow/editor/views/page_link_item_view.js +51 -0
- data/app/assets/javascripts/pageflow/editor/views/page_links_view.js +45 -0
- data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +24 -16
- data/app/assets/javascripts/pageflow/editor/views/page_selection_view.js +46 -0
- data/app/assets/javascripts/pageflow/editor/views/page_thumbnail_view.js +2 -29
- data/app/assets/javascripts/pageflow/editor/views/publish_entry_view.js +95 -10
- data/app/assets/javascripts/pageflow/editor/views/scrolling_view.js +24 -0
- data/app/assets/javascripts/pageflow/entry_data.js +35 -0
- data/app/assets/javascripts/pageflow/features.js +68 -98
- data/app/assets/javascripts/pageflow/fullscreen.js +24 -0
- data/app/assets/javascripts/pageflow/highlighted_page.js +48 -0
- data/app/assets/javascripts/pageflow/history.js +50 -18
- data/app/assets/javascripts/pageflow/history/hash_adapter.js +36 -0
- data/app/assets/javascripts/pageflow/history/push_state_adapter.js +37 -0
- data/app/assets/javascripts/pageflow/history/simulated_adapter.js +44 -0
- data/app/assets/javascripts/pageflow/media_player.js +25 -0
- data/app/assets/javascripts/pageflow/media_player/async_play.js +54 -0
- data/app/assets/javascripts/pageflow/media_player/hooks.js +24 -0
- data/app/assets/javascripts/pageflow/media_player/load_waiting.js +11 -0
- data/app/assets/javascripts/pageflow/media_player/volume_binding.js +72 -0
- data/app/assets/javascripts/pageflow/media_player/volume_fading.js +62 -0
- data/app/assets/javascripts/pageflow/multimedia_alert.js +13 -0
- data/app/assets/javascripts/pageflow/object.js +14 -0
- data/app/assets/javascripts/pageflow/page_transitions.js +27 -0
- data/app/assets/javascripts/pageflow/page_type.js +6 -0
- data/app/assets/javascripts/pageflow/page_types/audio.js +17 -21
- data/app/assets/javascripts/pageflow/page_types/background_video.js +18 -17
- data/app/assets/javascripts/pageflow/page_types/mixins/common_page_css_classes.js +29 -4
- data/app/assets/javascripts/pageflow/page_types/video.js +73 -36
- data/app/assets/javascripts/pageflow/preload.js +9 -6
- data/app/assets/javascripts/pageflow/ready.js +18 -14
- data/app/assets/javascripts/pageflow/seed_entry_data.js +43 -0
- data/app/assets/javascripts/pageflow/settings.js +17 -4
- data/app/assets/javascripts/pageflow/slideshow.js +103 -23
- data/app/assets/javascripts/pageflow/slideshow/adjacent_pages.js +26 -0
- data/app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js +44 -0
- data/app/assets/javascripts/pageflow/slideshow/atmo.js +105 -0
- data/app/assets/javascripts/pageflow/slideshow/dom_order_scroll_navigator.js +29 -0
- data/app/assets/javascripts/pageflow/slideshow/lazy_page_widget.js +49 -0
- data/app/assets/javascripts/pageflow/slideshow/page_widget.js +60 -26
- data/app/assets/javascripts/pageflow/slideshow/progressive_preload.js +16 -7
- data/app/assets/javascripts/pageflow/slideshow/scroll_indicator_widget.js +45 -7
- data/app/assets/javascripts/pageflow/slideshow/scroller_widget.js +42 -5
- data/app/assets/javascripts/pageflow/ui.js +1 -0
- data/app/assets/javascripts/pageflow/ui/object.js +4 -13
- data/app/assets/javascripts/pageflow/ui/utils/i18n_utils.js +23 -0
- data/app/assets/javascripts/pageflow/ui/views/collection_view.js +8 -4
- data/app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js +6 -5
- data/app/assets/javascripts/pageflow/ui/views/configuration_editor_view.js +2 -11
- data/app/assets/javascripts/pageflow/ui/views/inputs/select_input_view.js +6 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/text_input_view.js +4 -0
- data/app/assets/javascripts/pageflow/ui/views/mixins/input_view.js +149 -6
- data/app/assets/javascripts/pageflow/ui/views/mixins/subview_container.js +4 -0
- data/app/assets/javascripts/pageflow/video_player.js +5 -0
- data/app/assets/javascripts/pageflow/video_player/buffer_underrun_waiting.js +1 -1
- data/app/assets/javascripts/pageflow/video_player/lazy.js +8 -4
- data/app/assets/javascripts/pageflow/video_player/media_events.js +1 -1
- data/app/assets/javascripts/pageflow/video_player/play_button_patch.js +1 -1
- data/app/assets/javascripts/pageflow/video_player/prebuffering.js +1 -1
- data/app/assets/javascripts/pageflow/widgets/fullscreen_button.js +26 -0
- data/app/assets/javascripts/pageflow/widgets/multimedia_alert.js +21 -5
- data/app/assets/javascripts/pageflow/widgets/mute_button.js +42 -0
- data/app/assets/javascripts/pageflow/widgets/navigation.js +5 -78
- data/app/assets/javascripts/pageflow/widgets/navigation_mobile.js +4 -0
- data/app/assets/javascripts/pageflow/widgets/page_navigation_list.js +28 -34
- data/app/assets/javascripts/pageflow/widgets/parent_page_button.js +27 -0
- data/app/assets/javascripts/pageflow/widgets/skip_page_button.js +22 -0
- data/app/assets/javascripts/pageflow/widgets/top_button.js +6 -7
- data/app/assets/javascripts/pageflow/widgets/volume_slider.js +62 -0
- data/app/assets/stylesheets/pageflow/admin/entries.css.scss +10 -0
- data/app/assets/stylesheets/pageflow/animations.css.scss +1 -0
- data/app/assets/stylesheets/pageflow/animations/loading.css.scss +8 -0
- data/app/assets/stylesheets/pageflow/animations/scroll.css.scss +18 -0
- data/app/assets/stylesheets/pageflow/base.css.scss +3 -1
- data/app/assets/stylesheets/pageflow/delayed_text_fade_in.css.scss +49 -0
- data/app/assets/stylesheets/pageflow/editor/base.css.scss +15 -2
- data/app/assets/stylesheets/pageflow/editor/disabled_atmo_indicator.css.scss +13 -0
- data/app/assets/stylesheets/pageflow/editor/drop_down_button.css.scss +54 -0
- data/app/assets/stylesheets/pageflow/editor/files_explorer.css.scss +6 -0
- data/app/assets/stylesheets/pageflow/editor/indicators.css.scss +5 -0
- data/app/assets/stylesheets/pageflow/editor/inputs.css.scss +1 -0
- data/app/assets/stylesheets/pageflow/editor/inputs/reference.css.scss +51 -0
- data/app/assets/stylesheets/pageflow/editor/list.css.scss +108 -0
- data/app/assets/stylesheets/pageflow/editor/loading.css.scss +31 -0
- data/app/assets/stylesheets/pageflow/editor/outline.css.scss +7 -5
- data/app/assets/stylesheets/pageflow/editor/page_links.css.scss +58 -0
- data/app/assets/stylesheets/pageflow/editor/page_selection.css.scss +39 -0
- data/app/assets/stylesheets/pageflow/editor/publish_entry.css.scss +38 -1
- data/app/assets/stylesheets/pageflow/entries.css.scss +17 -9
- data/app/assets/stylesheets/pageflow/navigation_bar.css.scss +4 -0
- data/app/assets/stylesheets/pageflow/page_transitions.css.scss +10 -0
- data/app/assets/stylesheets/pageflow/page_transitions/crossfade.css.scss +29 -0
- data/app/assets/stylesheets/pageflow/page_transitions/cut.css.scss +23 -0
- data/app/assets/stylesheets/pageflow/page_transitions/fade.css.scss +78 -0
- data/app/assets/stylesheets/pageflow/page_transitions/fade_to_black.css.scss +107 -0
- data/app/assets/stylesheets/pageflow/page_transitions/scroll.css.scss +20 -0
- data/app/assets/stylesheets/pageflow/page_transitions/scroll_in.css.scss +66 -0
- data/app/assets/stylesheets/pageflow/page_transitions/scroll_in_right.css.scss +68 -0
- data/app/assets/stylesheets/pageflow/page_transitions/scroll_left.css.scss +20 -0
- data/app/assets/stylesheets/pageflow/page_transitions/scroll_right.css.scss +20 -0
- data/app/assets/stylesheets/pageflow/page_types.css.scss +1 -3
- data/app/assets/stylesheets/pageflow/page_types/video.css.scss +0 -4
- data/app/assets/stylesheets/pageflow/slideshow.css.scss +0 -145
- data/app/assets/stylesheets/pageflow/text_variants.css.scss +0 -4
- data/app/assets/stylesheets/pageflow/themes/default/navigation.css.scss +0 -3
- data/app/controllers/concerns/pageflow/public_https_mode.rb +13 -0
- data/app/controllers/pageflow/application_controller.rb +0 -6
- data/app/controllers/pageflow/chapters_controller.rb +2 -1
- data/app/controllers/pageflow/editor/entries_controller.rb +2 -0
- data/app/controllers/pageflow/editor/entry_publications_controller.rb +3 -1
- data/app/controllers/pageflow/entries_controller.rb +16 -3
- data/app/controllers/pageflow/files_controller.rb +3 -1
- data/app/helpers/pageflow/admin/features_helper.rb +25 -0
- data/app/helpers/pageflow/background_image_helper.rb +40 -9
- data/app/helpers/pageflow/entries_helper.rb +10 -11
- data/app/helpers/pageflow/entry_json_seed_helper.rb +44 -0
- data/app/helpers/pageflow/help_entries_helper.rb +4 -4
- data/app/helpers/pageflow/page_types_helper.rb +4 -2
- data/app/helpers/pageflow/pages_helper.rb +20 -27
- data/app/helpers/pageflow/widgets_helper.rb +4 -4
- data/app/models/concerns/pageflow/feature_target.rb +37 -0
- data/app/models/pageflow/account.rb +2 -0
- data/app/models/pageflow/chapter.rb +6 -0
- data/app/models/pageflow/draft_entry.rb +2 -0
- data/app/models/pageflow/entry.rb +47 -9
- data/app/models/pageflow/entry_duplicate.rb +51 -0
- data/app/models/pageflow/image_file.rb +33 -13
- data/app/models/pageflow/page.rb +2 -2
- data/app/models/pageflow/published_entry.rb +7 -1
- data/app/views/admin/accounts/_form.html.erb +11 -1
- data/app/views/admin/features/_form.html.erb +16 -0
- data/app/views/components/pageflow/admin/features_tab.rb +10 -0
- data/app/views/components/pageflow/admin/revisions_tab.rb +4 -0
- data/app/views/layouts/pageflow/_meta_tags.html.erb +1 -1
- data/app/views/layouts/pageflow/application.html.erb +2 -2
- data/app/views/pageflow/editor/accounts/_account.json.jbuilder +1 -0
- data/app/views/pageflow/editor/entries/_entry.json.jbuilder +2 -1
- data/app/views/pageflow/editor/entries/_help_entries_seed.html.erb +2 -2
- data/app/views/pageflow/editor/entries/_indicators_seed.html.erb +3 -0
- data/app/views/pageflow/editor/entries/seed.json.erb +3 -2
- data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +1 -0
- data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +1 -1
- data/app/views/pageflow/editor/themings/_theming.json.jbuilder +4 -0
- data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +1 -0
- data/app/views/pageflow/entries/_entry.html.erb +4 -3
- data/app/views/pageflow/entries/_indicators.html.erb +13 -0
- data/app/views/pageflow/entries/_mobile_navigation.html.erb +3 -15
- data/app/views/pageflow/entries/edit.html.erb +9 -1
- data/app/views/pageflow/entries/navigation/_bar_top.html.erb +3 -15
- data/app/views/pageflow/entries/share_menu/_facebook_link.html.erb +12 -0
- data/app/views/pageflow/entries/share_menu/_google_link.html.erb +12 -0
- data/app/views/pageflow/entries/share_menu/_twitter_link.html.erb +12 -0
- data/app/views/pageflow/entries/show.css.erb +12 -2
- data/app/views/pageflow/entries/show.html.erb +5 -1
- data/app/views/pageflow/page_types/_page_type.json.jbuilder +7 -1
- data/app/views/pageflow/pages/_page.html.erb +2 -2
- data/app/views/pageflow/pages/templates/_audio.html.erb +10 -0
- data/config/initializers/admin_resource_tabs.rb +1 -0
- data/config/initializers/features.rb +9 -0
- data/config/initializers/page_type_helpers.rb +1 -1
- data/config/initializers/paperclip.rb +1 -1
- data/config/initializers/zencoder.rb +1 -1
- data/config/locales/de.yml +132 -71
- data/config/locales/en.yml +118 -191
- data/db/migrate/20141211110226_add_configuration_to_chapters.rb +5 -0
- data/db/migrate/20150115175116_add_features_configuration_to_accounts.rb +5 -0
- data/db/migrate/20150115175207_add_features_configuration_to_entries.rb +5 -0
- data/db/migrate/20150603091823_add_password_attributes_to_revisions.rb +6 -0
- data/db/migrate/20151022080518_add_first_published_at_to_entries.rb +14 -0
- data/lib/generators/pageflow/initializer/templates/pageflow.rb +26 -17
- data/lib/generators/pageflow/theme/theme_generator.rb +2 -1
- data/lib/pageflow.rb +2 -46
- data/lib/pageflow/admin/form_input.rb +18 -0
- data/lib/pageflow/admin/form_inputs.rb +41 -0
- data/lib/pageflow/built_in_page_type.rb +0 -4
- data/lib/pageflow/configuration.rb +74 -18
- data/lib/pageflow/feature.rb +33 -0
- data/lib/pageflow/features.rb +68 -0
- data/lib/pageflow/global_config_api.rb +118 -0
- data/lib/pageflow/page_type_feature.rb +21 -0
- data/lib/pageflow/page_types.rb +29 -0
- data/lib/pageflow/theme.rb +20 -0
- data/lib/pageflow/themes.rb +26 -0
- data/lib/pageflow/version.rb +1 -1
- data/spec/factories/entries.rb +6 -0
- data/spec/factories/feature_targets.rb +4 -0
- data/spec/fixtures/image.gif +0 -0
- data/spec/fixtures/video.mp4 +0 -0
- data/vendor/assets/javascripts/audio5.min.js +12 -8
- data/vendor/assets/javascripts/iscroll.js +1 -1
- metadata +144 -24
- data/app/assets/images/pageflow/internal_links_pictogram.png +0 -0
- data/app/assets/images/pageflow/internal_links_pictogram_small.png +0 -0
- data/app/assets/images/pageflow/internal_links_sprite.png +0 -0
- data/app/assets/images/pageflow/ov-internal_links.png +0 -0
- data/app/assets/images/pageflow/themes/default/internal_links_sprite.png +0 -0
- data/app/assets/javascripts/pageflow/editor/templates/embedded/page_link.jst.ejs +0 -3
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/internal_links.js +0 -24
- data/app/assets/javascripts/pageflow/editor/views/draggable_page_item_view.js +0 -31
- data/app/assets/javascripts/pageflow/editor/views/embedded/page_link_embedded_view.js +0 -176
- data/app/assets/javascripts/pageflow/features/video.js +0 -16
- data/app/assets/javascripts/pageflow/page_types/internal_links.js +0 -55
- data/app/assets/javascripts/pageflow/ui/templates/inputs/page_reference.jst.ejs +0 -6
- data/app/assets/javascripts/pageflow/ui/views/inputs/page_reference_input_view.js +0 -44
- data/app/assets/stylesheets/pageflow/editor/embedded.css.scss +0 -104
- data/app/assets/stylesheets/pageflow/page_types/internal_links.css.scss +0 -222
- data/app/views/pageflow/pages/templates/_internal_links.html.erb +0 -31
@@ -6,7 +6,7 @@ pageflow.pageType.register('background_video', _.extend({
|
|
6
6
|
|
7
7
|
prepare: function(pageElement, configuration) {
|
8
8
|
|
9
|
-
if (!pageflow.
|
9
|
+
if (!pageflow.browser.has('mobile platform')) {
|
10
10
|
this.videoPlayer.ensureCreated();
|
11
11
|
}
|
12
12
|
},
|
@@ -21,7 +21,7 @@ pageflow.pageType.register('background_video', _.extend({
|
|
21
21
|
this.videoPlayer.ensureCreated();
|
22
22
|
this._resizeToCover(pageElement, configuration);
|
23
23
|
|
24
|
-
if (!pageflow.
|
24
|
+
if (!pageflow.browser.has('mobile platform')) {
|
25
25
|
this.prebufferingPromise = this.videoPlayer.prebuffer().then(function() {
|
26
26
|
that.videoPlayer.volume(0);
|
27
27
|
that.videoPlayer.play();
|
@@ -38,7 +38,7 @@ pageflow.pageType.register('background_video', _.extend({
|
|
38
38
|
activated: function(pageElement, configuration) {
|
39
39
|
var that = this;
|
40
40
|
|
41
|
-
if (!pageflow.
|
41
|
+
if (!pageflow.browser.has('mobile platform')) {
|
42
42
|
this.prebufferingPromise.then(function() {
|
43
43
|
that.fadeSound(that.videoPlayer, pageflow.settings.get('volume'), 1000);
|
44
44
|
});
|
@@ -70,26 +70,26 @@ pageflow.pageType.register('background_video', _.extend({
|
|
70
70
|
this.updateCommonPageCssClasses(pageElement, configuration);
|
71
71
|
pageElement.find('.shadow').css({opacity: configuration.get('gradient_opacity') / 100});
|
72
72
|
|
73
|
-
var
|
74
|
-
x = configuration.getFilePosition('video_file_id', 'x'),
|
73
|
+
var x = configuration.getFilePosition('video_file_id', 'x'),
|
75
74
|
y = configuration.getFilePosition('video_file_id', 'y'),
|
76
75
|
posterUrl = configuration.getVideoPosterUrl();
|
77
76
|
|
78
|
-
|
79
|
-
|
80
|
-
if (!this.srcDefined) {
|
81
|
-
videoPlayer.ready(function() {
|
82
|
-
videoPlayer.src(configuration.getVideoFileSources('video_file_id'));
|
83
|
-
});
|
84
|
-
}
|
77
|
+
this.updateBackgroundVideoPosters(pageElement, posterUrl, x, y);
|
85
78
|
|
86
|
-
if (
|
87
|
-
this.
|
88
|
-
this.videoPlayer.src(configuration.getVideoFileSources('video_file_id'));
|
79
|
+
if (this.videoPlayer.isPresent()) {
|
80
|
+
this._resizeToCover(pageElement, configuration.attributes);
|
89
81
|
}
|
82
|
+
},
|
90
83
|
|
91
|
-
|
92
|
-
|
84
|
+
embeddedEditorViews: function() {
|
85
|
+
return {
|
86
|
+
'.backgroundArea': {
|
87
|
+
view: pageflow.LazyVideoEmbeddedView,
|
88
|
+
options: {
|
89
|
+
propertyName: 'video_file_id'
|
90
|
+
}
|
91
|
+
}
|
92
|
+
};
|
93
93
|
},
|
94
94
|
|
95
95
|
_initVideoPlayer: function(pageElement, configuration) {
|
@@ -104,6 +104,7 @@ pageflow.pageType.register('background_video', _.extend({
|
|
104
104
|
width: '100%',
|
105
105
|
height: '100%'
|
106
106
|
});
|
107
|
+
pageElement.find('.backgroundArea').data('videoPlayer', this.videoPlayer);
|
107
108
|
|
108
109
|
this.videoPlayer.ready(function() {
|
109
110
|
that._resizeToCover(pageElement, configuration);
|
@@ -3,9 +3,34 @@ pageflow.commonPageCssClasses = {
|
|
3
3
|
pageElement.toggleClass('invert', configuration.get('invert'));
|
4
4
|
pageElement.toggleClass('hide_title', configuration.get('hide_title'));
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
toggleModeClass(pageflow.Page.textPositions, 'text_position');
|
7
|
+
toggleModeClass(pageflow.Page.delayedTextFadeIn, 'delayed_text_fade_in');
|
8
|
+
toggleModeClass(pageflow.Page.scrollIndicatorModes, 'scroll_indicator_mode');
|
9
|
+
toggleModeClass(pageflow.Page.scrollIndicatorOrientations, 'scroll_indicator_orientation');
|
10
|
+
|
11
|
+
function toggleModeClass(modes, name) {
|
12
|
+
var value = configuration.get(name);
|
13
|
+
|
14
|
+
_.each(modes, function(mode) {
|
15
|
+
pageElement.removeClass(name + '_' + mode);
|
16
|
+
});
|
17
|
+
|
18
|
+
if (value) {
|
19
|
+
pageElement.addClass(name + '_' + value);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
pageElement.toggleClass('no_text_content', !hasContent());
|
24
|
+
|
25
|
+
function hasContent() {
|
26
|
+
var hasTitle = _(['title','subtitle','tagline']).some(function(attribute) {
|
27
|
+
return !!$.trim(configuration.get(attribute));
|
28
|
+
});
|
29
|
+
|
30
|
+
var text = $('<div />').html(configuration.get('text')).text();
|
31
|
+
var hasText = !!$.trim(text);
|
32
|
+
|
33
|
+
return (hasTitle && !configuration.get('hide_title')) || hasText;
|
34
|
+
}
|
10
35
|
}
|
11
36
|
};
|
@@ -2,7 +2,7 @@ pageflow.pageType.register('video', _.extend({
|
|
2
2
|
|
3
3
|
enhance: function(pageElement, configuration) {
|
4
4
|
pageElement.find('.contentText').before(pageElement.find('.page_header'));
|
5
|
-
this._initVideoPlayer(pageElement);
|
5
|
+
this._initVideoPlayer(pageElement, configuration);
|
6
6
|
},
|
7
7
|
|
8
8
|
preload: function(pageElement, configuration) {
|
@@ -13,6 +13,10 @@ pageflow.pageType.register('video', _.extend({
|
|
13
13
|
this.videoPlayer.ensureCreated();
|
14
14
|
},
|
15
15
|
|
16
|
+
unprepare: function(pageElement, configuration) {
|
17
|
+
this.videoPlayer.scheduleDispose();
|
18
|
+
},
|
19
|
+
|
16
20
|
activating: function(pageElement, configuration) {
|
17
21
|
var videoPlayer = this.videoPlayer;
|
18
22
|
|
@@ -24,14 +28,10 @@ pageflow.pageType.register('video', _.extend({
|
|
24
28
|
|
25
29
|
this.videoPlayer.ensureCreated();
|
26
30
|
|
27
|
-
if (pageflow.
|
31
|
+
if (pageflow.browser.has('mobile platform')) {
|
28
32
|
this.videoPlayer.showPosterImage();
|
29
33
|
}
|
30
34
|
|
31
|
-
this.listenTo(pageflow.settings, "change:volume", function(model, value) {
|
32
|
-
this.fadeSound(this.videoPlayer, value, 10);
|
33
|
-
});
|
34
|
-
|
35
35
|
$('body').on('keyup', function(e) {
|
36
36
|
if(e.keyCode == 32){
|
37
37
|
if(videoPlayer.paused()) {
|
@@ -49,20 +49,16 @@ pageflow.pageType.register('video', _.extend({
|
|
49
49
|
var videoPlayer = this.videoPlayer;
|
50
50
|
var that = this;
|
51
51
|
|
52
|
-
if (pageflow.
|
52
|
+
if (pageflow.browser.has('mobile platform')) {
|
53
53
|
videoPlayer.src(videoPlayer.srcFromOptions()); // needed for iOS
|
54
54
|
}
|
55
55
|
else {
|
56
56
|
videoPlayer.prebuffer().done(function() {
|
57
57
|
videoPlayer.hidePosterImage();
|
58
58
|
|
59
|
-
if (configuration.autoplay
|
60
|
-
videoPlayer.volume(pageflow.settings.get('volume'));
|
61
|
-
} else {
|
59
|
+
if (configuration.autoplay !== false) {
|
62
60
|
that.fadeInTimeout = setTimeout(function() {
|
63
|
-
videoPlayer.
|
64
|
-
videoPlayer.play();
|
65
|
-
that.fadeSound(videoPlayer, pageflow.settings.get('volume'), 1000);
|
61
|
+
videoPlayer.playAndFadeIn(1000);
|
66
62
|
}, 1000);
|
67
63
|
}
|
68
64
|
});
|
@@ -74,10 +70,13 @@ pageflow.pageType.register('video', _.extend({
|
|
74
70
|
this.fadeSound(this.videoPlayer, 0, 400);
|
75
71
|
this.stopListening();
|
76
72
|
$('body').off('keyup');
|
73
|
+
|
74
|
+
$('.entry .scroll_indicator').removeClass('faded');
|
75
|
+
clearTimeout(this.scrollIndicatorTimeout);
|
77
76
|
},
|
78
77
|
|
79
78
|
deactivated: function(pageElement, configuration) {
|
80
|
-
if (pageflow.
|
79
|
+
if (pageflow.browser.has('mobile platform')) {
|
81
80
|
this.videoPlayer.showPosterImage();
|
82
81
|
}
|
83
82
|
this.videoPlayer.pause();
|
@@ -96,29 +95,31 @@ pageflow.pageType.register('video', _.extend({
|
|
96
95
|
|
97
96
|
pageElement.find('.shadow').css({opacity: configuration.get('gradient_opacity') / 100});
|
98
97
|
|
99
|
-
var videoPlayer = this.videoPlayer;
|
100
|
-
videoPlayer.ensureCreated();
|
101
|
-
|
102
|
-
if (!this.srcDefined) {
|
103
|
-
videoPlayer.ready(function() {
|
104
|
-
videoPlayer.src(configuration.getVideoFileSources('video_file_id'));
|
105
|
-
});
|
106
|
-
}
|
107
|
-
|
108
|
-
if (!this.srcDefined || configuration.hasChanged('video_file_id')) {
|
109
|
-
this.srcDefined = true;
|
110
|
-
this.videoPlayer.src(configuration.getVideoFileSources('video_file_id'));
|
111
|
-
}
|
112
|
-
|
113
98
|
this.updateVideoPoster(pageElement, configuration.getVideoPosterUrl());
|
114
99
|
},
|
115
100
|
|
116
|
-
|
101
|
+
embeddedEditorViews: function() {
|
102
|
+
return {
|
103
|
+
'.videoWrapper': {
|
104
|
+
view: pageflow.LazyVideoEmbeddedView,
|
105
|
+
options: {
|
106
|
+
propertyName: 'video_file_id'
|
107
|
+
}
|
108
|
+
}
|
109
|
+
};
|
110
|
+
},
|
111
|
+
|
112
|
+
_initVideoPlayer: function(pageElement, configuration) {
|
113
|
+
var that = this;
|
114
|
+
|
117
115
|
var videoPlayer = new pageflow.VideoPlayer.Lazy(pageElement.find('[data-template=video]'), {
|
118
116
|
bufferUnderrunWaiting: true,
|
119
117
|
controls: true,
|
120
118
|
customControlsOnMobile: true,
|
121
119
|
|
120
|
+
volumeFading: true,
|
121
|
+
hooks: pageflow.atmo.createMediaPlayerHooks(configuration),
|
122
|
+
|
122
123
|
mediaEvents: true,
|
123
124
|
context: {
|
124
125
|
page: pageElement.page('instance')
|
@@ -129,6 +130,7 @@ pageflow.pageType.register('video', _.extend({
|
|
129
130
|
});
|
130
131
|
|
131
132
|
this.videoPlayer = videoPlayer;
|
133
|
+
pageElement.find('.videoWrapper').data('videoPlayer', videoPlayer);
|
132
134
|
|
133
135
|
videoPlayer.ready(function() {
|
134
136
|
videoPlayer.showPosterImage();
|
@@ -142,6 +144,10 @@ pageflow.pageType.register('video', _.extend({
|
|
142
144
|
video = pageElement.find('video');
|
143
145
|
|
144
146
|
controlBar.appendTo(controls);
|
147
|
+
|
148
|
+
var additionalControlsHtml = '<div class="player_skip" tabindex="4"></div><div class="player_fullscreen" tabindex="4"></div><div class="player_volume"><div class="volume-control"><div tabindex="0" class="player_volume_bar player_slider volume-slider"><div class="player_volume_level volume-level"></div><div class="player_volume_handle player_slider_handle volume-handle"></div></div></div><div class="player_mute volume-mute-button" tabindex="4"></div></div>';
|
149
|
+
|
150
|
+
$(additionalControlsHtml).appendTo(controlBar);
|
145
151
|
//pageElement.find('.scroller').after(controls);
|
146
152
|
|
147
153
|
controlBar.addClass('vjs-default-skin vjs-player');
|
@@ -157,6 +163,16 @@ pageflow.pageType.register('video', _.extend({
|
|
157
163
|
}
|
158
164
|
});
|
159
165
|
|
166
|
+
controls.find('a, [tabindex]').on({
|
167
|
+
focus: function() {
|
168
|
+
controls.addClass('focussed');
|
169
|
+
},
|
170
|
+
|
171
|
+
blur: function() {
|
172
|
+
controls.removeClass('focussed');
|
173
|
+
}
|
174
|
+
});
|
175
|
+
|
160
176
|
videoPlayer.on('bufferunderrun', function() {
|
161
177
|
loadingSpinner.addClass('showing-for-underrun');
|
162
178
|
});
|
@@ -165,7 +181,7 @@ pageflow.pageType.register('video', _.extend({
|
|
165
181
|
loadingSpinner.removeClass('showing-for-underrun');
|
166
182
|
});
|
167
183
|
|
168
|
-
if (pageflow.
|
184
|
+
if (pageflow.browser.has('phone platform')) {
|
169
185
|
// alternate poster image handling
|
170
186
|
$("<div class='vjs-poster-mobile' style='" +
|
171
187
|
poster.attr('style') +
|
@@ -184,6 +200,8 @@ pageflow.pageType.register('video', _.extend({
|
|
184
200
|
scrollIndicator = $('.entry .scroll_indicator'),
|
185
201
|
pageContent = pageElement.find('.scroller, .controls, .shadow');
|
186
202
|
|
203
|
+
pageContent.addClass('lock-showing');
|
204
|
+
|
187
205
|
videoPlayer.on("pause", function() {
|
188
206
|
pageContent.addClass('lock-showing');
|
189
207
|
|
@@ -191,20 +209,31 @@ pageflow.pageType.register('video', _.extend({
|
|
191
209
|
clearTimeout(scrollIndicatorTimeout);
|
192
210
|
});
|
193
211
|
|
212
|
+
videoPlayer.on('beforeplay', function() {
|
213
|
+
loadingSpinner.addClass('showing-for-underrun');
|
214
|
+
});
|
215
|
+
|
194
216
|
videoPlayer.on("play", function() {
|
195
217
|
pageContent.removeClass('lock-showing');
|
196
218
|
|
197
|
-
|
198
|
-
|
199
|
-
|
219
|
+
if (pageElement.hasClass('active')) {
|
220
|
+
clearTimeout(scrollIndicatorTimeout);
|
221
|
+
scrollIndicatorTimeout = that.scrollIndicatorTimeout = setTimeout(function() {
|
222
|
+
scrollIndicator.addClass('faded');
|
223
|
+
}, 2000);
|
224
|
+
}
|
200
225
|
});
|
201
226
|
|
202
227
|
videoPlayer.on("ended", function() {
|
203
228
|
scrollIndicator.removeClass('faded');
|
204
229
|
clearTimeout(scrollIndicatorTimeout);
|
205
230
|
|
206
|
-
if(pageflow.
|
207
|
-
|
231
|
+
if (pageflow.browser.has('mobile platform')) {
|
232
|
+
videoPlayer.showPosterImage();
|
233
|
+
}
|
234
|
+
|
235
|
+
if (pageElement.hasClass('active') && configuration.auto_change_page_on_ended) {
|
236
|
+
pageflow.slides.next();
|
208
237
|
}
|
209
238
|
});
|
210
239
|
|
@@ -212,9 +241,17 @@ pageflow.pageType.register('video', _.extend({
|
|
212
241
|
$('body').on('keydown', autoHideControls);
|
213
242
|
pageElement.find('.content').on('touchstart', autoHideControls);
|
214
243
|
|
244
|
+
pageElement.find('.volume-control').volumeSlider({
|
245
|
+
orientation: 'v'
|
246
|
+
});
|
247
|
+
|
248
|
+
pageElement.find('.player_mute').muteButton();
|
249
|
+
pageElement.find('.player_skip').skipPageButton();
|
250
|
+
pageElement.find('.player_fullscreen').fullscreenButton();
|
251
|
+
|
215
252
|
function autoHideControls() {
|
216
253
|
showControls();
|
217
|
-
if (!pageflow.
|
254
|
+
if (!pageflow.browser.has('phone platform')) {
|
218
255
|
clearTimeout(timeout);
|
219
256
|
timeout = setTimeout(hideControls, 2000);
|
220
257
|
}
|
@@ -12,17 +12,20 @@
|
|
12
12
|
},
|
13
13
|
|
14
14
|
backgroundImage: function(element) {
|
15
|
-
|
15
|
+
var that = this;
|
16
|
+
var promises = [];
|
16
17
|
|
17
|
-
|
18
|
-
|
18
|
+
$(element).addClass('load_image');
|
19
|
+
|
20
|
+
$(element).each(function() {
|
21
|
+
var propertyValue = window.getComputedStyle(this).getPropertyValue('background-image');
|
19
22
|
|
20
23
|
if (propertyValue.match(/^url/)) {
|
21
|
-
|
24
|
+
promises.push(that.image(propertyValue.replace(/^url\(['"]?/, '').replace(/['"]?\)$/, '')));
|
22
25
|
}
|
23
|
-
}
|
26
|
+
});
|
24
27
|
|
25
|
-
return $.
|
28
|
+
return $.when.apply(null, promises);
|
26
29
|
}
|
27
30
|
};
|
28
31
|
}());
|
@@ -1,28 +1,32 @@
|
|
1
1
|
pageflow.ready = new $.Deferred(function(readyDeferred) {
|
2
2
|
window.onload = function() {
|
3
|
-
pageflow.
|
3
|
+
pageflow.browser.detectFeatures().then(function() {
|
4
4
|
$('body').one('pagepreloaded', function() {
|
5
5
|
readyDeferred.resolve();
|
6
6
|
});
|
7
7
|
|
8
8
|
$('[data-role=slideshow]').each(function() {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
}, {});
|
9
|
+
pageflow.entryData = new pageflow.SeedEntryData(
|
10
|
+
pageflow.seed
|
11
|
+
);
|
13
12
|
|
14
|
-
pageflow.
|
15
|
-
|
16
|
-
$('.header').header({
|
17
|
-
slideshow: pageflow.slides
|
13
|
+
pageflow.Audio.setup({
|
14
|
+
audioFiles: pageflow.audioFiles
|
18
15
|
});
|
19
|
-
$('.overview').overview();
|
20
|
-
$('.multimedia_alert').multimediaAlert();
|
21
16
|
|
22
|
-
pageflow.
|
17
|
+
pageflow.Slideshow.setup({
|
18
|
+
element: $(this),
|
19
|
+
pages: pageflow.pages,
|
20
|
+
enabledFeatureNames: pageflow.enabledFeatureNames,
|
21
|
+
|
22
|
+
beforeFirstUpdate: function() {
|
23
|
+
$('.header').header({slideshow: pageflow.slides});
|
24
|
+
$('.overview').overview();
|
25
|
+
$('.multimedia_alert').multimediaAlert();
|
23
26
|
|
24
|
-
|
25
|
-
|
27
|
+
pageflow.widgetTypes.enhance($('body'));
|
28
|
+
}
|
29
|
+
});
|
26
30
|
});
|
27
31
|
|
28
32
|
pageflow.links.setup();
|
@@ -0,0 +1,43 @@
|
|
1
|
+
pageflow.SeedEntryData = pageflow.EntryData.extend({
|
2
|
+
initialize: function(options) {
|
3
|
+
this.theming = options.theming;
|
4
|
+
|
5
|
+
this.chapterConfigurations = options.chapter_configurations;
|
6
|
+
|
7
|
+
this.chapterPagePermaIds = _(options.pages).reduce(function(memo, page) {
|
8
|
+
memo[page.chapter_id] = memo[page.chapter_id] || [];
|
9
|
+
memo[page.chapter_id].push(page.perma_id);
|
10
|
+
return memo;
|
11
|
+
}, {});
|
12
|
+
|
13
|
+
this.chapterIdsByPagePermaIds = _(options.pages).reduce(function(memo, page) {
|
14
|
+
memo[page.perma_id] = page.chapter_id;
|
15
|
+
return memo;
|
16
|
+
}, {});
|
17
|
+
|
18
|
+
this.pageConfigurations = _.reduce(options.pages, function(memo, page) {
|
19
|
+
memo[page.perma_id] = page.configuration;
|
20
|
+
return memo;
|
21
|
+
}, {});
|
22
|
+
},
|
23
|
+
|
24
|
+
getThemingOption: function(name) {
|
25
|
+
return this.theming[name];
|
26
|
+
},
|
27
|
+
|
28
|
+
getChapterConfiguration: function(id) {
|
29
|
+
return this.chapterConfigurations[id] || {};
|
30
|
+
},
|
31
|
+
|
32
|
+
getChapterPagePermaIds: function(id) {
|
33
|
+
return this.chapterPagePermaIds[id];
|
34
|
+
},
|
35
|
+
|
36
|
+
getPageConfiguration: function(permaId) {
|
37
|
+
return this.pageConfigurations[permaId] || {};
|
38
|
+
},
|
39
|
+
|
40
|
+
getChapterIdByPagePermaId: function(permaId) {
|
41
|
+
return this.chapterIdsByPagePermaIds[permaId];
|
42
|
+
}
|
43
|
+
});
|