pageflow 0.11.4 → 12.0.0.rc1

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 (416) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +224 -1207
  3. data/README.md +7 -3
  4. data/Rakefile +2 -0
  5. data/admins/pageflow/accounts.rb +27 -8
  6. data/admins/pageflow/entry.rb +130 -47
  7. data/admins/pageflow/folder.rb +28 -17
  8. data/admins/pageflow/membership.rb +58 -6
  9. data/admins/pageflow/user.rb +105 -98
  10. data/app/assets/fonts/pageflow/fontawesome-webfont.eot +0 -0
  11. data/app/assets/fonts/pageflow/fontawesome-webfont.svg +644 -463
  12. data/app/assets/fonts/pageflow/fontawesome-webfont.ttf +0 -0
  13. data/app/assets/fonts/pageflow/fontawesome-webfont.woff +0 -0
  14. data/app/assets/fonts/pageflow/sourcesanspro-bold-webfont.eot +0 -0
  15. data/app/assets/fonts/pageflow/sourcesanspro-bold-webfont.svg +2864 -696
  16. data/app/assets/fonts/pageflow/sourcesanspro-bold-webfont.ttf +0 -0
  17. data/app/assets/fonts/pageflow/sourcesanspro-bold-webfont.woff +0 -0
  18. data/app/assets/fonts/pageflow/sourcesanspro-light-webfont.eot +0 -0
  19. data/app/assets/fonts/pageflow/sourcesanspro-light-webfont.svg +2572 -613
  20. data/app/assets/fonts/pageflow/sourcesanspro-light-webfont.ttf +0 -0
  21. data/app/assets/fonts/pageflow/sourcesanspro-light-webfont.woff +0 -0
  22. data/app/assets/fonts/pageflow/sourcesanspro-regular-webfont.eot +0 -0
  23. data/app/assets/fonts/pageflow/sourcesanspro-regular-webfont.svg +2977 -779
  24. data/app/assets/fonts/pageflow/sourcesanspro-regular-webfont.ttf +0 -0
  25. data/app/assets/fonts/pageflow/sourcesanspro-regular-webfont.woff +0 -0
  26. data/app/assets/javascripts/pageflow/admin/entries.js +21 -3
  27. data/app/assets/javascripts/pageflow/audio.js +30 -15
  28. data/app/assets/javascripts/pageflow/audio/multi_player.js +12 -1
  29. data/app/assets/javascripts/pageflow/audio_player.js +15 -1
  30. data/app/assets/javascripts/pageflow/audio_player/rewind_method.js +3 -1
  31. data/app/assets/javascripts/pageflow/base.js +4 -1
  32. data/app/assets/javascripts/pageflow/browser.js +3 -0
  33. data/app/assets/javascripts/pageflow/browser/autoplay_support.js +3 -0
  34. data/app/assets/javascripts/pageflow/browser/facebook.js +1 -2
  35. data/app/assets/javascripts/pageflow/browser/ios_platform.js +5 -0
  36. data/app/assets/javascripts/pageflow/browser/video.js +4 -0
  37. data/app/assets/javascripts/pageflow/components.js +7 -0
  38. data/app/assets/javascripts/pageflow/cookies.js +1 -4
  39. data/app/assets/javascripts/pageflow/dist/react.js +4724 -5808
  40. data/app/assets/javascripts/pageflow/editor/api.js +201 -161
  41. data/app/assets/javascripts/pageflow/editor/api/errors.js +80 -0
  42. data/app/assets/javascripts/pageflow/editor/api/failure.js +9 -0
  43. data/app/assets/javascripts/pageflow/editor/api/failures.js +25 -2
  44. data/app/assets/javascripts/pageflow/editor/api/file_type.js +42 -3
  45. data/app/assets/javascripts/pageflow/editor/api/file_types.js +75 -46
  46. data/app/assets/javascripts/pageflow/editor/base.js +8 -0
  47. data/app/assets/javascripts/pageflow/editor/collections/file_types_collection.js +37 -0
  48. data/app/assets/javascripts/pageflow/editor/collections/files_collection.js +32 -1
  49. data/app/assets/javascripts/pageflow/editor/collections/mixins/ordered_collection.js +1 -1
  50. data/app/assets/javascripts/pageflow/editor/collections/multi_collection.js +4 -6
  51. data/app/assets/javascripts/pageflow/editor/collections/nested_files_collection.js +27 -0
  52. data/app/assets/javascripts/pageflow/editor/collections/pages_collection.js +21 -1
  53. data/app/assets/javascripts/pageflow/editor/collections/subset_collection.js +8 -2
  54. data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +3 -2
  55. data/app/assets/javascripts/pageflow/editor/initializers/error_listener.js +10 -5
  56. data/app/assets/javascripts/pageflow/editor/initializers/routing.js +3 -1
  57. data/app/assets/javascripts/pageflow/editor/initializers/setup_collections.js +3 -0
  58. data/app/assets/javascripts/pageflow/editor/initializers/setup_file_types.js +136 -6
  59. data/app/assets/javascripts/pageflow/editor/initializers/setup_file_uploader.js +10 -0
  60. data/app/assets/javascripts/pageflow/editor/initializers/setup_hotkeys.js +5 -7
  61. data/app/assets/javascripts/pageflow/editor/initializers/stylesheet_reloading.js +1 -1
  62. data/app/assets/javascripts/pageflow/editor/models/configuration.js +1 -0
  63. data/app/assets/javascripts/pageflow/editor/models/entry.js +34 -26
  64. data/app/assets/javascripts/pageflow/editor/models/file_configuration.js +10 -0
  65. data/app/assets/javascripts/pageflow/editor/models/file_reuse.js +23 -0
  66. data/app/assets/javascripts/pageflow/editor/models/file_uploader.js +69 -0
  67. data/app/assets/javascripts/pageflow/editor/models/mixins/retryable.js +1 -1
  68. data/app/assets/javascripts/pageflow/editor/models/page.js +13 -0
  69. data/app/assets/javascripts/pageflow/editor/models/text_track_file.js +48 -0
  70. data/app/assets/javascripts/pageflow/editor/models/uploaded_file.js +62 -11
  71. data/app/assets/javascripts/pageflow/editor/routers/sidebar_router.js +1 -0
  72. data/app/assets/javascripts/pageflow/editor/templates/confirm_upload.jst.ejs +18 -0
  73. data/app/assets/javascripts/pageflow/editor/templates/delete_row_table_cell.jst.ejs +1 -0
  74. data/app/assets/javascripts/pageflow/editor/templates/drop_down_button.jst.ejs +0 -2
  75. data/app/assets/javascripts/pageflow/editor/templates/drop_down_button_item.jst.ejs +1 -0
  76. data/app/assets/javascripts/pageflow/editor/templates/edit_entry.jst.ejs +3 -1
  77. data/app/assets/javascripts/pageflow/editor/templates/edit_file.jst.ejs +0 -0
  78. data/app/assets/javascripts/pageflow/editor/templates/file_item.jst.ejs +1 -6
  79. data/app/assets/javascripts/pageflow/editor/templates/file_meta_data_item_value_view.jst.ejs +3 -0
  80. data/app/assets/javascripts/pageflow/editor/templates/file_settings_dialog.jst.ejs +10 -0
  81. data/app/assets/javascripts/pageflow/editor/templates/files_blank_slate.jst.ejs +1 -1
  82. data/app/assets/javascripts/pageflow/editor/templates/filtered_files.jst.ejs +10 -0
  83. data/app/assets/javascripts/pageflow/{ui → editor}/templates/inputs/file_input.jst.ejs +1 -1
  84. data/app/assets/javascripts/pageflow/editor/templates/inputs/reference.jst.ejs +2 -2
  85. data/app/assets/javascripts/pageflow/editor/templates/nested_files.jst.ejs +1 -0
  86. data/app/assets/javascripts/pageflow/editor/templates/table_cell.jst.ejs +0 -0
  87. data/app/assets/javascripts/pageflow/editor/templates/text_tracks.jst.ejs +13 -0
  88. data/app/assets/javascripts/pageflow/editor/templates/uploadable_files.jst.ejs +1 -0
  89. data/app/assets/javascripts/pageflow/editor/utils/form_data_utils.js +19 -0
  90. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio.js +5 -2
  91. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_image.js +3 -2
  92. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/background.js +35 -0
  93. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/options.js +7 -9
  94. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +6 -5
  95. data/app/assets/javascripts/pageflow/editor/views/confirm_upload_view.js +69 -0
  96. data/app/assets/javascripts/pageflow/editor/views/confirmable_file_item_view.js +1 -1
  97. data/app/assets/javascripts/pageflow/editor/views/drop_down_button_item_list_view.js +9 -0
  98. data/app/assets/javascripts/pageflow/editor/views/drop_down_button_item_view.js +14 -1
  99. data/app/assets/javascripts/pageflow/editor/views/drop_down_button_view.js +51 -20
  100. data/app/assets/javascripts/pageflow/editor/views/edit_entry_view.js +21 -2
  101. data/app/assets/javascripts/pageflow/editor/views/edit_file_view.js +52 -0
  102. data/app/assets/javascripts/pageflow/editor/views/edit_storyline_view.js +1 -1
  103. data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +15 -7
  104. data/app/assets/javascripts/pageflow/editor/views/file_item_view.js +33 -22
  105. data/app/assets/javascripts/pageflow/editor/views/file_meta_data_item_value_view.js +49 -0
  106. data/app/assets/javascripts/pageflow/editor/views/file_meta_data_item_view.js +16 -5
  107. data/app/assets/javascripts/pageflow/editor/views/file_settings_dialog_view.js +31 -0
  108. data/app/assets/javascripts/pageflow/editor/views/files_explorer_view.js +6 -7
  109. data/app/assets/javascripts/pageflow/editor/views/files_view.js +13 -14
  110. data/app/assets/javascripts/pageflow/editor/views/filtered_files_view.js +75 -0
  111. data/app/assets/javascripts/pageflow/editor/views/help_view.js +3 -0
  112. data/app/assets/javascripts/pageflow/editor/views/inputs/file_input_view.js +217 -0
  113. data/app/assets/javascripts/pageflow/editor/views/inputs/page_link_input_view.js +6 -0
  114. data/app/assets/javascripts/pageflow/editor/views/inputs/reference_input_view.js +13 -2
  115. data/app/assets/javascripts/pageflow/editor/views/list_view.js +24 -14
  116. data/app/assets/javascripts/pageflow/editor/views/model_thumbnail_view.js +4 -1
  117. data/app/assets/javascripts/pageflow/editor/views/nested_files_view.js +94 -0
  118. data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +7 -2
  119. data/app/assets/javascripts/pageflow/editor/views/text_file_meta_data_item_value_view.js +25 -0
  120. data/app/assets/javascripts/pageflow/editor/views/text_tracks_file_meta_data_item_value_view.js +12 -0
  121. data/app/assets/javascripts/pageflow/editor/views/text_tracks_view.js +65 -0
  122. data/app/assets/javascripts/pageflow/editor/views/uploadable_files_view.js +56 -0
  123. data/app/assets/javascripts/pageflow/editor/views/uploader_view.js +13 -10
  124. data/app/assets/javascripts/pageflow/features.js +8 -12
  125. data/app/assets/javascripts/pageflow/focus_outline.js +2 -0
  126. data/app/assets/javascripts/pageflow/media_player/volume_binding.js +2 -0
  127. data/app/assets/javascripts/pageflow/media_player/volume_fading.js +6 -0
  128. data/app/assets/javascripts/pageflow/page_type.js +0 -1
  129. data/app/assets/javascripts/pageflow/phone_landscape_fullscreen.js +34 -0
  130. data/app/assets/javascripts/pageflow/react.js +4 -0
  131. data/app/assets/javascripts/pageflow/ready.js +3 -0
  132. data/app/assets/javascripts/pageflow/seed_entry_data.js +4 -1
  133. data/app/assets/javascripts/pageflow/slideshow.js +1 -0
  134. data/app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js +7 -5
  135. data/app/assets/javascripts/pageflow/slideshow/atmo.js +3 -3
  136. data/app/assets/javascripts/pageflow/slideshow/hidden_text_indicator_widget.js +4 -2
  137. data/app/assets/javascripts/pageflow/slideshow/hide_text.js +8 -4
  138. data/app/assets/javascripts/pageflow/slideshow/lazy_page_widget.js +5 -0
  139. data/app/assets/javascripts/pageflow/slideshow/scroller_widget.js +11 -18
  140. data/app/assets/javascripts/pageflow/ui.js +6 -0
  141. data/app/assets/javascripts/pageflow/ui/templates/inputs/url_display.jst.ejs +7 -0
  142. data/app/assets/javascripts/pageflow/ui/templates/table.jst.ejs +7 -0
  143. data/app/assets/javascripts/pageflow/ui/templates/table_blank_slate.jst.ejs +3 -0
  144. data/app/assets/javascripts/pageflow/ui/utils/i18n_utils.js +97 -2
  145. data/app/assets/javascripts/pageflow/ui/views/collection_view.js +8 -1
  146. data/app/assets/javascripts/pageflow/ui/views/inputs/check_box_input_view.js +12 -1
  147. data/app/assets/javascripts/pageflow/ui/views/inputs/proxy_url_input_view.js +51 -5
  148. data/app/assets/javascripts/pageflow/ui/views/inputs/select_input_view.js +80 -2
  149. data/app/assets/javascripts/pageflow/ui/views/inputs/slider_input_view.js +8 -1
  150. data/app/assets/javascripts/pageflow/ui/views/inputs/text_area_input_view.js +17 -1
  151. data/app/assets/javascripts/pageflow/ui/views/inputs/text_input_view.js +47 -4
  152. data/app/assets/javascripts/pageflow/ui/views/inputs/url_display_view.js +42 -0
  153. data/app/assets/javascripts/pageflow/ui/views/inputs/url_input_view.js +20 -2
  154. data/app/assets/javascripts/pageflow/ui/views/mixins/input_view.js +74 -46
  155. data/app/assets/javascripts/pageflow/ui/views/table_cells/delete_row_table_cell_view.js +63 -0
  156. data/app/assets/javascripts/pageflow/ui/views/table_cells/enum_table_cell_view.js +26 -0
  157. data/app/assets/javascripts/pageflow/ui/views/table_cells/icon_table_cell_view.js +40 -0
  158. data/app/assets/javascripts/pageflow/ui/views/table_cells/presence_table_cell_view.js +31 -0
  159. data/app/assets/javascripts/pageflow/ui/views/table_cells/table_cell_view.js +101 -0
  160. data/app/assets/javascripts/pageflow/ui/views/table_cells/table_header_cell_view.js +10 -0
  161. data/app/assets/javascripts/pageflow/ui/views/table_cells/text_table_cell_view.js +46 -0
  162. data/app/assets/javascripts/pageflow/ui/views/table_row_view.js +47 -0
  163. data/app/assets/javascripts/pageflow/ui/views/table_view.js +47 -0
  164. data/app/assets/javascripts/pageflow/video_player.js +9 -5
  165. data/app/assets/javascripts/pageflow/video_player/buffer_underrun_waiting.js +15 -13
  166. data/app/assets/javascripts/pageflow/video_player/cue_settings_methods.js +33 -0
  167. data/app/assets/javascripts/pageflow/video_player/dash.js +3 -0
  168. data/app/assets/javascripts/pageflow/video_player/filter_sources.js +1 -1
  169. data/app/assets/javascripts/pageflow/video_player/lazy.js +3 -9
  170. data/app/assets/javascripts/pageflow/video_player/prebuffering.js +11 -2
  171. data/app/assets/javascripts/pageflow/video_player/use_slim_controls_during_phone_playback.js +16 -0
  172. data/app/assets/javascripts/pageflow/videojs.js +6 -0
  173. data/app/assets/javascripts/pageflow/widgets.js +41 -7
  174. data/app/assets/stylesheets/pageflow/admin.scss +7 -4
  175. data/app/assets/stylesheets/pageflow/admin/{entries/user_badge_list.scss → badge_list.scss} +6 -9
  176. data/app/assets/stylesheets/pageflow/admin/embed_code.scss +13 -0
  177. data/app/assets/stylesheets/pageflow/admin/entries.scss +1 -2
  178. data/app/assets/stylesheets/pageflow/admin/hint.scss +20 -0
  179. data/app/assets/stylesheets/pageflow/admin/tooltip_bubble.scss +34 -0
  180. data/app/assets/stylesheets/pageflow/editor/base.scss +4 -4
  181. data/app/assets/stylesheets/pageflow/editor/confirm_upload.scss +66 -0
  182. data/app/assets/stylesheets/pageflow/editor/dialogs.scss +9 -1
  183. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +56 -20
  184. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +26 -6
  185. data/app/assets/stylesheets/pageflow/editor/file_settings_dialog.scss +32 -0
  186. data/app/assets/stylesheets/pageflow/editor/files.scss +5 -0
  187. data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +25 -0
  188. data/app/assets/stylesheets/pageflow/editor/inputs.scss +2 -1
  189. data/app/assets/stylesheets/pageflow/editor/inputs/file_input.scss +65 -0
  190. data/app/assets/stylesheets/pageflow/editor/inputs/reference.scss +2 -2
  191. data/app/assets/stylesheets/pageflow/editor/text_tracks.scss +39 -0
  192. data/app/assets/stylesheets/pageflow/entries.scss +1 -0
  193. data/app/assets/stylesheets/pageflow/mixins/buttons.scss +77 -5
  194. data/app/assets/stylesheets/pageflow/mixins/icons/fontawesome.scss +3 -1
  195. data/app/assets/stylesheets/pageflow/page_types.scss +0 -4
  196. data/app/assets/stylesheets/pageflow/page_types/video.scss +5 -1
  197. data/app/assets/stylesheets/pageflow/page_types/video/content_hiding.scss +1 -0
  198. data/app/assets/stylesheets/pageflow/themes/default/base.scss +1 -0
  199. data/app/assets/stylesheets/pageflow/themes/default/built_in_page_types.scss +0 -2
  200. data/app/assets/stylesheets/pageflow/themes/default/definitions.scss +1 -0
  201. data/app/assets/stylesheets/pageflow/themes/default/loading_spinner.scss +31 -12
  202. data/app/assets/stylesheets/pageflow/themes/default/logo.scss +9 -1
  203. data/app/assets/stylesheets/pageflow/themes/default/logo/variant/background_image.scss +8 -2
  204. data/app/assets/stylesheets/pageflow/themes/default/logo/variant/watermark.scss +21 -0
  205. data/app/assets/stylesheets/pageflow/themes/default/mixins/cue_margins.scss +43 -0
  206. data/app/assets/stylesheets/pageflow/themes/default/mixins/indicator_typography.scss +7 -3
  207. data/app/assets/stylesheets/pageflow/themes/default/page.scss +20 -2
  208. data/app/assets/stylesheets/pageflow/themes/default/player_controls.scss +4 -0
  209. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic.scss +4 -0
  210. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/container.scss +8 -6
  211. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/control_bar.scss +18 -3
  212. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/cue_margins.scss +1 -0
  213. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/icons/custom.scss +14 -0
  214. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/icons/icon_font.scss +4 -0
  215. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/icons/sprite.scss +4 -0
  216. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/info_box.scss +2 -2
  217. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/menu_bar.scss +5 -0
  218. data/app/assets/stylesheets/pageflow/themes/default/player_controls/shared/menu_bar.scss +121 -0
  219. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim.scss +2 -0
  220. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/container.scss +2 -0
  221. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/control_bar.scss +74 -12
  222. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/cue_margins.scss +3 -0
  223. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/info_box.scss +31 -5
  224. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/menu_bar.scss +13 -0
  225. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/quality_menu.scss +116 -0
  226. data/app/assets/stylesheets/pageflow/themes/default/player_controls/vjs_mapping.scss +13 -3
  227. data/app/assets/stylesheets/pageflow/themes/default/player_controls/widget_margins.scss +8 -3
  228. data/app/assets/stylesheets/pageflow/themes/default/text_track_cues.scss +25 -0
  229. data/app/assets/stylesheets/pageflow/themes/default/variables/widgets.scss +2 -2
  230. data/app/assets/stylesheets/pageflow/themes/default/video_player/vjs_base.scss +122 -79
  231. data/app/assets/stylesheets/pageflow/themes/default/video_wrapper.scss +16 -7
  232. data/app/assets/stylesheets/pageflow/ui.scss +5 -1
  233. data/app/assets/stylesheets/pageflow/ui/forms.scss +5 -58
  234. data/app/assets/stylesheets/pageflow/ui/table_cells/delete_row_table_cell.scss +7 -0
  235. data/app/assets/stylesheets/pageflow/ui/table_cells/icon_table_cell.scss +16 -0
  236. data/app/assets/stylesheets/pageflow/ui/table_cells/presence_table_cell.scss +8 -0
  237. data/app/assets/stylesheets/pageflow/ui/table_view.scss +33 -0
  238. data/app/assets/stylesheets/pageflow/ui/tooltip.scss +1 -1
  239. data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +3 -3
  240. data/app/controllers/pageflow/editor/entry_publications_controller.rb +3 -3
  241. data/app/controllers/pageflow/editor/files_controller.rb +72 -14
  242. data/app/controllers/pageflow/editor/widgets_controller.rb +1 -1
  243. data/app/controllers/pageflow/entries_controller.rb +12 -2
  244. data/app/controllers/pageflow/files_controller.rb +1 -1
  245. data/app/helpers/pageflow/admin/entries_helper.rb +17 -0
  246. data/app/helpers/pageflow/admin/form_helper.rb +1 -1
  247. data/app/helpers/pageflow/admin/memberships_helper.rb +117 -13
  248. data/app/helpers/pageflow/common_entry_seed_helper.rb +36 -5
  249. data/app/helpers/pageflow/embed_code_helper.rb +32 -0
  250. data/app/helpers/pageflow/entries_helper.rb +1 -1
  251. data/app/helpers/pageflow/entry_json_seed_helper.rb +6 -16
  252. data/app/helpers/pageflow/files_helper.rb +5 -2
  253. data/app/helpers/pageflow/folders_helper.rb +26 -2
  254. data/app/helpers/pageflow/page_background_asset_helper.rb +8 -0
  255. data/app/helpers/pageflow/quota_helper.rb +1 -1
  256. data/app/helpers/pageflow/video_files_helper.rb +0 -5
  257. data/app/jobs/pageflow/poll_zencoder_job.rb +1 -1
  258. data/app/jobs/pageflow/process_file_job.rb +18 -0
  259. data/app/mailers/pageflow/user_mailer.rb +4 -2
  260. data/app/models/concerns/pageflow/hosted_file.rb +9 -0
  261. data/app/models/concerns/pageflow/output_source.rb +60 -0
  262. data/app/models/concerns/pageflow/uploaded_file.rb +33 -5
  263. data/app/models/pageflow/account.rb +3 -1
  264. data/app/models/pageflow/audio_file_url_templates.rb +21 -0
  265. data/app/models/pageflow/draft_entry.rb +19 -9
  266. data/app/models/pageflow/entry.rb +2 -1
  267. data/app/models/pageflow/entry_duplicate.rb +2 -2
  268. data/app/models/pageflow/entry_role_query.rb +81 -0
  269. data/app/models/pageflow/file_reuse.rb +25 -0
  270. data/app/models/pageflow/file_usage.rb +7 -1
  271. data/app/models/pageflow/image_file.rb +7 -1
  272. data/app/models/pageflow/image_file_url_templates.rb +19 -0
  273. data/app/models/pageflow/invited_user.rb +2 -0
  274. data/app/models/pageflow/membership.rb +46 -3
  275. data/app/models/pageflow/published_entry.rb +2 -2
  276. data/app/models/pageflow/revision.rb +16 -5
  277. data/app/models/pageflow/roles.rb +36 -0
  278. data/app/models/pageflow/text_track_file.rb +45 -0
  279. data/app/models/pageflow/text_track_file_url_templates.rb +16 -0
  280. data/app/models/pageflow/thumbnail_file_resolver.rb +22 -2
  281. data/app/models/pageflow/url_template.rb +13 -0
  282. data/app/models/pageflow/used_file.rb +21 -0
  283. data/app/models/pageflow/video_file.rb +72 -27
  284. data/app/models/pageflow/video_file_url_templates.rb +34 -0
  285. data/app/policies/pageflow/account_policy.rb +145 -0
  286. data/app/policies/pageflow/admin/admin_only_tab_policy.rb +16 -0
  287. data/app/policies/pageflow/admin/entry_tab_policy.rb +25 -0
  288. data/app/policies/pageflow/application_policy.rb +11 -0
  289. data/app/policies/pageflow/entry_policy.rb +138 -0
  290. data/app/policies/pageflow/file_policy.rb +42 -0
  291. data/app/policies/pageflow/folder_policy.rb +54 -0
  292. data/app/policies/pageflow/membership_policy.rb +105 -0
  293. data/app/policies/pageflow/theming_policy.rb +57 -0
  294. data/app/policies/pageflow/user_policy.rb +69 -0
  295. data/app/state_machines/pageflow/encoded_file_state_machine.rb +4 -0
  296. data/app/state_machines/pageflow/image_file_state_machine.rb +5 -1
  297. data/app/views/admin/entries/_attributes_table.html.arb +21 -2
  298. data/app/views/admin/entries/_links.html.arb +1 -1
  299. data/app/views/admin/memberships/_entity_account_input.html.erb +5 -0
  300. data/app/views/admin/memberships/_entity_entry_input.html.erb +5 -0
  301. data/app/views/admin/memberships/_form.html.erb +16 -5
  302. data/app/views/admin/memberships/_role_hint.html.arb +2 -0
  303. data/app/views/admin/users/_form.html.erb +29 -20
  304. data/app/views/components/pageflow/admin/add_membership_button_if_needed.rb +62 -0
  305. data/app/views/components/pageflow/admin/embed_code_field.rb +15 -0
  306. data/app/views/components/pageflow/admin/entry_user_badge_list.rb +15 -7
  307. data/app/views/components/pageflow/admin/grouped_folder_list.rb +20 -16
  308. data/app/views/components/pageflow/admin/members_tab.rb +22 -11
  309. data/app/views/components/pageflow/admin/membership_role_with_tooltip.rb +21 -0
  310. data/app/views/components/pageflow/admin/tabs_view.rb +13 -13
  311. data/app/views/components/pageflow/admin/user_account_badge_list.rb +43 -0
  312. data/app/views/components/pageflow/admin/user_accounts_tab.rb +46 -0
  313. data/app/views/components/pageflow/admin/user_entries_tab.rb +50 -0
  314. data/app/views/components/pageflow/admin/users_tab.rb +32 -4
  315. data/app/views/layouts/pageflow/application.html.erb +3 -2
  316. data/app/views/pageflow/config/_editor_seeds.json.jbuilder +15 -2
  317. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -0
  318. data/app/views/pageflow/editor/files/_file.json.jbuilder +10 -2
  319. data/app/views/pageflow/entries/show.css.erb +4 -11
  320. data/app/views/pageflow/entries/show.json.jbuilder +1 -1
  321. data/app/views/pageflow/entry_json_seed/_entry.json.jbuilder +19 -0
  322. data/app/views/pageflow/file_types/_thumbnails.css.erb +1 -1
  323. data/app/views/pageflow/files/_file.json.jbuilder +12 -0
  324. data/app/views/pageflow/page_background_asset/_element.html.erb +3 -0
  325. data/app/views/pageflow/page_types/_page_type.json.jbuilder +7 -0
  326. data/app/views/pageflow/react/_widget.html.erb +1 -0
  327. data/app/views/pageflow/react/page.html.erb +6 -0
  328. data/app/views/pageflow/video_files/_video_file.json.jbuilder +2 -0
  329. data/config/initializers/admin_resource_tabs.rb +8 -1
  330. data/config/initializers/features.rb +1 -4
  331. data/config/initializers/help_entries.rb +2 -1
  332. data/config/initializers/paperclip.rb +4 -0
  333. data/config/initializers/zencoder.rb +5 -2
  334. data/config/locales/de.yml +370 -108
  335. data/config/locales/en.yml +333 -83
  336. data/config/routes.rb +18 -10
  337. data/db/migrate/20150825133449_update_audio_loop_pages_to_use_atmo.rb +24 -0
  338. data/db/migrate/20160304072911_rename_membership_entry_and_make_polymorphic.rb +19 -0
  339. data/db/migrate/20160304151327_add_role_to_membership.rb +19 -0
  340. data/db/migrate/20160504093145_replace_role_and_account_on_user.rb +42 -0
  341. data/db/migrate/20160531152500_update_users_count.rb +27 -0
  342. data/db/migrate/20160707125400_add_output_presences_to_video_files.rb +5 -0
  343. data/db/migrate/20160824115000_add_parent_file_to_video_files.rb +8 -0
  344. data/db/migrate/20160824115100_add_parent_file_to_audio_files.rb +8 -0
  345. data/db/migrate/20160824115200_add_parent_file_to_image_files.rb +8 -0
  346. data/db/migrate/20160929102700_add_configuration_to_files.rb +7 -0
  347. data/db/migrate/20161007144500_add_text_track_files.rb +31 -0
  348. data/db/migrate/20161216175734_move_configuration_from_file_to_file_usage.rb +27 -0
  349. data/db/migrate/20161230144429_add_processed_attachment_to_text_track_files.rb +8 -0
  350. data/db/migrate/20170222124848_update_video_file_output_presences.rb +12 -0
  351. data/db/migrate/20170421112300_turn_background_video_pages_into_background_image_pages.rb +22 -0
  352. data/lib/generators/pageflow/assets/assets_generator.rb +2 -0
  353. data/lib/generators/pageflow/assets/templates/components.js +4 -0
  354. data/lib/generators/pageflow/initializer/templates/pageflow.rb +23 -20
  355. data/lib/generators/pageflow/seeds/templates/seeds.rb +81 -15
  356. data/lib/pageflow.rb +8 -0
  357. data/lib/pageflow/ability_mixin.rb +196 -62
  358. data/lib/pageflow/admin/tab.rb +21 -0
  359. data/lib/pageflow/admin/tabs.rb +31 -6
  360. data/lib/pageflow/built_in_file_type.rb +39 -0
  361. data/lib/pageflow/built_in_page_types_plugin.rb +80 -0
  362. data/lib/pageflow/configuration.rb +13 -1
  363. data/lib/pageflow/engine.rb +6 -1
  364. data/lib/pageflow/file_type.rb +60 -15
  365. data/lib/pageflow/file_types.rb +20 -2
  366. data/lib/pageflow/page_type.rb +53 -4
  367. data/lib/pageflow/page_types.rb +4 -0
  368. data/lib/pageflow/paperclip_processors/vtt.rb +35 -0
  369. data/lib/pageflow/react.rb +11 -0
  370. data/lib/pageflow/react/page_type.rb +26 -0
  371. data/lib/pageflow/react/widget_type.rb +20 -0
  372. data/lib/pageflow/seeds.rb +59 -15
  373. data/lib/pageflow/user_mixin.rb +18 -25
  374. data/lib/pageflow/version.rb +1 -1
  375. data/lib/pageflow/zencoder_api.rb +18 -4
  376. data/lib/pageflow/zencoder_video_output_definition.rb +375 -127
  377. data/lib/tasks/pageflow_tasks.rake +7 -0
  378. data/spec/factories/accounts.rb +36 -3
  379. data/spec/factories/entries.rb +22 -4
  380. data/spec/factories/invited_user.rb +3 -4
  381. data/spec/factories/memberships.rb +34 -2
  382. data/spec/factories/text_track_files.rb +40 -0
  383. data/spec/factories/users.rb +32 -7
  384. data/spec/factories/video_files.rb +7 -1
  385. data/spec/fixtures/sample.srt +12 -0
  386. data/spec/fixtures/sample.vtt +40 -0
  387. data/vendor/assets/javascripts/dash.all.min.js +14 -0
  388. data/vendor/assets/javascripts/polyfills/bind.js +17 -11
  389. data/vendor/assets/javascripts/videojs-dash.js +302 -0
  390. data/vendor/assets/javascripts/videojs.js +26804 -0
  391. metadata +187 -49
  392. data/app/assets/images/pageflow/themes/default/page_type_pictograms/audio_loop/sprite.png +0 -0
  393. data/app/assets/images/pageflow/themes/default/page_type_pictograms/audio_loop/wide.png +0 -0
  394. data/app/assets/javascripts/pageflow/editor/collections/file_usages_collection.js +0 -21
  395. data/app/assets/javascripts/pageflow/editor/models/file_usage.js +0 -8
  396. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio_loop.js +0 -20
  397. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_video.js +0 -24
  398. data/app/assets/javascripts/pageflow/page_types/audio.js +0 -135
  399. data/app/assets/javascripts/pageflow/page_types/audio_loop.js +0 -102
  400. data/app/assets/javascripts/pageflow/page_types/background_image.js +0 -44
  401. data/app/assets/javascripts/pageflow/page_types/background_video.js +0 -137
  402. data/app/assets/javascripts/pageflow/page_types/video.js +0 -277
  403. data/app/assets/javascripts/pageflow/ui/views/inputs/file_input_view.js +0 -79
  404. data/app/assets/javascripts/pageflow/video_player/play_button_patch.js +0 -39
  405. data/app/assets/javascripts/pageflow/video_player/player_buffered_patch.js +0 -47
  406. data/app/assets/javascripts/pageflow/video_player/src_from_options_method.js +0 -31
  407. data/app/assets/stylesheets/pageflow/page_types/audio_loop.scss +0 -18
  408. data/app/assets/stylesheets/pageflow/page_types/background-video.scss +0 -50
  409. data/app/controllers/pageflow/editor/file_usages_controller.rb +0 -37
  410. data/app/jobs/pageflow/process_image_file_job.rb +0 -18
  411. data/app/views/pageflow/pages/templates/_audio.html.erb +0 -69
  412. data/app/views/pageflow/pages/templates/_audio_loop.html.erb +0 -34
  413. data/app/views/pageflow/pages/templates/_background_image.html.erb +0 -24
  414. data/app/views/pageflow/pages/templates/_background_video.html.erb +0 -32
  415. data/app/views/pageflow/pages/templates/_video.html.erb +0 -42
  416. data/lib/pageflow/built_in_page_type.rb +0 -79
