pageflow 15.6.1 → 15.7.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 (267) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +236 -11
  3. data/README.md +1 -2
  4. data/admins/pageflow/entry.rb +28 -57
  5. data/admins/pageflow/user.rb +1 -3
  6. data/app/assets/images/pageflow/admin/icons/buttons/editor.svg +2 -0
  7. data/app/assets/images/pageflow/admin/icons/buttons/preview.svg +2 -0
  8. data/app/assets/images/pageflow/admin/icons/buttons/show_public.svg +2 -0
  9. data/app/assets/images/pageflow/admin/icons/delete.svg +9 -0
  10. data/app/assets/images/pageflow/admin/icons/done.svg +6 -0
  11. data/app/assets/images/pageflow/admin/icons/edit.svg +7 -0
  12. data/app/assets/images/pageflow/admin/icons/editor.svg +2 -0
  13. data/app/assets/images/pageflow/admin/icons/folder.svg +8 -0
  14. data/app/assets/images/pageflow/admin/icons/folder_active.svg +8 -0
  15. data/app/assets/images/pageflow/admin/icons/info.svg +3 -0
  16. data/app/assets/images/pageflow/admin/icons/new.svg +5 -0
  17. data/app/assets/images/pageflow/admin/icons/preview.svg +2 -0
  18. data/app/assets/images/pageflow/admin/icons/published.svg +2 -0
  19. data/app/assets/images/pageflow/admin/icons/published_with_password.svg +2 -0
  20. data/app/assets/images/pageflow/admin/icons/show_public.svg +2 -0
  21. data/app/assets/images/pageflow/editor/blank_entry/logo.png +0 -0
  22. data/app/assets/images/pageflow/themes/default/embed_opt_in.svg +3 -0
  23. data/app/assets/images/pageflow/themes/default/embed_opt_out_info.svg +16 -0
  24. data/app/assets/javascripts/pageflow/admin/entries.js +9 -57
  25. data/app/assets/javascripts/pageflow/dist/ui.js +127 -10
  26. data/app/assets/stylesheets/pageflow/admin/active_admin_patches.scss +18 -16
  27. data/app/assets/stylesheets/pageflow/admin/badge_list.scss +25 -35
  28. data/app/assets/stylesheets/pageflow/admin/columns.scss +13 -11
  29. data/app/assets/stylesheets/pageflow/admin/embed_code.scss +1 -4
  30. data/app/assets/stylesheets/pageflow/admin/entries/folders.scss +44 -19
  31. data/app/assets/stylesheets/pageflow/admin/entries.scss +15 -31
  32. data/app/assets/stylesheets/pageflow/admin/features.scss +3 -1
  33. data/app/assets/stylesheets/pageflow/admin/forms.scss +14 -12
  34. data/app/assets/stylesheets/pageflow/admin/hint.scss +8 -14
  35. data/app/assets/stylesheets/pageflow/admin/icon_button.scss +25 -14
  36. data/app/assets/stylesheets/pageflow/admin/icon_link.scss +31 -15
  37. data/app/assets/stylesheets/pageflow/admin/publication_state_indicator.scss +14 -7
  38. data/app/assets/stylesheets/pageflow/admin/status_tags.scss +5 -4
  39. data/app/assets/stylesheets/pageflow/admin/tabs_view.scss +36 -34
  40. data/app/assets/stylesheets/pageflow/admin/tooltip_bubble.scss +15 -11
  41. data/app/assets/stylesheets/pageflow/admin.scss +12 -0
  42. data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +15 -61
  43. data/app/assets/stylesheets/pageflow/editor/base.scss +28 -13
  44. data/app/assets/stylesheets/pageflow/editor/blank_entry.scss +6 -6
  45. data/app/assets/stylesheets/pageflow/editor/change_theme.scss +28 -71
  46. data/app/assets/stylesheets/pageflow/editor/composables.scss +2 -2
  47. data/app/assets/stylesheets/pageflow/editor/confirm_encoding.scss +18 -36
  48. data/app/assets/stylesheets/pageflow/editor/confirm_upload.scss +12 -39
  49. data/app/assets/stylesheets/pageflow/editor/dialogs.scss +39 -12
  50. data/app/assets/stylesheets/pageflow/editor/disabled_atmo_indicator.scss +3 -3
  51. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +7 -10
  52. data/app/assets/stylesheets/pageflow/editor/emulation_mode_button.scss +3 -8
  53. data/app/assets/stylesheets/pageflow/editor/failures.scss +3 -3
  54. data/app/assets/stylesheets/pageflow/editor/file_import.scss +22 -38
  55. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +3 -7
  56. data/app/assets/stylesheets/pageflow/editor/file_settings_dialog.scss +4 -24
  57. data/app/assets/stylesheets/pageflow/editor/file_stages.scss +10 -11
  58. data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +4 -8
  59. data/app/assets/stylesheets/pageflow/editor/files.scss +7 -6
  60. data/app/assets/stylesheets/pageflow/editor/files_explorer.scss +13 -30
  61. data/app/assets/stylesheets/pageflow/editor/files_gallery.scss +15 -11
  62. data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +6 -7
  63. data/app/assets/stylesheets/pageflow/editor/help.scss +19 -14
  64. data/app/assets/stylesheets/pageflow/editor/help_image.scss +1 -1
  65. data/app/assets/stylesheets/pageflow/editor/info_box.scss +19 -0
  66. data/app/assets/stylesheets/pageflow/editor/inputs/file_input.scss +7 -11
  67. data/app/assets/stylesheets/pageflow/editor/inputs/file_processing_state_display.scss +0 -2
  68. data/app/assets/stylesheets/pageflow/editor/inputs/reference.scss +7 -11
  69. data/app/assets/stylesheets/pageflow/editor/list.scss +13 -10
  70. data/app/assets/stylesheets/pageflow/editor/loading.scss +1 -1
  71. data/app/assets/stylesheets/pageflow/editor/locked.scss +9 -5
  72. data/app/assets/stylesheets/pageflow/editor/menu.scss +5 -5
  73. data/app/assets/stylesheets/pageflow/editor/notifications.scss +15 -14
  74. data/app/assets/stylesheets/pageflow/editor/other_entry_item.scss +7 -3
  75. data/app/assets/stylesheets/pageflow/editor/outline.scss +57 -19
  76. data/app/assets/stylesheets/pageflow/editor/page_links.scss +10 -8
  77. data/app/assets/stylesheets/pageflow/editor/page_selection.scss +2 -29
  78. data/app/assets/stylesheets/pageflow/editor/publish_entry.scss +5 -6
  79. data/app/assets/stylesheets/pageflow/editor/quotas.scss +2 -3
  80. data/app/assets/stylesheets/pageflow/editor/select_button.scss +12 -6
  81. data/app/assets/stylesheets/pageflow/editor/sidebar_footer.scss +1 -5
  82. data/app/assets/stylesheets/pageflow/editor/storyline_picker.scss +6 -2
  83. data/app/assets/stylesheets/pageflow/editor/text_tracks.scss +6 -22
  84. data/app/assets/stylesheets/pageflow/editor/widgets.scss +2 -2
  85. data/app/assets/stylesheets/pageflow/editor/wysihtml5.scss +35 -29
  86. data/app/assets/stylesheets/pageflow/mixins/background_icons.scss +3 -3
  87. data/app/assets/stylesheets/pageflow/mixins/buttons.scss +50 -68
  88. data/app/assets/stylesheets/pageflow/themes/default/base.scss +2 -0
  89. data/app/assets/stylesheets/pageflow/themes/default/consent/bar.scss +156 -0
  90. data/app/assets/stylesheets/pageflow/themes/default/consent/vendor_list.scss +62 -0
  91. data/app/assets/stylesheets/pageflow/themes/default/consent.scss +2 -0
  92. data/app/assets/stylesheets/pageflow/themes/default/logo/alignment.scss +7 -0
  93. data/app/assets/stylesheets/pageflow/themes/default/page/shadow.scss +44 -0
  94. data/app/assets/stylesheets/pageflow/themes/default/third_party_embed_consent.scss +103 -0
  95. data/app/assets/stylesheets/pageflow/ui/forms.scss +79 -84
  96. data/app/assets/stylesheets/pageflow/ui/functions.scss +56 -0
  97. data/app/assets/stylesheets/pageflow/ui/input/check_box_group_input.scss +2 -3
  98. data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +6 -6
  99. data/app/assets/stylesheets/pageflow/ui/input/extended_select_input.scss +63 -50
  100. data/app/assets/stylesheets/pageflow/ui/normalize/forms.scss +153 -0
  101. data/app/assets/stylesheets/pageflow/ui/normalize.scss +278 -0
  102. data/app/assets/stylesheets/pageflow/ui/properties.scss +44 -0
  103. data/app/assets/stylesheets/pageflow/ui/table_cells/delete_row_table_cell.scss +1 -1
  104. data/app/assets/stylesheets/pageflow/ui/table_view.scss +14 -18
  105. data/app/assets/stylesheets/pageflow/ui/tabs_view.scss +8 -11
  106. data/app/assets/stylesheets/pageflow/ui/tooltip.scss +6 -8
  107. data/app/assets/stylesheets/pageflow/ui/validation_error_messages.scss +6 -0
  108. data/app/assets/stylesheets/pageflow/ui.scss +4 -0
  109. data/app/controllers/pageflow/edit_locks_controller.rb +3 -1
  110. data/app/helpers/pageflow/admin/entries_helper.rb +2 -12
  111. data/app/helpers/pageflow/embed_code_helper.rb +1 -1
  112. data/app/helpers/pageflow/entries_helper.rb +41 -2
  113. data/app/helpers/pageflow/file_background_images_helper.rb +1 -1
  114. data/app/helpers/pageflow/page_types_helper.rb +1 -1
  115. data/app/helpers/pageflow/themes_helper.rb +1 -1
  116. data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +1 -1
  117. data/app/jobs/pageflow/poll_zencoder_job.rb +1 -9
  118. data/app/models/pageflow/audio_file.rb +17 -0
  119. data/app/models/pageflow/audio_file_url_templates.rb +4 -1
  120. data/app/models/pageflow/customized_theme.rb +37 -0
  121. data/app/models/pageflow/draft_entry.rb +6 -59
  122. data/app/models/pageflow/entry_at_revision.rb +68 -0
  123. data/app/models/pageflow/entry_role_query.rb +44 -24
  124. data/app/models/pageflow/image_file_css_background_image_urls.rb +8 -2
  125. data/app/models/pageflow/published_entry.rb +9 -56
  126. data/app/models/pageflow/theme_customization.rb +46 -0
  127. data/app/models/pageflow/theme_customization_file.rb +58 -0
  128. data/app/models/pageflow/video_file.rb +11 -1
  129. data/app/models/pageflow/video_file_url_templates.rb +1 -0
  130. data/app/policies/pageflow/entry_policy.rb +4 -0
  131. data/app/state_machines/pageflow/media_encoding_state_machine.rb +23 -4
  132. data/app/views/admin/entries/_form.html.erb +50 -0
  133. data/app/views/admin/entries/entry_type_name_input.html.erb +5 -0
  134. data/app/views/admin/features/_form.html.erb +1 -1
  135. data/app/views/admin/memberships/_form.html.erb +2 -3
  136. data/app/views/admin/users/_form.html.erb +1 -1
  137. data/app/views/admin/users/invitation.html.erb +2 -2
  138. data/app/views/components/pageflow/admin/entry_user_badge_list.rb +10 -9
  139. data/app/views/components/pageflow/admin/members_tab.rb +5 -1
  140. data/app/views/components/pageflow/admin/revisions_tab.rb +13 -3
  141. data/app/views/components/pageflow/admin/timestamp.rb +20 -0
  142. data/app/views/components/pageflow/admin/user_account_badge_list.rb +5 -6
  143. data/app/views/pageflow/admin/entries/_cannot_add_user.html.erb +9 -5
  144. data/app/views/pageflow/admin/entries/_entry_type_name_input.html.erb +7 -0
  145. data/app/views/pageflow/audio_files/_audio_file.json.jbuilder +13 -0
  146. data/app/views/pageflow/editor/encoding_confirmations/_intro.html.erb +0 -0
  147. data/app/views/pageflow/editor/encoding_confirmations/check.json.jbuilder +14 -2
  148. data/config/initializers/paperclip.rb +16 -1
  149. data/config/locales/de.yml +24 -28
  150. data/config/locales/en.yml +19 -10
  151. data/db/migrate/20210528073122_create_pageflow_theme_customizations.rb +11 -0
  152. data/db/migrate/20210531090654_create_pageflow_theme_customization_files.rb +15 -0
  153. data/db/migrate/20210531102228_add_selected_file_ids_to_theme_customizations.rb +5 -0
  154. data/db/migrate/20211020085902_add_canonical_entry_url_prefix_to_themings.rb +5 -0
  155. data/db/migrate/20220503150010_add_peak_data_to_audio_files.rb +5 -0
  156. data/db/migrate/20220705084830_add_trailing_slash_in_canonical_urls_to_themings.rb +5 -0
  157. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +256 -124
  158. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +566 -167
  159. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +5 -5
  160. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +4 -4
  161. data/entry_types/paged/app/helpers/pageflow_paged/third_party_embed_consent_helper.rb +38 -0
  162. data/entry_types/paged/app/views/pageflow_paged/third_party_embed_consent/_opt_in.html.erb +12 -0
  163. data/entry_types/paged/app/views/pageflow_paged/third_party_embed_consent/_opt_out_info.html.erb +10 -0
  164. data/entry_types/paged/config/initializers/features.rb +2 -0
  165. data/entry_types/paged/config/locales/new/video_contain.de.yml +7 -0
  166. data/entry_types/paged/config/locales/new/video_contain.en.yml +7 -0
  167. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +3 -0
  168. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +1 -0
  169. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +58 -0
  170. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +37 -3
  171. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +92 -6
  172. data/entry_types/scrolled/app/helpers/pageflow_scrolled/webpack_public_path_helper.rb +20 -0
  173. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +7 -0
  174. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +5 -2
  175. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_seed.json.jbuilder +5 -1
  176. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +5 -4
  177. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +16 -0
  178. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +13 -2
  179. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_widget.json.jbuilder +2 -0
  180. data/entry_types/scrolled/config/locales/de.yml +1 -8
  181. data/entry_types/scrolled/config/locales/en.yml +1 -9
  182. data/entry_types/scrolled/config/locales/new/before_after_slider.de.yml +8 -0
  183. data/entry_types/scrolled/config/locales/new/before_after_slider.en.yml +8 -0
  184. data/entry_types/scrolled/config/locales/new/center_ragged.de.yml +8 -0
  185. data/entry_types/scrolled/config/locales/new/center_ragged.en.yml +9 -0
  186. data/entry_types/scrolled/config/locales/new/consent.de.yml +25 -0
  187. data/entry_types/scrolled/config/locales/new/consent.en.yml +24 -0
  188. data/entry_types/scrolled/config/locales/new/content_element_categories.de.yml +39 -0
  189. data/entry_types/scrolled/config/locales/new/content_element_categories.en.yml +39 -0
  190. data/entry_types/scrolled/config/locales/new/default_transition.de.yml +14 -0
  191. data/entry_types/scrolled/config/locales/new/default_transition.en.yml +14 -0
  192. data/entry_types/scrolled/config/locales/new/header_line_breaks.de.yml +28 -0
  193. data/entry_types/scrolled/config/locales/new/header_line_breaks.en.yml +27 -0
  194. data/entry_types/scrolled/config/locales/new/header_size.de.yml +17 -0
  195. data/entry_types/scrolled/config/locales/new/header_size.en.yml +17 -0
  196. data/entry_types/scrolled/config/locales/new/iframe_embed.de.yml +39 -0
  197. data/entry_types/scrolled/config/locales/new/iframe_embed.en.yml +39 -0
  198. data/entry_types/scrolled/config/locales/new/inline_loops.de.yml +26 -0
  199. data/entry_types/scrolled/config/locales/new/inline_loops.en.yml +26 -0
  200. data/entry_types/scrolled/config/locales/new/portrait_inline_image.de.yml +9 -0
  201. data/entry_types/scrolled/config/locales/new/portrait_inline_image.en.yml +9 -0
  202. data/entry_types/scrolled/config/locales/new/section_width.de.yml +10 -0
  203. data/entry_types/scrolled/config/locales/new/section_width.en.yml +10 -0
  204. data/entry_types/scrolled/config/locales/new/typography_variants.de.yml +7 -0
  205. data/entry_types/scrolled/config/locales/new/typography_variants.en.yml +7 -0
  206. data/entry_types/scrolled/config/locales/new/video_embed_poster.de.yml +8 -0
  207. data/entry_types/scrolled/config/locales/new/video_embed_poster.en.yml +8 -0
  208. data/entry_types/scrolled/config/locales/new/waveform_styles.de.yml +11 -0
  209. data/entry_types/scrolled/config/locales/new/waveform_styles.en.yml +12 -0
  210. data/entry_types/scrolled/config/locales/new/widgets.de.yml +6 -0
  211. data/entry_types/scrolled/config/locales/new/widgets.en.yml +6 -0
  212. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +29 -5
  213. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +8 -6
  214. data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +37 -0
  215. data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +57 -0
  216. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +49 -0
  217. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +8 -0
  218. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +42 -0
  219. data/entry_types/scrolled/lib/pageflow_scrolled.rb +17 -1
  220. data/entry_types/scrolled/package/contentElements-editor.js +323 -89
  221. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  222. data/entry_types/scrolled/package/contentElements-frontend.js +719 -529
  223. data/entry_types/scrolled/package/editor.js +459 -261
  224. data/entry_types/scrolled/package/frontend/{EditableText-7093fd0e.js → EditableInlineText.module-b9923660.js} +284 -362
  225. data/entry_types/scrolled/package/frontend/{i18n-4dc6c377.js → PhonePlatformContext-9fb97827.js} +199 -106
  226. data/entry_types/scrolled/package/frontend/{Viewer-e49e7807.js → Viewer-e2290ea0.js} +196 -79
  227. data/entry_types/scrolled/package/frontend/{Wavesurfer-0adf5667.js → Wavesurfer-7d9cf1b7.js} +16 -58
  228. data/entry_types/scrolled/package/frontend/{components-6a6793ca.js → components-6ab26015.js} +664 -671
  229. data/entry_types/scrolled/package/frontend/{getPrototypeOf-63c7c8e8.js → createSuper-d0f30da3.js} +34 -5
  230. data/entry_types/scrolled/package/frontend/index.css +1 -9
  231. data/entry_types/scrolled/package/frontend/index.js +1919 -2386
  232. data/entry_types/scrolled/package/frontend/{useBrowserFeature-91a4c29d.js → usePhonePlatform-2857c22b.js} +9 -8
  233. data/entry_types/scrolled/package/frontend-server.js +3 -6
  234. data/entry_types/scrolled/package/package.json +16 -8
  235. data/entry_types/scrolled/package/testHelpers.js +456 -0
  236. data/entry_types/scrolled/package/values/breakpoints.module.css +9 -0
  237. data/entry_types/scrolled/package/values/colors.module.css +5 -0
  238. data/entry_types/scrolled/package/widgets/defaultNavigation.css +9 -0
  239. data/entry_types/scrolled/package/widgets/defaultNavigation.js +612 -0
  240. data/entry_types/scrolled/spec/fixtures/image.svg +1 -0
  241. data/lib/pageflow/ability_mixin.rb +4 -0
  242. data/lib/pageflow/built_in_widget_type.rb +4 -0
  243. data/lib/pageflow/built_in_widget_types_plugin.rb +7 -0
  244. data/lib/pageflow/configuration.rb +34 -1
  245. data/lib/pageflow/entry_type.rb +11 -2
  246. data/lib/pageflow/entry_type_configuration.rb +2 -0
  247. data/lib/pageflow/file_type.rb +24 -0
  248. data/lib/pageflow/paperclip_processors/audio_waveform.rb +42 -0
  249. data/lib/pageflow/paperclip_processors/noop.rb +10 -0
  250. data/lib/pageflow/theme_customizations.rb +61 -0
  251. data/lib/pageflow/version.rb +1 -1
  252. data/lib/pageflow.rb +9 -0
  253. data/package/config/jest/index.js +2 -1
  254. data/package/config/postcss/scaleFunctions.js +71 -0
  255. data/package/editor.js +95 -85
  256. data/package/frontend.js +521 -161
  257. data/package/package.json +5 -3
  258. data/package/testHelpers.js +26 -5
  259. data/package/ui.js +124 -11
  260. data/spec/factories/draft_entries.rb +19 -1
  261. data/spec/factories/entries.rb +4 -0
  262. data/spec/factories/published_entries.rb +6 -0
  263. data/spec/fixtures/audio.ogg +0 -0
  264. metadata +118 -14
  265. data/app/views/admin/entries/_not_allowed_to_see_entry_types.json.jbuilder +0 -2
  266. data/app/views/admin/entries/entry_types.json.jbuilder +0 -4
  267. data/package/config/jest/transformers/upwardBabel.js +0 -5
