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.

Files changed (293) hide show
  1. checksums.yaml +8 -8
  2. data/CHANGELOG.md +810 -0
  3. data/README.md +179 -0
  4. data/admins/pageflow/accounts.rb +46 -3
  5. data/admins/pageflow/entry.rb +35 -7
  6. data/app/assets/javascripts/pageflow/audio.js +62 -0
  7. data/app/assets/javascripts/pageflow/audio/multi_player.js +127 -0
  8. data/app/assets/javascripts/pageflow/audio/player_pool.js +15 -0
  9. data/app/assets/javascripts/pageflow/audio_player.js +23 -1
  10. data/app/assets/javascripts/pageflow/audio_player/null.js +37 -0
  11. data/app/assets/javascripts/pageflow/audio_player/pause_in_background.js +34 -0
  12. data/app/assets/javascripts/pageflow/audio_player/rewind_method.js +17 -0
  13. data/app/assets/javascripts/pageflow/audio_player/seek_with_invalid_state_handling.js +41 -0
  14. data/app/assets/javascripts/pageflow/base.js +10 -0
  15. data/app/assets/javascripts/pageflow/browser.js +123 -0
  16. data/app/assets/javascripts/pageflow/{features → browser}/hashchange_support.js +1 -1
  17. data/app/assets/javascripts/pageflow/{features → browser}/high_bandwidth.js +1 -1
  18. data/app/assets/javascripts/pageflow/{features → browser}/ie_platform.js +1 -1
  19. data/app/assets/javascripts/pageflow/browser/ios_platform.js +6 -0
  20. data/app/assets/javascripts/pageflow/{features → browser}/mobile_platform.js +1 -1
  21. data/app/assets/javascripts/pageflow/{features → browser}/phone_platform.js +1 -1
  22. data/app/assets/javascripts/pageflow/browser/pushstate_support.js +3 -0
  23. data/app/assets/javascripts/pageflow/{features → browser}/touch_support.js +1 -1
  24. data/app/assets/javascripts/pageflow/browser/video.js +16 -0
  25. data/app/assets/javascripts/pageflow/browser/volume_control_support.js +3 -0
  26. data/app/assets/javascripts/pageflow/chapter_filter.js +56 -0
  27. data/app/assets/javascripts/pageflow/editor/api.js +29 -0
  28. data/app/assets/javascripts/pageflow/editor/api/page_type.js +42 -0
  29. data/app/assets/javascripts/pageflow/editor/api/page_types.js +47 -0
  30. data/app/assets/javascripts/pageflow/editor/base.js +7 -1
  31. data/app/assets/javascripts/pageflow/editor/collections/subset_collection.js +5 -1
  32. data/app/assets/javascripts/pageflow/editor/initializers/boot.js +10 -2
  33. data/app/assets/javascripts/pageflow/editor/initializers/setup_audio.js +8 -0
  34. data/app/assets/javascripts/pageflow/editor/initializers/setup_collections.js +7 -0
  35. data/app/assets/javascripts/pageflow/editor/initializers/setup_features.js +3 -0
  36. data/app/assets/javascripts/pageflow/editor/initializers/setup_hotkeys.js +20 -0
  37. data/app/assets/javascripts/pageflow/editor/initializers/setup_page_types.js +1 -6
  38. data/app/assets/javascripts/pageflow/editor/models/audio_file.js +8 -0
  39. data/app/assets/javascripts/pageflow/editor/models/chapter.js +23 -4
  40. data/app/assets/javascripts/pageflow/editor/models/chapter_configuration.js +7 -0
  41. data/app/assets/javascripts/pageflow/editor/models/configuration.js +5 -3
  42. data/app/assets/javascripts/pageflow/editor/models/entry.js +6 -4
  43. data/app/assets/javascripts/pageflow/editor/models/mixins/delayed_destroying.js +1 -1
  44. data/app/assets/javascripts/pageflow/editor/models/mixins/stage_provider.js +3 -2
  45. data/app/assets/javascripts/pageflow/editor/models/page.js +11 -4
  46. data/app/assets/javascripts/pageflow/editor/models/preview_entry_data.js +31 -0
  47. data/app/assets/javascripts/pageflow/editor/models/theming.js +8 -0
  48. data/app/assets/javascripts/pageflow/editor/models/uploaded_file.js +8 -0
  49. data/app/assets/javascripts/pageflow/editor/templates/drop_down_button.jst.ejs +6 -0
  50. data/app/assets/javascripts/pageflow/editor/templates/drop_down_button_item.jst.ejs +1 -0
  51. data/app/assets/javascripts/pageflow/editor/templates/files_explorer.jst.ejs +2 -2
  52. data/app/assets/javascripts/pageflow/editor/templates/inputs/reference.jst.ejs +7 -0
  53. data/app/assets/javascripts/pageflow/editor/templates/list.jst.ejs +5 -0
  54. data/app/assets/javascripts/pageflow/editor/templates/list_blank_slate.jst.ejs +1 -0
  55. data/app/assets/javascripts/pageflow/editor/templates/list_item.jst.ejs +11 -0
  56. data/app/assets/javascripts/pageflow/editor/templates/loading.jst.ejs +7 -1
  57. data/app/assets/javascripts/pageflow/editor/templates/other_entries_blank_slate.jst.ejs +1 -1
  58. data/app/assets/javascripts/pageflow/editor/templates/page_link_item.jst.ejs +7 -0
  59. data/app/assets/javascripts/pageflow/editor/templates/page_links.jst.ejs +6 -0
  60. data/app/assets/javascripts/pageflow/editor/templates/page_selection.jst.ejs +12 -0
  61. data/app/assets/javascripts/pageflow/editor/templates/publish_entry.jst.ejs +44 -8
  62. data/app/assets/javascripts/pageflow/editor/views/chapter_item_view.js +3 -1
  63. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio.js +1 -1
  64. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/options.js +34 -2
  65. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/page_transitions.js +6 -0
  66. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +6 -1
  67. data/app/assets/javascripts/pageflow/editor/views/disabled_atmo_indicator_view.js +27 -0
  68. data/app/assets/javascripts/pageflow/editor/views/drop_down_button_item_view.js +33 -0
  69. data/app/assets/javascripts/pageflow/editor/views/drop_down_button_view.js +80 -0
  70. data/app/assets/javascripts/pageflow/editor/views/edit_chapter_view.js +25 -5
  71. data/app/assets/javascripts/pageflow/editor/views/edit_entry_view.js +9 -1
  72. data/app/assets/javascripts/pageflow/editor/views/edit_page_view.js +7 -5
  73. data/app/assets/javascripts/pageflow/editor/views/edit_widget_view.js +1 -1
  74. data/app/assets/javascripts/pageflow/editor/views/embedded/background_image_embedded_view.js +4 -1
  75. data/app/assets/javascripts/pageflow/editor/views/embedded/lazy_video_embedded_view.js +41 -0
  76. data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +6 -6
  77. data/app/assets/javascripts/pageflow/editor/views/inputs/page_link_input_view.js +9 -0
  78. data/app/assets/javascripts/pageflow/editor/views/inputs/reference_input_view.js +66 -0
  79. data/app/assets/javascripts/pageflow/editor/views/list_item_view.js +95 -0
  80. data/app/assets/javascripts/pageflow/editor/views/list_view.js +59 -0
  81. data/app/assets/javascripts/pageflow/editor/views/loading_view.js +5 -0
  82. data/app/assets/javascripts/pageflow/editor/views/model_thumbnail_view.js +37 -0
  83. data/app/assets/javascripts/pageflow/editor/views/navigatable_page_item_view.js +1 -0
  84. data/app/assets/javascripts/pageflow/editor/views/other_entries_collection_view.js +4 -4
  85. data/app/assets/javascripts/pageflow/editor/views/other_entry_item_view.js +2 -1
  86. data/app/assets/javascripts/pageflow/editor/views/page_item_view.js +2 -2
  87. data/app/assets/javascripts/pageflow/editor/views/page_link_item_view.js +51 -0
  88. data/app/assets/javascripts/pageflow/editor/views/page_links_view.js +45 -0
  89. data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +24 -16
  90. data/app/assets/javascripts/pageflow/editor/views/page_selection_view.js +46 -0
  91. data/app/assets/javascripts/pageflow/editor/views/page_thumbnail_view.js +2 -29
  92. data/app/assets/javascripts/pageflow/editor/views/publish_entry_view.js +95 -10
  93. data/app/assets/javascripts/pageflow/editor/views/scrolling_view.js +24 -0
  94. data/app/assets/javascripts/pageflow/entry_data.js +35 -0
  95. data/app/assets/javascripts/pageflow/features.js +68 -98
  96. data/app/assets/javascripts/pageflow/fullscreen.js +24 -0
  97. data/app/assets/javascripts/pageflow/highlighted_page.js +48 -0
  98. data/app/assets/javascripts/pageflow/history.js +50 -18
  99. data/app/assets/javascripts/pageflow/history/hash_adapter.js +36 -0
  100. data/app/assets/javascripts/pageflow/history/push_state_adapter.js +37 -0
  101. data/app/assets/javascripts/pageflow/history/simulated_adapter.js +44 -0
  102. data/app/assets/javascripts/pageflow/media_player.js +25 -0
  103. data/app/assets/javascripts/pageflow/media_player/async_play.js +54 -0
  104. data/app/assets/javascripts/pageflow/media_player/hooks.js +24 -0
  105. data/app/assets/javascripts/pageflow/media_player/load_waiting.js +11 -0
  106. data/app/assets/javascripts/pageflow/media_player/volume_binding.js +72 -0
  107. data/app/assets/javascripts/pageflow/media_player/volume_fading.js +62 -0
  108. data/app/assets/javascripts/pageflow/multimedia_alert.js +13 -0
  109. data/app/assets/javascripts/pageflow/object.js +14 -0
  110. data/app/assets/javascripts/pageflow/page_transitions.js +27 -0
  111. data/app/assets/javascripts/pageflow/page_type.js +6 -0
  112. data/app/assets/javascripts/pageflow/page_types/audio.js +17 -21
  113. data/app/assets/javascripts/pageflow/page_types/background_video.js +18 -17
  114. data/app/assets/javascripts/pageflow/page_types/mixins/common_page_css_classes.js +29 -4
  115. data/app/assets/javascripts/pageflow/page_types/video.js +73 -36
  116. data/app/assets/javascripts/pageflow/preload.js +9 -6
  117. data/app/assets/javascripts/pageflow/ready.js +18 -14
  118. data/app/assets/javascripts/pageflow/seed_entry_data.js +43 -0
  119. data/app/assets/javascripts/pageflow/settings.js +17 -4
  120. data/app/assets/javascripts/pageflow/slideshow.js +103 -23
  121. data/app/assets/javascripts/pageflow/slideshow/adjacent_pages.js +26 -0
  122. data/app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js +44 -0
  123. data/app/assets/javascripts/pageflow/slideshow/atmo.js +105 -0
  124. data/app/assets/javascripts/pageflow/slideshow/dom_order_scroll_navigator.js +29 -0
  125. data/app/assets/javascripts/pageflow/slideshow/lazy_page_widget.js +49 -0
  126. data/app/assets/javascripts/pageflow/slideshow/page_widget.js +60 -26
  127. data/app/assets/javascripts/pageflow/slideshow/progressive_preload.js +16 -7
  128. data/app/assets/javascripts/pageflow/slideshow/scroll_indicator_widget.js +45 -7
  129. data/app/assets/javascripts/pageflow/slideshow/scroller_widget.js +42 -5
  130. data/app/assets/javascripts/pageflow/ui.js +1 -0
  131. data/app/assets/javascripts/pageflow/ui/object.js +4 -13
  132. data/app/assets/javascripts/pageflow/ui/utils/i18n_utils.js +23 -0
  133. data/app/assets/javascripts/pageflow/ui/views/collection_view.js +8 -4
  134. data/app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js +6 -5
  135. data/app/assets/javascripts/pageflow/ui/views/configuration_editor_view.js +2 -11
  136. data/app/assets/javascripts/pageflow/ui/views/inputs/select_input_view.js +6 -1
  137. data/app/assets/javascripts/pageflow/ui/views/inputs/text_input_view.js +4 -0
  138. data/app/assets/javascripts/pageflow/ui/views/mixins/input_view.js +149 -6
  139. data/app/assets/javascripts/pageflow/ui/views/mixins/subview_container.js +4 -0
  140. data/app/assets/javascripts/pageflow/video_player.js +5 -0
  141. data/app/assets/javascripts/pageflow/video_player/buffer_underrun_waiting.js +1 -1
  142. data/app/assets/javascripts/pageflow/video_player/lazy.js +8 -4
  143. data/app/assets/javascripts/pageflow/video_player/media_events.js +1 -1
  144. data/app/assets/javascripts/pageflow/video_player/play_button_patch.js +1 -1
  145. data/app/assets/javascripts/pageflow/video_player/prebuffering.js +1 -1
  146. data/app/assets/javascripts/pageflow/widgets/fullscreen_button.js +26 -0
  147. data/app/assets/javascripts/pageflow/widgets/multimedia_alert.js +21 -5
  148. data/app/assets/javascripts/pageflow/widgets/mute_button.js +42 -0
  149. data/app/assets/javascripts/pageflow/widgets/navigation.js +5 -78
  150. data/app/assets/javascripts/pageflow/widgets/navigation_mobile.js +4 -0
  151. data/app/assets/javascripts/pageflow/widgets/page_navigation_list.js +28 -34
  152. data/app/assets/javascripts/pageflow/widgets/parent_page_button.js +27 -0
  153. data/app/assets/javascripts/pageflow/widgets/skip_page_button.js +22 -0
  154. data/app/assets/javascripts/pageflow/widgets/top_button.js +6 -7
  155. data/app/assets/javascripts/pageflow/widgets/volume_slider.js +62 -0
  156. data/app/assets/stylesheets/pageflow/admin/entries.css.scss +10 -0
  157. data/app/assets/stylesheets/pageflow/animations.css.scss +1 -0
  158. data/app/assets/stylesheets/pageflow/animations/loading.css.scss +8 -0
  159. data/app/assets/stylesheets/pageflow/animations/scroll.css.scss +18 -0
  160. data/app/assets/stylesheets/pageflow/base.css.scss +3 -1
  161. data/app/assets/stylesheets/pageflow/delayed_text_fade_in.css.scss +49 -0
  162. data/app/assets/stylesheets/pageflow/editor/base.css.scss +15 -2
  163. data/app/assets/stylesheets/pageflow/editor/disabled_atmo_indicator.css.scss +13 -0
  164. data/app/assets/stylesheets/pageflow/editor/drop_down_button.css.scss +54 -0
  165. data/app/assets/stylesheets/pageflow/editor/files_explorer.css.scss +6 -0
  166. data/app/assets/stylesheets/pageflow/editor/indicators.css.scss +5 -0
  167. data/app/assets/stylesheets/pageflow/editor/inputs.css.scss +1 -0
  168. data/app/assets/stylesheets/pageflow/editor/inputs/reference.css.scss +51 -0
  169. data/app/assets/stylesheets/pageflow/editor/list.css.scss +108 -0
  170. data/app/assets/stylesheets/pageflow/editor/loading.css.scss +31 -0
  171. data/app/assets/stylesheets/pageflow/editor/outline.css.scss +7 -5
  172. data/app/assets/stylesheets/pageflow/editor/page_links.css.scss +58 -0
  173. data/app/assets/stylesheets/pageflow/editor/page_selection.css.scss +39 -0
  174. data/app/assets/stylesheets/pageflow/editor/publish_entry.css.scss +38 -1
  175. data/app/assets/stylesheets/pageflow/entries.css.scss +17 -9
  176. data/app/assets/stylesheets/pageflow/navigation_bar.css.scss +4 -0
  177. data/app/assets/stylesheets/pageflow/page_transitions.css.scss +10 -0
  178. data/app/assets/stylesheets/pageflow/page_transitions/crossfade.css.scss +29 -0
  179. data/app/assets/stylesheets/pageflow/page_transitions/cut.css.scss +23 -0
  180. data/app/assets/stylesheets/pageflow/page_transitions/fade.css.scss +78 -0
  181. data/app/assets/stylesheets/pageflow/page_transitions/fade_to_black.css.scss +107 -0
  182. data/app/assets/stylesheets/pageflow/page_transitions/scroll.css.scss +20 -0
  183. data/app/assets/stylesheets/pageflow/page_transitions/scroll_in.css.scss +66 -0
  184. data/app/assets/stylesheets/pageflow/page_transitions/scroll_in_right.css.scss +68 -0
  185. data/app/assets/stylesheets/pageflow/page_transitions/scroll_left.css.scss +20 -0
  186. data/app/assets/stylesheets/pageflow/page_transitions/scroll_right.css.scss +20 -0
  187. data/app/assets/stylesheets/pageflow/page_types.css.scss +1 -3
  188. data/app/assets/stylesheets/pageflow/page_types/video.css.scss +0 -4
  189. data/app/assets/stylesheets/pageflow/slideshow.css.scss +0 -145
  190. data/app/assets/stylesheets/pageflow/text_variants.css.scss +0 -4
  191. data/app/assets/stylesheets/pageflow/themes/default/navigation.css.scss +0 -3
  192. data/app/controllers/concerns/pageflow/public_https_mode.rb +13 -0
  193. data/app/controllers/pageflow/application_controller.rb +0 -6
  194. data/app/controllers/pageflow/chapters_controller.rb +2 -1
  195. data/app/controllers/pageflow/editor/entries_controller.rb +2 -0
  196. data/app/controllers/pageflow/editor/entry_publications_controller.rb +3 -1
  197. data/app/controllers/pageflow/entries_controller.rb +16 -3
  198. data/app/controllers/pageflow/files_controller.rb +3 -1
  199. data/app/helpers/pageflow/admin/features_helper.rb +25 -0
  200. data/app/helpers/pageflow/background_image_helper.rb +40 -9
  201. data/app/helpers/pageflow/entries_helper.rb +10 -11
  202. data/app/helpers/pageflow/entry_json_seed_helper.rb +44 -0
  203. data/app/helpers/pageflow/help_entries_helper.rb +4 -4
  204. data/app/helpers/pageflow/page_types_helper.rb +4 -2
  205. data/app/helpers/pageflow/pages_helper.rb +20 -27
  206. data/app/helpers/pageflow/widgets_helper.rb +4 -4
  207. data/app/models/concerns/pageflow/feature_target.rb +37 -0
  208. data/app/models/pageflow/account.rb +2 -0
  209. data/app/models/pageflow/chapter.rb +6 -0
  210. data/app/models/pageflow/draft_entry.rb +2 -0
  211. data/app/models/pageflow/entry.rb +47 -9
  212. data/app/models/pageflow/entry_duplicate.rb +51 -0
  213. data/app/models/pageflow/image_file.rb +33 -13
  214. data/app/models/pageflow/page.rb +2 -2
  215. data/app/models/pageflow/published_entry.rb +7 -1
  216. data/app/views/admin/accounts/_form.html.erb +11 -1
  217. data/app/views/admin/features/_form.html.erb +16 -0
  218. data/app/views/components/pageflow/admin/features_tab.rb +10 -0
  219. data/app/views/components/pageflow/admin/revisions_tab.rb +4 -0
  220. data/app/views/layouts/pageflow/_meta_tags.html.erb +1 -1
  221. data/app/views/layouts/pageflow/application.html.erb +2 -2
  222. data/app/views/pageflow/editor/accounts/_account.json.jbuilder +1 -0
  223. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +2 -1
  224. data/app/views/pageflow/editor/entries/_help_entries_seed.html.erb +2 -2
  225. data/app/views/pageflow/editor/entries/_indicators_seed.html.erb +3 -0
  226. data/app/views/pageflow/editor/entries/seed.json.erb +3 -2
  227. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +1 -0
  228. data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +1 -1
  229. data/app/views/pageflow/editor/themings/_theming.json.jbuilder +4 -0
  230. data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +1 -0
  231. data/app/views/pageflow/entries/_entry.html.erb +4 -3
  232. data/app/views/pageflow/entries/_indicators.html.erb +13 -0
  233. data/app/views/pageflow/entries/_mobile_navigation.html.erb +3 -15
  234. data/app/views/pageflow/entries/edit.html.erb +9 -1
  235. data/app/views/pageflow/entries/navigation/_bar_top.html.erb +3 -15
  236. data/app/views/pageflow/entries/share_menu/_facebook_link.html.erb +12 -0
  237. data/app/views/pageflow/entries/share_menu/_google_link.html.erb +12 -0
  238. data/app/views/pageflow/entries/share_menu/_twitter_link.html.erb +12 -0
  239. data/app/views/pageflow/entries/show.css.erb +12 -2
  240. data/app/views/pageflow/entries/show.html.erb +5 -1
  241. data/app/views/pageflow/page_types/_page_type.json.jbuilder +7 -1
  242. data/app/views/pageflow/pages/_page.html.erb +2 -2
  243. data/app/views/pageflow/pages/templates/_audio.html.erb +10 -0
  244. data/config/initializers/admin_resource_tabs.rb +1 -0
  245. data/config/initializers/features.rb +9 -0
  246. data/config/initializers/page_type_helpers.rb +1 -1
  247. data/config/initializers/paperclip.rb +1 -1
  248. data/config/initializers/zencoder.rb +1 -1
  249. data/config/locales/de.yml +132 -71
  250. data/config/locales/en.yml +118 -191
  251. data/db/migrate/20141211110226_add_configuration_to_chapters.rb +5 -0
  252. data/db/migrate/20150115175116_add_features_configuration_to_accounts.rb +5 -0
  253. data/db/migrate/20150115175207_add_features_configuration_to_entries.rb +5 -0
  254. data/db/migrate/20150603091823_add_password_attributes_to_revisions.rb +6 -0
  255. data/db/migrate/20151022080518_add_first_published_at_to_entries.rb +14 -0
  256. data/lib/generators/pageflow/initializer/templates/pageflow.rb +26 -17
  257. data/lib/generators/pageflow/theme/theme_generator.rb +2 -1
  258. data/lib/pageflow.rb +2 -46
  259. data/lib/pageflow/admin/form_input.rb +18 -0
  260. data/lib/pageflow/admin/form_inputs.rb +41 -0
  261. data/lib/pageflow/built_in_page_type.rb +0 -4
  262. data/lib/pageflow/configuration.rb +74 -18
  263. data/lib/pageflow/feature.rb +33 -0
  264. data/lib/pageflow/features.rb +68 -0
  265. data/lib/pageflow/global_config_api.rb +118 -0
  266. data/lib/pageflow/page_type_feature.rb +21 -0
  267. data/lib/pageflow/page_types.rb +29 -0
  268. data/lib/pageflow/theme.rb +20 -0
  269. data/lib/pageflow/themes.rb +26 -0
  270. data/lib/pageflow/version.rb +1 -1
  271. data/spec/factories/entries.rb +6 -0
  272. data/spec/factories/feature_targets.rb +4 -0
  273. data/spec/fixtures/image.gif +0 -0
  274. data/spec/fixtures/video.mp4 +0 -0
  275. data/vendor/assets/javascripts/audio5.min.js +12 -8
  276. data/vendor/assets/javascripts/iscroll.js +1 -1
  277. metadata +144 -24
  278. data/app/assets/images/pageflow/internal_links_pictogram.png +0 -0
  279. data/app/assets/images/pageflow/internal_links_pictogram_small.png +0 -0
  280. data/app/assets/images/pageflow/internal_links_sprite.png +0 -0
  281. data/app/assets/images/pageflow/ov-internal_links.png +0 -0
  282. data/app/assets/images/pageflow/themes/default/internal_links_sprite.png +0 -0
  283. data/app/assets/javascripts/pageflow/editor/templates/embedded/page_link.jst.ejs +0 -3
  284. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/internal_links.js +0 -24
  285. data/app/assets/javascripts/pageflow/editor/views/draggable_page_item_view.js +0 -31
  286. data/app/assets/javascripts/pageflow/editor/views/embedded/page_link_embedded_view.js +0 -176
  287. data/app/assets/javascripts/pageflow/features/video.js +0 -16
  288. data/app/assets/javascripts/pageflow/page_types/internal_links.js +0 -55
  289. data/app/assets/javascripts/pageflow/ui/templates/inputs/page_reference.jst.ejs +0 -6
  290. data/app/assets/javascripts/pageflow/ui/views/inputs/page_reference_input_view.js +0 -44
  291. data/app/assets/stylesheets/pageflow/editor/embedded.css.scss +0 -104
  292. data/app/assets/stylesheets/pageflow/page_types/internal_links.css.scss +0 -222
  293. data/app/views/pageflow/pages/templates/_internal_links.html.erb +0 -31