@@ -160,6 +160,7 @@ en:
160
160
  entries_count: "# Entries"
161
161
  landing_page_name: Landing page
162
162
  name: Name
163
+ own_role: Own Role
163
164
  users_count: "# Users"
164
165
  pageflow/audio_file:
165
166
  duration: Duration
@@ -175,6 +176,7 @@ en:
175
176
  created_at: Created at
176
177
  credits: Credits
177
178
  edited_at: Updated at
179
+ embed_code: Embed
178
180
  emphasize_chapter_beginning: Emphasize chapter beginning
179
181
  emphasize_new_pages: Emphasize new pages
180
182
  first_published_at: First published at
@@ -184,6 +186,7 @@ en:
184
186
  locale: Language
185
187
  manual_start: Show Instruction-Overlay
186
188
  overview_button_enabled: Show 'Overview' button
189
+ own_role: Role
187
190
  published?: Publication state
188
191
  published_at: Published since
189
192
  published_revision_published_at: Published since
@@ -201,8 +204,11 @@ en:
201
204
  pageflow/image_file:
202
205
  dimensions: Dimensions
203
206
  pageflow/membership:
207
+ account: Account
204
208
  created_at: Member since
209
+ entity: Entity
205
210
  entry: Story
211
+ role: Role
206
212
  user: Editor