@@ -147,9 +147,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
147
147
  }).flatten().value();
148
148
  }
149
149
 
150
- var i18nUtils =
151
- /*#__PURE__*/
152
- Object.freeze({
150
+ var i18nUtils = /*#__PURE__*/Object.freeze({
153
151
  __proto__: null,
154
152
  attributeTranslationKeys: attributeTranslationKeys,
155
153
  attributeTranslation: attributeTranslation,
@@ -340,9 +338,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
340
338
  return ".".concat(classNames.replace(/ /g, '.'));
341
339
  }
342
340
 
343
- var cssModulesUtils =
344
- /*#__PURE__*/
345
- Object.freeze({
341
+ var cssModulesUtils = /*#__PURE__*/Object.freeze({
346
342
  __proto__: null,
347
343
  ui: ui,
348
344
  events: events,
@@ -359,6 +355,23 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
359
355
 
360
356
 
361
357
  BaseObject.extend = Backbone.Model.extend;
358
+ var serverSideValidation = {
359
+ initialize: function initialize() {
360
+ var _this = this;
361
+
362
+ this.validationErrors = {};
363
+ this.listenTo(this, 'error', function (model, request) {
364
+ if (request.status === 422) {
365
+ _this.validationErrors = JSON.parse(request.responseText).errors;
366
+
367
+ _this.trigger('invalid');
368
+ }
369
+ });
370
+ this.listenTo(this, 'sync', function () {
371
+ _this.validationErrors = {};
372
+ });
373
+ }
374
+ };
362
375
  var CollectionView = Marionette.View.extend({
363
376
  initialize: function initialize() {
364
377
  this.rendered = false;
@@ -757,10 +770,12 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
757
770
  this.configure();
758
771
  },
759
772
  configure: function configure() {},
760
- tab: function tab(name, callback) {
773
+ tab: function tab(name, callbackOrOptions, callback) {
774
+ callback = callback || callbackOrOptions;
775
+ var options = callback ? callbackOrOptions : {};
761
776
  this.tabsView.tab(name, _.bind(function () {
762
777
  var tabView = new ConfigurationEditorTabView({
763
- model: this.model,
778
+ model: options.model || this.model,
764
779
  placeholderModel: this.options.placeholderModel,
765
780
  tab: name,
766
781
  attributeTranslationKeyPrefixes: this.options.attributeTranslationKeyPrefixes
@@ -900,7 +915,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
900
915
  var TableHeaderCellView = TableCellView.extend({
901
916
  tagName: 'th',
902
917
  render: function render() {
903
- this.$el.text(this.attributeTranslation('column_header'));
918
+ this.$el.text(this.options.column.headerText || this.attributeTranslation('column_header'));
904
919
  this.$el.data('columnName', this.options.column.name);
905
920
  return this;
906
921
  }
@@ -1273,6 +1288,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
1273
1288
  return this.getAttributeBoundOption('disabled');
1274
1289
  },
1275
1290
  updateDisabled: function updateDisabled() {
1291
+ this.$el.toggleClass('input-disabled', !!this.isDisabled());
1276
1292
  this.updateInlineHelp();
1277
1293
 
1278
1294
  if (this.ui.input) {
@@ -1499,6 +1515,30 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
1499
1515
  return this.options.placeholderModel && this.options.placeholderModel.get(this.options.propertyName);
1500
1516
  }
1501
1517
  };
1518
+ var viewWithValidationErrorMessages = {
1519
+ onRender: function onRender() {
1520
+ this.listenTo(this.model, 'invalid sync', this.updateValidationErrorMessages);
1521
+ this.updateValidationErrorMessages();
1522
+ },
1523
+ updateValidationErrorMessages: function updateValidationErrorMessages() {
1524
+ var _this = this;
1525
+
1526
+ var errors = this.model.validationErrors && this.model.validationErrors[this.options.propertyName] || [];
1527
+
1528
+ if (errors.length) {
1529
+ this.validationErrorList = this.validationErrorList || $('<ul class="validation_error_messages" />').appendTo(this.el);
1530
+ this.validationErrorList.html('');
1531
+ errors.forEach(function (error) {
1532
+ return _this.validationErrorList.append("<li>".concat(error, "</li>"));
1533
+ });
1534
+ this.$el.addClass('invalid');
1535
+ } else if (this.validationErrorList) {
1536
+ this.validationErrorList.remove();
1537
+ this.validationErrorList = null;
1538
+ this.$el.removeClass('invalid');
1539
+ }
1540
+ }
1541
+ };
1502
1542
 
1503
1543
  function template$6(data) {
1504
1544
  var __p = '';
@@ -1527,7 +1567,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
1527
1567
 
1528
1568
 
1529
1569
  var TextInputView = Marionette.ItemView.extend({
1530
- mixins: [inputView, inputWithPlaceholderText],
1570
+ mixins: [inputView, inputWithPlaceholderText, viewWithValidationErrorMessages],
1531
1571
  template: template$6,
1532
1572
  ui: {
1533
1573
  input: 'input'
@@ -2011,7 +2051,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
2011
2051
  var __t,
2012
2052
  __p = '';
2013
2053
 
2014
- __p += '<label>\n <span class="name"></span>\n <span class="inline_help"></span>\n</label>\n\n<!-- inline style for wysihtml5 to pick up -->\n<textarea style="width: 100%;" dir="auto"></textarea>\n\n<div class="toolbar">\n <a data-wysihtml5-command="bold" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.bold')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="italic" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.italic')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="underline" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.underline')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="createLink" class="link_button" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.create_link')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="insertOrderedList" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.insert_ordered_list')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="insertUnorderedList" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.insert_unordered_list')) == null ? '' : __t) + '"></a>\n\n <div data-wysihtml5-dialog="createLink" class="dialog link_dialog" style="display: none;">\n <div class="link_type_select">\n <label>\n <input type="radio" name="link_type" class="url_link_radio_button">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.link_type.url')) == null ? '' : __t) + '\n </label>\n <label>\n <input type="radio" name="link_type" class="fragment_link_radio_button">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.link_type.page_link')) == null ? '' : __t) + '\n </label>\n </div>\n <div class="url_link_panel">\n <label>\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.target')) == null ? '' : __t) + '\n </label>\n <input type="text" class="display_url">\n <div class="open_in_new_tab_section">\n <label>\n <input type="checkbox" class="open_in_new_tab">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.open_in_new_tab')) == null ? '' : __t) + '\n </label>\n <span class="inline_help">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.open_in_new_tab_help')) == null ? '' : __t) + '\n </span>\n </div>\n </div>\n <div class="fragment_link_panel">\n <!-- LinkInputView is inserted here -->\n </div>\n\n <!-- wysihtml5 does not handle hidden fields correctly -->\n <div class="internal">\n <input type="text" data-wysihtml5-dialog-field="href" class="current_url" value="">\n <input type="text" data-wysihtml5-dialog-field="target" class="current_target" value="_blank">\n </div>\n\n <a class="button" data-wysihtml5-dialog-action="save">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.save')) == null ? '' : __t) + '\n </a>\n <a class="button" data-wysihtml5-dialog-action="cancel">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.cancel')) == null ? '' : __t) + '\n </a>\n\n <a data-wysihtml5-command="removeLink">' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.remove_link')) == null ? '' : __t) + '</a>\n </div>\n</div>\n';
2054
+ __p += '<label>\n <span class="name"></span>\n <span class="inline_help"></span>\n</label>\n\n<!-- inline style for wysihtml5 to pick up -->\n<textarea style="width: 100%;" dir="auto"></textarea>\n\n<div class="toolbar">\n <a data-wysihtml5-command="bold" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.bold')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="italic" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.italic')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="underline" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.underline')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="createLink" class="link_button" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.create_link')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="insertOrderedList" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.insert_ordered_list')) == null ? '' : __t) + '"></a>\n <a data-wysihtml5-command="insertUnorderedList" title="' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.insert_unordered_list')) == null ? '' : __t) + '"></a>\n\n <div data-wysihtml5-dialog="createLink" class="dialog link_dialog" style="display: none;">\n <div class="link_type_select">\n <label>\n <input type="radio" name="link_type" class="url_link_radio_button">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.link_type.url')) == null ? '' : __t) + '\n </label>\n <label>\n <input type="radio" name="link_type" class="fragment_link_radio_button">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.link_type.page_link')) == null ? '' : __t) + '\n </label>\n </div>\n <div class="url_link_panel">\n <label>\n <span>\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.target')) == null ? '' : __t) + '\n </span>\n </label>\n <input type="text" class="display_url">\n <div class="open_in_new_tab_section">\n <label>\n <input type="checkbox" class="open_in_new_tab">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.open_in_new_tab')) == null ? '' : __t) + '\n </label>\n <span class="inline_help">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.open_in_new_tab_help')) == null ? '' : __t) + '\n </span>\n </div>\n </div>\n <div class="fragment_link_panel">\n <!-- LinkInputView is inserted here -->\n </div>\n\n <!-- wysihtml5 does not handle hidden fields correctly -->\n <div class="internal">\n <input type="text" data-wysihtml5-dialog-field="href" class="current_url" value="">\n <input type="text" data-wysihtml5-dialog-field="target" class="current_target" value="_blank">\n </div>\n\n <a class="button" data-wysihtml5-dialog-action="save">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.save')) == null ? '' : __t) + '\n </a>\n <a class="button" data-wysihtml5-dialog-action="cancel">\n ' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.cancel')) == null ? '' : __t) + '\n </a>\n\n <a data-wysihtml5-command="removeLink">' + ((__t = I18n.t('pageflow.ui.templates.inputs.text_area_input.remove_link')) == null ? '' : __t) + '</a>\n </div>\n</div>\n';
2015
2055
  return __p;
2016
2056
  }
2017
2057
  /**
@@ -2335,6 +2375,15 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
2335
2375
  supportedHosts: function supportedHosts() {
2336
2376
  return this.options.supportedHosts;
2337
2377
  },
2378
+ // Host names used to be expected to include protocols. Remove
2379
+ // protocols for backwards compatilbity. Since supportedHosts
2380
+ // is supposed to be overridden in subclasses, we do it in a
2381
+ // separate method.
2382
+ supportedHostsWithoutLegacyProtocols: function supportedHostsWithoutLegacyProtocols() {
2383
+ return _.map(this.supportedHosts(), function (host) {
2384
+ return host.replace(/^https?:\/\//, '');
2385
+ });
2386
+ },
2338
2387
  validate: function validate(success) {
2339
2388
  var view = this;
2340
2389
  var options = this.options;
@@ -2371,23 +2420,26 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
2371
2420
  }
2372
2421
 
2373
2422
  function hasSupportedHost(url) {
2374
- return _.any(view.supportedHosts(), function (host) {
2375
- return url.match(new RegExp('^' + host));
2423
+ return _.any(view.supportedHostsWithoutLegacyProtocols(), function (host) {
2424
+ return url.match(new RegExp('^https?://' + host));
2376
2425
  });
2377
2426
  }
2378
2427
 
2379
2428
  function displayValidationError(message) {
2380
2429
  view.$el.addClass('invalid');
2430
+ view.ui.input.attr('aria-invalid', 'true');
2381
2431
  view.ui.validation.removeClass('pending').addClass('failed').html(message).show();
2382
2432
  }
2383
2433
 
2384
2434
  function displayValidationPending(message) {
2385
2435
  view.$el.removeClass('invalid');
2436
+ view.ui.input.removeAttr('aria-invalid');
2386
2437
  view.ui.validation.removeClass('failed').addClass('pending').html(message).show();
2387
2438
  }
2388
2439
 
2389
2440
  function resetValidationError(message) {
2390
2441
  view.$el.removeClass('invalid');
2442
+ view.ui.input.attr('aria-invalid', 'false');
2391
2443
  view.ui.validation.hide();
2392
2444
  }
2393
2445
  }
@@ -2620,6 +2672,15 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
2620
2672
  * Ignore the attribute value if the input is disabled and display
2621
2673
  * an unchecked check box.
2622
2674
  *
2675
+ * @param {boolean} [options.displayCheckedIfDisabled=false]
2676
+ * Ignore the attribute value if the input is disabled and display
2677
+ * an checked check box.
2678
+ *
2679
+ * @param {string} [options.storeInverted]
2680
+ * Display checked by default and store true in given attribute when
2681
+ * unchecked. The property name passed to `input` is only used for
2682
+ * translations.
2683
+ *
2623
2684
  * @class
2624
2685
  */
2625
2686
 
@@ -2646,7 +2707,13 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
2646
2707
  },
2647
2708
  save: function save() {
2648
2709
  if (!this.isDisabled()) {
2649
- this.model.set(this.options.propertyName, this.ui.input.is(':checked'));
2710
+ var value = this.ui.input.is(':checked');
2711
+
2712
+ if (this.options.storeInverted) {
2713
+ this.model.set(this.options.storeInverted, !value);
2714
+ } else {
2715
+ this.model.set(this.options.propertyName, value);
2716
+ }
2650
2717
  }
2651
2718
  },
2652
2719
  load: function load() {
@@ -2657,11 +2724,46 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
2657
2724
  displayValue: function displayValue() {
2658
2725
  if (this.isDisabled() && this.options.displayUncheckedIfDisabled) {
2659
2726
  return false;
2727
+ } else if (this.isDisabled() && this.options.displayCheckedIfDisabled) {
2728
+ return true;
2729
+ } else if (this.options.storeInverted) {
2730
+ return !this.model.get(this.options.storeInverted);
2660
2731
  } else {
2661
2732
  return this.model.get(this.options.propertyName);
2662
2733
  }
2663
2734
  }
2664
2735
  });
2736
+ /**
2737
+ * Render a separator in a {@link ConfigurationEditorView} tab.
2738
+ *
2739
+ * @example
2740
+ *
2741
+ * this.view(SeparatorView);
2742
+ *
2743
+ * @class
2744
+ */
2745
+
2746
+ var SeparatorView = Marionette.View.extend({
2747
+ className: 'separator'
2748
+ });
2749
+ /**
2750
+ * Render an input that is only a label. Can be used to render
2751
+ * additional inline help.
2752
+ *
2753
+ * See {@link inputView} for further options
2754
+ *
2755
+ * @class
2756
+ */
2757
+
2758
+ var LabelOnlyView = Marionette.ItemView.extend({
2759
+ mixins: [inputView],
2760
+ template: function template() {
2761
+ return "\n <label>\n <span class=\"name\"></span>\n <span class=\"inline_help\"></span>\n </label>\n ";
2762
+ },
2763
+ ui: {
2764
+ label: 'label'
2765
+ }
2766
+ });
2665
2767
  /**
2666
2768
  * A table cell mapping column attribute values to a list of
2667
2769
  * translations.
@@ -2877,7 +2979,11 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
2877
2979
  }
2878
2980
  }
2879
2981
  };
2880
- Cocktail.mixin(Marionette.View, subviewContainer);
2982
+
2983
+ if (!Marionette.View.prototype.appendSubview) {
2984
+ Cocktail.mixin(Marionette.View, subviewContainer);
2985
+ }
2986
+
2881
2987
  var tooltipContainer = {
2882
2988
  events: {
2883
2989
  'mouseover [data-tooltip]': function mouseoverDataTooltip(event) {
@@ -3243,10 +3349,14 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
3243
3349
  model: this.model.configuration,
3244
3350
  attributeTranslationKeyPrefixes: ['pageflow.editor.files.attributes.' + fileType.collectionName, 'pageflow.editor.files.common_attributes', 'pageflow.editor.nested_files.' + fileType.collectionName, 'pageflow.editor.nested_files.common_attributes']
3245
3351
  });
3246
- tab.input('file_name', TextInputView, {
3247
- model: this.model,
3248
- disabled: true
3249
- });
3352
+
3353
+ if (this.options.displayFileName) {
3354
+ tab.input('file_name', TextInputView, {
3355
+ model: this.model,
3356
+ disabled: true
3357
+ });
3358
+ }
3359
+
3250
3360
  tab.input('rights', TextInputView, {
3251
3361
  model: this.model,
3252
3362
  placeholder: entry.get('default_file_rights')
@@ -3291,7 +3401,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
3291
3401
  var __t,
3292
3402
  __p = '';
3293
3403
 
3294
- __p += '<div class="box">\n <div class="content">\n </div>\n\n <div class="footer">\n <a href="" class="close">\n ' + ((__t = I18n.t('pageflow.editor.templates.file_settings_dialog.close')) == null ? '' : __t) + '\n </a>\n </div>\n</div>\n';
3404
+ __p += '<div class="box">\n <div class="content">\n <h1 class="dialog-header"></h1>\n </div>\n\n <div class="footer">\n <a href="" class="close">\n ' + ((__t = I18n.t('pageflow.editor.templates.file_settings_dialog.close')) == null ? '' : __t) + '\n </a>\n </div>\n</div>\n';
3295
3405
  return __p;
3296
3406
  }
3297
3407
 
@@ -3300,9 +3410,11 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
3300
3410
  className: 'file_settings_dialog editor dialog',
3301
3411
  mixins: [dialogView],
3302
3412
  ui: {
3303
- content: '.content'
3413
+ content: '.content',
3414
+ header: '.dialog-header'
3304
3415
  },
3305
3416
  onRender: function onRender() {
3417
+ this.ui.header.text(this.model.title());
3306
3418
  this.tabsView = new TabsView({
3307
3419
  model: this.model,
3308
3420
  i18n: 'pageflow.editor.files.settings_dialog_tabs',
@@ -5229,8 +5341,8 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
5229
5341
  initialize: function initialize(attributes, options) {
5230
5342
  Configuration.prototype.initialize.apply(this, attributes, options);
5231
5343
  this.configuration = new EntryMetadataConfiguration(_.clone(attributes.configuration) || {});
5232
- this.listenTo(this.configuration, 'change', function () {
5233
- this.trigger('change');
5344
+ this.listenTo(this.configuration, 'change', function (model, options) {
5345
+ this.trigger('change', model, options);
5234
5346
  this.parent.save();
5235
5347
  });
5236
5348
  },
@@ -6752,7 +6864,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
6752
6864
 
6753
6865
  __p += '<div class="blank_slate">\n <p>\n ' + ((__t = I18n.t('pageflow.editor.templates.confirm_encoding.all_released')) == null ? '' : __t) + '\n </p>\n <p>\n ' + ((__t = I18n.t('pageflow.editor.templates.confirm_encoding.link_to_progress', {
6754
6866
  link: '<a href="#/files/video_files">' + I18n.t('pageflow.editor.templates.confirm_encoding.manage_files') + '</a>'
6755
- })) == null ? '' : __t) + '\n </p>\n</div>\n\n<div class="video_files_panel">\n <h2>' + ((__t = I18n.t('pageflow.editor.templates.confirm_encoding.videos_tab')) == null ? '' : __t) + '</h2>\n</div>\n\n<div class="audio_files_panel">\n <h2>' + ((__t = I18n.t('pageflow.editor.templates.confirm_encoding.audios_tab')) == null ? '' : __t) + '</h2>\n</div>\n\n<div class="summary">\n</div>\n<button class="confirm">' + ((__t = I18n.t('pageflow.editor.templates.confirm_encoding.confirm_button')) == null ? '' : __t) + '</button>\n';
6867
+ })) == null ? '' : __t) + '\n </p>\n</div>\n\n<div class="intro">\n</div>\n\n<div class="video_files_panel">\n <h2>' + ((__t = I18n.t('pageflow.editor.templates.confirm_encoding.videos_tab')) == null ? '' : __t) + '</h2>\n</div>\n\n<div class="audio_files_panel">\n <h2>' + ((__t = I18n.t('pageflow.editor.templates.confirm_encoding.audios_tab')) == null ? '' : __t) + '</h2>\n</div>\n\n<div class="summary">\n</div>\n<button class="confirm">' + ((__t = I18n.t('pageflow.editor.templates.confirm_encoding.confirm_button')) == null ? '' : __t) + '</button>\n';
6756
6868
  return __p;
6757
6869
  }
6758
6870
 
@@ -6764,6 +6876,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
6764
6876
  videoFilesPanel: '.video_files_panel',
6765
6877
  audioFilesPanel: '.audio_files_panel',
6766
6878
  summary: '.summary',
6879
+ intro: '.intro',
6767
6880
  confirmButton: 'button'
6768
6881
  },
6769
6882
  events: {
@@ -6805,10 +6918,12 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
6805
6918
  },
6806
6919
  updateBlankSlate: function updateBlankSlate() {
6807
6920
  this.ui.blankSlate.toggle(!this.confirmableVideoFiles.length && !this.confirmableAudioFiles.length);
6921
+ this.ui.intro.toggle(!!this.confirmableVideoFiles.length || !!this.confirmableAudioFiles.length);
6808
6922
  this.ui.videoFilesPanel.toggle(!!this.confirmableVideoFiles.length);
6809
6923
  this.ui.audioFilesPanel.toggle(!!this.confirmableAudioFiles.length);
6810
6924
  },
6811
6925
  updateSummary: function updateSummary(enabled) {
6926
+ this.ui.intro.html(this.model.get('intro_html'));
6812
6927
  this.ui.summary.html(this.model.get('summary_html'));
6813
6928
  this.ui.confirmButton.toggleClass('checking', !!this.model.get('checking'));
6814
6929
 
@@ -7197,13 +7312,13 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
7197
7312
  var __t,
7198
7313
  __p = '';
7199
7314
 
7200
- __p += '<div class="box">\n <h2>' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.title')) == null ? '' : __t) + '</h2>\n <p>' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.help')) == null ? '' : __t) + '</p>\n\n <div class="wrapper">\n </div>\n\n <h3>' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.preview_title')) == null ? '' : __t) + '</h3>\n <div class="previews">\n <div>\n </div>\n </div>\n\n <div class="footer">\n <a href="" class="save">' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.save')) == null ? '' : __t) + '</a>\n <a href="" class="close">' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.cancel')) == null ? '' : __t) + '</a>\n </div>\n</div>\n';
7315
+ __p += '<div class="box">\n <div class="content">\n <h2 class="dialog-header">' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.title')) == null ? '' : __t) + '</h2>\n <p class="dialog-hint">' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.help')) == null ? '' : __t) + '</p>\n\n <div class="wrapper">\n </div>\n\n <h3>' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.preview_title')) == null ? '' : __t) + '</h3>\n <div class="previews">\n <div>\n </div>\n </div>\n </div>\n\n <div class="footer">\n <a href="" class="save">' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.save')) == null ? '' : __t) + '</a>\n <a href="" class="close">' + ((__t = I18n.t('pageflow.editor.templates.background_positioning.cancel')) == null ? '' : __t) + '</a>\n </div>\n</div>\n';
7201
7316
  return __p;
7202
7317
  }
7203
7318
 
7204
7319
  var BackgroundPositioningView = Marionette.ItemView.extend({
7205
7320
  template: template$b$1,
7206
- className: 'background_positioning dialog',
7321
+ className: 'background_positioning editor dialog',
7207
7322
  mixins: [dialogView],
7208
7323
  ui: {
7209
7324
  previews: '.previews > div',
@@ -7754,7 +7869,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
7754
7869
  var __t,
7755
7870
  __p = '';
7756
7871
 
7757
- __p += '<div class="box">\n <div class="content">\n <div>\n <h2 class="themes_header">' + ((__t = I18n.t('pageflow.editor.templates.change_theme_dialog.header')) == null ? '' : __t) + '</h2>\n <div class="themes_panel">\n </div>\n <div class="preview_panel">\n <h2 class="preview_header">' + ((__t = I18n.t('pageflow.editor.templates.change_theme_dialog.preview_header_prefix')) == null ? '' : __t) + '\n <span class="preview_header_theme_name"></span>' + ((__t = I18n.t('pageflow.editor.templates.change_theme_dialog.preview_header_suffix')) == null ? '' : __t) + '\n </h2>\n <div class="preview_image_region">\n <img class="preview_image" src="default_template.png">\n </div>\n </div>\n </div>\n </div>\n\n <div class="footer">\n <a href="" class="close">\n ' + ((__t = I18n.t('pageflow.editor.templates.change_theme_dialog.close')) == null ? '' : __t) + '\n </a>\n </div>\n</div>\n';
7872
+ __p += '<div class="box">\n <h1 class="dialog-header">\n ' + ((__t = I18n.t('pageflow.editor.templates.change_theme_dialog.header')) == null ? '' : __t) + '\n </h1>\n <div class="panels">\n <div class="themes_panel">\n </div>\n <div class="preview_panel">\n <h2 class="dialog-sub_header">\n ' + ((__t = I18n.t('pageflow.editor.templates.change_theme_dialog.preview_header_prefix')) == null ? '' : __t) + '\n <span class="preview_header_theme_name"></span>\n ' + ((__t = I18n.t('pageflow.editor.templates.change_theme_dialog.preview_header_suffix')) == null ? '' : __t) + '\n </h2>\n <div class="preview_image_region">\n <img class="preview_image" src="default_template.png">\n </div>\n </div>\n </div>\n <div class="footer">\n <a href="" class="close">\n ' + ((__t = I18n.t('pageflow.editor.templates.change_theme_dialog.close')) == null ? '' : __t) + '\n </a>\n </div>\n</div>\n';
7758
7873
  return __p;
7759
7874
  }
7760
7875
 
@@ -7763,7 +7878,6 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
7763
7878
  className: 'change_theme dialog editor',
7764
7879
  mixins: [dialogView],
7765
7880
  ui: {
7766
- content: '.content',
7767
7881
  themesPanel: '.themes_panel',
7768
7882
  previewPanel: '.preview_panel',
7769
7883
  previewImageRegion: '.preview_image_region',
@@ -8269,7 +8383,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
8269
8383
  var __t,
8270
8384
  __p = '';
8271
8385
 
8272
- __p += '<div class="box">\n <h2>' + ((__t = I18n.t('pageflow.editor.templates.files_explorer.reuse_files')) == null ? '' : __t) + '</h2>\n\n <div class="panels">\n <ul class="entries_panel">\n </ul>\n\n <div class="files_panel">\n </div>\n </div>\n\n <div class="footer">\n <button class="ok">' + ((__t = I18n.t('pageflow.editor.templates.files_explorer.ok')) == null ? '' : __t) + '</button>\n <button class="close">' + ((__t = I18n.t('pageflow.editor.templates.files_explorer.cancel')) == null ? '' : __t) + '</button>\n </div>\n</div>\n';
8386
+ __p += '<div class="box">\n <h1 class="dialog-header">\n ' + ((__t = I18n.t('pageflow.editor.templates.files_explorer.reuse_files')) == null ? '' : __t) + '\n </h1>\n\n <div class="panels">\n <ul class="entries_panel">\n </ul>\n\n <div class="files_panel">\n </div>\n </div>\n\n <div class="footer">\n <button class="ok">' + ((__t = I18n.t('pageflow.editor.templates.files_explorer.ok')) == null ? '' : __t) + '</button>\n <button class="close">' + ((__t = I18n.t('pageflow.editor.templates.files_explorer.cancel')) == null ? '' : __t) + '</button>\n </div>\n</div>\n';
8273
8387
  return __p;
8274
8388
  }
8275
8389
 
@@ -8735,7 +8849,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
8735
8849
  var __t,
8736
8850
  __p = '';
8737
8851
 
8738
- __p += '<div class="box file_importer_box">\n <h1 class="dialog-header">' + ((__t = I18n.t('pageflow.editor.file_importers.' + data.importerKey + '.dialog_label')) == null ? '' : __t) + '</h1>\n\n <div class="content_panel">\n \n </div>\n\n <div class="footer">\n <div class="disclaimer">\n <p>' + ((__t = I18n.t('pageflow.editor.file_importers.' + data.importerKey + '.disclaimer')) == null ? '' : __t) + '</p>\n </div>\n <button class="import">' + ((__t = I18n.t('pageflow.editor.views.files_view.import')) == null ? '' : __t) + '</button>\n <button class="close">' + ((__t = I18n.t('pageflow.editor.templates.files_explorer.cancel')) == null ? '' : __t) + '</button>\n </div>\n</div>\n';
8852
+ __p += '<div class="box file_importer_box">\n <h1 class="dialog-header">' + ((__t = I18n.t('pageflow.editor.file_importers.' + data.importerKey + '.dialog_label')) == null ? '' : __t) + '</h1>\n\n <div class="content_panel">\n \n </div>\n\n <div class="footer">\n <div class="disclaimer">\n ' + ((__t = I18n.t('pageflow.editor.file_importers.' + data.importerKey + '.disclaimer')) == null ? '' : __t) + '\n </div>\n <button class="import" disabled>' + ((__t = I18n.t('pageflow.editor.views.files_view.import')) == null ? '' : __t) + '</button>\n <button class="close">' + ((__t = I18n.t('pageflow.editor.templates.files_explorer.cancel')) == null ? '' : __t) + '</button>\n </div>\n</div>\n';
8739
8853
  return __p;
8740
8854
  }
8741
8855
 
@@ -8743,18 +8857,11 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
8743
8857
  var __t,
8744
8858
  __p = '';
8745
8859
 
8746
- __p += '<div class="box">\n <h1 class="dialog-header">' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.header')) == null ? '' : __t) + '</h1>\n <p class="dialog-hint">' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.hint')) == null ? '' : __t) + '</p>\n\n <div class="files_panel">\n </div>\n\n <div class="selected_file_panel">\n <h2>' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.edit_file_header')) == null ? '' : __t) + '</h2>\n <div class="selected_file_region">\n </div>\n </div>\n\n <div class="footer">\n <button class="upload">' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.upload')) == null ? '' : __t) + '</button>\n <button class="close">' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.close')) == null ? '' : __t) + '</button>\n </div>\n</div>\n';
8747
- return __p;
8748
- }
8749
-
8750
- function template$z(data) {
8751
- var __p = '';
8752
- __p += '<h2></h2>\n';
8860
+ __p += '<div class="box">\n <h1 class="dialog-header">' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.header')) == null ? '' : __t) + '</h1>\n <p class="dialog-hint">' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.hint')) == null ? '' : __t) + '</p>\n\n <div class="panels">\n <div class="files_panel">\n </div>\n\n <div class="selected_file_panel">\n <h2 class="dialog-sub_header">' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.edit_file_header')) == null ? '' : __t) + '</h2>\n <div class="selected_file_region">\n </div>\n </div>\n </div>\n\n <div class="footer">\n <button class="upload">' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.upload')) == null ? '' : __t) + '</button>\n <button class="close">' + ((__t = I18n.t('pageflow.editor.templates.confirm_upload.close')) == null ? '' : __t) + '</button>\n </div>\n</div>\n';
8753
8861
  return __p;
8754
8862
  }
8755
8863
 
8756
- var UploadableFilesView = Marionette.ItemView.extend({
8757
- template: template$z,
8864
+ var UploadableFilesView = Marionette.View.extend({
8758
8865
  className: 'uploadable_files',
8759
8866
  ui: {
8760
8867
  header: 'h2'
@@ -8766,24 +8873,27 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
8766
8873
  this.options.selection.set('file', this.uploadableFiles.first());
8767
8874
  }
8768
8875
  },
8769
- onRender: function onRender() {
8770
- this.ui.header.text(I18n$1.t('pageflow.editor.files.tabs.' + this.options.fileType.collectionName));
8876
+ render: function render() {
8771
8877
  this.appendSubview(new TableView({
8772
8878
  collection: this.uploadableFiles,
8773
8879
  attributeTranslationKeyPrefixes: ['pageflow.editor.files.attributes.' + this.options.fileType.collectionName, 'pageflow.editor.files.common_attributes'],
8774
- columns: this.commonColumns().concat(this.fileTypeColumns()),
8880
+ columns: this.commonColumns({
8881
+ fileTypeDisplayName: I18n$1.t('pageflow.editor.files.tabs.' + this.options.fileType.collectionName)
8882
+ }).concat(this.fileTypeColumns()),
8775
8883
  selection: this.options.selection,
8776
8884
  selectionAttribute: 'file'
8777
8885
  }));
8778
8886
  this.listenTo(this.uploadableFiles, 'add remove', this.update);
8779
8887
  this.update();
8888
+ return this;
8780
8889
  },
8781
8890
  update: function update() {
8782
8891
  this.$el.toggleClass('is_empty', this.uploadableFiles.length === 0);
8783
8892
  },
8784
- commonColumns: function commonColumns() {
8893
+ commonColumns: function commonColumns(options) {
8785
8894
  return [{
8786
8895
  name: 'file_name',
8896
+ headerText: options.fileTypeDisplayName,
8787
8897
  cellView: TextTableCellView
8788
8898
  }, {
8789
8899
  name: 'rights',
@@ -8956,7 +9066,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
8956
9066
  app.dialogRegion.show(new FilesImporterView(options).render());
8957
9067
  };
8958
9068
 
8959
- function template$A(data) {
9069
+ function template$z(data) {
8960
9070
  var __t,
8961
9071
  __p = '';
8962
9072
 
@@ -8965,7 +9075,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
8965
9075
  }
8966
9076
 
8967
9077
  var SelectButtonView = Marionette.ItemView.extend({
8968
- template: template$A,
9078
+ template: template$z,
8969
9079
  className: 'select_button',
8970
9080
  ui: {
8971
9081
  button: 'button',
@@ -9000,7 +9110,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9000
9110
  }
9001
9111
  });
9002
9112
 
9003
- function template$B(data) {
9113
+ function template$A(data) {
9004
9114
  var __t,
9005
9115
  __p = '';
9006
9116
 
@@ -9009,7 +9119,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9009
9119
  }
9010
9120
 
9011
9121
  var FilesView = Marionette.ItemView.extend({
9012
- template: template$B,
9122
+ template: template$A,
9013
9123
  className: 'manage_files',
9014
9124
  events: {
9015
9125
  'click a.back': 'goBack',
@@ -9094,14 +9204,14 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9094
9204
  }
9095
9205
  });
9096
9206
 
9097
- function template$C(data) {
9207
+ function template$B(data) {
9098
9208
  var __p = '';
9099
9209
  __p += '<div class="quota_state">\n</div>\n<div class="outlet">\n</div>\n<div class="exhausted_message">\n</div>\n';
9100
9210
  return __p;
9101
9211
  }
9102
9212
 
9103
9213
  var EntryPublicationQuotaDecoratorView = Marionette.Layout.extend({
9104
- template: template$C,
9214
+ template: template$B,
9105
9215
  className: 'quota_decorator',
9106
9216
  regions: {
9107
9217
  outlet: '.outlet'
@@ -9142,7 +9252,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9142
9252
  }
9143
9253
  });
9144
9254
 
9145
- function template$D(data) {
9255
+ function template$C(data) {
9146
9256
  var __t,
9147
9257
  __p = '';
9148
9258
 
@@ -9151,7 +9261,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9151
9261
  }
9152
9262
 
9153
9263
  var PublishEntryView = Marionette.ItemView.extend({
9154
- template: template$D,
9264
+ template: template$C,
9155
9265
  className: 'publish_entry',
9156
9266
  ui: {
9157
9267
  publishUntilFields: '.publish_until_fields',
@@ -9424,11 +9534,13 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9424
9534
  editor.setDefaultHelpEntry('pageflow.help_entries.files');
9425
9535
  },
9426
9536
  confirmableFiles: function confirmableFiles(preselectedFileType, preselectedFileId) {
9537
+ var model = EncodingConfirmation.createWithPreselection({
9538
+ fileType: preselectedFileType,
9539
+ fileId: preselectedFileId
9540
+ });
9541
+ model.check();
9427
9542
  this.region.show(ConfirmEncodingView.create({
9428
- model: EncodingConfirmation.createWithPreselection({
9429
- fileType: preselectedFileType,
9430
- fileId: preselectedFileId
9431
- })
9543
+ model: model
9432
9544
  }));
9433
9545
  },
9434
9546
  metaData: function metaData(tab) {
@@ -9532,7 +9644,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9532
9644
  }
9533
9645
  });
9534
9646
 
9535
- function template$E(data) {
9647
+ function template$D(data) {
9536
9648
  var __t,
9537
9649
  __p = '';
9538
9650
 
@@ -9541,7 +9653,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9541
9653
  }
9542
9654
 
9543
9655
  var HelpView = Marionette.ItemView.extend({
9544
- template: template$E,
9656
+ template: template$D,
9545
9657
  className: 'help',
9546
9658
  ui: {
9547
9659
  placeholder: '.placeholder',
@@ -9617,7 +9729,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9617
9729
  className: 'model_thumbnail page_thumbnail'
9618
9730
  });
9619
9731
 
9620
- function template$F(data) {
9732
+ function template$E(data) {
9621
9733
  var __t,
9622
9734
  __p = '';
9623
9735
 
@@ -9626,7 +9738,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9626
9738
  }
9627
9739
 
9628
9740
  var PageLinkItemView = Marionette.ItemView.extend({
9629
- template: template$F,
9741
+ template: template$E,
9630
9742
  tagName: 'li',
9631
9743
  className: 'page_link',
9632
9744
  ui: {
@@ -9676,7 +9788,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9676
9788
  }
9677
9789
  });
9678
9790
 
9679
- function template$G(data) {
9791
+ function template$F(data) {
9680
9792
  var __t,
9681
9793
  __p = '';
9682
9794
 
@@ -9685,7 +9797,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9685
9797
  }
9686
9798
 
9687
9799
  var PageLinksView = Marionette.ItemView.extend({
9688
- template: template$G,
9800
+ template: template$F,
9689
9801
  className: 'page_links',
9690
9802
  ui: {
9691
9803
  links: 'ul.links',
@@ -9721,14 +9833,14 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9721
9833
  }
9722
9834
  });
9723
9835
 
9724
- function template$H(data) {
9836
+ function template$G(data) {
9725
9837
  var __p = '';
9726
9838
  __p += '<div class="emulation_mode_button-wrapper"\n data-tooltip-align="top center">\n <div class="emulation_mode_button-desktop_icon"/>\n <div class="emulation_mode_button-phone_icon"/>\n <div class="emulation_mode_button-track" />\n <div class="emulation_mode_button-thumb" />\n</div>\n';
9727
9839
  return __p;
9728
9840
  }
9729
9841
 
9730
9842
  var EmulationModeButtonView = Marionette.ItemView.extend({
9731
- template: template$H,
9843
+ template: template$G,
9732
9844
  className: 'emulation_mode_button',
9733
9845
  mixins: [tooltipContainer],
9734
9846
  ui: {
@@ -9762,7 +9874,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9762
9874
  }
9763
9875
  });
9764
9876
 
9765
- function template$I(data) {
9877
+ function template$H(data) {
9766
9878
  var __t,
9767
9879
  __p = '';
9768
9880
 
@@ -9771,7 +9883,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9771
9883
  }
9772
9884
 
9773
9885
  var HelpButtonView = Marionette.ItemView.extend({
9774
- template: template$I,
9886
+ template: template$H,
9775
9887
  className: 'help_button',
9776
9888
  events: {
9777
9889
  'click': function click() {
@@ -9808,7 +9920,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9808
9920
  }
9809
9921
  });
9810
9922
 
9811
- function template$J(data) {
9923
+ function template$I(data) {
9812
9924
  var __t,
9813
9925
  __p = '';
9814
9926
 
@@ -9817,7 +9929,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9817
9929
  }
9818
9930
 
9819
9931
  var ListItemView = Marionette.ItemView.extend({
9820
- template: template$J,
9932
+ template: template$I,
9821
9933
  tagName: 'li',
9822
9934
  className: 'list_item',
9823
9935
  ui: {
@@ -9891,16 +10003,16 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
9891
10003
  }
9892
10004
  });
9893
10005
 
9894
- function template$K(data) {
10006
+ function template$J(data) {
9895
10007
  var __t,
9896
10008
  __p = '';
9897
10009
 
9898
- __p += '<div class="checking notice">\n <p>' + ((__t = I18n.t('pageflow.editor.templates.locked.loading')) == null ? '' : __t) + '</p>\n\n <a class="close" href="#">' + ((__t = I18n.t('pageflow.editor.templates.locked.close')) == null ? '' : __t) + '</a>\n</div>\n\n<div class="error notice">\n <div class="message"></div>\n\n <a class="close" href="#">' + ((__t = I18n.t('pageflow.editor.templates.locked.close')) == null ? '' : __t) + '</a>\n <a class="break" href="#">' + ((__t = I18n.t('pageflow.editor.templates.locked.open_here')) == null ? '' : __t) + '</a>\n</div>\n\n';
10010
+ __p += '<div class="checking notice editor">\n <p>' + ((__t = I18n.t('pageflow.editor.templates.locked.loading')) == null ? '' : __t) + '</p>\n\n <a class="close" href="#">' + ((__t = I18n.t('pageflow.editor.templates.locked.close')) == null ? '' : __t) + '</a>\n</div>\n\n<div class="error notice editor">\n <p class="message"></p>\n\n <a class="close" href="#">' + ((__t = I18n.t('pageflow.editor.templates.locked.close')) == null ? '' : __t) + '</a>\n <a class="break" href="#">' + ((__t = I18n.t('pageflow.editor.templates.locked.open_here')) == null ? '' : __t) + '</a>\n</div>\n\n';
9899
10011
  return __p;
9900
10012
  }
9901
10013
 
9902
10014
  var LockedView = Marionette.ItemView.extend({
9903
- template: template$K,
10015
+ template: template$J,
9904
10016
  className: 'locked checking',
9905
10017
  ui: {
9906
10018
  breakButton: '.break',
@@ -10090,7 +10202,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10090
10202
  }
10091
10203
  });
10092
10204
 
10093
- function template$L(data) {
10205
+ function template$K(data) {
10094
10206
  var __t,
10095
10207
  __p = '';
10096
10208
 
@@ -10103,7 +10215,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10103
10215
  var NotificationsView = Marionette.ItemView.extend({
10104
10216
  className: 'notifications',
10105
10217
  tagName: 'ul',
10106
- template: template$L,
10218
+ template: template$K,
10107
10219
  ui: {
10108
10220
  failedCount: '.failed .count',
10109
10221
  uploadingCount: '.uploading .count',
@@ -10188,15 +10300,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10188
10300
  return this.model.getReference(this.options.propertyName, this.options.collection);
10189
10301
  }
10190
10302
  });
10191
-
10192
- function template$M(data) {
10193
- var __p = '';
10194
- __p += '<h2></h2>\n';
10195
- return __p;
10196
- }
10197
-
10198
- var NestedFilesView = Marionette.ItemView.extend({
10199
- template: template$M,
10303
+ var NestedFilesView = Marionette.View.extend({
10200
10304
  className: 'nested_files',
10201
10305
  ui: {
10202
10306
  header: 'h2'
@@ -10215,8 +10319,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10215
10319
  this.listenTo(this.collection, 'request', this.update);
10216
10320
  this.listenTo(this.collection, 'sync', this.update);
10217
10321
  },
10218
- onRender: function onRender() {
10219
- this.ui.header.text(this.collection.parentModel.get('file_name'));
10322
+ render: function render() {
10220
10323
  this.appendSubview(new TableView({
10221
10324
  collection: this.collection,
10222
10325
  attributeTranslationKeyPrefixes: ['pageflow.editor.nested_files.' + this.options.fileType.collectionName],
@@ -10226,6 +10329,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10226
10329
  blankSlateText: this.options.tableBlankSlateText
10227
10330
  }));
10228
10331
  this.update();
10332
+ return this;
10229
10333
  },
10230
10334
  update: function update() {
10231
10335
  this.$el.toggleClass('is_empty', this.collection.length === 0);
@@ -10272,16 +10376,16 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10272
10376
  }, 200)
10273
10377
  });
10274
10378
 
10275
- function template$N(data) {
10379
+ function template$L(data) {
10276
10380
  var __t,
10277
10381
  __p = '';
10278
10382
 
10279
- __p += '<div class="text_tracks_container">\n <div class="files_upload_panel">\n <div class="files_panel">\n </div>\n <a class="upload" href="">' + ((__t = I18n.t('pageflow.editor.templates.text_tracks.upload')) == null ? '' : __t) + '</a>\n </div>\n\n <div class="selected_file_panel">\n <h2 class="selected_file_header">' + ((__t = I18n.t('pageflow.editor.templates.text_tracks.edit_file_header')) == null ? '' : __t) + '</h2>\n <div class="selected_file_region">\n </div>\n </div>\n</div>\n';
10383
+ __p += '<div class="text_tracks_container">\n <div class="files_upload_panel">\n <div class="files_panel">\n </div>\n <a class="upload" href="">' + ((__t = I18n.t('pageflow.editor.templates.text_tracks.upload')) == null ? '' : __t) + '</a>\n </div>\n\n <div class="selected_file_panel">\n <h2 class="selected_file_header dialog-sub_header">' + ((__t = I18n.t('pageflow.editor.templates.text_tracks.edit_file_header')) == null ? '' : __t) + '</h2>\n <div class="selected_file_region">\n </div>\n </div>\n</div>\n';
10280
10384
  return __p;
10281
10385
  }
10282
10386
 
10283
10387
  var TextTracksView = Marionette.Layout.extend({
10284
- template: template$N,
10388
+ template: template$L,
10285
10389
  className: 'text_tracks',
10286
10390
  regions: {
10287
10391
  selectedFileRegion: '.selected_file_region'
@@ -10319,6 +10423,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10319
10423
  if (selectedFile) {
10320
10424
  this.selectedFileRegion.show(new EditFileView({
10321
10425
  model: selectedFile,
10426
+ displayFileName: true,
10322
10427
  attributeTranslationKeyPrefixes: ['pageflow.editor.nested_files.text_track_files']
10323
10428
  }));
10324
10429
  this.ui.selectedFileHeader.toggle(true);
@@ -10343,7 +10448,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10343
10448
  }
10344
10449
  });
10345
10450
 
10346
- function template$O(data) {
10451
+ function template$M(data) {
10347
10452
  var __p = '';
10348
10453
  __p += '<label>\n <span class="list_label"></span>\n</label>\n\n<ul class="list_items"></ul>\n';
10349
10454
  return __p;
@@ -10390,7 +10495,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10390
10495
 
10391
10496
 
10392
10497
  var ListView = Marionette.ItemView.extend({
10393
- template: template$O,
10498
+ template: template$M,
10394
10499
  className: 'list',
10395
10500
  ui: {
10396
10501
  label: '.list_label',
@@ -10590,6 +10695,17 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10590
10695
  }
10591
10696
  })
10592
10697
  });
10698
+ editor.widgetTypes.register('consent_bar', {
10699
+ configurationEditorView: ConfigurationEditorView.extend({
10700
+ configure: function configure() {
10701
+ this.tab('consent_bar', function () {
10702
+ this.view(InfoBoxView, {
10703
+ text: I18n$1.t('pageflow.editor.consent_bar.widget_type_info_box_text')
10704
+ });
10705
+ });
10706
+ }
10707
+ })
10708
+ });
10593
10709
  editor.widgetTypes.registerRole('cookie_notice', {
10594
10710
  isOptional: true
10595
10711
  });
@@ -10898,9 +11014,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10898
11014
  }
10899
11015
  });
10900
11016
  });
10901
- app.addInitializer(function ()
10902
- /* args */
10903
- {
11017
+ app.addInitializer(function () {
10904
11018
  var context = this;
10905
11019
  var args = arguments;
10906
11020
 
@@ -10994,7 +11108,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
10994
11108
  }
10995
11109
  });
10996
11110
 
10997
- function template$P(data) {
11111
+ function template$N(data) {
10998
11112
  var __t, __p = '';
10999
11113
  __p += '<a href="">\n <span class="type_pictogram"></span>\n <span class="page_thumbnail"></span>\n <span class="title"></span>\n <span class="failure_icon" title="' +
11000
11114
  ((__t = ( I18n.t('pageflow.editor.templates.page_item.save_error') )) == null ? '' : __t) +
@@ -11004,7 +11118,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11004
11118
 
11005
11119
  var PageItemView = Marionette.ItemView.extend({
11006
11120
  tagName: 'li',
11007
- template: template$P,
11121
+ template: template$N,
11008
11122
  ui: {
11009
11123
  title: '.title',
11010
11124
  pictogram: '.type_pictogram',
@@ -11024,19 +11138,29 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11024
11138
  update: function update() {
11025
11139
  this.$el.attr('data-id', this.model.id);
11026
11140
  this.$el.attr('data-perma-id', this.model.get('perma_id'));
11141
+ this.$el.attr('title', this._getItemTitle());
11027
11142
  this.$el.toggleClass('active', this.model.get('active'));
11028
11143
  this.$el.toggleClass('disabled', !!(this.options.isDisabled && this.options.isDisabled(this.model)));
11029
- this.$el.toggleClass('display_in_navigation', !!this.model.configuration.get('display_in_navigation'));
11144
+ this.$el.toggleClass('hide_in_navigation', !this.model.configuration.get('display_in_navigation'));
11030
11145
  this.$el.removeClass(editor.pageTypes.pluck('name').join(' ')).addClass(this.model.get('template'));
11031
11146
  this.ui.pictogram.attr('title', this._getPictogramTitle());
11032
- this.ui.title.text(this.model.title() || I18n$1.t('pageflow.editor.views.page_item_view.unnamed'));
11147
+ this.ui.title.text(this._getTitle());
11033
11148
  },
11034
11149
  _getPictogramTitle: function _getPictogramTitle() {
11035
- var result = I18n$1.t(this.model.pageType().translationKey());
11036
- result += ' Seite';
11150
+ return I18n$1.t(this.model.pageType().translationKey()) + ' Seite';
11151
+ },
11152
+ _getItemTitle: function _getItemTitle() {
11153
+ if (this.options.displayInNavigationHint && !this.model.configuration.get('display_in_navigation')) {
11154
+ return 'nicht in Navigationsleiste';
11155
+ }
11156
+
11157
+ return '';
11158
+ },
11159
+ _getTitle: function _getTitle() {
11160
+ var result = this.model.title() || I18n$1.t('pageflow.editor.views.page_item_view.unnamed');
11037
11161
 
11038
11162
  if (this.options.displayInNavigationHint && !this.model.configuration.get('display_in_navigation')) {
11039
- result += ' (nicht in Navigationsleiste)';
11163
+ return "(".concat(result, ")");
11040
11164
  }
11041
11165
 
11042
11166
  return result;
@@ -11059,9 +11183,9 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11059
11183
  }
11060
11184
  });
11061
11185
 
11062
- function template$Q(data) {
11186
+ function template$O(data) {
11063
11187
  var __t, __p = '';
11064
- __p += '<a class="edit_chapter" href="">\n <span class="pictogram"></span>\n <span class="number"></span>\n <span class="title"></span>\n <span class="failure_icon" title=' +
11188
+ __p += '<a class="edit_chapter" href="">\n <span class="drag_handle"></span>\n <span class="number"></span>\n <span class="title"></span>\n <span class="failure_icon" title=' +
11065
11189
  ((__t = ( I18n.t('pageflow.editor.templates.chapter_item.save_error') )) == null ? '' : __t) +
11066
11190
  ' />\n</a>\n\n<ul class="pages outline"></ul>\n\n<a href="" class="add_page">' +
11067
11191
  ((__t = ( I18n.t('pageflow.editor.templates.chapter_item.new_page') )) == null ? '' : __t) +
@@ -11071,7 +11195,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11071
11195
 
11072
11196
  var ChapterItemView = Marionette.ItemView.extend({
11073
11197
  tagName: 'li',
11074
- template: template$Q,
11198
+ template: template$O,
11075
11199
  ui: {
11076
11200
  title: '> a > .title',
11077
11201
  number: '> a > .number',
@@ -11099,6 +11223,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11099
11223
 
11100
11224
  var NavigatableChapterItemView = ChapterItemView.extend({
11101
11225
  mixins: [loadable, failureIndicatingView],
11226
+ className: 'draggable',
11102
11227
  events: {
11103
11228
  'click a.add_page': function clickAAdd_page() {
11104
11229
  this.model.addPage();
@@ -11115,18 +11240,18 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11115
11240
  }
11116
11241
  });
11117
11242
 
11118
- function template$R(data) {
11243
+ function template$P(data) {
11119
11244
  var __t, __p = '';
11120
11245
  __p += '<h2>' +
11121
11246
  ((__t = ( I18n.t('pageflow.editor.templates.storyline_outline.header') )) == null ? '' : __t) +
11122
- '</h2>\n<ul class="storyline_outline_chapters chapters"></ul>\n\n<a class="add_chapter" href="">' +
11247
+ '</h2>\n<ul class="storyline_outline_chapters chapters outline"></ul>\n\n<a class="add_chapter" href="">' +
11123
11248
  ((__t = ( I18n.t('pageflow.editor.templates.storyline_outline.new_chapter') )) == null ? '' : __t) +
11124
11249
  '</a>\n';
11125
11250
  return __p
11126
11251
  }
11127
11252
 
11128
11253
  var StorylineOutlineView = Marionette.Layout.extend({
11129
- template: template$R,
11254
+ template: template$P,
11130
11255
  className: 'storyline_outline',
11131
11256
  ui: {
11132
11257
  chapters: 'ul.storyline_outline_chapters'
@@ -11137,7 +11262,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11137
11262
  }
11138
11263
  },
11139
11264
  onRender: function onRender() {
11140
- this.ui.chapters.toggleClass('outline navigatable', !!this.options.navigatable);
11265
+ this.ui.chapters.toggleClass('navigatable', !!this.options.navigatable);
11141
11266
  var collectionView = this.options.sortable ? SortableCollectionView : CollectionView;
11142
11267
  new collectionView({
11143
11268
  el: this.ui.chapters,
@@ -11154,7 +11279,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11154
11279
  }
11155
11280
  });
11156
11281
 
11157
- function template$S(data) {
11282
+ function template$Q(data) {
11158
11283
  var __t, __p = '';
11159
11284
  __p += '<div class="storyline_picker_storylines">\n <div class="storyline_picker_select_region"></div>\n <a href="" class="add_storyline" title="' +
11160
11285
  ((__t = ( I18n.t('pageflow.editor.templates.storyline_picker.add') )) == null ? '' : __t) +
@@ -11165,7 +11290,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11165
11290
  }
11166
11291
 
11167
11292
  var StorylinePickerView = Marionette.Layout.extend({
11168
- template: template$S,
11293
+ template: template$Q,
11169
11294
  className: 'storyline_picker',
11170
11295
  regions: {
11171
11296
  selectRegion: '.storyline_picker_select_region',
@@ -11269,7 +11394,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11269
11394
  }, options));
11270
11395
  };
11271
11396
 
11272
- function template$T(data) {
11397
+ function template$R(data) {
11273
11398
  var __t, __p = '';
11274
11399
  __p += '<h2>' +
11275
11400
  ((__t = ( I18n.t('pageflow.editor.blank_entry.header') )) == null ? '' : __t) +
@@ -11288,7 +11413,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11288
11413
  }
11289
11414
 
11290
11415
  var BlankEntryView = Marionette.ItemView.extend({
11291
- template: template$T,
11416
+ template: template$R,
11292
11417
  className: 'blank_entry'
11293
11418
  });
11294
11419
 
@@ -11385,7 +11510,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11385
11510
  }
11386
11511
  });
11387
11512
 
11388
- function template$U(data) {
11513
+ function template$S(data) {
11389
11514
  var __t, __p = '';
11390
11515
  __p += '<div class="container">\n <div class="header"></div>\n <div class="overview"></div>\n\n <div class="entry"></div>\n</div>\n<div class="navigation_disabled_hint">\n ' +
11391
11516
  ((__t = ( I18n.t('pageflow.editor.templates.entry_preview.navigation_disabled_hint') )) == null ? '' : __t) +
@@ -11394,7 +11519,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11394
11519
  }
11395
11520
 
11396
11521
  var EntryPreviewView = Marionette.ItemView.extend({
11397
- template: template$U,
11522
+ template: template$S,
11398
11523
  className: 'entry_preview',
11399
11524
  ui: {
11400
11525
  container: '> .container',
@@ -11569,19 +11694,19 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11569
11694
  }
11570
11695
  };
11571
11696
 
11572
- function template$V(data) {
11697
+ function template$T(data) {
11573
11698
  var __t, __p = '';
11574
- __p += '<div class="box">\n <h2>' +
11699
+ __p += '<div class="box">\n <h1 class="dialog-header">\n ' +
11575
11700
  ((__t = ( I18n.t('pageflow.editor.templates.page_selection.title') )) == null ? '' : __t) +
11576
- '</h2>\n\n <div class="wrapper editor">\n <div class="storyline_picker">\n </div>\n </div>\n\n <div class="footer">\n <a href="" class="close">' +
11701
+ '\n </h1>\n\n <div class="content">\n <div class="storyline_picker">\n </div>\n </div>\n\n <div class="footer">\n <a href="" class="close">' +
11577
11702
  ((__t = ( I18n.t('pageflow.editor.templates.page_selection.cancel') )) == null ? '' : __t) +
11578
11703
  '</a>\n </div>\n</div>\n';
11579
11704
  return __p
11580
11705
  }
11581
11706
 
11582
11707
  var PageSelectionView = Marionette.ItemView.extend({
11583
- template: template$V,
11584
- className: 'page_selection dialog',
11708
+ template: template$T,
11709
+ className: 'page_selection dialog editor',
11585
11710
  mixins: [dialogView],
11586
11711
  ui: {
11587
11712
  storylines: '.storyline_picker',
@@ -11633,7 +11758,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11633
11758
  }
11634
11759
  });
11635
11760
 
11636
- function template$W(data) {
11761
+ function template$U(data) {
11637
11762
  var __t, __p = '';
11638
11763
  __p += '<a class="back">' +
11639
11764
  ((__t = ( I18n.t('pageflow.editor.templates.edit_chapter.outline') )) == null ? '' : __t) +
@@ -11648,7 +11773,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11648
11773
  }
11649
11774
 
11650
11775
  var EditChapterView = Marionette.Layout.extend({
11651
- template: template$W,
11776
+ template: template$U,
11652
11777
  className: 'edit_chapter',
11653
11778
  mixins: [failureIndicatingView],
11654
11779
  regions: {
@@ -11690,7 +11815,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11690
11815
  }
11691
11816
  });
11692
11817
 
11693
- function template$X(data) {
11818
+ function template$V(data) {
11694
11819
  var __t, __p = '';
11695
11820
  __p += '<a class="back">' +
11696
11821
  ((__t = ( I18n.t('pageflow.editor.templates.edit_page_link.back') )) == null ? '' : __t) +
@@ -11701,7 +11826,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11701
11826
  }
11702
11827
 
11703
11828
  var EditPageLinkView = Marionette.Layout.extend({
11704
- template: template$X,
11829
+ template: template$V,
11705
11830
  regions: {
11706
11831
  formContainer: '.form_container'
11707
11832
  },
@@ -11740,7 +11865,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11740
11865
  }
11741
11866
  });
11742
11867
 
11743
- function template$Y(data) {
11868
+ function template$W(data) {
11744
11869
  var __t, __p = '';
11745
11870
  __p += '<a class="back">' +
11746
11871
  ((__t = ( I18n.t('pageflow.editor.templates.edit_page.outline') )) == null ? '' : __t) +
@@ -11755,7 +11880,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11755
11880
  }
11756
11881
 
11757
11882
  var EditPageView = Marionette.Layout.extend({
11758
- template: template$Y,
11883
+ template: template$W,
11759
11884
  className: 'edit_page',
11760
11885
  mixins: [failureIndicatingView],
11761
11886
  regions: {
@@ -11825,7 +11950,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11825
11950
  }
11826
11951
  });
11827
11952
 
11828
- function template$Z(data) {
11953
+ function template$X(data) {
11829
11954
  var __t, __p = '';
11830
11955
  __p += '<a class="back">' +
11831
11956
  ((__t = ( I18n.t('pageflow.editor.templates.edit_storyline.outline') )) == null ? '' : __t) +
@@ -11840,7 +11965,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
11840
11965
  }
11841
11966
 
11842
11967
  var EditStorylineView = Marionette.Layout.extend({
11843
- template: template$Z,
11968
+ template: template$X,
11844
11969
  className: 'edit_storyline',
11845
11970
  mixins: [failureIndicatingView, tooltipContainer],
11846
11971
  regions: {
@@ -12059,6 +12184,9 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
12059
12184
  });
12060
12185
  this.tab('options', function () {
12061
12186
  this.input('autoplay', CheckBoxInputView);
12187
+ this.input('smart_contain', CheckBoxInputView, {
12188
+ storeInverted: 'contain'
12189
+ });
12062
12190
 
12063
12191
  if (frontend.features.isEnabled('auto_change_page')) {
12064
12192
  this.input('auto_change_page_on_ended', CheckBoxInputView);
@@ -12349,6 +12477,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
12349
12477
  exports.InfoBoxView = InfoBoxView;
12350
12478
  exports.InvalidNestedTypeError = InvalidNestedTypeError;
12351
12479
  exports.JsonInputView = JsonInputView;
12480
+ exports.LabelOnlyView = LabelOnlyView;
12352
12481
  exports.LazyVideoEmbeddedView = LazyVideoEmbeddedView;
12353
12482
  exports.ListItemView = ListItemView;
12354
12483
  exports.ListView = ListView;
@@ -12386,6 +12515,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
12386
12515
  exports.ScrollingView = ScrollingView;
12387
12516
  exports.SelectButtonView = SelectButtonView;
12388
12517
  exports.SelectInputView = SelectInputView;
12518
+ exports.SeparatorView = SeparatorView;
12389
12519
  exports.SidebarController = SidebarController;
12390
12520
  exports.SidebarFooterView = SidebarFooterView;
12391
12521
  exports.SidebarRouter = SidebarRouter;
@@ -12456,6 +12586,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
12456
12586
  exports.polling = polling;
12457
12587
  exports.retryable = retryable;
12458
12588
  exports.selectableView = selectableView;
12589
+ exports.serverSideValidation = serverSideValidation;
12459
12590
  exports.stageProvider = stageProvider;
12460
12591
  exports.startEditor = startEditor;
12461
12592
  exports.state = state;
@@ -12464,6 +12595,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
12464
12595
  exports.tooltipContainer = tooltipContainer;
12465
12596
  exports.transientReferences = transientReferences;
12466
12597
  exports.validFileTypeTranslationList = validFileTypeTranslationList;
12598
+ exports.viewWithValidationErrorMessages = viewWithValidationErrorMessages;
12467
12599
 
12468
12600
  return exports;
12469
12601