pageflow 15.5.0 → 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 (270) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +219 -87
  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/engine.rb +2 -0
  218. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +8 -0
  219. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +42 -0
  220. data/entry_types/scrolled/lib/pageflow_scrolled.rb +17 -1
  221. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/create_bundle_symlinks_for_yarn.rake +3 -2
  222. data/entry_types/scrolled/package/config/webpack.js +11 -0
  223. data/entry_types/scrolled/package/contentElements-editor.js +323 -89
  224. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  225. data/entry_types/scrolled/package/contentElements-frontend.js +719 -529
  226. data/entry_types/scrolled/package/editor.js +459 -261
  227. data/entry_types/scrolled/package/frontend/{EditableText-7093fd0e.js → EditableInlineText.module-b9923660.js} +284 -362
  228. data/entry_types/scrolled/package/frontend/{i18n-4dc6c377.js → PhonePlatformContext-9fb97827.js} +199 -106
  229. data/entry_types/scrolled/package/frontend/{Viewer-e49e7807.js → Viewer-e2290ea0.js} +196 -79
  230. data/entry_types/scrolled/package/frontend/{Wavesurfer-0adf5667.js → Wavesurfer-7d9cf1b7.js} +16 -58
  231. data/entry_types/scrolled/package/frontend/{components-6a6793ca.js → components-6ab26015.js} +664 -671
  232. data/entry_types/scrolled/package/frontend/{getPrototypeOf-63c7c8e8.js → createSuper-d0f30da3.js} +34 -5
  233. data/entry_types/scrolled/package/frontend/index.css +1 -9
  234. data/entry_types/scrolled/package/frontend/index.js +1919 -2386
  235. data/entry_types/scrolled/package/frontend/{useBrowserFeature-91a4c29d.js → usePhonePlatform-2857c22b.js} +9 -8
  236. data/entry_types/scrolled/package/frontend-server.js +3 -6
  237. data/entry_types/scrolled/package/package.json +16 -8
  238. data/entry_types/scrolled/package/testHelpers.js +456 -0
  239. data/entry_types/scrolled/package/values/breakpoints.module.css +9 -0
  240. data/entry_types/scrolled/package/values/colors.module.css +5 -0
  241. data/entry_types/scrolled/package/widgets/defaultNavigation.css +9 -0
  242. data/entry_types/scrolled/package/widgets/defaultNavigation.js +612 -0
  243. data/entry_types/scrolled/spec/fixtures/image.svg +1 -0
  244. data/lib/pageflow/ability_mixin.rb +4 -0
  245. data/lib/pageflow/built_in_widget_type.rb +4 -0
  246. data/lib/pageflow/built_in_widget_types_plugin.rb +7 -0
  247. data/lib/pageflow/configuration.rb +34 -1
  248. data/lib/pageflow/entry_type.rb +11 -2
  249. data/lib/pageflow/entry_type_configuration.rb +2 -0
  250. data/lib/pageflow/file_type.rb +24 -0
  251. data/lib/pageflow/paperclip_processors/audio_waveform.rb +42 -0
  252. data/lib/pageflow/paperclip_processors/noop.rb +10 -0
  253. data/lib/pageflow/theme_customizations.rb +61 -0
  254. data/lib/pageflow/version.rb +1 -1
  255. data/lib/pageflow.rb +9 -0
  256. data/package/config/jest/index.js +2 -1
  257. data/package/config/postcss/scaleFunctions.js +71 -0
  258. data/package/editor.js +95 -85
  259. data/package/frontend.js +521 -161
  260. data/package/package.json +5 -3
  261. data/package/testHelpers.js +26 -5
  262. data/package/ui.js +124 -11
  263. data/spec/factories/draft_entries.rb +19 -1
  264. data/spec/factories/entries.rb +4 -0
  265. data/spec/factories/published_entries.rb +6 -0
  266. data/spec/fixtures/audio.ogg +0 -0
  267. metadata +119 -14
  268. data/app/views/admin/entries/_not_allowed_to_see_entry_types.json.jbuilder +0 -2
  269. data/app/views/admin/entries/entry_types.json.jbuilder +0 -4
  270. data/package/config/jest/transformers/upwardBabel.js +0 -5
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 131 95" fill="#fff">
2
+ <path d="M32.0099801,0.0106331135 C46.6775918,-0.00982008087 61.3452034,0.00790602091 76.0141994,0.00108828946 C83.0067531,0.00654247462 89.9993068,-0.00982008087 96.9890918,0.0106331135 C97.00432,9.16821 97.0029357,18.3271504 96.9890918,27.4847273 C95.6323896,27.5583588 94.2826094,27.7438011 92.9411355,27.9633321 C92.9314448,19.9770414 92.9411355,11.9880237 92.9369823,4.00173311 C73.9791462,3.99900601 55.0199257,3.99900601 36.0620895,4.00173311 C36.0607051,13.6406418 36.0620895,23.2795506 36.0607051,32.9184593 C36.0717803,35.2883027 36.0385549,37.6595097 36.0773178,40.0307167 C42.2503127,40.0061729 48.4246919,40.0252626 54.5976867,40.0198084 C60.4010495,40.0307167 66.2057966,39.9979916 72.0077749,40.0334438 C71.006861,41.3124503 70.005947,42.5928202 69.1628535,43.9809104 C56.7905604,44.0054542 44.4154986,43.970002 32.0432055,44 C31.9836767,43.6345696 32.0127489,43.2650485 32.0085957,42.8996181 C32.0085957,34.4306321 32.0085957,25.9630097 32.0085957,17.4967507 C32.0155177,11.6662268 31.9850611,5.83842996 32.0099801,0.0106331135 Z M49.626717,8.01391579 C51.1992182,7.90357743 52.8085429,8.453907 53.9855321,9.50416467 C55.2593535,10.619808 56.0340115,12.3048518 55.9985518,14.0021554 C56.0408307,15.8084351 55.1543383,17.5929196 53.7359504,18.7044763 C52.4648566,19.7165923 50.7614273,20.186552 49.1534665,19.9318202 C47.8360023,19.754734 46.5826384,19.1172235 45.6743246,18.1473358 C44.2341154,16.6884175 43.6613049,14.451682 44.1986557,12.4778514 C44.7987429,10.0286124 47.1036232,8.13106515 49.626717,8.01391579 Z M71.7333866,15.7722218 C71.9142535,15.5143598 72.0647458,15.2319394 72.2801293,15 C74.6051666,18.867931 76.9633398,22.716761 79.2994223,26.5778703 C80.1913309,28.0813835 81.1495113,29.5507879 82,31.0774951 C79.998038,32.1485094 78.1079097,33.4228119 76.3544672,34.8567433 C76.1998329,35.0191009 75.9665007,34.9972713 75.7621626,35 C65.1766159,34.9863565 54.588308,35.0136435 44,34.9849922 C44.0883625,34.7571458 44.3078879,34.6179821 44.4694256,34.4433454 C48.2593467,30.6982059 52.0506485,26.9585238 55.8350471,23.2106556 C55.9330742,23.1260659 56.0518112,22.9459718 56.2009229,23.0619415 C58.8517967,24.3689883 61.5012898,25.6814926 64.1521636,26.9885395 C66.6967264,23.2597722 69.2040112,19.5091753 71.7333866,15.7722218 Z M0,21.0412296 C0.255713691,20.9839663 0.516897194,21.003054 0.77534579,21.003054 C9.94958725,21.0098711 19.1238287,20.996237 28.2980702,21.0098711 L28.3623405,21.0862222 C28.3787499,22.3937343 28.3500334,23.7039733 28.3773824,25.0128488 C22.9609015,25.0510243 17.5430532,25.0142122 12.1252048,25.0305732 C12.1142652,33.0119871 12.1115303,40.9934011 12.1265723,48.9748151 C24.0439242,48.9884492 35.9612762,48.9884492 47.8786281,48.9748151 C47.9005074,48.3012895 47.8772607,47.6250372 47.8909352,46.9515116 C51.9249212,46.9624189 55.9602747,46.9624189 59.9956282,46.9515116 C59.9983631,58.3005533 60.0052004,69.6495949 59.9928933,81 C47.911447,80.9754586 35.8300007,80.9972732 23.7485544,80.9890927 C15.8378394,80.9972732 7.92575697,80.9754586 0.0150419818,81 C-0.00410235868,61.0123798 0.0246141521,41.0247596 0,21.0412296 Z M3.43504167,25.0851096 C2.5311553,25.3209799 1.85836848,26.2371928 1.95272273,27.17113 C2.032035,28.1677842 2.94686098,29.007646 3.95193886,28.9912851 C5.31939175,28.9926485 6.6882121,29.0062826 8.05703244,28.984468 C9.09629664,28.9476559 9.98514102,27.9891772 9.93454527,26.9543475 C9.93181036,25.9576933 9.06758013,25.0578414 8.06660461,25.0292097 C6.77299418,25.0196659 5.48211865,25.0305732 4.18850821,25.0237561 C3.93689688,25.0278463 3.67844828,25.0114854 3.43504167,25.0851096 Z M3.2162492,33.1524186 C2.40124728,33.4687301 1.8433265,34.354948 1.95956,35.2275317 C2.05938406,36.1655591 2.90036759,36.9522479 3.84937989,36.9836063 C5.09923184,36.9999673 6.35045123,36.9822429 7.60167063,36.9917868 C8.04062301,36.9999673 8.50145463,36.9672454 8.88981126,36.7463726 C9.6200311,36.3564368 10.0630858,35.4893068 9.90856366,34.6712595 C9.77318583,33.7823149 8.95955135,33.0515261 8.05703244,33.0256212 C6.72923569,33.0188042 5.40417383,33.0283481 4.07774453,33.021531 C3.78647706,33.0174408 3.48837233,33.0378919 3.2162492,33.1524186 Z M3.43504167,41.0752058 C2.67337041,41.274264 2.06348642,41.9586968 1.96366235,42.7399319 C1.83648924,43.5838839 2.34791662,44.457831 3.12189495,44.8041377 C3.52529356,44.9963788 3.98065537,44.993652 4.41687284,44.9854715 C5.63390592,44.977291 6.85093899,44.9963788 8.06797207,44.977291 C9.100399,44.9295716 9.98787593,43.9792734 9.93591272,42.9430803 C9.92907546,41.9491529 9.06621268,41.0520278 8.06523716,41.0206693 C6.77299418,41.009762 5.48211865,41.0233962 4.18850821,41.0152157 C3.93689688,41.0138523 3.67981573,41.0070352 3.43504167,41.0752058 Z M3.42410204,49.0784344 C2.40671709,49.3265754 1.71888829,50.470478 2.01152321,51.4807663 C2.22211095,52.3492598 3.06856429,52.9927903 3.96287848,52.9777927 C5.32622902,52.9750659 6.68957955,52.9887 8.05293009,52.9723391 C9.07168249,52.9382538 9.95779197,52.0138604 9.93454527,50.9967551 C9.96052687,49.9796497 9.0771523,49.0388954 8.05429754,49.0157174 C6.80307814,49.0048101 5.55185875,49.0184442 4.30063935,49.0129906 C4.00937188,49.0089004 3.7098997,48.9952662 3.42410204,49.0784344 Z M51.5324623,49.0784344 C50.4152533,49.3497534 49.7424664,50.6845337 50.2087679,51.7384512 C50.5041377,52.4733303 51.2740137,52.9846098 52.0698713,52.9764293 C53.3949331,52.9791562 54.7213624,52.9791562 56.0464243,52.9764293 C57.1020979,53.0009707 58.0784593,52.0602165 58.041538,50.9981185 C58.086664,49.9755595 57.1827776,49.037532 56.1612903,49.014354 C54.9100709,49.0061735 53.6588515,49.0170808 52.4076321,49.0116272 C52.1149972,49.0116272 51.8168925,48.9952662 51.5324623,49.0784344 Z M12.1293072,53.0159683 C12.1142652,60.9973822 12.1170001,68.9774328 12.1279397,76.9588468 C24.0452917,76.9615736 35.9640111,76.9615736 47.881363,76.9588468 C47.8923027,68.9774328 47.8950376,60.9973822 47.8799956,53.0159683 C35.9626436,53.0009707 24.0452917,53.0009707 12.1293072,53.0159683 Z M3.43504167,57.0666654 C2.63781663,57.273904 2.01289066,58.0087831 1.95272273,58.8295571 C1.84059159,59.8998356 2.75815248,60.9333019 3.83570536,60.9673872 C5.20726062,60.9810213 6.57881587,60.970114 7.94900367,60.9728408 C8.98416551,60.9837481 9.92634055,60.0838962 9.93454527,59.0449762 C9.98924338,58.0115099 9.10450136,57.042124 8.06523716,57.0080387 C6.81128286,56.9971314 5.55732856,57.0107655 4.3020068,57.002585 C4.01347424,57.002585 3.71810442,56.9889509 3.43504167,57.0666654 Z M51.5434019,57.0693922 C50.5916547,57.3038991 49.9202353,58.312824 50.0870646,59.2767563 C50.2101353,60.2243276 51.1030821,60.986475 52.0589316,60.9728408 C53.3921982,60.9728408 54.7240973,60.9728408 56.0559964,60.9728408 C57.0870559,60.986475 58.0497428,60.086623 58.0401706,59.0449762 C58.1112781,58.0087831 57.2114941,57.0339435 56.1735974,57.0080387 C54.9196431,56.9971314 53.6643213,57.0107655 52.410367,57.002585 C52.120467,57.002585 51.8237297,56.9889509 51.5434019,57.0693922 Z M3.4254695,65.0658037 C2.46961992,65.3084911 1.79136329,66.3283232 1.97460198,67.300436 C2.11408217,68.200288 2.931819,68.9378939 3.84937989,68.9624353 C5.21273043,68.9733426 6.57608096,68.9624353 7.9394315,68.9678889 C8.99920749,68.9897035 9.96189432,68.0434956 9.93591272,66.9841244 C9.96326178,65.9642922 9.07578485,65.0317184 8.05429754,65.0030868 C6.84273428,64.9921795 5.62843611,65.0058136 4.41687284,65.0003599 C4.08458179,64.9989965 3.74818838,64.9785453 3.4254695,65.0658037 Z M51.5324623,65.0685305 C50.6053292,65.3003106 49.9475844,66.2642429 50.0761249,67.2090874 C50.1691117,68.1443881 51.0114627,68.9324402 51.9550052,68.9610719 C53.3197232,68.9719792 54.6844412,68.9610719 56.0477917,68.9665255 C57.1034654,68.9828865 58.0907663,68.0503126 58.041538,66.982761 C58.086664,65.960202 57.1827776,65.0249014 56.1612903,65.0017234 C54.9100709,64.9908161 53.660219,65.0044502 52.4089996,64.9989965 C52.1149972,64.9962697 51.8168925,64.9867258 51.5324623,65.0685305 Z M3.43504167,73.0567616 C2.63781663,73.2612734 2.01289066,73.9961525 1.95272273,74.8169265 C1.84195905,75.8872049 2.75541758,76.9288517 3.83570536,76.9547565 C5.20726062,76.9683907 6.57881587,76.9574834 7.94900367,76.9602102 C8.98416551,76.9765711 9.92634055,76.0685387 9.93454527,75.0323456 C9.98924338,73.9988793 9.100399,73.034947 8.06523716,72.995408 C6.81128286,72.9845007 5.55732856,72.9981349 4.3020068,72.9899544 C4.01347424,72.9913178 3.71810442,72.9804105 3.43504167,73.0567616 Z M51.5434019,73.0567616 C50.655925,73.2776343 49.9995476,74.1747594 50.0665528,75.0855187 C50.1021065,76.0603583 50.9594995,76.9233981 51.9413307,76.9547565 C53.3115185,76.9683907 54.6830737,76.9574834 56.054629,76.9602102 C57.0884234,76.9765711 58.0483753,76.0767192 58.0401706,75.0350724 C58.1112781,73.9961525 57.2073918,73.0294933 56.1722299,72.995408 C54.9182756,72.9845007 53.6629539,72.9981349 52.4089996,72.9899544 C52.120467,72.9913178 51.8237297,72.9804105 51.5434019,73.0567616 Z M96.8301076,31.0446879 C103.642669,30.6853671 110.560295,32.5010261 116.261391,36.1990363 C120.035395,38.6190077 123.282698,41.828396 125.743404,45.5413779 C128.479212,49.6640399 130.223825,54.4195967 130.786469,59.3139819 C131.411323,64.6738509 130.663434,70.1943254 128.560774,75.181263 C126.795425,79.4345872 124.062382,83.2891197 120.650572,86.4236495 C117.330001,89.4642659 113.361076,91.8257115 109.067282,93.2684391 C104.064307,94.9643245 98.6369294,95.424364 93.4113851,94.6050037 C88.6434214,93.8768346 84.0524075,92.0666198 80.0820997,89.3703525 C74.8814388,85.8560859 70.7590649,80.818789 68.3895985,75.0628504 C66.5509811,70.6366712 65.7602373,65.7926453 66.0629871,61.024839 C66.3408534,56.4040276 67.6596812,51.8485472 69.9019651,47.7816888 C71.9742114,44.0101811 74.8261421,40.655159 78.2310404,37.9833909 C83.4897629,33.8267022 90.096344,31.3631768 96.8301076,31.0446879 Z M112.430708,43.0560755 C103.887357,44.0346803 95.344007,44.988786 86.8034216,45.9755572 C86.7895974,54.128329 86.8089512,62.283823 86.795127,70.4379558 C84.469898,69.5900131 81.7797104,69.6458168 79.555398,70.7564448 C78.2255108,71.4206439 77.0615138,72.5190223 76.5583133,73.9250012 C76.0551127,75.2806206 76.2693877,76.8594546 77.0863974,78.0531075 C77.8384334,79.2072895 79.0328435,80.0307331 80.3212582,80.5179939 C81.8018291,81.0869186 83.4358485,81.1930815 85.000747,80.9698671 C86.8891315,80.6745163 88.7429556,79.7476319 89.8627151,78.1864917 C90.5331884,77.2500799 90.8276437,76.0836483 90.7571403,74.9485211 C90.7433161,67.8954888 90.7654348,60.8438175 90.7474634,53.7907852 C92.7229403,53.509045 94.7122415,53.3334678 96.6932481,53.0911984 C101.636779,52.5304402 106.577545,51.9669598 111.519693,51.4089237 C111.519693,56.7470157 111.519693,62.0823855 111.519693,67.4204775 C109.842819,66.8569971 108.013879,66.6650872 106.273413,67.0584346 C104.509446,67.4381714 102.789717,68.3773053 101.794375,69.8976135 C101.063075,70.9796592 100.822534,72.3665832 101.15708,73.6269282 C101.477801,74.8233032 102.276839,75.8699612 103.295682,76.5858808 C104.828785,77.6869813 106.769701,78.1619926 108.651174,78.0748845 C110.687477,77.9918596 112.762488,77.2323861 114.149055,75.7216053 C115.105689,74.6953632 115.588153,73.2757738 115.477559,71.8915719 C115.470647,65.1366126 115.476177,58.3816532 115.473412,51.6266939 C115.531474,48.6650191 115.470647,45.7033444 115.470647,42.7430308 C114.453187,42.7961123 113.441256,42.9553567 112.430708,43.0560755 Z"/>
3
+ </svg>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5
+ viewBox="-50 -50 430 430" style="enable-background:new 0 0 330 330;" xml:space="preserve" fill="#fff">
6
+ <filter id="shadow" x="-50%" y="-50%" width="200%" height="200%">
7
+ <feDropShadow dx="0" dy="0" stdDeviation="35" flood-color="#000000" flood-opacity="1" />
8
+ </filter>
9
+ <g filter="url(#shadow)">
10
+ <path d="M165,0C74.019,0,0,74.02,0,165.001C0,255.982,74.019,330,165,330s165-74.018,165-164.999C330,74.02,255.981,0,165,0z
11
+ M165,300c-74.44,0-135-60.56-135-134.999C30,90.562,90.56,30,165,30s135,60.562,135,135.001C300,239.44,239.439,300,165,300z"/>
12
+ <path d="M164.998,70c-11.026,0-19.996,8.976-19.996,20.009c0,11.023,8.97,19.991,19.996,19.991
13
+ c11.026,0,19.996-8.968,19.996-19.991C184.994,78.976,176.024,70,164.998,70z"/>
14
+ <path d="M165,140c-8.284,0-15,6.716-15,15v90c0,8.284,6.716,15,15,15c8.284,0,15-6.716,15-15v-90C180,146.716,173.284,140,165,140z"/>
15
+ </g>
16
+ </svg>
@@ -86,68 +86,20 @@ jQuery(function($) {
86
86
  }
87
87
  });