207
213
  pageflow/page:
208
214
  additional_description: Infobox Description
@@ -245,6 +251,10 @@ en:
245
251
  published_at: Published at
246
252
  published_until: Published until
247
253
  updated_at: Updated at
254
+ pageflow/text_track_file:
255
+ kind: Kind
256
+ label: Label
257
+ srclang: Language
248
258
  pageflow/theming:
249
259
  additional_cnames: Additional CNAMES
250
260
  cname: CNAME
@@ -264,8 +274,8 @@ en:
264
274
  format: Format
265
275
  user:
266
276
  account: Account
267
- admin: Administrator
268
- admin?: Administrator
277
+ admin: System administrator
278
+ admin?: System administrator
269
279
  created_at: Registered at
270
280
  current_password: Current password
271
281
  current_sign_in_at: Signed in at
@@ -273,6 +283,8 @@ en:
273
283
  entry: Story
274
284
  first_name: First name
275
285
  full_name: Full name
286
+ initial_account: Account
287
+ initial_role: Role
276
288
  last_name: Last name
277
289
  last_sign_in_at: Last signed in at
278
290
  locale: Language
@@ -324,13 +336,18 @@ en:
324
336
  wrong_length:
325
337
  one: wrong length (must be exactly %{count} chars)
326
338
  other: wrong length (must be exactly %{count} chars)
