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
@@ -19,7 +19,7 @@ pageflow.Page = Backbone.Model.extend({
|
|
19
19
|
this.configuration.parent = this.configuration.page = this;
|
20
20
|
|
21
21
|
this.listenTo(this.configuration, 'change', function() {
|
22
|
-
this.trigger('change:configuration');
|
22
|
+
this.trigger('change:configuration', this);
|
23
23
|
});
|
24
24
|
|
25
25
|
this.listenTo(this.configuration, 'change:title', function() {
|
@@ -50,13 +50,17 @@ pageflow.Page = Backbone.Model.extend({
|
|
50
50
|
thumbnailFile: function() {
|
51
51
|
var configuration = this.configuration;
|
52
52
|
|
53
|
-
return _.reduce(this.pageType().
|
53
|
+
return _.reduce(this.pageType().thumbnailCandidates(), function(result, candidate) {
|
54
54
|
return result || configuration.getReference(candidate.attribute, candidate.file_collection);
|
55
55
|
}, null);
|
56
56
|
},
|
57
57
|
|
58
|
+
pageLinks: function() {
|
59
|
+
return this.pageType().pageLinks(this.configuration);
|
60
|
+
},
|
61
|
+
|
58
62
|
pageType: function() {
|
59
|
-
return pageflow.
|
63
|
+
return pageflow.editor.pageTypes.findByName(this.get('template'));
|
60
64
|
},
|
61
65
|
|
62
66
|
toJSON: function() {
|
@@ -70,6 +74,9 @@ pageflow.Page = Backbone.Model.extend({
|
|
70
74
|
}
|
71
75
|
});
|
72
76
|
|
73
|
-
pageflow.Page.transitions = ['fade', 'scroll'];
|
74
77
|
pageflow.Page.linkedPagesLayouts = ['default', 'hero_top_left', 'hero_top_right'];
|
75
78
|
pageflow.Page.textPositions = ['left', 'right'];
|
79
|
+
|
80
|
+
pageflow.Page.scrollIndicatorModes = ['all', 'only_back', 'only_next', 'non'];
|
81
|
+
pageflow.Page.scrollIndicatorOrientations = ['vertical', 'horizontal'];
|
82
|
+
pageflow.Page.delayedTextFadeIn = ['no_fade', 'short', 'medium', 'long'];
|
@@ -0,0 +1,31 @@
|
|
1
|
+
pageflow.PreviewEntryData = pageflow.EntryData.extend({
|
2
|
+
initialize: function(options) {
|
3
|
+
this.chapters = options.chapters;
|
4
|
+
this.pages = options.pages;
|
5
|
+
this.theming = options.theming;
|
6
|
+
},
|
7
|
+
|
8
|
+
getThemingOption: function(name) {
|
9
|
+
return this.theming.get(name);
|
10
|
+
},
|
11
|
+
|
12
|
+
getChapterConfiguration: function(id) {
|
13
|
+
var chapter = this.chapters.get(id);
|
14
|
+
return chapter ? chapter.configuration.attributes : {};
|
15
|
+
},
|
16
|
+
|
17
|
+
getChapterPagePermaIds: function(id) {
|
18
|
+
var chapter = this.chapters.get(id);
|
19
|
+
return chapter ? chapter.pages.pluck('perma_id') : [];
|
20
|
+
},
|
21
|
+
|
22
|
+
getChapterIdByPagePermaId: function(permaId) {
|
23
|
+
var page = this.pages.getByPermaId(permaId);
|
24
|
+
return page && page.get('chapter_id');
|
25
|
+
},
|
26
|
+
|
27
|
+
getPageConfiguration: function(permaId) {
|
28
|
+
var page = this.pages.getByPermaId(permaId);
|
29
|
+
return page ? page.configuration.attributes : {};
|
30
|
+
}
|
31
|
+
});
|
@@ -7,5 +7,13 @@ pageflow.Theming = Backbone.Model.extend({
|
|
7
7
|
|
8
8
|
hasHomeButton: function() {
|
9
9
|
return this.get('home_button');
|
10
|
+
},
|
11
|
+
|
12
|
+
supportsEmphasizedPages: function() {
|
13
|
+
return this.get('emphasized_pages');
|
14
|
+
},
|
15
|
+
|
16
|
+
supportsScrollIndicatorModes: function() {
|
17
|
+
return this.get('scroll_indicator_modes');
|
10
18
|
}
|
11
19
|
});
|
@@ -9,6 +9,14 @@ pageflow.UploadedFile = Backbone.Model.extend({
|
|
9
9
|
return this.collection && this.collection.fileType;
|
10
10
|
},
|
11
11
|
|
12
|
+
title: function() {
|
13
|
+
return this.get('file_name');
|
14
|
+
},
|
15
|
+
|
16
|
+
thumbnailFile: function() {
|
17
|
+
return this;
|
18
|
+
},
|
19
|
+
|
12
20
|
isUploading: function() {
|
13
21
|
return this.get('state') === 'uploading';
|
14
22
|
},
|
@@ -0,0 +1 @@
|
|
1
|
+
<a href="#"></a>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<label>
|
2
|
+
<span class="name"></span>
|
3
|
+
<span class="inline_help"></span>
|
4
|
+
</label>
|
5
|
+
<div class="title"></div>
|
6
|
+
<a href="" class="unset" title="<%= I18n.t('pageflow.editor.templates.inputs.reference.reset') %>"></a>
|
7
|
+
<a href="" class="choose" title="<%= I18n.t('pageflow.editor.templates.inputs.reference.edit') %>"></a>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= I18n.t('pageflow.editor.templates.list_blank_slate.text') %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<span class="list_item_thumbnail"></span>
|
2
|
+
<span class="list_item_missing_thumbnail"></span>
|
3
|
+
<span class="list_item_type_pictogram type_pictogram"></span>
|
4
|
+
|
5
|
+
<div class="list_item_title"></div>
|
6
|
+
<div class="list_item_description"></div>
|
7
|
+
|
8
|
+
<div class="list_item_buttons">
|
9
|
+
<a class="list_item_edit_button" title="<%= I18n.t('pageflow.editor.templates.list_item.edit') %>"></a>
|
10
|
+
<a class="list_item_remove_button" title="<%= I18n.t('pageflow.editor.templates.list_item.remove') %>"></a>
|
11
|
+
</div>
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
<%= I18n.t('pageflow.editor.templates.other_entries_blank_slate.none_available') %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div class="box">
|
2
|
+
<h2><%= I18n.t('pageflow.editor.templates.page_selection.title') %></h2>
|
3
|
+
|
4
|
+
<div class="wrapper editor">
|
5
|
+
<ul class="chapters">
|
6
|
+
</ul>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="footer">
|
10
|
+
<a href="" class="close"><%= I18n.t('pageflow.editor.templates.page_selection.cancel') %></a>
|
11
|
+
</div>
|
12
|
+
</div>
|
@@ -23,16 +23,52 @@
|
|
23
23
|
<div class="radio_input">
|
24
24
|
<input id="publish_entry_until" type="radio" name="mode" value="publish_until">
|
25
25
|
<label for="publish_entry_until"><%= I18n.t('pageflow.editor.templates.publish_entry.until_including') %></label>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="publish_until_fields disabled">
|
29
|
+
<label>
|
30
|
+
<%= I18n.t('pageflow.editor.templates.publish_entry.date') %>
|
31
|
+
<input type="text" name="publish_until">
|
32
|
+
</label>
|
33
|
+
|
34
|
+
<label>
|
35
|
+
<%= I18n.t('pageflow.editor.templates.publish_entry.time') %>
|
36
|
+
<input type="text" name="publish_until_time" value="00:00">
|
37
|
+
</label>
|
38
|
+
</div>
|
39
|
+
|
40
|
+
<div class="check_box_input">
|
41
|
+
<input id="publish_password_protected" type="checkbox" name="password_protected" value="1">
|
42
|
+
<label for="publish_password_protected">
|
43
|
+
<span class="name">
|
44
|
+
<%= I18n.t('pageflow.editor.templates.publish_entry.password_protected') %>
|
45
|
+
</span>
|
46
|
+
<span class="inline_help">
|
47
|
+
<%= I18n.t('pageflow.editor.templates.publish_entry.password_help') %>
|
48
|
+
</span>
|
49
|
+
</label>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
<div class="password_fields disabled">
|
53
|
+
<label>
|
54
|
+
<%= I18n.t('pageflow.editor.templates.publish_entry.user_name') %>
|
55
|
+
<input type="text" name="user_name" disabled>
|
56
|
+
</label>
|
26
57
|
|
27
|
-
<
|
28
|
-
|
29
|
-
|
30
|
-
|
58
|
+
<label>
|
59
|
+
<%= I18n.t('pageflow.editor.templates.publish_entry.password') %>
|
60
|
+
<input type="text" name="password">
|
61
|
+
</label>
|
31
62
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
63
|
+
<p class="already_published_with_password">
|
64
|
+
<%= I18n.t('pageflow.editor.templates.publish_entry.already_published_with_password_help') %>
|
65
|
+
</p>
|
66
|
+
<p class="previously_published_with_password">
|
67
|
+
<%= I18n.t('pageflow.editor.templates.publish_entry.previously_published_with_password_help') %>
|
68
|
+
</p>
|
69
|
+
<p class="already_published_without_password">
|
70
|
+
<%= I18n.t('pageflow.editor.templates.publish_entry.already_published_without_password_help') %>
|
71
|
+
</p>
|
36
72
|
</div>
|
37
73
|
|
38
74
|
<button class="save" disabled><%= I18n.t('pageflow.editor.templates.publish_entry.publish') %></a>
|
@@ -13,7 +13,9 @@ pageflow.ChapterItemView = Backbone.Marionette.ItemView.extend({
|
|
13
13
|
},
|
14
14
|
|
15
15
|
onRender: function() {
|
16
|
-
this.
|
16
|
+
var collectionView = this.options.sortable ? pageflow.SortableCollectionView : pageflow.CollectionView;
|
17
|
+
|
18
|
+
this.subview(new collectionView({
|
17
19
|
el: this.ui.pages,
|
18
20
|
collection: this.model.pages,
|
19
21
|
itemViewConstructor: this.options.pageItemView || pageflow.NavigatablePageItemView,
|
@@ -1,5 +1,37 @@
|
|
1
|
-
pageflow.ConfigurationEditorTabView.groups.define('options', function() {
|
1
|
+
pageflow.ConfigurationEditorTabView.groups.define('options', function(options) {
|
2
2
|
this.input('display_in_navigation', pageflow.CheckBoxInputView);
|
3
|
-
|
3
|
+
|
4
|
+
if (pageflow.theming.supportsEmphasizedPages()) {
|
5
|
+
this.input('emphasize_in_navigation', pageflow.CheckBoxInputView);
|
6
|
+
}
|
7
|
+
|
8
|
+
this.group('page_transitions');
|
9
|
+
|
10
|
+
if (pageflow.features.isEnabled('delayed_text_fade_in')) {
|
11
|
+
this.input('delayed_text_fade_in', pageflow.SelectInputView, {values: pageflow.Page.delayedTextFadeIn});
|
12
|
+
}
|
13
|
+
|
4
14
|
this.input('description', pageflow.TextAreaInputView, {size: 'short'});
|
15
|
+
|
16
|
+
if (pageflow.features.isEnabled('atmo')) {
|
17
|
+
this.input('atmo_audio_file_id', pageflow.FileInputView, {
|
18
|
+
collection: pageflow.audioFiles
|
19
|
+
});
|
20
|
+
|
21
|
+
if (options.canPauseAtmo) {
|
22
|
+
this.input('atmo_during_playback', pageflow.SelectInputView, {
|
23
|
+
values: pageflow.Atmo.duringPlaybackModes
|
24
|
+
});
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
if (pageflow.theming.supportsScrollIndicatorModes()) {
|
29
|
+
this.input('scroll_indicator_mode', pageflow.SelectInputView, {
|
30
|
+
values: pageflow.Page.scrollIndicatorModes
|
31
|
+
});
|
32
|
+
|
33
|
+
this.input('scroll_indicator_orientation', pageflow.SelectInputView, {
|
34
|
+
values: pageflow.Page.scrollIndicatorOrientations
|
35
|
+
});
|
36
|
+
}
|
5
37
|
});
|
@@ -28,7 +28,12 @@ pageflow.ConfigurationEditorView.register('video', {
|
|
28
28
|
|
29
29
|
this.tab('options', function() {
|
30
30
|
this.input('autoplay', pageflow.CheckBoxInputView);
|
31
|
-
|
31
|
+
|
32
|
+
if (pageflow.features.isEnabled('auto_change_page')) {
|
33
|
+
this.input('auto_change_page_on_ended', pageflow.CheckBoxInputView);
|
34
|
+
}
|
35
|
+
|
36
|
+
this.group('options', {canPauseAtmo: true});
|
32
37
|
});
|
33
38
|
}
|
34
39
|
});
|
@@ -0,0 +1,27 @@
|
|
1
|
+
pageflow.DisabledAtmoIndicatorView = Backbone.Marionette.View.extend({
|
2
|
+
className: 'disabled_atmo_indicator',
|
3
|
+
|
4
|
+
events: {
|
5
|
+
'click': function() {
|
6
|
+
pageflow.atmo.enable();
|
7
|
+
}
|
8
|
+
},
|
9
|
+
|
10
|
+
initialize: function() {
|
11
|
+
this.listenTo(pageflow.events, 'atmo:disabled', function() {
|
12
|
+
this.$el.show();
|
13
|
+
});
|
14
|
+
|
15
|
+
this.listenTo(pageflow.events, 'atmo:enabled', function() {
|
16
|
+
this.$el.hide();
|
17
|
+
});
|
18
|
+
|
19
|
+
this.$el.toggle(pageflow.atmo.disabled);
|
20
|
+
},
|
21
|
+
|
22
|
+
render: function() {
|
23
|
+
this.$el.attr('title', I18n.t('pageflow.editor.atmo.disabled'));
|
24
|
+
|
25
|
+
return this;
|
26
|
+
}
|
27
|
+
});
|
@@ -0,0 +1,33 @@
|
|
1
|
+
/** @api private */
|
2
|
+
pageflow.DropDownButtonItemView = Backbone.Marionette.ItemView.extend({
|
3
|
+
template: 'pageflow/editor/templates/drop_down_button_item',
|
4
|
+
tagName: 'li',
|
5
|
+
className: 'drop_down_button_item',
|
6
|
+
|
7
|
+
ui: {
|
8
|
+
link: '> a'
|
9
|
+
},
|
10
|
+
|
11
|
+
events: {
|
12
|
+
'click > a': function() {
|
13
|
+
if (!this.model.get('disabled')) {
|
14
|
+
this.model.selected();
|
15
|
+
}
|
16
|
+
|
17
|
+
return false;
|
18
|
+
}
|
19
|
+
},
|
20
|
+
|
21
|
+
modelEvents: {
|
22
|
+
change: 'update'
|
23
|
+
},
|
24
|
+
|
25
|
+
onRender: function() {
|
26
|
+
this.update();
|
27
|
+
},
|
28
|
+
|
29
|
+
update: function() {
|
30
|
+
this.ui.link.text(this.model.get('label'));
|
31
|
+
this.$el.toggleClass('is_disabled', !!this.model.get('disabled'));
|
32
|
+
}
|
33
|
+
});
|
@@ -0,0 +1,80 @@
|
|
1
|
+
/**
|
2
|
+
* A button that displays a drop down menu on hover.
|
3
|
+
*
|
4
|
+
* @option label [String]
|
5
|
+
* @options items [Backbone.Collection] The `label` attribute is used
|
6
|
+
* as text for the item. Items can be disabled by setting the
|
7
|
+
* `disabled` property to `true`. On click a `selected` method is
|
8
|
+
* called on the item model.
|
9
|
+
*/
|
10
|
+
pageflow.DropDownButtonView = Backbone.Marionette.ItemView.extend({
|
11
|
+
template: 'pageflow/editor/templates/drop_down_button',
|
12
|
+
className: 'drop_down_button',
|
13
|
+
|
14
|
+
ui: {
|
15
|
+
button: '> button',
|
16
|
+
menu: '.drop_down_button_menu',
|
17
|
+
items: '.drop_down_button_items'
|
18
|
+
},
|
19
|
+
|
20
|
+
events: {
|
21
|
+
'mouseenter': function() {
|
22
|
+
this.positionMenu();
|
23
|
+
this.showMenu();
|
24
|
+
},
|
25
|
+
|
26
|
+
'mouseleave': function() {
|
27
|
+
this.hideMenu();
|
28
|
+
}
|
29
|
+
},
|
30
|
+
|
31
|
+
onRender: function() {
|
32
|
+
var view = this;
|
33
|
+
|
34
|
+
this.ui.button.text(this.options.label);
|
35
|
+
|
36
|
+
this.subview(new pageflow.CollectionView({
|
37
|
+
el: this.ui.items,
|
38
|
+
collection: this.options.items,
|
39
|
+
itemViewConstructor: pageflow.DropDownButtonItemView
|
40
|
+
}));
|
41
|
+
|
42
|
+
this.ui.menu.on({
|
43
|
+
'mouseenter': function() {
|
44
|
+
view.showMenu();
|
45
|
+
},
|
46
|
+
|
47
|
+
'mouseleave': function() {
|
48
|
+
view.hideMenu();
|
49
|
+
}
|
50
|
+
});
|
51
|
+
|
52
|
+
this.ui.menu.appendTo('#editor_menu_container');
|
53
|
+
},
|
54
|
+
|
55
|
+
onClose: function() {
|
56
|
+
this.ui.menu.remove();
|
57
|
+
},
|
58
|
+
|
59
|
+
positionMenu: function() {
|
60
|
+
var offset = this.$el.offset();
|
61
|
+
|
62
|
+
this.ui.menu.css({
|
63
|
+
top: offset.top + this.$el.height(),
|
64
|
+
left: offset.left
|
65
|
+
});
|
66
|
+
},
|
67
|
+
|
68
|
+
showMenu: function() {
|
69
|
+
clearTimeout(this.hideMenuTimeout);
|
70
|
+
this.ui.menu.addClass('is_visible');
|
71
|
+
},
|
72
|
+
|
73
|
+
hideMenu: function() {
|
74
|
+
this.hideMenuTimeout = setTimeout(_.bind(function() {
|
75
|
+
if (!this.isClosed) {
|
76
|
+
this.ui.menu.removeClass('is_visible');
|
77
|
+
}
|
78
|
+
}, this), 500);
|
79
|
+
}
|
80
|
+
});
|