88
88
 
89
- $('.admin_entries form.entry').each(function() {
89
+ $('.admin_entries form.pageflow_entry').each(function() {
90
90
  var accountSelect = $('#entry_account_id', this);
91
- var entryTypeInput = $('#entry_type_name_input', this);
92
- var entryTypeSelect = $('#entry_type_name', this);
93
- var entryTypeOptions = $('#entry_type_name option', this);
94
91
 
95
- function updateEntryTypeOptions() {
92
+ function updateEntryTypeInput() {
96
93
  var selectedAccountId = accountSelect.val();
97
- hideAllOptions();
98
94
 
99
- $.get('/admin/entries/entry_types?account_id=' + selectedAccountId)
100
- .done(function(response) {
101
- var typeNames = response.map(function(item) {
102
- return item.type_name;
103
- });
104
- updateForm(typeNames);
105
- if (currentSelectedUnavailable(typeNames)) {
106
- updateSelected(typeNames[0]);
107
- }
108
- if (response.length < 2) {
109
- hideInput();
110
- } else {
111
- showInput();
112
- }
113
- });
114
- }
115
-
116
- function updateForm(entryTypes) {
117
- entryTypes.forEach(showOption);
118
- }
119
-
120
- function currentSelectedUnavailable(entryTypes) {
121
- var selectedEntryType = entryTypeSelect.children('option:selected').val();
122
-
123
- return !entryTypes.includes(selectedEntryType);
124
- }
125
-
126
- function updateSelected(firstAvailable) {
127
- entryTypeSelect.val(firstAvailable);
128
- }
129
-
130
- function hideInput() {
131
- entryTypeInput.hide();
132
- }
133
-
134
- function showInput() {
135
- entryTypeInput.show();
95
+ $.get('/admin/entries/entry_type_name_input' +
96
+ '?account_id=' + selectedAccountId +
97
+ '&entry_type_name=' + $('[name="entry[type_name]"]').val())
98
+ .done(function(response) {
99
+ $('#entry_type_name_input').replaceWith(response);
100
+ });
136
101
  }
137
102
 
138
- function hideAllOptions() {
139
- entryTypeOptions.each(function() {
140
- $(this).hide();
141
- });
142
- }
143
-
144
- function showOption(entryType) {
145
- $('#entry_type_name option[value=' + entryType + ']').show();
146
- }
147
-
148
- if (entryTypeOptions.length > 1) {
149
- accountSelect.on('change', updateEntryTypeOptions);
150
- updateEntryTypeOptions();
151
- }
103
+ accountSelect.on('change', updateEntryTypeInput);
152
104
  });
153
105
  });
@@ -352,6 +352,24 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
352
352
 
353
353
  BaseObject.extend = Backbone.Model.extend;
354
354
 
355
+ var serverSideValidation = {
356
+ initialize: function initialize() {
357
+ var _this = this;
358
+
359
+ this.validationErrors = {};
360
+ this.listenTo(this, 'error', function (model, request) {
361
+ if (request.status === 422) {
362
+ _this.validationErrors = JSON.parse(request.responseText).errors;
363
+
364
+ _this.trigger('invalid');
365
+ }
366
+ });
367
+ this.listenTo(this, 'sync', function () {
368
+ _this.validationErrors = {};
369
+ });
370
+ }
371
+ };
372
+
355
373
  var CollectionView = Marionette.View.extend({
356
374
  initialize: function initialize() {
357
375
  this.rendered = false;
@@ -752,10 +770,12 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
752
770
  this.configure();
753
771
  },
754
772
  configure: function configure() {},
755
- tab: function tab(name, callback) {
773
+ tab: function tab(name, callbackOrOptions, callback) {
774
+ callback = callback || callbackOrOptions;
775
+ var options = callback ? callbackOrOptions : {};
756
776
  this.tabsView.tab(name, _.bind(function () {
757
777
  var tabView = new ConfigurationEditorTabView({
758
- model: this.model,
778
+ model: options.model || this.model,
759
779
  placeholderModel: this.options.placeholderModel,
760
780
  tab: name,
761
781
  attributeTranslationKeyPrefixes: this.options.attributeTranslationKeyPrefixes
@@ -896,7 +916,7 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
896
916
  var TableHeaderCellView = TableCellView.extend({
897
917
  tagName: 'th',
898
918
  render: function render() {
899
- this.$el.text(this.attributeTranslation('column_header'));
919
+ this.$el.text(this.options.column.headerText || this.attributeTranslation('column_header'));
900
920
  this.$el.data('columnName', this.options.column.name);
901
921
  return this;
902
922
  }
@@ -1273,6 +1293,7 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
1273
1293
  return this.getAttributeBoundOption('disabled');
1274
1294
  },
1275
1295
  updateDisabled: function updateDisabled() {
1296
+ this.$el.toggleClass('input-disabled', !!this.isDisabled());
1276
1297
  this.updateInlineHelp();
1277
1298
 
1278
1299
  if (this.ui.input) {
@@ -1500,6 +1521,31 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
1500
1521
  }
1501
1522
  };
1502
1523
 
1524
+ var viewWithValidationErrorMessages = {
1525
+ onRender: function onRender() {
1526
+ this.listenTo(this.model, 'invalid sync', this.updateValidationErrorMessages);
1527
+ this.updateValidationErrorMessages();
1528
+ },
1529
+ updateValidationErrorMessages: function updateValidationErrorMessages() {
1530
+ var _this = this;
1531
+
1532
+ var errors = this.model.validationErrors && this.model.validationErrors[this.options.propertyName] || [];
1533
+
1534
+ if (errors.length) {
1535
+ this.validationErrorList = this.validationErrorList || $('<ul class="validation_error_messages" />').appendTo(this.el);
1536
+ this.validationErrorList.html('');
1537
+ errors.forEach(function (error) {
1538
+ return _this.validationErrorList.append("<li>".concat(error, "</li>"));
1539
+ });
1540
+ this.$el.addClass('invalid');
1541
+ } else if (this.validationErrorList) {
1542
+ this.validationErrorList.remove();
1543
+ this.validationErrorList = null;
1544
+ this.$el.removeClass('invalid');
1545
+ }
1546
+ }
1547
+ };
1548
+
1503
1549
  function template$6(data) {
1504
1550
  var __p = '';
1505
1551
  __p += '<label>\n <span class="name"></span>\n <span class="inline_help"></span>\n</label>\n<input type="text" dir="auto" />\n';
@@ -1527,7 +1573,7 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
1527
1573
  */
1528
1574
 
1529
1575
  var TextInputView = Marionette.ItemView.extend({
1530
- mixins: [inputView, inputWithPlaceholderText],
1576
+ mixins: [inputView, inputWithPlaceholderText, viewWithValidationErrorMessages],
1531
1577
  template: template$6,
1532
1578
  ui: {
1533
1579
  input: 'input'
@@ -2027,9 +2073,9 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2027
2073
  ((__t = ( I18n.t('pageflow.ui.templates.inputs.text_area_input.link_type.url') )) == null ? '' : __t) +
2028
2074
  '\n </label>\n <label>\n <input type="radio" name="link_type" class="fragment_link_radio_button">\n ' +
2029
2075
  ((__t = ( I18n.t('pageflow.ui.templates.inputs.text_area_input.link_type.page_link') )) == null ? '' : __t) +
2030
- '\n </label>\n </div>\n <div class="url_link_panel">\n <label>\n ' +
2076
+ '\n </label>\n </div>\n <div class="url_link_panel">\n <label>\n <span>\n ' +
2031
2077
  ((__t = ( I18n.t('pageflow.ui.templates.inputs.text_area_input.target') )) == null ? '' : __t) +
2032
- '\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 ' +
2078
+ '\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 ' +
2033
2079
  ((__t = ( I18n.t('pageflow.ui.templates.inputs.text_area_input.open_in_new_tab') )) == null ? '' : __t) +
2034
2080
  '\n </label>\n <span class="inline_help">\n ' +
2035
2081
  ((__t = ( I18n.t('pageflow.ui.templates.inputs.text_area_input.open_in_new_tab_help') )) == null ? '' : __t) +
@@ -2363,6 +2409,15 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2363
2409
  supportedHosts: function supportedHosts() {
2364
2410
  return this.options.supportedHosts;
2365
2411
  },
2412
+ // Host names used to be expected to include protocols. Remove
2413
+ // protocols for backwards compatilbity. Since supportedHosts
2414
+ // is supposed to be overridden in subclasses, we do it in a
2415
+ // separate method.
2416
+ supportedHostsWithoutLegacyProtocols: function supportedHostsWithoutLegacyProtocols() {
2417
+ return _.map(this.supportedHosts(), function (host) {
2418
+ return host.replace(/^https?:\/\//, '');
2419
+ });
2420
+ },
2366
2421
  validate: function validate(success) {
2367
2422
  var view = this;
2368
2423
  var options = this.options;
@@ -2399,23 +2454,26 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2399
2454
  }
2400
2455
 
2401
2456
  function hasSupportedHost(url) {
2402
- return _.any(view.supportedHosts(), function (host) {
2403
- return url.match(new RegExp('^' + host));
2457
+ return _.any(view.supportedHostsWithoutLegacyProtocols(), function (host) {
2458
+ return url.match(new RegExp('^https?://' + host));
2404
2459
  });
2405
2460
  }
2406
2461
 
2407
2462
  function displayValidationError(message) {
2408
2463
  view.$el.addClass('invalid');
2464
+ view.ui.input.attr('aria-invalid', 'true');
2409
2465
  view.ui.validation.removeClass('pending').addClass('failed').html(message).show();
2410
2466
  }
2411
2467
 
2412
2468
  function displayValidationPending(message) {
2413
2469
  view.$el.removeClass('invalid');
2470
+ view.ui.input.removeAttr('aria-invalid');
2414
2471
  view.ui.validation.removeClass('failed').addClass('pending').html(message).show();
2415
2472
  }
2416
2473
 
2417
2474
  function resetValidationError(message) {
2418
2475
  view.$el.removeClass('invalid');
2476
+ view.ui.input.attr('aria-invalid', 'false');
2419
2477
  view.ui.validation.hide();
2420
2478
  }
2421
2479
  }
@@ -2650,6 +2708,15 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2650
2708
  * Ignore the attribute value if the input is disabled and display
2651
2709
  * an unchecked check box.
2652
2710
  *
2711
+ * @param {boolean} [options.displayCheckedIfDisabled=false]
2712
+ * Ignore the attribute value if the input is disabled and display
2713
+ * an checked check box.
2714
+ *
2715
+ * @param {string} [options.storeInverted]
2716
+ * Display checked by default and store true in given attribute when
2717
+ * unchecked. The property name passed to `input` is only used for
2718
+ * translations.
2719
+ *
2653
2720
  * @class
2654
2721
  */
2655
2722
 
@@ -2675,7 +2742,13 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2675
2742
  },
2676
2743
  save: function save() {
2677
2744
  if (!this.isDisabled()) {
2678
- this.model.set(this.options.propertyName, this.ui.input.is(':checked'));
2745
+ var value = this.ui.input.is(':checked');
2746
+
2747
+ if (this.options.storeInverted) {
2748
+ this.model.set(this.options.storeInverted, !value);
2749
+ } else {
2750
+ this.model.set(this.options.propertyName, value);
2751
+ }
2679
2752
  }
2680
2753
  },
2681
2754
  load: function load() {
@@ -2686,12 +2759,49 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2686
2759
  displayValue: function displayValue() {
2687
2760
  if (this.isDisabled() && this.options.displayUncheckedIfDisabled) {
2688
2761
  return false;
2762
+ } else if (this.isDisabled() && this.options.displayCheckedIfDisabled) {
2763
+ return true;
2764
+ } else if (this.options.storeInverted) {
2765
+ return !this.model.get(this.options.storeInverted);
2689
2766
  } else {
2690
2767
  return this.model.get(this.options.propertyName);
2691
2768
  }
2692
2769
  }
2693
2770
  });
2694
2771
 
2772
+ /**
2773
+ * Render a separator in a {@link ConfigurationEditorView} tab.
2774
+ *
2775
+ * @example
2776
+ *
2777
+ * this.view(SeparatorView);
2778
+ *
2779
+ * @class
2780
+ */
2781
+
2782
+ var SeparatorView = Marionette.View.extend({
2783
+ className: 'separator'
2784
+ });
2785
+
2786
+ /**
2787
+ * Render an input that is only a label. Can be used to render
2788
+ * additional inline help.
2789
+ *
2790
+ * See {@link inputView} for further options
2791
+ *
2792
+ * @class
2793
+ */
2794
+
2795
+ var LabelOnlyView = Marionette.ItemView.extend({
2796
+ mixins: [inputView],
2797
+ template: function template() {
2798
+ return "\n <label>\n <span class=\"name\"></span>\n <span class=\"inline_help\"></span>\n </label>\n ";
2799
+ },
2800
+ ui: {
2801
+ label: 'label'
2802
+ }
2803
+ });
2804
+
2695
2805
  /**
2696
2806
  * A table cell mapping column attribute values to a list of
2697
2807
  * translations.
@@ -2911,7 +3021,10 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2911
3021
  }
2912
3022
  }
2913
3023
  };
2914
- Cocktail.mixin(Marionette.View, subviewContainer);
3024
+
3025
+ if (!Marionette.View.prototype.appendSubview) {
3026
+ Cocktail.mixin(Marionette.View, subviewContainer);
3027
+ }
2915
3028
 
2916
3029
  var tooltipContainer = {
2917
3030
  events: {
@@ -2968,10 +3081,12 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2968
3081
  exports.ExtendedSelectInputView = ExtendedSelectInputView;
2969
3082
  exports.IconTableCellView = IconTableCellView;
2970
3083
  exports.JsonInputView = JsonInputView;
3084
+ exports.LabelOnlyView = LabelOnlyView;
2971
3085
  exports.Object = BaseObject;
2972
3086
  exports.PresenceTableCellView = PresenceTableCellView;
2973
3087
  exports.ProxyUrlInputView = ProxyUrlInputView;
2974
3088
  exports.SelectInputView = SelectInputView;
3089
+ exports.SeparatorView = SeparatorView;
2975
3090
  exports.SliderInputView = SliderInputView;
2976
3091
  exports.SortableCollectionView = SortableCollectionView;
2977
3092
  exports.TableCellView = TableCellView;
@@ -2989,8 +3104,10 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2989
3104
  exports.i18nUtils = i18nUtils;
2990
3105
  exports.inputView = inputView;
2991
3106
  exports.inputWithPlaceholderText = inputWithPlaceholderText;
3107
+ exports.serverSideValidation = serverSideValidation;
2992
3108
  exports.subviewContainer = subviewContainer;
2993
3109
  exports.tooltipContainer = tooltipContainer;
3110
+ exports.viewWithValidationErrorMessages = viewWithValidationErrorMessages;
2994
3111
 
2995
3112
  return exports;
2996
3113
 
@@ -1,21 +1,23 @@
1
- #wrapper {
2
- overflow: hidden;
3
- position: relative;
4
- }
5
-
6
- .action_items {
7
- form,
8
- div {
9
- display: inline;
1
+ @if not $pageflow-custom-admin-theme {
2
+ #wrapper {
3
+ overflow: hidden;
4
+ position: relative;
10
5
  }
11
6
 
12
- input[type="submit"] {
13
- @include light-button;
14
- padding: 12px 17px 10px;
15
- margin: 0;
7
+ .action_items {
8
+ form,
9
+ div {
10
+ display: inline;
11
+ }
12
+
13
+ input[type="submit"] {
14
+ @include light-button;
15
+ padding: 12px 17px 10px;
16
+ margin: 0;
17
+ }
16
18
  }
17
- }
18
19
 
19
- .blank_slate_container {
20
- margin: 10px 0;
20
+ .blank_slate_container {
21
+ margin: 10px 0;
22
+ }
21
23
  }
@@ -1,47 +1,37 @@
1
+ $pageflow-badge-color: #555 !default;
2
+ $pageflow-badge-background-color: #fff !default;
3
+ $pageflow-badge-border-color: #aaa !default;
4
+ $pageflow-badge-border-radius: null !default;
5
+ $pageflow-badge-margin: -4px 0 !default;
6
+
1
7
  .badge_list {
2
- margin: -4px 0;
8
+ margin: $pageflow-badge-margin;
3
9
  padding: 0;
4
10
 
5
11
  li {
6
- float: left;
7
12
  position: relative;
8
13
  list-style: none;
9
-
10
- margin: 1px;
11
- line-height: 22px;
12
- padding: 0 5px;
13
-
14
- background-color: #fff;
15
- border: solid 1px #aaa;
16
- text-align: center;
17
-
18
- &:hover .tooltip {
19
- opacity: 1;
20
- }
21
- }
22
-
23
- .abbreviation, .name {
24
- font-size: 11px;
25
- font-weight: bold;
26
- color: #555;
14
+ float: left;
27
15
  }
28
16
 
29
- .tooltip {
30
- position: absolute;
31
- top: -1px;
32
- left: -1px;
33
- padding: 0 5px;
34
-
35
- white-space: nowrap;
36
- z-index: 1;
37
-
38
- background-color: #fff;
39
- border: solid 1px #aaa;
40
- opacity: 0;
17
+ .abbreviation {
18
+ padding: 0 8px;
19
+ display: inline-block;
20
+ text-decoration: none;
21
+ margin: 2px;
22
+ background-color: $pageflow-badge-background-color;
23
+ border: solid 1px $pageflow-badge-border-color;
24
+ color: $pageflow-badge-color;
25
+ border-radius: $pageflow-badge-border-radius;
26
+ text-align: center;
27
+ font-size: 0.7rem;
41
28
  }
29
+ }
42
30
 
43
- a {
44
- text-decoration: none;
45
- font-weight: bold;
31
+ .entry_user_badge_list {
32
+ .abbreviation {
33
+ width: 2em;
34
+ line-height: 2em;
35
+ padding: 0;
46
36
  }
47
37
  }
@@ -1,15 +1,17 @@
1
- .columns {
2
- width: 100%;
1
+ @if not $pageflow-custom-admin-theme {
2
+ .columns {
3
+ width: 100%;
3
4
 
4
- > div {
5
- width: 49%;
6
- }
5
+ > div {
6
+ width: 49%;
7
+ }
7
8
 
8
- > div:first-child {
9
- float: left;
10
- }
9
+ > div:first-child {
10
+ float: left;
11
+ }
11
12
 
12
- > div:last-child {
13
- float: right;
13
+ > div:last-child {
14
+ float: right;
15
+ }
14
16
  }
15
- }
17
+ }
@@ -1,13 +1,10 @@
1
1
  .embed_code {
2
- $hint-color: #9c9c9c;
3
-
4
2
  input {
5
3
  width: 100%;
6
4
  }
7
5
 
8
6
  p {
9
7
  margin: 5px 0 0 0;
10
- color: $hint-color;
11
- font-style: italic;
8
+ color: $pageflow-hint-color;
12
9
  }
13
10
  }