339
+ models:
340
+ pageflow/entry:
341
+ attributes:
342
+ folder:
343
+ must_be_same_account: Folder must belong to same account as entry
327
344
  models:
328
345
  account:
329
346
  one: Account
330
347
  other: Accounts
331
348
  admin_user:
332
- one: Administrator
333
- other: Administrators
349
+ one: System administrator
350
+ other: System administrators
334
351
  entry:
335
352
  one: Story
336
353
  other: Stories
@@ -343,21 +360,33 @@ en:
343
360
  pageflow/account:
344
361
  one: Account
345
362
  other: Accounts
363
+ pageflow/audio_file:
364
+ one: Audio File
365
+ other: Audio Files
346
366
  pageflow/entry:
347
367
  one: Story
348
368
  other: Stories
349
369
  pageflow/folder:
350
370
  one: Folder
351
371
  other: Folders
372
+ pageflow/image_file:
373
+ one: Image File
374
+ other: Image Files
352
375
  pageflow/membership:
353
376
  one: Membership
354
377
  other: Memberships
355
378
  pageflow/revision:
356
379
  one: Version
357
380
  other: Versions
381
+ pageflow/text_track_file:
382
+ one: Text Track File
383
+ other: Text Track Files
358
384
  pageflow/theming:
359
385
  one: Theming
