pageflow 0.8.2 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
(function($) {
|
|
2
|
+
var creatingMethods = ['reinit', 'reactivate', 'activate', 'activateAsLandingPage', 'prepare', 'linkedPages'];
|
|
3
|
+
var ignoredMethods = ['cleanup', 'refreshScroller', 'resize', 'preload', 'deactivate', 'unprepare'];
|
|
4
|
+
|
|
5
|
+
var prototype = {
|
|
6
|
+
_create: function() {
|
|
7
|
+
this.configuration = this.element.data('configuration') || this.options.configuration;
|
|
8
|
+
},
|
|
9
|
+
|
|
10
|
+
_ensureCreated: function() {
|
|
11
|
+
this.created = true;
|
|
12
|
+
this.element.nonLazyPage(this.options);
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
_delegateToInner: function(method, args) {
|
|
16
|
+
return this.element.nonLazyPage.apply(this.element, [method].concat([].slice.call(args)));
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
getConfiguration: function() {
|
|
20
|
+
return this.configuration;
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
update: function(configuration) {
|
|
24
|
+
if (this.created) {
|
|
25
|
+
this._delegateToInner('update', arguments);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
_.extend(this.configuration, configuration.attributes);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
_(creatingMethods).each(function(method) {
|
|
34
|
+
prototype[method] = function() {
|
|
35
|
+
this._ensureCreated();
|
|
36
|
+
return this._delegateToInner(method, arguments);
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
_(ignoredMethods).each(function(method) {
|
|
41
|
+
prototype[method] = function() {
|
|
42
|
+
if (this.created) {
|
|
43
|
+
return this._delegateToInner(method, arguments);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
$.widget('pageflow.page', prototype);
|
|
49
|
+
}(jQuery));
|
|
@@ -1,24 +1,39 @@
|
|
|
1
1
|
(function($) {
|
|
2
|
-
$.widget('pageflow.
|
|
2
|
+
$.widget('pageflow.nonLazyPage', {
|
|
3
|
+
widgetEventPrefix: 'page',
|
|
3
4
|
_create: function() {
|
|
4
5
|
this.configuration = this.element.data('configuration') || this.options.configuration;
|
|
5
6
|
this.index = this.options.index;
|
|
6
7
|
|
|
7
|
-
this.element.addClass(this.configuration.transition || "fade");
|
|
8
|
-
|
|
9
8
|
this.preloaded = false;
|
|
10
9
|
this.reinit();
|
|
11
10
|
},
|
|
12
11
|
|
|
12
|
+
getPermaId: function() {
|
|
13
|
+
return parseInt(this.element.attr('id'), 10);
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
getConfiguration: function() {
|
|
17
|
+
return this.configuration;
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
update: function(configuration) {
|
|
21
|
+
_.extend(this.configuration, configuration.attributes);
|
|
22
|
+
this.pageType.update(this.element, configuration);
|
|
23
|
+
},
|
|
24
|
+
|
|
13
25
|
reinit: function() {
|
|
14
26
|
this.pageType = pageflow.pageType.get(this.element.data('template'));
|
|
15
27
|
this.element.data('pageType', this.pageType);
|
|
16
28
|
|
|
17
29
|
this.content = this.element.find('.scroller');
|
|
18
|
-
this.content.scroller();
|
|
19
|
-
this.content.
|
|
30
|
+
this.content.scroller(this.pageType.scrollerOptions || {});
|
|
31
|
+
this.pageType.scroller = this.content.scroller('instance');
|
|
32
|
+
|
|
33
|
+
this._setupHideTextOnSwipe();
|
|
20
34
|
|
|
21
35
|
this._triggerPageTypeHook('enhance');
|
|
36
|
+
this._trigger('enhanced');
|
|
22
37
|
},
|
|
23
38
|
|
|
24
39
|
reactivate: function() {
|
|
@@ -55,18 +70,24 @@
|
|
|
55
70
|
this._trigger('activate', null, {page: this});
|
|
56
71
|
this._triggerPageTypeHook('activating');
|
|
57
72
|
this._triggerDelayedPageTypeHook('activated');
|
|
58
|
-
|
|
59
|
-
this.prepareTimeout = setTimeout(_.bind(this.triggerPrepareNextPage, this), this.prepareNextPageTimeout());
|
|
60
73
|
},
|
|
61
74
|
|
|
62
75
|
prepare: function() {
|
|
63
76
|
this._triggerPageTypeHook('prepare');
|
|
64
77
|
},
|
|
65
78
|
|
|
79
|
+
unprepare: function() {
|
|
80
|
+
this._triggerPageTypeHook('unprepare');
|
|
81
|
+
},
|
|
82
|
+
|
|
66
83
|
prepareNextPageTimeout: function() {
|
|
67
84
|
return this.pageType.prepareNextPageTimeout;
|
|
68
85
|
},
|
|
69
86
|
|
|
87
|
+
linkedPages: function() {
|
|
88
|
+
return this._triggerPageTypeHook('linkedPages');
|
|
89
|
+
},
|
|
90
|
+
|
|
70
91
|
preload: function() {
|
|
71
92
|
var page = this;
|
|
72
93
|
|
|
@@ -82,44 +103,56 @@
|
|
|
82
103
|
activate: function(options) {
|
|
83
104
|
options = options || {};
|
|
84
105
|
|
|
85
|
-
this.element
|
|
86
|
-
.removeClass('animate-out-forwards animate-out-backwards')
|
|
87
|
-
.addClass('animate-in-' + options.direction);
|
|
88
|
-
|
|
89
106
|
setTimeout(_.bind(function() {
|
|
90
107
|
this.element.addClass('active');
|
|
91
|
-
}, this),
|
|
108
|
+
}, this), 0);
|
|
92
109
|
|
|
93
|
-
|
|
110
|
+
var duration = this.animateTransition('in', options, function() {
|
|
94
111
|
this.content.scroller('enable');
|
|
95
112
|
this.content.scroller('afterAnimationHook');
|
|
96
|
-
this.element.removeClass('animate-in-forwards animate-in-backwards');
|
|
97
113
|
|
|
98
114
|
this._triggerDelayedPageTypeHook('activated');
|
|
99
|
-
}
|
|
115
|
+
});
|
|
100
116
|
|
|
101
117
|
this.content.scroller('resetPosition', {position: options.position});
|
|
102
118
|
this._trigger('activate', null, {page: this});
|
|
103
119
|
this._triggerPageTypeHook('activating');
|
|
104
120
|
|
|
105
|
-
|
|
121
|
+
return duration;
|
|
106
122
|
},
|
|
107
123
|
|
|
108
124
|
deactivate: function(options) {
|
|
109
|
-
|
|
110
|
-
.removeClass('active animate-in-forwards animate-in-backwards')
|
|
111
|
-
.addClass('animate-out-' + options.direction);
|
|
125
|
+
options = options || {};
|
|
112
126
|
|
|
113
|
-
|
|
114
|
-
|
|
127
|
+
this.element.removeClass('active');
|
|
128
|
+
|
|
129
|
+
var duration = this.animateTransition('out', options, function() {
|
|
115
130
|
this._triggerPageTypeHook('deactivated');
|
|
116
|
-
}
|
|
131
|
+
});
|
|
117
132
|
|
|
118
133
|
this.content.scroller('disable');
|
|
119
134
|
this._trigger('deactivate');
|
|
120
135
|
this._triggerPageTypeHook('deactivating');
|
|
121
136
|
|
|
122
|
-
|
|
137
|
+
return duration;
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
animateTransition: function(destination, options, callback) {
|
|
141
|
+
var otherDestination = destination === 'in' ? 'out' : 'in';
|
|
142
|
+
var transition = options.transition || this.configuration.transition || 'fade';
|
|
143
|
+
var duration = pageflow.pageTransitions.get(transition).duration;
|
|
144
|
+
var animateClass = transition + ' animate-' + destination + '-' + options.direction;
|
|
145
|
+
|
|
146
|
+
this.element
|
|
147
|
+
.removeClass('animate-' + otherDestination + '-forwards animate-' + otherDestination + '-backwards')
|
|
148
|
+
.addClass(animateClass);
|
|
149
|
+
|
|
150
|
+
setTimeout(_.bind(function() {
|
|
151
|
+
this.element.removeClass(animateClass);
|
|
152
|
+
callback.call(this);
|
|
153
|
+
}, this), duration);
|
|
154
|
+
|
|
155
|
+
return duration;
|
|
123
156
|
},
|
|
124
157
|
|
|
125
158
|
_triggerDelayedPageTypeHook: function(name) {
|
|
@@ -137,9 +170,10 @@
|
|
|
137
170
|
return this.pageType[name](this.element, this.configuration);
|
|
138
171
|
},
|
|
139
172
|
|
|
140
|
-
|
|
141
|
-
if(
|
|
142
|
-
|
|
173
|
+
_setupHideTextOnSwipe: function() {
|
|
174
|
+
if (pageflow.entryData.getThemingOption('hide_text_on_swipe') &&
|
|
175
|
+
!this.pageType.noHideTextOnSwipe) {
|
|
176
|
+
this.content.hideTextOnSwipe();
|
|
143
177
|
}
|
|
144
178
|
}
|
|
145
179
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
pageflow.ProgressivePreload = function() {
|
|
2
2
|
var run = null;
|
|
3
3
|
|
|
4
|
-
function Run(page) {
|
|
4
|
+
function Run(page, maxPreloadedPages) {
|
|
5
5
|
var cancelled = false;
|
|
6
6
|
|
|
7
7
|
this.cancel = function() {
|
|
@@ -9,17 +9,26 @@ pageflow.ProgressivePreload = function() {
|
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
this.start = function() {
|
|
12
|
-
|
|
12
|
+
preload(page, 0);
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
function preload(page) {
|
|
16
|
-
|
|
15
|
+
function preload(page, counter) {
|
|
16
|
+
$.when(page.page('preload'), tick()).then(function() {
|
|
17
17
|
var nextPage = page.next('.page');
|
|
18
|
-
if (!cancelled && nextPage.length) {
|
|
19
|
-
|
|
18
|
+
if (!cancelled && nextPage.length && counter < maxPreloadedPages) {
|
|
19
|
+
preload(nextPage, counter + 1);
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
+
|
|
24
|
+
// prevent stack level from becoming to deep
|
|
25
|
+
function tick() {
|
|
26
|
+
return new $.Deferred(function(deferred) {
|
|
27
|
+
setTimeout(function() {
|
|
28
|
+
deferred.resolve();
|
|
29
|
+
}, 1);
|
|
30
|
+
}).promise();
|
|
31
|
+
}
|
|
23
32
|
}
|
|
24
33
|
|
|
25
34
|
this.start = function(page) {
|
|
@@ -27,7 +36,7 @@ pageflow.ProgressivePreload = function() {
|
|
|
27
36
|
run.cancel();
|
|
28
37
|
}
|
|
29
38
|
|
|
30
|
-
run = new Run(page);
|
|
39
|
+
run = new Run(page, 10);
|
|
31
40
|
run.start();
|
|
32
41
|
};
|
|
33
42
|
};
|
|
@@ -1,36 +1,66 @@
|
|
|
1
1
|
(function($) {
|
|
2
|
+
var boundaries = {
|
|
3
|
+
up: 'top',
|
|
4
|
+
down: 'bottom'
|
|
5
|
+
};
|
|
6
|
+
|
|
2
7
|
$.widget('pageflow.scrollIndicator', {
|
|
3
8
|
_create: function() {
|
|
4
9
|
var parent = this.options.parent,
|
|
5
|
-
|
|
10
|
+
direction = this.element.data('direction'),
|
|
11
|
+
boundary = boundaries[direction],
|
|
12
|
+
that = this;
|
|
6
13
|
|
|
7
|
-
|
|
8
|
-
var page = $(event.target);
|
|
14
|
+
function update(page) {
|
|
9
15
|
var invertIndicator = page.data('invertIndicator');
|
|
10
16
|
|
|
11
17
|
if (typeof invertIndicator === 'undefined') {
|
|
12
18
|
invertIndicator = page.hasClass('invert');
|
|
13
19
|
}
|
|
14
20
|
|
|
21
|
+
if (page.hasClass('scroll_indicator_mode_non') ||
|
|
22
|
+
(page.hasClass('scroll_indicator_mode_only_next') && direction === 'up') ||
|
|
23
|
+
(page.hasClass('scroll_indicator_mode_only_back') && direction === 'down')) {
|
|
24
|
+
|
|
25
|
+
that.element.hide();
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
that.element.show();
|
|
29
|
+
}
|
|
30
|
+
|
|
15
31
|
that.element.toggleClass('invert', invertIndicator);
|
|
32
|
+
that.element.toggleClass('horizontal', page.hasClass('scroll_indicator_orientation_horizontal'));
|
|
33
|
+
that.element.toggleClass('available', targetPageExists());
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function targetPageExists() {
|
|
37
|
+
return direction === 'down' ? parent.nextPageExists() : parent.previousPageExists();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
parent.on('pageactivate', function(event) {
|
|
41
|
+
update($(event.target));
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
pageflow.events.on('page:update', function() {
|
|
45
|
+
update(parent.currentPage());
|
|
16
46
|
});
|
|
17
47
|
|
|
18
|
-
parent.on('
|
|
48
|
+
parent.on('scrollerhint' + direction, function() {
|
|
19
49
|
that.element.addClass('animate');
|
|
20
50
|
setTimeout(function() {
|
|
21
51
|
that.element.removeClass('animate');
|
|
22
52
|
}, 500);
|
|
23
53
|
});
|
|
24
54
|
|
|
25
|
-
parent.on('
|
|
55
|
+
parent.on('scrollernear' + boundary, function(event) {
|
|
26
56
|
var page = $(event.target).parents('section');
|
|
27
57
|
|
|
28
58
|
if (page.hasClass('active')) {
|
|
29
|
-
that.element.toggleClass('visible',
|
|
59
|
+
that.element.toggleClass('visible', targetPageExists());
|
|
30
60
|
}
|
|
31
61
|
});
|
|
32
62
|
|
|
33
|
-
parent.on('
|
|
63
|
+
parent.on('scrollernotnear' + boundary +' slideshowchangepage', function() {
|
|
34
64
|
that.element.removeClass('visible');
|
|
35
65
|
});
|
|
36
66
|
|
|
@@ -43,6 +73,14 @@
|
|
|
43
73
|
}, 3000);
|
|
44
74
|
});
|
|
45
75
|
|
|
76
|
+
this.element.on('click', function() {
|
|
77
|
+
if (direction === 'down') {
|
|
78
|
+
parent.next();
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
parent.back();
|
|
82
|
+
}
|
|
83
|
+
});
|
|
46
84
|
}
|
|
47
85
|
});
|
|
48
86
|
}(jQuery));
|
|
@@ -11,24 +11,29 @@
|
|
|
11
11
|
doubleBumpThreshold: 500,
|
|
12
12
|
|
|
13
13
|
_create: function() {
|
|
14
|
-
this.iscroll = new IScroll(this.element[0], {
|
|
14
|
+
this.iscroll = new IScroll(this.element[0], _.extend({
|
|
15
15
|
mouseWheel: true,
|
|
16
16
|
bounce: false,
|
|
17
17
|
keyBindings: true,
|
|
18
18
|
probeType: 2,
|
|
19
19
|
preventDefault: false
|
|
20
|
-
});
|
|
20
|
+
}, _.pick(this.options, 'freeScroll', 'scrollX', 'noMouseWheelScrollX')));
|
|
21
21
|
|
|
22
22
|
this.iscroll.disable();
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
if (pageflow.entryData.getThemingOption('page_change_by_scrolling')) {
|
|
25
|
+
this._initMousewheelBump('up');
|
|
26
|
+
this._initMousewheelBump('down');
|
|
27
|
+
this._initDragGestureBump();
|
|
28
|
+
}
|
|
29
|
+
|
|
26
30
|
this._initKeyboardBump('up');
|
|
27
31
|
this._initKeyboardBump('down');
|
|
28
|
-
this._initDragGestureBump();
|
|
29
32
|
this._initNearBottomEvents();
|
|
30
33
|
this._initNearTopEvents();
|
|
31
34
|
this._initMoveEvents();
|
|
35
|
+
|
|
36
|
+
this._onScrollEndCallbacks = new $.Callbacks();
|
|
32
37
|
},
|
|
33
38
|
|
|
34
39
|
enable: function() {
|
|
@@ -49,6 +54,25 @@
|
|
|
49
54
|
}
|
|
50
55
|
},
|
|
51
56
|
|
|
57
|
+
scrollBy: function(deltaX, deltaY, time, easing) {
|
|
58
|
+
this.scrollTo(
|
|
59
|
+
this.iscroll.x + deltaX,
|
|
60
|
+
this.iscroll.y + deltaY,
|
|
61
|
+
time,
|
|
62
|
+
easing
|
|
63
|
+
);
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
scrollTo: function(x, y, time, easing) {
|
|
67
|
+
this.iscroll.scrollTo(
|
|
68
|
+
Math.max(Math.min(x, 0), this.iscroll.maxScrollX),
|
|
69
|
+
Math.max(Math.min(y, 0), this.iscroll.maxScrollY),
|
|
70
|
+
time,
|
|
71
|
+
easing
|
|
72
|
+
);
|
|
73
|
+
this._onScrollEndCallbacks.fire();
|
|
74
|
+
},
|
|
75
|
+
|
|
52
76
|
refresh: function() {
|
|
53
77
|
this.iscroll.refresh();
|
|
54
78
|
},
|
|
@@ -61,16 +85,29 @@
|
|
|
61
85
|
this.iscroll.disable();
|
|
62
86
|
},
|
|
63
87
|
|
|
88
|
+
positionX: function() {
|
|
89
|
+
return this.iscroll.x;
|
|
90
|
+
},
|
|
91
|
+
|
|
64
92
|
positionY: function() {
|
|
65
93
|
return this.iscroll.y;
|
|
66
94
|
},
|
|
67
95
|
|
|
96
|
+
maxX: function() {
|
|
97
|
+
return this.iscroll.maxScrollX;
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
maxY: function() {
|
|
101
|
+
return this.iscroll.maxScrollY;
|
|
102
|
+
},
|
|
103
|
+
|
|
68
104
|
onScroll: function(callback) {
|
|
69
105
|
this.iscroll.on('scroll', callback);
|
|
70
106
|
},
|
|
71
107
|
|
|
72
108
|
onScrollEnd: function(callback) {
|
|
73
109
|
this.iscroll.on('scrollEnd', callback);
|
|
110
|
+
this._onScrollEndCallbacks.add(callback);
|
|
74
111
|
},
|
|
75
112
|
|
|
76
113
|
_initMoveEvents: function() {
|
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// pageflow.Object is now part of pageflow/base.js and no longer needs
|
|
2
|
+
// to be required by Pageflow extensions. Keep this file for backwards
|
|
3
|
+
// compatibility.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
this.initialize.apply(this, arguments);
|
|
7
|
-
};
|
|
8
|
-
_.extend(pageflow.Object.prototype, Backbone.Events, {
|
|
9
|
-
initialize: function(options) {}
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
// The self-propagating extend function that Backbone classes use.
|
|
13
|
-
pageflow.Object.extend = Backbone.Model.extend;
|
|
14
|
-
}());
|
|
5
|
+
//= require pageflow/object
|