@@ -1,3 +0,0 @@
1
- <a class="reset" href="" title="<%= I18n.t('pageflow.editor.templates.embedded.page_link.reset') %>"></a>
2
- <div class="placeholder"></div>
3
- <span class="title"></span>
@@ -1,24 +0,0 @@
1
- pageflow.ConfigurationEditorView.register('internal_links', {
2
- configure: function() {
3
- this.tab('general', function() {
4
- this.group('general');
5
- });
6
-
7
- this.tab('files', function() {
8
- this.input('background_image_id', pageflow.FileInputView, {collection: pageflow.imageFiles});
9
- this.input('thumbnail_image_id', pageflow.FileInputView, {
10
- collection: pageflow.imageFiles,
11
- positioning: false
12
- });
13
- });
14
-
15
- this.tab('links', function() {
16
- this.input('linked_pages_layout', pageflow.SelectInputView, {values: pageflow.Page.linkedPagesLayouts});
17
- this.input('linked_page_ids', pageflow.PageReferenceInputView);
18
- });
19
-
20
- this.tab('options', function() {
21
- this.group('options');
22
- });
23
- }
24
- });
@@ -1,31 +0,0 @@
1
- pageflow.DraggablePageItemView = pageflow.PageItemView.extend({
2
- className: 'draggable',
3
-
4
- events: {
5
- 'mouseenter': function() {
6
- this.model.set('highlighted', true);
7
- },
8
-
9
- 'mouseleave': function() {
10
- this.model.unset('highlighted');
11
- }
12
- },
13
-
14
- onRender: function() {
15
- var view = this;
16
-
17
- this.$el.draggable({
18
- helper: function() {
19
- return view.$el
20
- .clone()
21
- .width(view.$el.width())
22
- .wrap('<div class="editor"><ul class="dragged pages outline" /></div>')
23
- .parents('.editor')
24
- .css('z-index', 100);
25
- },
26
- appendTo: 'body'
27
- });
28
-
29
- pageflow.PageItemView.prototype.onRender.call(this);
30
- }
31
- });
@@ -1,176 +0,0 @@
1
- pageflow.PageLinkEmbeddedView = Backbone.Marionette.ItemView.extend({
2
- template: 'templates/embedded/page_link',
3
-
4
- modelEvents: {
5
- 'change': 'update'
6
- },
7
-
8
- ui: {
9
- title: 'span.title'
10
- },
11
-
12
- events: {
13
- 'click .reset': function() {
14
- this.save(null);
15
- },
16
-
17
- 'click .thumbnail': function () {
18
- if (!this.$el.hasClass('editable')) {
19
- pageflow.slides.goToById(this.linkedPage().id);
20
- }
21
-
22
- return false;
23
- },
24
-
25
- 'mousedown': function() {
26
- if (this.$el.hasClass('editable') && !this.$el.hasClass('unassigned')) {
27
- return false;
28
- }
29
- }
30
- },
31
-
32
- onRender: function() {
33
- var view = this;
34
-
35
- this.$el.droppable({
36
- tolerance: 'pointer',
37
-
38
- accept: function() {
39
- return view.$el.hasClass('editable') && view.$el.hasClass('unassigned');
40
- },
41
-
42
- activate: function() {
43
- view.$el.addClass('droppable');
44
- },
45
-
46
- deactivate: function() {
47
- view.$el.removeClass('droppable over');
48
- },
49
-
50
- over: function() {
51
- view.$el.addClass('over');
52
- },
53
-
54
- out: function() {
55
- view.$el.removeClass('over');
56
- },
57
-
58
- drop: function(event, ui) {
59
- view.$el.removeClass('droppable over');
60
- view.save(ui.draggable.data('permaId'));
61
- }
62
- });
63
-
64
- this.$el.draggable({
65
- disabled: true,
66
-
67
- helper: 'clone',
68
-
69
- revert: function(droppable) {
70
- if (droppable) {
71
- view.save(null);
72
- }
73
-
74
- return !droppable;
75
- },
76
-
77
- start: function() {
78
- view.$el.addClass('dragged');
79
- },
80
-
81
- stop: function() {
82
- view.$el.removeClass('dragged');
83
- },
84
-
85
- revertDuration: 200
86
- });
87
-
88
- this.listenTo(this.model.page, 'change:' + this.options.propertyName + '_editable', function() {
89
- view.updateClassName();
90
- view.updateDraggable();
91
- view.options.container.refreshScroller();
92
- });
93
-
94
- this.update();
95
- },
96
-
97
- update: function() {
98
- var linkedPage = this.linkedPage();
99
-
100
- this.$el.data('permaId', linkedPage ? linkedPage.get('perma_id') : null);
101
-
102
- this.updateTitle();
103
- this.updateThumbnailView();
104
- this.updateClassName();
105
- this.updateDraggable();
106
- },
107
-
108
- updateTitle: function() {
109
- var linkedPage = this.linkedPage();
110
-
111
- this.ui.title.html(linkedPage ? linkedPage.configuration.get('description') : '');
112
- },
113
-
114
- updateThumbnailView: function() {
115
- var linkedPage = this.linkedPage();
116
-
117
- if (this.currentLinkedPage !== linkedPage) {
118
- if (this.currentLinkedPage) {
119
- this.stopListening(this.currentLinkedPage, 'change:highlighted');
120
- this.stopListening(this.currentLinkedPage.configuration, 'change:description');
121
- }
122
-
123
- this.currentLinkedPage = linkedPage;
124
-
125
- if (this.thumbnailView) {
126
- this.thumbnailView.close();
127
- }
128
-
129
- if (linkedPage) {
130
- this.thumbnailView = this.subview(new pageflow.PageThumbnailView({
131
- model: linkedPage,
132
- imageUrlPropertyName: 'link_thumbnail_url'
133
- }));
134
-
135
- this.$el.append(this.thumbnailView.el);
136
-
137
- this.listenTo(linkedPage, 'change:highlighted', this.updateClassName);
138
- this.listenTo(linkedPage.configuration, 'change:description', this.updateTitle);
139
- }
140
- }
141
- },
142
-
143
- updateClassName: function() {
144
- var editable = this.model.page.get(this.options.propertyName + '_editable');
145
- var linkedPage = this.linkedPage();
146
-
147
- this.$el.toggleClass('title_hover', !editable);
148
- this.$el.toggleClass('editable', !!editable);
149
- this.$el.toggleClass('empty', !linkedPage && !editable);
150
- this.$el.toggleClass('unassigned', !linkedPage);
151
- this.$el.toggleClass('highlighted', !!linkedPage && !!linkedPage.get('highlighted'));
152
- },
153
-
154
- updateDraggable: function() {
155
- this.$el.draggable('option', 'disabled', !this.$el.hasClass('editable') || this.$el.hasClass('unassigned'));
156
- },
157
-
158
- save: function(pagePermaId) {
159
- var references = _.clone(this.model.get(this.options.propertyName) || {});
160
- references[this.keyName()] = pagePermaId;
161
-
162
- this.model.set(this.options.propertyName, references);
163
- },
164
-
165
- linkedPage: function() {
166
- return pageflow.pages.getByPermaId(this.linkedPagePermaId());
167
- },
168
-
169
- linkedPagePermaId: function() {
170
- return (this.model.get(this.options.propertyName) || {})[this.keyName()];
171
- },
172
-
173
- keyName: function() {
174
- return this.$el.data('referenceKey');
175
- }
176
- });
@@ -1,16 +0,0 @@
1
- pageflow.features.add('rewrite video sources support', function() {
2
- // set from conditionally included script file
3
- return !pageflow.ie9;
4
- });
5
-
6
- pageflow.features.add('stop buffering support', function(has) {
7
- return has.not('mobile platform');
8
- });
9
-
10
- pageflow.features.add('buffer underrun waiting support', function(has) {
11
- return has.not('mobile platform');
12
- });
13
-
14
- pageflow.features.add('prebuffering support', function(has) {
15
- return has.not('mobile platform');
16
- });
@@ -1,55 +0,0 @@
1
- pageflow.pageType.register('internal_links', _.extend({
2
-
3
- prepareNextPageTimeout: 0,
4
-
5
- enhance: function(pageElement, configuration) {
6
- pageElement.on('click', 'nav .thumbnail', function() {
7
- pageflow.slides.goToById($(this).data('page'));
8
- return false;
9
- });
10
- },
11
-
12
- prepare: function(pageElement, configuration) {
13
- },
14
-
15
- preload: function(pageElement, configuration) {
16
- return pageflow.preload.backgroundImage(pageElement.find('.background_image'));
17
- },
18
-
19
- activating: function(pageElement, configuration) {},
20
-
21
- activated: function(pageElement, configuration) {},
22
-
23
- deactivating: function(pageElement, configuration) {},
24
-
25
- deactivated: function(pageElement, configuration) {},
26
-
27
- update: function(pageElement, configuration) {
28
- pageElement.find('h2 .tagline').text(configuration.get('tagline') || '');
29
- pageElement.find('h2 .title').text(configuration.get('title') || '');
30
- pageElement.find('h2 .subtitle').text(configuration.get('subtitle') || '');
31
- pageElement.find('p').html(configuration.get('text') || '');
32
-
33
- this.updateCommonPageCssClasses(pageElement, configuration);
34
-
35
- pageElement.find('.shadow').css({
36
- opacity: configuration.get('gradient_opacity') / 100
37
- });
38
-
39
- pageElement.find('nav').attr('data-layout', configuration.get('linked_pages_layout'));
40
- },
41
-
42
- embeddedEditorViews: function() {
43
- return {
44
- 'nav li': {
45
- view: pageflow.PageLinkEmbeddedView,
46
- options: {propertyName: 'linked_page_ids'}
47
- },
48
-
49
- '.background_image': {
50
- view: pageflow.BackgroundImageEmbeddedView,
51
- options: {propertyName: 'background_image_id'}
52
- }
53
- };
54
- }
55
- }, pageflow.commonPageCssClasses));
@@ -1,6 +0,0 @@
1
- <label>
2
- <span class="name"></span>
3
- <span class="inline_help"></span>
4
- </label>
5
- <p><%= I18n.t('pageflow.ui.templates.inputs.page_reference.drag_hint') %></p>
6
- <ul class="chapters outline"></ul>
@@ -1,44 +0,0 @@
1
- pageflow.PageReferenceInputView = Backbone.Marionette.ItemView.extend({
2
- mixins: [pageflow.inputView],
3
-
4
- template: 'pageflow/ui/templates/inputs/page_reference',
5
- className: 'page_reference_input',
6
-
7
- ui: {
8
- chapters: 'ul.chapters'
9
- },
10
-
11
- modelEvents: {
12
- 'change:linked_page_ids': function() {
13
- this._highlightUsedPages();
14
- }
15
- },
16
-
17
- onRender: function() {
18
- this.model.page.set('linked_page_ids_editable', true);
19
-
20
- this.subview(new pageflow.CollectionView({
21
- el: this.ui.chapters,
22
- collection: pageflow.entry.chapters,
23
- itemViewConstructor: pageflow.ChapterItemView,
24
- itemViewOptions: {
25
- pageItemView: pageflow.DraggablePageItemView
26
- }
27
- }));
28
-
29
- this._highlightUsedPages();
30
- },
31
-
32
- onClose: function() {
33
- this.model.page.unset('linked_page_ids_editable');
34
- },
35
-
36
- _highlightUsedPages: function() {
37
- var model = this.model;
38
-
39
- this.$('ul.pages > li').each(function() {
40
- var usedPageIds = _.values(model.get('linked_page_ids') || {});
41
- $(this).toggleClass('used', _.contains(usedPageIds, $(this).data('permaId')));
42
- });
43
- }
44
- });
@@ -1,104 +0,0 @@
1
- .page_links li {
2
- position: relative;
3
- cursor: pointer;
4
-
5
- .placeholder {
6
- display: none;
7
- }
8
-
9
- .title {
10
- pointer-events: none;
11
- }
12
-
13
- .reset {
14
- @include icon-only-button(white);
15
- @include cancel-icon;
16
- position: absolute;
17
- display: none;
18
- z-index: 1;
19
- top: 5px;
20
- right: 15px;
21
- background-color: #fff;
22
- border: solid 1px #888;
23
- }
24
-
25
- @import "./file_thumbnails";
26
-
27
- .pictogram {
28
- pointer-events: none;
29
- background-color: #444;
30
- position: absolute !important;
31
- bottom: 0;
32
- }
33
-
34
- &.editable {
35
- cursor: default;
36
-
37
- &:hover .reset {
38
- display: block;
39
- }
40
-
41
- &.unassigned {
42
- .reset {
43
- display: none;
44
- }
45
-
46
- .placeholder {
47
- display: block;
48
- }
49
- }
50
-
51
- %highlight {
52
- z-index: 0;
53
- position: relative;
54
- outline: solid 1px #000;
55
-
56
- &:before {
57
- content: "";
58
- position: absolute;
59
- top: -1px;
60
- left: -1px;
61
- width: 100%;
62
- height: 100%;
63
- border: solid 1px #fff;
64
- @include animation(blink 3s linear infinite);
65
- z-index: 1;
66
- }
67
- }
68
- }
69
-
70
- &.droppable %highlight {
71
- background-color: rgba(0, 0, 0, 0.3);
72
-
73
- &:before {
74
- background-color: rgba(255, 255, 255, 0.6);
75
- }
76
- }
77
-
78
- &.editable.highlighted %highlight,
79
- &.over %highlight {
80
- &:after {
81
- content: "";
82
- position: absolute;
83
- top: 0;
84
- width: 100%;
85
- height: 100%;
86
- background-color: rgba(255, 255, 255, 0.6);
87
- }
88
- }
89
-
90
- .placeholder,
91
- .thumbnail {
92
- @extend %highlight;
93
- }
94
-
95
- &.dragged {
96
- .thumbnail {
97
- background-image: none !important;
98
- }
99
-
100
- .pictogram {
101
- display: none;
102
- }
103
- }
104
- }