360
386
  other: Themings
387
+ pageflow/video_file:
388
+ one: Video File
389
+ other: Video Files
361
390
  revision:
362
391
  one: Version
363
392
  other: Versions
@@ -381,6 +410,13 @@ en:
381
410
  not_published: Not published
382
411
  published_with_password_protection: Published with password protection
383
412
  published_without_password_protection: Published without password protection
413
+ pageflow/membership:
414
+ role:
415
+ editor: Editor
416
+ manager: Manager
417
+ member: Member
418
+ previewer: Previewer
419
+ publisher: Publisher
384
420
  pageflow/page:
385
421
  atmo_during_playback:
386
422
  mute: Mute
@@ -405,9 +441,7 @@ en:
405
441
  vertical: Vertical
406
442
  template:
407
443
  audio: Audio
408
- audio_loop: Background-Audio
409
444
  background_image: Background-Image
410
- background_video: Background-Video
411
445
  internal_links: Internal Links
412
446
  video: Video
413
447
  text_position:
@@ -520,7 +554,7 @@ en:
520
554
  failure:
521
555
  admin_user:
522
556
  invalid: Password or username was not correct.
523
- unauthenticated: Please log-in using an administrator account.
557
+ unauthenticated: Please log in using a system administrator account.
524
558
  already_authenticated: You are already signed in.
525
559
  inactive: Your account was not activated yet.
526
560
  invalid: Invalid email or password.
@@ -571,7 +605,7 @@ en:
571
605
  updated: You updated your account successfully.
572
606
  sessions:
573
607
  admin_user:
574
- signed_in: Successfully signed in as administrator.
608
+ signed_in: Successfully signed in as system administrator.
575
609
  new:
576
610
  sign_in_with_facebook: Sign in with Facebook
577
611
  sign_in_with_google: Sign in with Google
@@ -714,6 +748,9 @@ en:
714
748
  delimiter: ","
715
749
  pageflow:
716
750
  admin:
751
+ account:
752
+ add: Add Account
753
+ none_addable_tooltip: No account available
717
754
  accounts:
718
755
  no_entries: No Stories
719
756
  no_members: No members
@@ -730,6 +767,7 @@ en:
730
767
  edit_revision: Edit
731
768
  editor: Editor
732
769
  editor_hint: Open editor
770
+ embed_code_hint: Embed the published entry on a website.
733
771
  entries: Stories
734
772
  forever: "(unlimited)"
735
773
  members: Members
@@ -760,6 +798,9 @@ en:
760
798
  show_public_hint: Visit public page
761
799
  snapshot: Save current version
762
800
  title_hint: This field determines the URL for this story.
801
+ entry:
802
+ add: Add Entry
803
+ none_addable_tooltip: No entry available
763
804
  features:
764
805
  states:
765
806
  default: Default (%{inherited})
@@ -771,7 +812,16 @@ en:
771
812
  confirm_destroy: 'Delete folder? Note: Containing stories will be preserved.'
772
813
  destroy: Delete
773
814
  edit: Edit
815
+ memberships:
816
+ on_account:
817
+ role:
818
+ hint_html: You can assign roles on individual entries of this account to a <strong>Member</strong>.<br>A <strong>Previewer</strong> can additionally preview all entries of this account.<br>An <strong>Editor</strong> can additionally edit all entries of this account.<br>A <strong>Publisher</strong> can additionally publish all entries of this account.<br>A <strong>Manager</strong> can additionally set user roles on all entries of this account and edit them.
819
+ on_entry:
820
+ role:
821
+ hint_html: A <strong>Previewer</strong> can preview this entry.<br>An <strong>Editor</strong> can additionally edit this entry.<br>A <strong>Publisher</strong> can additionally publish this entry.<br>A <strong>Manager</strong> can additionally set user roles on this entry and edit them.
774
822
  resource_tabs:
823
+ account_editor_hint: Users who are assigned on an account level are not listed here
824
+ accounts: Accounts
775
825
  entries: Stories
776
826
  features: Features
777
827
  members: Members
@@ -789,18 +839,27 @@ en:
789
839
  name: "%{account_name}"
790
840
  remove_logo: Remove logo
791
841
  show: View
842
+ user:
843
+ none_addable_tooltip: No user available
792
844
  users:
793
845
  account: Profile
846
+ accounts: Accounts
794
847
  add: Add user
795
848
  add_entry: Add story
796
849
  confirm_delete: Delete this user? This action cannot be undone.
797
850
  delete: Delete
851
+ delete_account_membership_confirmation: |-
852
+ Really delete the account membership of this user?
853
+
854
+ CAUTION: All of the user's entry memberships in this account are also deleted.
855
+ delete_entry_membership_confirmation: Really delete the entry membership of this user?
798
856
  delete_me:
799
857
  cancel_label: No, do not delete my account!
800
858
  delete_label: Delete account
801
859
  warning_html: Please enter your current password to confirm deletion of your account. <b>All data will be deleted. This action cannot be undone.</b>
802
860
  deleted: This user was deleted.
803
861
  edit: Edit
862
+ edit_role: Edit Role
804
863
  email_invitation_hint: The user will be invited to choose a password.
805
864
  empty: 'This user has no associated stories. '
806
865
  invite_user: Invite user
@@ -810,47 +869,99 @@ en:
810
869
  delete_account_hint: You don't want to continue using Pageflow?
811
870
  deleted: Your account has been deleted. You may sign-up for a new one at any time!
812
871
  updated: Your profile has been updated.
872
+ no_accounts: No members
873
+ no_entries: No stories
813
874
  none: There are no stories.
814
875
  resend_invitation: Resend invitation email
815
876
  resent_invitation: The invitation email has been resent.
816
- role_hint:
817
- admin: Account-Administrators are able to manage all users and stories of their account only. System-Administrators can manage all settings.
818
- others: Account-Administrators are able to manage all users and stories of their account.
819
877
  roles:
820
- account_manager: Account-Administrator
878
+ account_manager: Konto-Administrator
879
+ accounts:
880
+ tooltip:
881
+ editor: Can edit entries of this account
882
+ manager: Can set roles on this account
883
+ member: Can be assigned roles on entries of this account
884
+ previewer: Can preview entries of this account
885
+ publisher: Can publish entries of this account
821
886
  admin: System-Administrator
822
887
  editor: Editor
888
+ entries:
889
+ tooltip:
890
+ editor: Can edit this entry
891
+ manager: Can set roles on this entry
892
+ previewer: Can preview this entry
893
+ publisher: Can publish this entry
894
+ manager: Manager
895
+ member: Member
896
+ own_account_role:
897
+ tooltip:
898
+ editor: You can edit entries in this account
899
+ manager: You can manage user and entries in this account
900
+ member: You can be assigned roles on entries in this account
901
+ previewer: You can preview entries in this account
902
+ publisher: You can publish entries in this account
903
+ own_entry_role:
904
+ tooltip:
905
+ editor: You can edit this entry
906
+ manager: You can set roles on this entry
907
+ previewer: You can preview this entry
908
+ publisher: You can publish this entry
909
+ previewer: Previewer
910
+ publisher: Publisher
823
911
  suspend: Suspend
824
912
  suspended: 'The user was suspended and will not be able to sign-in again. '
825
913
  unsuspend: Unsuspend
826
914
  unsuspended: The user was unsuspended.
827
- atmo:
828
- feature_name: Atmo Audios
829
915
  audio:
916
+ help_entries:
917
+ page_type:
918
+ menu_item: Audio
919
+ text: "# Audio\n\n*Playing audio-files with controls*\n \nHere you can combine audio-files with pictures or background videos and\ntext-content. Controls similar to the page type „Video“\nare shown. In addition to that you can write a\ndescription into an „Infobox“.\n\nExamples of application: interviews, direct quotes, music"
830
920
  open: Play audio
921
+ page_type_category_name: Media
922
+ page_type_description: Audio player with controls
923
+ page_type_name: Audio
831
924
  auto_change_page:
832
925
  feature_name: Automatic Page Change
833
- built_in_page_type:
834
- audio:
835
- page_type_category_name: Audio
836
- page_type_description: Audio player with controls
837
- audio_loop:
838
- page_type_category_name: Audio
839
- page_type_description: Audio playback in the background without controls
840
- background_image:
841
- page_type_category_name: Basic
842
- page_type_description: Fullscreen image with text
843
- background_video:
844
- page_type_category_name: Video
845
- page_type_description: Fullscreen video loop without controls
846
- internal_links:
847
- page_type_category_name: Links
848
- page_type_description: A grid of thumbnails linking to other pages inside the Pageflow
849
- video:
850
- page_type_category_name: Video
851
- page_type_description: Video player with controls
926
+ background_image:
927
+ help_entries:
928
+ page_type:
929
+ menu_item: Background Image/Video
930
+ text: |-
931
+ # Background Image/Video
932
+
933
+ Full-screen image or video loop and text
934
+
935
+ By using the page type „Background-Image/Video“, large pictures
936
+ or video loops are the background for the text and are paired with a
937
+ manually adjustable color gradient for an optimal
938
+ legibility. In order to have an optimal presentation on
939
+ mobile devices you can adjust the image detail to the
940
+ display. Optionally the text color can be inverted. This
941
+ is especially useful for bright background-images.
942
+
943
+ Users are able to hide the color-gradient and text in
944
+ the front-end, if they want to have a view of the
945
+ background image or video.
946
+
947
+ Examples: Presentation, part of a picture gallery,
948
+ portrait
949
+ page_type_category_name: Basic
950
+ page_type_description: Fullscreen image or video loop with text
951
+ page_type_name: Background image/video
852
952
  chapter_hierachy:
853
953
  feature_name: Chapter Hierachy
954
+ common_page_attributes:
955
+ background_type:
956
+ inline_help: The page background can either display an image or a video loop.
957
+ label: Background type
958
+ values:
959
+ image: Image
960
+ video: Video loop
961
+ mobile_poster_image_id:
962
+ inline_help: Displayed instead of the the background video loop on mobile devices.
963
+ poster_image_id:
964
+ inline_help: Displayed before the videos starts
854
965
  common_page_link_attributes:
855
966
  label:
856
967
  inline_help: Choose a label to recognize the link within the overview. This label is for your orientation only and will not be displayed to the reader.
@@ -861,6 +972,11 @@ en:
861
972
  target_page_id:
862
973
  inline_help: Users will get to this page when clicking the link.
863
974
  label: Target page
975
+ config:
976
+ text_track_kind:
977
+ captions: Audio Replacement Text Track
978
+ descriptions: Image Description Text Track
979
+ subtitles: Translation Text Track
864
980
  delayed_text_fade_in:
865
981
  feature_name: Delayed text fade in
866
982
  devise:
@@ -900,8 +1016,37 @@ en:
900
1016
  message: The Pageflow editor does not support the browser version you are using. We recommend upgrading your browser to the most recent version.
901
1017
  errors:
902
1018
  UnmatchedUploadError: This filetype is not supported.
1019
+ invalid_nested_type_error: 'Error: Upload file ''%{name}'' is a %{type}. Only the following types of files are allowed: %{validList}'
1020
+ nested_type_error: 'Error while uploading ''%{name}'': %{type} cannot be uploaded as independent files. Use the settings menu for a file of the following type: %{validList}'
903
1021
  unknown: A unknown error has occurred.
1022
+ unmatched_upload_error: No matching file type found for upload '%{name}' of type '%{type}'.
1023
+ upload:
1024
+ type_empty: none
1025
+ file_settings_dialog:
1026
+ tabs:
1027
+ video_settings_tab: Video Details
904
1028
  files:
1029
+ common_attributes:
1030
+ alt:
1031
+ inline_help: A hint describing the contents of the displayed element. Not displayed in the entry, but can be used by screen reader software. Improves accessibility of the content.
1032
+ label: Alt-Text
1033
+ file_name:
1034
+ column_header: File name
1035
+ label: File name
1036
+ original_url:
1037
+ label: Original
1038
+ rights:
1039
+ cell_title:
1040
+ blank: Still blank
1041
+ present: 'Present: %v{value}'
1042
+ column_header: Rights
1043
+ inline_help: Displayed in copyright area of entry.
1044
+ label: Rights
1045
+ text_tracks:
1046
+ label: Subtitles
1047
+ settings_dialog_tabs:
1048
+ general: Meta data
1049
+ text_tracks: Text tracks
905
1050
  stages:
906
1051
  encoding:
907
1052
  action_required: Confirmation required.
@@ -933,6 +1078,33 @@ en:
933
1078
  audio_files: Audios
934
1079
  image_files: Images
935
1080
  video_files: Videos
1081
+ nested_files:
1082
+ text_track_files:
1083
+ delete:
1084
+ cell_title: Delete text tracks
1085
+ column_header: " "
1086
+ file_name:
1087
+ inline_help_html: "<ul><li>If the pattern of the file name resembles <strong>dateiname.wx_YZ.vtt</strong>, Pageflow will identify the language code, in this example <strong>wx</strong>.</li><li>An <strong>example</strong> for English (en) is <strong>subtitles.en_GB.vtt</strong>.</li></ul>"
1088
+ kind:
1089
+ cell_title:
1090
+ captions: Audio Replacement Text Track
1091
+ descriptions: Image Replacement Text Track
1092
+ subtitles: Translation Text Track
1093
+ column_header: Kind
1094
+ inline_help_html: "<ul><li><strong>Audio Replacement Text Tracks</strong> are meant for users who understand a text track better than an audio track.</li><li><strong>Translation Text Tracks</strong> are meant for users who understand another language better than the language used in the audio track.</li><li><strong>Image Replacement Text Tracks</strong> are meant for users who understand a text track better than a video track. Image Replacement Text Tracks are often read aloud to the user by screen reading software supplied by the user.</li></ul>"
1095
+ label: Kind
1096
+ label:
1097
+ column_header: Label
1098
+ inline_help: For display in the text track picker as part of the media player
1099
+ label: Label
1100
+ no_files_blank_slate: Currently, there are no text tracks for this file.
1101
+ srclang:
1102
+ cell_title:
1103
+ blank: Not yet entered
1104
+ present: 'Entered: %{value}'
1105
+ column_header: Language
1106
+ inline_help_html: "<ul><li>The language used in a text track is specified as a two letter code according to ISO 639.1.</li> <li><strong>Examples:</strong> 'en' for English or 'fr' for French.</li> <li>Language codes are often given on the Wikipedia page of a language.</li></ul>"
1107
+ label: Language
936
1108
  quotas:
937
1109
  loading: Checking quotas...
938
1110
  templates:
@@ -940,6 +1112,7 @@ en:
940
1112
  outline: Outline
941
1113
  background_positioning:
942
1114
  cancel: Cancel
1115
+ close: Close
943
1116
  help: In order to have an optimal presentation on mobile devices you can adjust the image detail to the display.
944
1117
  preview_title: Preview
945
1118
  previews:
@@ -960,6 +1133,12 @@ en:
960
1133
  link_to_progress: The %{link} page shows encoding progress.
961
1134
  manage_files: Manage files
962
1135
  videos_tab: Videos
1136
+ confirm_upload:
1137
+ close: Cancel
1138
+ edit_file_header: Meta data
1139
+ header: Add files
1140
+ hint: Edit the files' meta data, then start the upload.
1141
+ upload: Start upload
963
1142
  confirmable_file_item:
964
1143
  remove: Remove
965
1144
  edit_chapter:
@@ -1001,7 +1180,12 @@ en:
1001
1180
  download: Download
1002
1181
  retry: Retry
1003
1182
  select: Select
1183
+ settings: Settings
1004
1184
  source: Source
1185
+ file_meta_data_item_value_view:
1186
+ edit: Edit
1187
+ file_settings_dialog:
1188
+ close: Close
1005
1189
  files:
1006
1190
  back: Back
1007
1191
  files_blank_slate:
@@ -1085,6 +1269,12 @@ en:
1085
1269
  storyline_picker:
1086
1270
  add: Add
1087
1271
  edit: Edit settings
1272
+ text_tracks:
1273
+ edit_file_header: Metadata
1274
+ upload: Add
1275
+ text_track_files:
1276
+ label_missing: "(Label missing)"
1277
+ srclang_missing: "(Missing)"
1088
1278
  views:
1089
1279
  chapter_item_view:
1090
1280
  chapter: Chapter
@@ -1094,6 +1284,8 @@ en:
1094
1284
  Really delete this chapter including ALL its pages?
1095
1285
 
1096
1286
  This operation cannot be undone.
1287
+ edit_entry_view:
1288
+ cannot_publish: You do not have sufficient rights to publish this entry.
1097
1289
  edit_page_link_view:
1098
1290
  default_page_transition: "(Default)"
1099
1291
  edit_page_view:
@@ -1109,11 +1301,21 @@ en:
1109
1301
  show_editor: Show editor panel
1110
1302
  entry_preview_view:
1111
1303
  scroll_hint: Scroll down to continue
1304
+ file_meta_data_item_value_view:
1305
+ blank: "-"
1112
1306
  files_view:
1113
1307
  add: Add
1114
1308
  reuse: Reuse
1115
1309
  upload: Upload
1310
+ filtered_files_view:
1311
+ banner_prefix: 'Active filter:'
1116
1312
  inputs:
1313
+ file_input:
1314
+ auto_default_text_track: "(Auto)"
1315
+ default_text_track: 'Default texttrack:'
1316
+ edit_background_positioning: Adjust field of view...
1317
+ edit_file_settings: File settings...
1318
+ no_default_text_track: "(None)"
1117
1319
  reference_input_view:
1118
1320
  none: "(None)"
1119
1321
  page_item_view:
@@ -1143,52 +1345,6 @@ en:
1143
1345
  Should you ever feel distracted by the atmo audio while working on your entry, you can use the hot key „Alt + a“ to temporarily mute it. Simply press „Alt + a“ again to reactivate atmo audio.
1144
1346
 
1145
1347
  CAUTION: Atmo audio does not play on mobile devices.
1146
- built_in_page_type:
1147
- audio:
1148
- menu_item: Audio
1149
- text: "# Audio\n\n*Playing audio-files with controls*\n \nHere you can combine audio-files with pictures and\ntext-content. Controls similar to the page type „Video“\nare shown. In addition to that you can write a\ndescription into an „Infobox“.\n\nExamples of application: interviews, direct quotes, music"
1150
- audio_loop:
1151
- menu_item: Audio Loop
1152
- text: "# Audio Loop\n\n*Playing an audio-loop without control (Ambience)*\n \nA full-screen photo is shown as a „Background-Image“. The\ndifference to the normal Audio-Page is that the user\ncannot influence the audio-file by controlling it. Instead\nit is an endless-loop.\n\nTypical examples of application: Ambience, soundscape, field-recordings"
1153
- background_image:
1154
- menu_item: Background Image
1155
- text: |-
1156
- # Background Image
1157
-
1158
- Full-screen image and text
1159
-
1160
- By using the page type „Background-Image“, large pictures
1161
- are the background for the text and are paired with a
1162
- manually adjustable color gradient for an optimal
1163
- legibility. In order to have an optimal presentation on
1164
- mobile devices you can adjust the image detail to the
1165
- display. Optionally the text color can be inverted. This
1166
- is especially useful for bright background-images.
1167
-
1168
- Users are able to hide the color-gradient and text in
1169
- the front-end, if they want to have a view of the
1170
- background-image.
1171
-
1172
- Examples: Presentation, part of a picture gallery,
1173
- portrait
1174
- background_video:
1175
- menu_item: Background Video
1176
- text: "# Background Video\n\n*Full-screen video played in a loop without control* \n \nThis type of page is comparable to „Background-Image“. But\ninstead of an image, a video is shown in the\nbackground. This video starts automatically and is played\nwithout control. Thus the user cannot influence the start\nand stop of the video. Since the video is played in an\nendless-loop, it should be long enough and it should have\na proper crossover. The same applies to the soundtrack.\n\nAs a hint for the use of Pageflow on a smartphone: In\norder to prevent unintended data consumption, the video is\nnot played on smartphones. Instead a poster-image is\nshown, which is generated automatically. You can however\nalso choose the image yourself.\n\nExamples of application: intro, chapter cross-fade,\nambience"
1177
- internal_links:
1178
- menu_item: Internal Links
1179
- text: |
1180
- # Internal Links
1181
-
1182
- References to other pages inside a Pageflow
1183
-
1184
- In contrast to external link, you can link to pages inside
1185
- your Pageflow. This page type helps you guide your users
1186
- through your Pageflow.
1187
-
1188
- Examples of application: Welcome page, chapter homepage
1189
- video:
1190
- menu_item: Video
1191
- text: "# Video\n\n*Playing a video with control*\n \nIn contrast to „Background-Videos“ the text elements fade\nout after a few seconds, in order to draw attention to the\nvideo. With controls the user can start and pause the\nvideo or even fast-forward and rewind it. You can choose\nwhether the video should start automatically as soon as\nthe page is opened.\n\nAs an alternative to the normal text input, you can write\na description into an „Infobox“ with text.\n\nOn the „Options“ tab you can activate auto-scrolling to the next page at the end of a video. \nThis can be useful to create a seamless transition.\n\nExamples of application: Videos of all kinds, interviews,\nportraits"
1192
1348
  files:
1193
1349
  menu_item: Manage Files
1194
1350
  text: |
@@ -1384,11 +1540,90 @@ en:
1384
1540
  storylines:
1385
1541
  menu_item: Storylines
1386
1542
  text: "# Storylines\n\nIn addition to linear narrations from top to bottom, further storylines can be used as non linear excursions to enlarge upon parts of a story. A „Storyline“ consists of chapters and pages, which users scroll through. Distinguishable is the so called main storyline from further subordinate ones. The user starts off in the main storyline and can then navigate to different excursions.\n\nTo create such an excursion from the main storyline use one of the „Link“ pages (Mosaic, Collage, Hotspot) and create the desired connections via „Links“.\n\nBy choosing a „Parent page“ you can determine to which page users return after scrolling the storyline´s last page.\n\nTransitions to subordinate storylines are visually supported by a horizontal animation as the default setting for entering and leaving. \n\nStorylines are created by clicking onto the plus button next to the storyline menu. Thereby a new chapter opens automatically in which further pages can be added. \n\n\n### Parent pages\n\nIn every subordinate storyline a „Parent page“ must be determined to define where users land when scrolling back.\n\nThis target page can be chosen by clicking on the pen symbol next to the storyline menu. When a „Parent page“ is defined, a back button will be shown automatically in the subordinate storyline that will always lead users back to the „Parent page“.\n\n\n### Chapter hierarchy\n\nThe use of more than one „subordinary“ storylines and the definition of „Parent pages“ leads to a chapter hierarchy as known from books:\n\n1. (Main storyline), 1.1. (Superior sub storyline), 1.1.1. (Subordinate sub storyline) and so on.\n\nThis hierarchy can be edited afterwards by clicking on the pen symbol next to the storyline menu. A subordinate storyline can be turned into the main storyline as well.\n\n\n### Scroll successors\n\nIf you want to lead users from a last page of a subordinate chapter (1.1.1) to another position than\nthe „Parent page“ (e.g. to 2.1) you can define a „Scroll successor“. Therefore click on the blue pen symbol within the storyline settings. As an example the following sequence might be imaginable: 1 -> 1.1 -> 1.1.1 -> 2.1\n\nAttention: While editing only the selected chapter will be shown in the sidebar. To switch to the other chapters click onto the storyline menu."
1543
+ text_tracks:
1544
+ menu_item: Text tracks
1545
+ text: |-
1546
+ # Text tracks
1547
+
1548
+ Text tracks can be added to video and audio files. Open the
1549
+ file setting dialog of a video or audio file by clicking the
1550
+ files's "Settings" button in the "Manage files" view and
1551
+ switch to the "Text tracks" tab.
1552
+
1553
+ Here you can upload SRT or VTT text track files. Each text
1554
+ track has a language, kind and label attribute. The label is
1555
+ displayed to the user in the subtitles menu on video and
1556
+ audio pages.
1557
+
1558
+ If a video or audio file has text tracks, the user can
1559
+ choose to activate them on video or audio pages. Please note
1560
+ that text tracks will not be displayed when a video plays as
1561
+ a loop in the page background or when an audio file is used
1562
+ as background atmo.
1563
+
1564
+ ## Automatic subtitles
1565
+
1566
+ The selection made by the user in the subtitles menu on
1567
+ video or audio pages is stored between pages and
1568
+ sessions.
1569
+
1570
+ By default the option "Auto" is selected in the subtitles
1571
+ menu. A text track to display is then choosen automatically
1572
+ according to the following rules:
1573
+
1574
+
1575
+ * If a file has a text track of kind "translation" in the
1576
+ language of the entry, it is displayed as subtitle
1577
+ automatically. This is meant for people who are able to
1578
+ understand the language of the entry, but not the language
1579
+ spoken in the video or audio.
1580
+
1581
+ * If instead the file has a text track of kind "audio
1582
+ replacement", it is displayed automatically if the volume
1583
+ has been set to mute using the controls in the navigation
1584
+ bar. Please note that for technical reasons it is not
1585
+ possible to detect if the volume has been set to mute
1586
+ outside of the browser or on mobile devices in general.
1587
+
1588
+ ## Default text track
1589
+
1590
+ If the automatic selection described above does not fit your
1591
+ needs, you can select a default text track for each video or
1592
+ audio page. It will be displayed if the user has not
1593
+ selected a text track from the subtitles menu.
1594
+
1595
+ Open the files tab of the page and choose a default text
1596
+ track from the conext menu available via the menu button
1597
+ inside the video or audio file field.
1387
1598
  helpers:
1388
1599
  entries:
1389
1600
  global_links: Global links
1390
1601
  image_rights: Credits
1602
+ highdef_video_encoding:
1603
+ feature_name: Full HD and 4K videos
1391
1604
  invalid_transition: Invalid transition
1605
+ languages:
1606
+ ar: Arabic
1607
+ cs: Czech
1608
+ de: German
1609
+ dk: Danish
1610
+ el: Greek
1611
+ en: English
1612
+ es: Spanish
1613
+ fr: French
1614
+ fy: Frisian
1615
+ hi: Hindi
1616
+ it: Italian
1617
+ lb: Letzeburgesch
1618
+ nl: Dutch
1619
+ pl: Polish
1620
+ pt: Portuguese
1621
+ rm: Romansh
1622
+ ru: Russian
1623
+ sr: Serbian
1624
+ tr: Turkish
1625
+ unknown: "(Unknown)"
1626
+ zh: Chinese
1392
1627
  page_transitions:
1393
1628
  crossfade: Crossfade
1394
1629
  cut: Cut
@@ -1475,13 +1710,13 @@ en:
1475
1710
  The text-block can be formatted with the buttons underneath the input field. [B= bold / I=italic / U=underlined / infinity symbol= Link/URL to an external website]
1476
1711
 
1477
1712
  All changes are visible in the left front-end-view as soon as you leave the appropriate input field in the editor.
1478
- thumbnail_image_id: |
1479
- The thumbnail replaces the automatically generated preview-picture in the navigation and overview.
1713
+ thumbnail_image_id: 'The thumbnail replaces the automatically generated preview-picture in the navigation and overview.
1714
+
1715
+ '
1480
1716
  transition: Choose the animation, that will be used when users scroll to this page.
1481
1717
  templates:
1482
1718
  inputs:
1483
1719
  file_input:
1484
- adjust_positioning: Adjust field of view
1485
1720
  edit: Edit
1486
1721
  reset: Reset
1487
1722
  page_reference:
@@ -1494,6 +1729,10 @@ en:
1494
1729
  ok: Ok
1495
1730
  underline: Underline
1496
1731
  url: URL
1732
+ url_display:
1733
+ link_text: Download
1734
+ text_table_cell_view:
1735
+ empty: "(empty)"
1497
1736
  views:
1498
1737
  extended_select_input_view:
1499
1738
  display_help: Display help
@@ -1521,6 +1760,17 @@ en:
1521
1760
  instruction: 'Welcome to Pageflow. Please use the following link to set your personal password. You may use your email address to sign-in. '
1522
1761
  salutation: Hello %{first_name}
1523
1762
  subject: Your Pageflow Invitation
1763
+ video:
1764
+ help_entries:
1765
+ page_type:
1766
+ menu_item: Video
1767
+ text: "# Video\n\n*Playing a video with control*\n \nIn contrast to „Background-Videos“ the text elements fade\nout after a few seconds, in order to draw attention to the\nvideo. With controls the user can start and pause the\nvideo or even fast-forward and rewind it. You can choose\nwhether the video should start automatically as soon as\nthe page is opened.\n\nAs an alternative to the normal text input, you can write\na description into an „Infobox“ with text.\n\nOn the „Options“ tab you can activate auto-scrolling to the next page at the end of a video. \nThis can be useful to create a seamless transition.\n\nExamples of application: Videos of all kinds, interviews,\nportraits"
1768
+ page_attributes:
1769
+ mobile_poster_image_id:
1770
+ inline_help: Displayed on mobile devices before the video starts.
1771
+ page_type_category_name: Media
1772
+ page_type_description: Video player with controls
1773
+ page_type_name: Video
1524
1774
  widgets:
1525
1775
  none: "(none)"
1526
1776
  roles:
@@ -1551,5 +1801,5 @@ en:
1551
1801
  first: "|<"
1552
1802
  last: ">|"
1553
1803
  next: ">>"
1554
- previous: "<<"
1804
+ previous: !!str '<<'
1555
1805
  truncate: "..."