pageflow 17.0.5 → 17.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +342 -41
  3. data/README.md +3 -5
  4. data/admins/pageflow/accounts.rb +22 -20
  5. data/admins/pageflow/entry.rb +76 -26
  6. data/admins/pageflow/entry_templates.rb +10 -9
  7. data/admins/pageflow/folder.rb +1 -1
  8. data/admins/pageflow/membership.rb +15 -15
  9. data/admins/pageflow/revisions.rb +5 -5
  10. data/admins/pageflow/site_root_entry.rb +64 -0
  11. data/admins/pageflow/sites.rb +12 -3
  12. data/admins/pageflow/translations.rb +75 -0
  13. data/admins/pageflow/user.rb +21 -35
  14. data/app/assets/images/pageflow/admin/icons/comment.svg +1 -0
  15. data/app/assets/javascripts/pageflow/admin/entries.js +30 -5
  16. data/app/assets/javascripts/pageflow/dist/ui.js +4228 -900
  17. data/app/assets/javascripts/pageflow/editor/vendor.js +0 -1
  18. data/app/assets/javascripts/pageflow/ui.js +0 -1
  19. data/app/assets/stylesheets/pageflow/admin/entries/index_table.scss +2 -1
  20. data/app/assets/stylesheets/pageflow/admin/entry_comments_indicator.scss +45 -0
  21. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +8 -0
  22. data/app/assets/stylesheets/pageflow/admin.scss +1 -0
  23. data/app/assets/stylesheets/pageflow/animations/spin.scss +9 -0
  24. data/app/assets/stylesheets/pageflow/animations.scss +1 -0
  25. data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +27 -5
  26. data/app/assets/stylesheets/pageflow/editor/base.scss +11 -1
  27. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +20 -2
  28. data/app/assets/stylesheets/pageflow/editor/edit_configuration_view.scss +5 -0
  29. data/app/assets/stylesheets/pageflow/editor/file_folders.scss +127 -0
  30. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +5 -2
  31. data/app/assets/stylesheets/pageflow/editor/file_meta_data_overlay.scss +45 -0
  32. data/app/assets/stylesheets/pageflow/editor/file_preview.scss +138 -0
  33. data/app/assets/stylesheets/pageflow/editor/file_references.scss +68 -0
  34. data/app/assets/stylesheets/pageflow/editor/file_settings_dialog.scss +1 -1
  35. data/app/assets/stylesheets/pageflow/editor/file_stage_icons.scss +17 -0
  36. data/app/assets/stylesheets/pageflow/editor/file_stages.scss +25 -32
  37. data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +31 -48
  38. data/app/assets/stylesheets/pageflow/editor/file_type_pills.scss +73 -0
  39. data/app/assets/stylesheets/pageflow/editor/files.scss +242 -50
  40. data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +161 -9
  41. data/app/assets/stylesheets/pageflow/editor/folder_breadcrumb.scss +40 -0
  42. data/app/assets/stylesheets/pageflow/editor/info_box.scss +23 -3
  43. data/app/assets/stylesheets/pageflow/editor/inputs/edit_defaults_button.scss +15 -0
  44. data/app/assets/stylesheets/pageflow/editor/inputs.scss +1 -0
  45. data/app/assets/stylesheets/pageflow/editor/list.scss +89 -37
  46. data/app/assets/stylesheets/pageflow/editor/list_search_field.scss +52 -0
  47. data/app/assets/stylesheets/pageflow/editor/manage_files.scss +9 -0
  48. data/app/assets/stylesheets/pageflow/editor/menu.scss +14 -0
  49. data/app/assets/stylesheets/pageflow/editor/move_to_folder_dialog.scss +83 -0
  50. data/app/assets/stylesheets/pageflow/editor/outline.scss +0 -13
  51. data/app/assets/stylesheets/pageflow/editor/sortable.scss +12 -0
  52. data/app/assets/stylesheets/pageflow/mixins/buttons.scss +4 -4
  53. data/app/assets/stylesheets/pageflow/mixins/pageflow.scss +9 -5
  54. data/app/assets/stylesheets/pageflow/ui/color_picker.scss +230 -0
  55. data/app/assets/stylesheets/pageflow/ui/forms.scss +38 -4
  56. data/app/assets/stylesheets/pageflow/ui/functions.scss +12 -2
  57. data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +9 -8
  58. data/app/assets/stylesheets/pageflow/ui/input/file_name_input.scss +37 -0
  59. data/app/assets/stylesheets/pageflow/ui/input/text_area_input.scss +15 -0
  60. data/app/assets/stylesheets/pageflow/ui/overrides.scss +8 -0
  61. data/app/assets/stylesheets/pageflow/ui/properties.scss +34 -0
  62. data/app/assets/stylesheets/pageflow/ui/tabs_view.scss +8 -3
  63. data/app/assets/stylesheets/pageflow/ui.scss +4 -1
  64. data/app/controllers/concerns/pageflow/controller_delegation.rb +1 -1
  65. data/app/controllers/concerns/pageflow/edit_locking.rb +17 -10
  66. data/app/controllers/concerns/pageflow/entry_password_protection.rb +1 -0
  67. data/app/controllers/concerns/pageflow/public_https_mode.rb +2 -1
  68. data/app/controllers/concerns/pageflow/quota_verification.rb +5 -4
  69. data/app/controllers/pageflow/admin/initial_passwords_controller.rb +1 -0
  70. data/app/controllers/pageflow/application_controller.rb +19 -19
  71. data/app/controllers/pageflow/chapters_controller.rb +3 -2
  72. data/app/controllers/pageflow/edit_locks_controller.rb +3 -2
  73. data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +1 -0
  74. data/app/controllers/pageflow/editor/entries_controller.rb +3 -1
  75. data/app/controllers/pageflow/editor/entry_publications_controller.rb +1 -0
  76. data/app/controllers/pageflow/editor/file_folders_controller.rb +80 -0
  77. data/app/controllers/pageflow/editor/file_import_controller.rb +4 -3
  78. data/app/controllers/pageflow/editor/files_controller.rb +20 -10
  79. data/app/controllers/pageflow/editor/oembeds_controller.rb +21 -0
  80. data/app/controllers/pageflow/editor/widgets_controller.rb +1 -0
  81. data/app/controllers/pageflow/entries_controller.rb +85 -21
  82. data/app/controllers/pageflow/feeds_controller.rb +1 -1
  83. data/app/controllers/pageflow/files_controller.rb +1 -0
  84. data/app/controllers/pageflow/pages_controller.rb +4 -2
  85. data/app/controllers/pageflow/review/comment_thread_reads_controller.rb +30 -0
  86. data/app/controllers/pageflow/review/comment_threads_controller.rb +60 -0
  87. data/app/controllers/pageflow/review/comments_controller.rb +53 -0
  88. data/app/controllers/pageflow/revisions_controller.rb +5 -1
  89. data/app/controllers/pageflow/sitemaps_controller.rb +1 -1
  90. data/app/controllers/pageflow/storylines_controller.rb +1 -0
  91. data/app/helpers/pageflow/admin/cutoff_modes_helper.rb +12 -0
  92. data/app/helpers/pageflow/admin/entries_helper.rb +41 -1
  93. data/app/helpers/pageflow/admin/entry_translations_helper.rb +18 -0
  94. data/app/helpers/pageflow/admin/features_helper.rb +1 -1
  95. data/app/helpers/pageflow/admin/form_helper.rb +3 -3
  96. data/app/helpers/pageflow/admin/locales_helper.rb +10 -2
  97. data/app/helpers/pageflow/admin/memberships_helper.rb +32 -32
  98. data/app/helpers/pageflow/admin/revisions_helper.rb +1 -1
  99. data/app/helpers/pageflow/admin/sites_helper.rb +22 -0
  100. data/app/helpers/pageflow/admin/users_helper.rb +7 -5
  101. data/app/helpers/pageflow/admin/widgets_helper.rb +5 -5
  102. data/app/helpers/pageflow/asset_urls_helper.rb +1 -1
  103. data/app/helpers/pageflow/audio_files_helper.rb +5 -2
  104. data/app/helpers/pageflow/background_image_helper.rb +7 -6
  105. data/app/helpers/pageflow/common_entry_seed_helper.rb +7 -7
  106. data/app/helpers/pageflow/editor/config_helper.rb +3 -1
  107. data/app/helpers/pageflow/editor/files_helper.rb +1 -1
  108. data/app/helpers/pageflow/embed_code_helper.rb +3 -3
  109. data/app/helpers/pageflow/entries_helper.rb +52 -46
  110. data/app/helpers/pageflow/entry_json_seed_helper.rb +7 -6
  111. data/app/helpers/pageflow/feeds_helper.rb +2 -2
  112. data/app/helpers/pageflow/file_background_images_helper.rb +2 -2
  113. data/app/helpers/pageflow/file_thumbnails_helper.rb +4 -3
  114. data/app/helpers/pageflow/files_helper.rb +5 -4
  115. data/app/helpers/pageflow/folders_helper.rb +8 -5
  116. data/app/helpers/pageflow/help_entries_helper.rb +2 -2
  117. data/app/helpers/pageflow/hreflang_links_helper.rb +37 -0
  118. data/app/helpers/pageflow/info_box_helper.rb +7 -11
  119. data/app/helpers/pageflow/media_query_helper.rb +3 -3
  120. data/app/helpers/pageflow/navigation_bar_helper.rb +1 -1
  121. data/app/helpers/pageflow/overview_helper.rb +1 -1
  122. data/app/helpers/pageflow/page_types_helper.rb +5 -5
  123. data/app/helpers/pageflow/pages_helper.rb +29 -15
  124. data/app/helpers/pageflow/public_i18n_helper.rb +10 -9
  125. data/app/helpers/pageflow/quota_helper.rb +4 -4
  126. data/app/helpers/pageflow/render_json_helper.rb +6 -3
  127. data/app/helpers/pageflow/revision_file_helper.rb +2 -1
  128. data/app/helpers/pageflow/sites_helper.rb +3 -3
  129. data/app/helpers/pageflow/social_share_helper.rb +24 -10
  130. data/app/helpers/pageflow/social_share_links_helper.rb +12 -9
  131. data/app/helpers/pageflow/structured_data_helper.rb +5 -2
  132. data/app/helpers/pageflow/stub_page_configuration.rb +7 -3
  133. data/app/helpers/pageflow/text_direction_helper.rb +1 -1
  134. data/app/helpers/pageflow/themes_helper.rb +2 -4
  135. data/app/helpers/pageflow/video_files_helper.rb +29 -13
  136. data/app/helpers/pageflow/widgets_helper.rb +8 -6
  137. data/app/inputs/pageflow_permalink_input.rb +8 -3
  138. data/app/jobs/pageflow/application_job.rb +1 -0
  139. data/app/jobs/pageflow/entry_export_import/upload_and_publish_file_job.rb +1 -1
  140. data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +1 -0
  141. data/app/jobs/pageflow/poll_zencoder_job.rb +3 -2
  142. data/app/jobs/pageflow/process_image_or_text_track_job.rb +1 -0
  143. data/app/jobs/pageflow/prune_auto_snapshots_job.rb +1 -0
  144. data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +1 -0
  145. data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +1 -0
  146. data/app/mailers/pageflow/user_mailer.rb +1 -0
  147. data/app/models/concerns/pageflow/auto_generated_perma_id.rb +20 -1
  148. data/app/models/concerns/pageflow/entry_publication_states.rb +7 -3
  149. data/app/models/concerns/pageflow/feature_target.rb +8 -4
  150. data/app/models/concerns/pageflow/output_source.rb +3 -3
  151. data/app/models/concerns/pageflow/permalinkable.rb +2 -1
  152. data/app/models/concerns/pageflow/reusable_file.rb +24 -24
  153. data/app/models/concerns/pageflow/serialization_blacklist.rb +3 -5
  154. data/app/models/concerns/pageflow/suspendable.rb +5 -3
  155. data/app/models/concerns/pageflow/theme_referencer.rb +1 -1
  156. data/app/models/concerns/pageflow/translatable.rb +62 -0
  157. data/app/models/concerns/pageflow/translated_attributes.rb +101 -0
  158. data/app/models/concerns/pageflow/uploadable_file.rb +6 -6
  159. data/app/models/pageflow/account.rb +6 -5
  160. data/app/models/pageflow/account_member_query.rb +1 -1
  161. data/app/models/pageflow/account_role_query.rb +1 -1
  162. data/app/models/pageflow/application_query.rb +1 -1
  163. data/app/models/pageflow/application_record.rb +1 -1
  164. data/app/models/pageflow/audio_file.rb +4 -4
  165. data/app/models/pageflow/audio_file_url_templates.rb +1 -1
  166. data/app/models/pageflow/authentication_token.rb +2 -2
  167. data/app/models/pageflow/chapter.rb +6 -1
  168. data/app/models/pageflow/chapter_scaffold.rb +2 -4
  169. data/app/models/pageflow/cname_site_request_scope.rb +1 -1
  170. data/app/models/pageflow/comment.rb +30 -0
  171. data/app/models/pageflow/comment_thread.rb +65 -0
  172. data/app/models/pageflow/comment_thread_read.rb +22 -0
  173. data/app/models/pageflow/customized_theme.rb +9 -8
  174. data/app/models/pageflow/draft_entry.rb +49 -9
  175. data/app/models/pageflow/edit_lock.rb +19 -21
  176. data/app/models/pageflow/encoding_confirmation.rb +2 -2
  177. data/app/models/pageflow/entries_feed.rb +2 -2
  178. data/app/models/pageflow/entry.rb +46 -30
  179. data/app/models/pageflow/entry_at_revision.rb +14 -2
  180. data/app/models/pageflow/entry_comment_summary.rb +114 -0
  181. data/app/models/pageflow/entry_duplicate.rb +8 -5
  182. data/app/models/pageflow/entry_publication.rb +2 -2
  183. data/app/models/pageflow/entry_role_query.rb +4 -4
  184. data/app/models/pageflow/entry_template.rb +4 -4
  185. data/app/models/pageflow/entry_title_or_account_name_query.rb +2 -2
  186. data/app/models/pageflow/entry_translation_group.rb +42 -0
  187. data/app/models/pageflow/file_folder.rb +74 -0
  188. data/app/models/pageflow/file_reuse.rb +5 -4
  189. data/app/models/pageflow/file_usage.rb +18 -3
  190. data/app/models/pageflow/folder.rb +2 -2
  191. data/app/models/pageflow/home_button.rb +7 -7
  192. data/app/models/pageflow/image_file.rb +44 -25
  193. data/app/models/pageflow/image_file_url_templates.rb +4 -4
  194. data/app/models/pageflow/invitation_form.rb +2 -1
  195. data/app/models/pageflow/legal_info.rb +38 -0
  196. data/app/models/pageflow/managed_user_query.rb +1 -1
  197. data/app/models/pageflow/membership.rb +5 -5
  198. data/app/models/pageflow/nested_revision_component_copy.rb +263 -0
  199. data/app/models/pageflow/null_user.rb +1 -1
  200. data/app/models/pageflow/overview_button.rb +1 -1
  201. data/app/models/pageflow/page.rb +7 -3
  202. data/app/models/pageflow/permalink.rb +24 -2
  203. data/app/models/pageflow/permalink_directory.rb +7 -0
  204. data/app/models/pageflow/permalink_redirect.rb +7 -0
  205. data/app/models/pageflow/positioned_file.rb +5 -5
  206. data/app/models/pageflow/potential_entry_translations.rb +55 -0
  207. data/app/models/pageflow/potential_memberships.rb +5 -4
  208. data/app/models/pageflow/published_entry.rb +62 -11
  209. data/app/models/pageflow/revision.rb +29 -16
  210. data/app/models/pageflow/roles.rb +14 -18
  211. data/app/models/pageflow/site.rb +46 -3
  212. data/app/models/pageflow/site_root_entry_form.rb +27 -0
  213. data/app/models/pageflow/sitemaps.rb +10 -1
  214. data/app/models/pageflow/storyline.rb +5 -2
  215. data/app/models/pageflow/storyline_scaffold.rb +1 -1
  216. data/app/models/pageflow/text_track_file.rb +1 -1
  217. data/app/models/pageflow/text_track_file_url_templates.rb +1 -1
  218. data/app/models/pageflow/theme_customization_file.rb +3 -2
  219. data/app/models/pageflow/thumbnail_file_resolver.rb +1 -1
  220. data/app/models/pageflow/url_template.rb +1 -1
  221. data/app/models/pageflow/used_file.rb +13 -3
  222. data/app/models/pageflow/user_name_query.rb +2 -2
  223. data/app/models/pageflow/video_file.rb +22 -15
  224. data/app/models/pageflow/video_file_url_templates.rb +6 -4
  225. data/app/models/pageflow/widget.rb +5 -4
  226. data/app/models/pageflow/with_file_usage_extension.rb +1 -1
  227. data/app/models/pageflow/zencoder_attachment.rb +8 -8
  228. data/app/policies/pageflow/account_policy.rb +3 -1
  229. data/app/policies/pageflow/admin/admin_only_tab_policy.rb +1 -0
  230. data/app/policies/pageflow/admin/entry_tab_policy.rb +1 -0
  231. data/app/policies/pageflow/application_policy.rb +2 -0
  232. data/app/policies/pageflow/entry_policy.rb +7 -1
  233. data/app/policies/pageflow/entry_template_policy.rb +2 -1
  234. data/app/policies/pageflow/file_policy.rb +4 -7
  235. data/app/policies/pageflow/folder_policy.rb +18 -8
  236. data/app/policies/pageflow/membership_policy.rb +6 -4
  237. data/app/policies/pageflow/site_policy.rb +10 -3
  238. data/app/policies/pageflow/user_policy.rb +6 -4
  239. data/app/state_machines/pageflow/image_and_text_track_processing_state_machine.rb +3 -2
  240. data/app/state_machines/pageflow/media_encoding_state_machine.rb +5 -4
  241. data/app/views/admin/accounts/_entry_template_details.html.arb +2 -2
  242. data/app/views/admin/entries/_attributes_table.html.arb +6 -5
  243. data/app/views/admin/entries/_form.html.erb +2 -1
  244. data/app/views/admin/entries/_permalink_inputs.html.erb +9 -2
  245. data/app/views/admin/entry_templates/_form.html.erb +1 -3
  246. data/app/views/admin/site_root_entry/choose.html.erb +19 -0
  247. data/app/views/admin/sites/_fields.html.erb +14 -1
  248. data/app/views/admin/translations/_form.html.erb +31 -0
  249. data/app/views/admin/users/_attributes_table.html.arb +13 -0
  250. data/app/views/components/pageflow/admin/add_membership_button.rb +13 -12
  251. data/app/views/components/pageflow/admin/custom_scopes_renderer.rb +1 -0
  252. data/app/views/components/pageflow/admin/embed_code_field.rb +1 -0
  253. data/app/views/components/pageflow/admin/embedded_index_table.rb +9 -10
  254. data/app/views/components/pageflow/admin/entries_tab.rb +1 -0
  255. data/app/views/components/pageflow/admin/entry_publication_state_indicator.rb +6 -5
  256. data/app/views/components/pageflow/admin/entry_templates_tab.rb +2 -1
  257. data/app/views/components/pageflow/admin/entry_translations_tab.rb +102 -0
  258. data/app/views/components/pageflow/admin/entry_user_badge_list.rb +1 -0
  259. data/app/views/components/pageflow/admin/extensible_attributes_table.rb +9 -8
  260. data/app/views/components/pageflow/admin/features_tab.rb +1 -0
  261. data/app/views/components/pageflow/admin/grouped_folder_list.rb +1 -0
  262. data/app/views/components/pageflow/admin/icon_link_to.rb +1 -0
  263. data/app/views/components/pageflow/admin/members_tab.rb +4 -3
  264. data/app/views/components/pageflow/admin/membership_role_with_tooltip.rb +3 -2
  265. data/app/views/components/pageflow/admin/revisions_tab.rb +14 -10
  266. data/app/views/components/pageflow/admin/sites_tab.rb +1 -0
  267. data/app/views/components/pageflow/admin/tabs_view.rb +1 -0
  268. data/app/views/components/pageflow/admin/timestamp.rb +6 -5
  269. data/app/views/components/pageflow/admin/user_account_badge_list.rb +2 -3
  270. data/app/views/components/pageflow/admin/user_accounts_tab.rb +1 -0
  271. data/app/views/components/pageflow/admin/user_entries_tab.rb +1 -0
  272. data/app/views/components/pageflow/admin/users_tab.rb +1 -0
  273. data/app/views/pageflow/audio_files/_audio_file.json.jbuilder +0 -1
  274. data/app/views/pageflow/editor/config/_seeds.json.jbuilder +5 -3
  275. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +2 -1
  276. data/app/views/pageflow/editor/entries/index.json.jbuilder +1 -1
  277. data/app/views/pageflow/editor/entries/seed.json.erb +1 -0
  278. data/app/views/pageflow/editor/entries/show.json.jbuilder +1 -1
  279. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +2 -2
  280. data/app/views/pageflow/editor/file_folders/_file_folder.json.jbuilder +5 -0
  281. data/app/views/pageflow/editor/file_folders/create.json.jbuilder +1 -0
  282. data/app/views/pageflow/editor/file_folders/index.json.jbuilder +3 -0
  283. data/app/views/pageflow/editor/files/_file.json.jbuilder +7 -14
  284. data/app/views/pageflow/editor/files/create.json.jbuilder +1 -1
  285. data/app/views/pageflow/editor/files/index.json.jbuilder +1 -1
  286. data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +3 -0
  287. data/app/views/pageflow/editor/sites/_site.json.jbuilder +1 -0
  288. data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +4 -3
  289. data/app/views/pageflow/entries/share_menu/_bluesky_link.html.erb +8 -0
  290. data/app/views/pageflow/entries/share_menu/_threads_link.html.erb +8 -0
  291. data/app/views/pageflow/files/_file.json.jbuilder +5 -3
  292. data/app/views/pageflow/image_files/_image_file.json.jbuilder +0 -1
  293. data/app/views/pageflow/review/comment_threads/_comment_thread.json.jbuilder +20 -0
  294. data/app/views/pageflow/review/comment_threads/create.json.jbuilder +2 -0
  295. data/app/views/pageflow/review/comment_threads/index.json.jbuilder +13 -0
  296. data/app/views/pageflow/review/comments/_comment.json.jbuilder +13 -0
  297. data/app/views/pageflow/review/comments/create.json.jbuilder +1 -0
  298. data/app/views/pageflow/sitemaps/index.xml.builder +9 -1
  299. data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +1 -1
  300. data/app/views/pageflow/social_share/_page_meta_tags.html.erb +1 -1
  301. data/app/views/pageflow/structured_data/_entry.json.jbuilder +2 -3
  302. data/app/views/pageflow/video_files/_video_file.json.jbuilder +0 -1
  303. data/config/initializers/active_admin_patches.rb +3 -6
  304. data/config/initializers/admin_resource_tabs.rb +3 -0
  305. data/config/initializers/paperclip.rb +1 -0
  306. data/config/initializers/symmetric_encryption.rb +1 -1
  307. data/config/initializers/zencoder.rb +24 -13
  308. data/config/locales/de.yml +256 -12
  309. data/config/locales/en.yml +253 -15
  310. data/config/routes.rb +29 -13
  311. data/config/spring.rb +2 -1
  312. data/db/migrate/20140418225525_setup_schema.rb +2 -2
  313. data/db/migrate/20190306161431_copy_file_attributes_of_failed_uploads.rb +2 -2
  314. data/db/migrate/20190820152900_drop_accounts_themes.rb +2 -1
  315. data/db/migrate/20191202145757_create_pageflow_scrolled_sections.rb +11 -11
  316. data/db/migrate/20191202150657_create_pageflow_scrolled_chapters.rb +1 -1
  317. data/db/migrate/20191202154723_create_pageflow_scrolled_content_elements.rb +9 -9
  318. data/db/migrate/20191219143450_add_position_to_content_elements.rb +2 -1
  319. data/db/migrate/20200117133200_change_revision_appearance_option_default_and_null.rb +2 -1
  320. data/db/migrate/20200122115400_create_pageflow_entry_templates.rb +25 -25
  321. data/db/migrate/20200206134400_convert_legacy_scrolled_content_element_types.rb +3 -3
  322. data/db/migrate/20221215120856_associate_entry_templates_with_sites.rb +2 -2
  323. data/db/migrate/20230120092923_create_other_files.rb +2 -1
  324. data/db/migrate/20230419083307_create_pageflow_entry_translation_group.rb +9 -0
  325. data/db/migrate/20240612110434_add_cutoff_mode_name_to_sites.rb +5 -0
  326. data/db/migrate/20240918084059_create_pageflow_permalink_redirects.rb +14 -0
  327. data/db/migrate/20250508172234_ensure_scrolled_entries_have_main_storyline.rb +14 -0
  328. data/db/migrate/20250617090048_add_custom404_entry_to_sites.rb +5 -0
  329. data/db/migrate/20250617100000_add_perma_id_counter_to_entries.rb +28 -0
  330. data/db/migrate/20250722174123_add_perma_id_to_chapters.rb +10 -0
  331. data/db/migrate/20250725080603_add_perma_id_indexes_to_revision_components.rb +13 -0
  332. data/db/migrate/20250726000000_add_display_name_to_file_usages.rb +5 -0
  333. data/db/migrate/20251015000000_add_structured_data_type_name_to_revisions.rb +5 -0
  334. data/db/migrate/20251029142849_convert_legacy_social_embeds_to_unified_social_embed.rb +38 -0
  335. data/db/migrate/20251119083347_fix_main_storyline_positions.rb +16 -0
  336. data/db/migrate/20251119083348_ensure_scrolled_entries_have_excursion_storyline.rb +15 -0
  337. data/db/migrate/20260303000000_add_layout_version_to_revisions.rb +6 -0
  338. data/db/migrate/20260323000000_create_comment_threads_and_comments.rb +30 -0
  339. data/db/migrate/20260414000000_add_subject_range_to_comment_threads.rb +5 -0
  340. data/db/migrate/20260415000000_add_section_perma_id_to_comment_threads.rb +5 -0
  341. data/db/migrate/20260727000000_add_quote_to_comments.rb +5 -0
  342. data/db/migrate/20260728000000_create_file_folders.rb +17 -0
  343. data/db/migrate/20260805000000_add_attribute_translations_to_sites.rb +5 -0
  344. data/db/migrate/20260806000000_add_edited_at_to_comments.rb +5 -0
  345. data/db/migrate/20260810000000_create_pageflow_scrolled_lottie_files.rb +24 -0
  346. data/db/migrate/20260817000000_create_comment_thread_reads.rb +16 -0
  347. data/db/migrate/20260819000000_add_unread_comments_since_at_to_users.rb +18 -0
  348. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +12599 -5398
  349. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +1275 -4560
  350. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +20204 -22
  351. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +18657 -19
  352. data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +1 -0
  353. data/entry_types/paged/app/helpers/pageflow_paged/page_background_asset_helper.rb +1 -1
  354. data/entry_types/paged/app/helpers/pageflow_paged/third_party_embed_consent_helper.rb +7 -7
  355. data/entry_types/paged/app/views/pageflow_paged/editor/entries/_seed.json.jbuilder +1 -0
  356. data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
  357. data/entry_types/paged/lib/pageflow_paged/plugin.rb +4 -0
  358. data/entry_types/paged/lib/pageflow_paged/react/page_type.rb +1 -1
  359. data/entry_types/paged/lib/pageflow_paged/react/widget_type.rb +3 -3
  360. data/entry_types/paged/lib/pageflow_paged.rb +1 -1
  361. data/entry_types/scrolled/app/assets/stylesheets/pageflow_scrolled/ui.scss +2 -0
  362. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +5 -3
  363. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +35 -5
  364. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +4 -5
  365. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +23 -2
  366. data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +3 -3
  367. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +8 -5
  368. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +7 -3
  369. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +72 -10
  370. data/entry_types/scrolled/app/helpers/pageflow_scrolled/i18n_helper.rb +28 -13
  371. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +41 -12
  372. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +23 -25
  373. data/entry_types/scrolled/app/helpers/pageflow_scrolled/sprockets_helper.rb +16 -0
  374. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +189 -3
  375. data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +15 -14
  376. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +61 -7
  377. data/entry_types/scrolled/app/models/pageflow_scrolled/lottie_file.rb +6 -0
  378. data/entry_types/scrolled/app/models/pageflow_scrolled/lottie_file_url_templates.rb +16 -0
  379. data/entry_types/scrolled/app/models/pageflow_scrolled/section.rb +12 -1
  380. data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +20 -1
  381. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -0
  382. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +2 -2
  383. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +15 -12
  384. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +45 -17
  385. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry_translations.json.jbuilder +14 -0
  386. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +34 -5
  387. data/entry_types/scrolled/app/views/pageflow_scrolled/favicons/_entry.html.erb +1 -1
  388. data/entry_types/scrolled/app/views/pageflow_scrolled/storylines/_storyline.json.jbuilder +7 -0
  389. data/entry_types/scrolled/config/configuration_schemas/pageflow-scrolled.json +414 -0
  390. data/entry_types/scrolled/config/locales/de.yml +1094 -78
  391. data/entry_types/scrolled/config/locales/en.yml +1083 -78
  392. data/entry_types/scrolled/config/routes.rb +18 -8
  393. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +11 -11
  394. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantDesktop.svg +56 -0
  395. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantMobile.svg +22 -0
  396. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +26 -11
  397. data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +27 -8
  398. data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +2 -2
  399. data/entry_types/scrolled/lib/pageflow_scrolled/additional_theme_assets.rb +27 -0
  400. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +67 -10
  401. data/entry_types/scrolled/lib/pageflow_scrolled/configuration_schemas.rb +91 -0
  402. data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +1 -1
  403. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +2 -1
  404. data/entry_types/scrolled/lib/pageflow_scrolled/entry_file_reference_locations.rb +71 -0
  405. data/entry_types/scrolled/lib/pageflow_scrolled/entry_structured_data_types/faq_page.rb +58 -0
  406. data/entry_types/scrolled/lib/pageflow_scrolled/file_reference_locations.rb +69 -0
  407. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +222 -19
  408. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +2 -4
  409. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +76 -54
  410. data/entry_types/scrolled/lib/pageflow_scrolled/theme_options_default_scale.rb +35 -0
  411. data/entry_types/scrolled/lib/pageflow_scrolled.rb +14 -1
  412. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +24 -5
  413. data/entry_types/scrolled/package/config/configurationSchemas.js +70 -0
  414. data/entry_types/scrolled/package/config/rollup/configurationSchemas.js +19 -0
  415. data/entry_types/scrolled/package/config/webpack.js +94 -0
  416. data/entry_types/scrolled/package/contentElements/hotspots-frontend.css +1 -0
  417. data/entry_types/scrolled/package/contentElements/hotspots-frontend.js +1795 -0
  418. data/entry_types/scrolled/package/contentElements/inlineBeforeAfter-frontend.css +1 -0
  419. data/entry_types/scrolled/package/contentElements/inlineBeforeAfter-frontend.js +219 -0
  420. data/entry_types/scrolled/package/contentElements/lottieAnimation-frontend.css +1 -0
  421. data/entry_types/scrolled/package/contentElements/lottieAnimation-frontend.js +244 -0
  422. data/entry_types/scrolled/package/contentElements/socialEmbed-frontend.css +1 -0
  423. data/entry_types/scrolled/package/contentElements/socialEmbed-frontend.js +823 -0
  424. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.css +1 -0
  425. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.js +109 -0
  426. data/entry_types/scrolled/package/contentElements/twitterEmbed-frontend.css +1 -0
  427. data/entry_types/scrolled/package/contentElements/twitterEmbed-frontend.js +277 -0
  428. data/entry_types/scrolled/package/contentElements/videoEmbed-frontend.css +1 -0
  429. data/entry_types/scrolled/package/contentElements/videoEmbed-frontend.js +244 -0
  430. data/entry_types/scrolled/package/contentElements-editor.js +3155 -583
  431. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  432. data/entry_types/scrolled/package/contentElements-frontend.js +3375 -1585
  433. data/entry_types/scrolled/package/editor.css +1 -0
  434. data/entry_types/scrolled/package/editor.js +8452 -2867
  435. data/entry_types/scrolled/package/entryState.js +1600 -0
  436. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-20c600de.js +1979 -0
  437. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-58189220.js +2538 -0
  438. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-4ec6b2de.js → PhonePlatformContext-035a99fa.js} +9 -15
  439. data/entry_types/scrolled/package/frontend/PhonePlatformContext-9da43797.js +33 -0
  440. data/entry_types/scrolled/package/frontend/Placeholder.module-bf0966b4.js +5267 -0
  441. data/entry_types/scrolled/package/frontend/Placeholder.module-d22a9335.js +4180 -0
  442. data/entry_types/scrolled/package/frontend/ThemeIcon-ab834849.js +754 -0
  443. data/entry_types/scrolled/package/frontend/ThemeIcon-f6cb3a8f.js +773 -0
  444. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-30fd1124.js +39 -0
  445. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-61c25224.js +72 -0
  446. data/entry_types/scrolled/package/frontend/Viewer-1074fd59.js +147 -0
  447. data/entry_types/scrolled/package/frontend/Viewer-1482ca34.js +480 -0
  448. data/entry_types/scrolled/package/frontend/Viewer-70504231.js +210 -0
  449. data/entry_types/scrolled/package/frontend/{Viewer-1bb5597c.js → Viewer-cc8d4072.js} +100 -135
  450. data/entry_types/scrolled/package/frontend/Wavesurfer-656e3c36.js +302 -0
  451. data/entry_types/scrolled/package/frontend/Wavesurfer-b753b838.js +385 -0
  452. data/entry_types/scrolled/package/frontend/commenting.css +1 -0
  453. data/entry_types/scrolled/package/frontend/extensions-167ae143.js +1455 -0
  454. data/entry_types/scrolled/package/frontend/extensions-2318f92b.js +5918 -0
  455. data/entry_types/scrolled/package/frontend/extensions-a461fd13.js +4890 -0
  456. data/entry_types/scrolled/package/frontend/extensions-c98269fd.js +1982 -0
  457. data/entry_types/scrolled/package/frontend/i18n-493cd2a6.js +93 -0
  458. data/entry_types/scrolled/package/frontend/i18n-e06cac14.js +100 -0
  459. data/entry_types/scrolled/package/frontend/{index-11f32f10.js → index-2e5546f7.js} +39 -54
  460. data/entry_types/scrolled/package/frontend/index-de2b418d.js +130 -0
  461. data/entry_types/scrolled/package/frontend/index.css +1 -1
  462. data/entry_types/scrolled/package/frontend/index.js +1976 -1367
  463. data/entry_types/scrolled/package/frontend/inlineEditing.css +1 -0
  464. data/entry_types/scrolled/package/frontend/useContentElementEditorState-a084912e.js +25 -0
  465. data/entry_types/scrolled/package/frontend/useDelayedBoolean-a387d85b.js +24 -0
  466. data/entry_types/scrolled/package/frontend/usePhonePlatform-4ecb96d4.js +8 -0
  467. data/entry_types/scrolled/package/frontend/usePhonePlatform-ce9ff08d.js +8 -0
  468. data/entry_types/scrolled/package/frontend-server.js +20 -210
  469. data/entry_types/scrolled/package/package.json +22 -12
  470. data/entry_types/scrolled/package/review.css +1 -0
  471. data/entry_types/scrolled/package/review.js +3306 -0
  472. data/entry_types/scrolled/package/testHelpers.js +952 -239
  473. data/entry_types/scrolled/package/values/widgets.module.css +18 -0
  474. data/entry_types/scrolled/package/widgets/consentBar.css +1 -1
  475. data/entry_types/scrolled/package/widgets/consentBar.js +275 -315
  476. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  477. data/entry_types/scrolled/package/widgets/defaultNavigation.js +961 -432
  478. data/entry_types/scrolled/package/widgets/excursionSheet.css +1 -0
  479. data/entry_types/scrolled/package/widgets/excursionSheet.js +225 -0
  480. data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -1
  481. data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +62 -32
  482. data/entry_types/scrolled/package/widgets/iconScrollIndicator.css +1 -0
  483. data/entry_types/scrolled/package/widgets/iconScrollIndicator.js +67 -0
  484. data/entry_types/scrolled/package/widgets/mainStorylineSheet.css +1 -0
  485. data/entry_types/scrolled/package/widgets/mainStorylineSheet.js +100 -0
  486. data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -1
  487. data/entry_types/scrolled/package/widgets/textInlineFileRights.js +48 -26
  488. data/entry_types/scrolled/package/widgets-server.js +2 -0
  489. data/entry_types/scrolled/spec/factories/chapters.rb +14 -1
  490. data/entry_types/scrolled/spec/factories/content_elements.rb +1 -1
  491. data/entry_types/scrolled/spec/factories/lottie_files.rb +29 -0
  492. data/entry_types/scrolled/spec/fixtures/animation.lottie +0 -0
  493. data/entry_types/scrolled/spec/fixtures/font.woff +0 -0
  494. data/entry_types/scrolled/spec/fixtures/font.woff2 +0 -0
  495. data/lib/generators/pageflow/active_admin_initializer/active_admin_initializer_generator.rb +5 -3
  496. data/lib/generators/pageflow/assets/assets_generator.rb +7 -5
  497. data/lib/generators/pageflow/cancan/cancan_generator.rb +2 -1
  498. data/lib/generators/pageflow/cancan/templates/ability.rb +1 -1
  499. data/lib/generators/pageflow/error_pages/error_pages_generator.rb +2 -1
  500. data/lib/generators/pageflow/initializer/initializer_generator.rb +3 -2
  501. data/lib/generators/pageflow/install/install_generator.rb +2 -2
  502. data/lib/generators/pageflow/procfile/procfile_generator.rb +2 -1
  503. data/lib/generators/pageflow/resque/resque_generator.rb +4 -4
  504. data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
  505. data/lib/generators/pageflow/routes/routes_generator.rb +4 -2
  506. data/lib/generators/pageflow/seeds/seeds_generator.rb +3 -2
  507. data/lib/generators/pageflow/seeds/templates/seeds.rb +6 -6
  508. data/lib/generators/pageflow/theme/theme_generator.rb +2 -1
  509. data/lib/generators/pageflow/user/user_generator.rb +2 -1
  510. data/lib/pageflow/ability_mixin.rb +25 -15
  511. data/lib/pageflow/active_admin_patches/views/attributes_table.rb +1 -0
  512. data/lib/pageflow/active_admin_patches/views/pages/base.rb +3 -2
  513. data/lib/pageflow/active_admin_patches/views/table_for.rb +1 -0
  514. data/lib/pageflow/additional_headers.rb +27 -0
  515. data/lib/pageflow/admin/attributes_table_rows.rb +3 -3
  516. data/lib/pageflow/admin/tabs.rb +1 -1
  517. data/lib/pageflow/built_in_file_type.rb +1 -1
  518. data/lib/pageflow/built_in_page_types_plugin.rb +1 -1
  519. data/lib/pageflow/built_in_widget_type.rb +2 -2
  520. data/lib/pageflow/built_in_widget_types_plugin.rb +2 -1
  521. data/lib/pageflow/configuration.rb +183 -18
  522. data/lib/pageflow/cutoff_modes.rb +39 -0
  523. data/lib/pageflow/deprecation.rb +19 -0
  524. data/lib/pageflow/editor_controller.rb +6 -10
  525. data/lib/pageflow/engine.rb +5 -6
  526. data/lib/pageflow/entries_controller_env_helper.rb +32 -2
  527. data/lib/pageflow/entry_export_import/attachment_files.rb +1 -1
  528. data/lib/pageflow/entry_export_import/entry_serialization.rb +9 -8
  529. data/lib/pageflow/entry_export_import/file_mappings.rb +1 -0
  530. data/lib/pageflow/entry_export_import/page_type_versions.rb +2 -2
  531. data/lib/pageflow/entry_export_import/revision_serialization/import.rb +11 -1
  532. data/lib/pageflow/entry_export_import/revision_serialization.rb +3 -0
  533. data/lib/pageflow/entry_export_import.rb +3 -3
  534. data/lib/pageflow/entry_structured_data_types.rb +43 -0
  535. data/lib/pageflow/entry_type_configuration.rb +1 -0
  536. data/lib/pageflow/entry_types.rb +2 -2
  537. data/lib/pageflow/feature.rb +1 -1
  538. data/lib/pageflow/features.rb +4 -6
  539. data/lib/pageflow/file_importers.rb +4 -4
  540. data/lib/pageflow/file_type.rb +5 -5
  541. data/lib/pageflow/file_types.rb +4 -4
  542. data/lib/pageflow/global_config_api.rb +5 -6
  543. data/lib/pageflow/help_entries.rb +7 -7
  544. data/lib/pageflow/help_entry.rb +1 -1
  545. data/lib/pageflow/hooks.rb +1 -1
  546. data/lib/pageflow/nested_revision_component.rb +9 -27
  547. data/lib/pageflow/news_item_api.rb +1 -1
  548. data/lib/pageflow/oembed_providers.rb +42 -0
  549. data/lib/pageflow/page_type.rb +2 -3
  550. data/lib/pageflow/page_types.rb +3 -3
  551. data/lib/pageflow/paperclip_interpolations/support.rb +1 -1
  552. data/lib/pageflow/paperclip_processors/vtt.rb +1 -0
  553. data/lib/pageflow/paperclip_processors/webp.rb +2 -2
  554. data/lib/pageflow/partial_editor_fragment_renderer.rb +2 -2
  555. data/lib/pageflow/plugin.rb +1 -2
  556. data/lib/pageflow/primary_domain_entry_redirect.rb +6 -0
  557. data/lib/pageflow/quota.rb +9 -5
  558. data/lib/pageflow/quotas.rb +1 -1
  559. data/lib/pageflow/rails_version.rb +14 -2
  560. data/lib/pageflow/react.rb +1 -1
  561. data/lib/pageflow/revision_component.rb +8 -40
  562. data/lib/pageflow/revision_components.rb +16 -6
  563. data/lib/pageflow/seeds.rb +12 -16
  564. data/lib/pageflow/theme.rb +1 -1
  565. data/lib/pageflow/theme_customizations.rb +10 -10
  566. data/lib/pageflow/themes.rb +44 -3
  567. data/lib/pageflow/user_mixin.rb +18 -6
  568. data/lib/pageflow/version.rb +1 -1
  569. data/lib/pageflow/widget_type.rb +4 -4
  570. data/lib/pageflow/widget_types.rb +9 -9
  571. data/lib/pageflow/zencoder_api.rb +32 -42
  572. data/lib/pageflow/zencoder_audio_output_definition.rb +14 -13
  573. data/lib/pageflow/zencoder_meta_data_output_definition.rb +3 -2
  574. data/lib/pageflow/zencoder_output_definition.rb +16 -14
  575. data/lib/pageflow/zencoder_video_output_definition.rb +140 -88
  576. data/lib/pageflow.rb +8 -2
  577. data/lib/tasks/pageflow_tasks.rake +1 -1
  578. data/package/config/eslint-rules/documented-in-toc.js +125 -0
  579. data/package/config/jest/index.js +0 -1
  580. data/package/config/webpack.js +0 -1
  581. data/package/config/webpack5.js +0 -1
  582. data/package/editor.js +4880 -2313
  583. data/package/frontend.js +710 -1223
  584. data/package/package.json +3 -1
  585. data/package/review.js +384 -0
  586. data/package/testHelpers.js +257 -243
  587. data/package/ui.js +1487 -813
  588. data/package/vendor/stubs/wysihtml5.js +2 -0
  589. data/spec/factories/accounts.rb +37 -22
  590. data/spec/factories/audio_files.rb +2 -2
  591. data/spec/factories/authentication_tokens.rb +4 -4
  592. data/spec/factories/chapters.rb +4 -4
  593. data/spec/factories/comment_thread_reads.rb +10 -0
  594. data/spec/factories/comment_threads.rb +10 -0
  595. data/spec/factories/comments.rb +9 -0
  596. data/spec/factories/draft_entries.rb +14 -6
  597. data/spec/factories/edit_locks.rb +1 -1
  598. data/spec/factories/entries.rb +28 -19
  599. data/spec/factories/entry_translation_groups.rb +6 -0
  600. data/spec/factories/file_folders.rb +8 -0
  601. data/spec/factories/file_usages.rb +2 -1
  602. data/spec/factories/folders.rb +1 -1
  603. data/spec/factories/image_files.rb +2 -2
  604. data/spec/factories/pages.rb +3 -3
  605. data/spec/factories/published_entries.rb +28 -8
  606. data/spec/factories/revisions.rb +1 -1
  607. data/spec/factories/sites.rb +6 -0
  608. data/spec/factories/test_multi_attachment_files.rb +1 -1
  609. data/spec/factories/text_track_files.rb +1 -1
  610. data/spec/factories/uploadable_files.rb +1 -1
  611. data/spec/factories/users.rb +6 -6
  612. data/spec/factories/video_files.rb +2 -2
  613. data/spec/factories/widgets.rb +1 -1
  614. data/spec/fixtures/7x15_rotated.jpg +0 -0
  615. data/vendor/assets/javascripts/wysihtml-toolbar.js +19288 -0
  616. metadata +266 -92
  617. data/app/assets/stylesheets/pageflow/editor/select_button.scss +0 -51
  618. data/config/initializers/revision_components.rb +0 -5
  619. data/config/locales/twitter_to_x.de.yml +0 -6
  620. data/config/locales/twitter_to_x.en.yml +0 -6
  621. data/entry_types/scrolled/app/helpers/pageflow_scrolled/generated_media_queries_helper.rb +0 -55
  622. data/entry_types/scrolled/config/locales/twitter_to_x.de.yml +0 -12
  623. data/entry_types/scrolled/config/locales/twitter_to_x.en.yml +0 -12
  624. data/entry_types/scrolled/config/locales/vr_image_projection.de.yml +0 -24
  625. data/entry_types/scrolled/config/locales/vr_image_projection.en.yml +0 -24
  626. data/entry_types/scrolled/package/frontend/EditableInlineText.module-ebd22921.js +0 -5497
  627. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-b79159cc.js +0 -107
  628. data/entry_types/scrolled/package/frontend/Viewer-1ecf3375.js +0 -154
  629. data/entry_types/scrolled/package/frontend/Wavesurfer-7d9cf1b7.js +0 -333
  630. data/entry_types/scrolled/package/frontend/arrowRight-62998af9.js +0 -77
  631. data/entry_types/scrolled/package/frontend/components-024a9893.js +0 -2853
  632. data/entry_types/scrolled/package/frontend/createSuper-d0f30da3.js +0 -115
  633. data/entry_types/scrolled/package/frontend/i18n-ce13a8bf.js +0 -1129
  634. data/entry_types/scrolled/package/frontend/useContentElementEditorState-4f4c3cf6.js +0 -52
  635. data/lib/generators/pageflow/resque/templates/resque_enqueue_after_commit_patch.rb +0 -25
  636. data/package/vendor/jquery.minicolors.js +0 -1108
@@ -142,6 +142,9 @@ en:
142
142
  recommendation: We recommend upgrading to the latest <a href="http://windows.microsoft.com/ie">Internet Explorer</a>, <a href="https://chrome.google.com/">Google Chrome</a>, or <a href="https://mozilla.org/firefox/">Firefox</a>.
143
143
  turn_off_compatibility_view: If you are using IE 9 or later, make sure you <a href="http://windows.microsoft.com/en-US/windows7/webpages-look-incorrect-in-Internet-Explorer">turn off "Compatibility View"</a>.
144
144
  view: View
145
+ resources:
146
+ translations:
147
+ new_model: Link translation
145
148
  activerecord:
146
149
  attributes:
147
150
  admin_user:
@@ -180,6 +183,7 @@ en:
180
183
  author: Author
181
184
  created_at: Created
182
185
  credits: Credits
186
+ structured_data_type_name: Structured data type
183
187
  edited_at: Edited
184
188
  embed_code: Embed
185
189
  first_published_at: First published at
@@ -279,6 +283,8 @@ en:
279
283
  share_providers: Default Share Links
280
284
  sitemap_enabled: XML sitemap
281
285
  title: Title
286
+ custom_404_entry_id: "Custom 404 page"
287
+ cutoff_mode_name: "Cutoff mode"
282
288
  pageflow/text_track_file:
283
289
  kind: Kind
284
290
  label: Label
@@ -370,6 +376,11 @@ en:
370
376
  attributes:
371
377
  user:
372
378
  required: User must be selected
379
+ pageflow/site:
380
+ attributes:
381
+ attribute_translations:
382
+ not_translatable: contains an attribute that cannot be translated
383
+ unknown_locale: contains an unknown locale
373
384
  models:
374
385
  account:
375
386
  one: Account
@@ -431,6 +442,9 @@ en:
431
442
  user:
432
443
  one: User
433
444
  other: Users
445
+ translation:
446
+ one: Translation
447
+ other: Translations
434
448
  values:
435
449
  pageflow/chapter:
436
450
  navigation_bar_mode:
@@ -452,6 +466,9 @@ en:
452
466
  linked_in: LinkedIn
453
467
  telegram: Telegram (only mobile)
454
468
  whats_app: WhatsApp (only mobile)
469
+ bluesky: Bluesky
470
+ threads: Threads
471
+ twitter: X
455
472
  type_names:
456
473
  paged: Page-based / Classic
457
474
  scrolled: Continuously scrolling / Pageflow Next
@@ -506,7 +523,7 @@ en:
506
523
  - Fri
507
524
  - Sat
508
525
  abbr_month_names:
509
- -
526
+ -
510
527
  - Jan
511
528
  - Feb
512
529
  - Mar
@@ -532,7 +549,7 @@ en:
532
549
  long: "%B %d, %Y"
533
550
  short: "%b %d"
534
551
  month_names:
535
- -
552
+ -
536
553
  - January
537
554
  - February
538
555
  - March
@@ -742,9 +759,9 @@ en:
742
759
  i18n:
743
760
  transliterate:
744
761
  rule:
745
- ä:
746
- ö:
747
- ü:
762
+ ä:
763
+ ö:
764
+ ü:
748
765
  language: English
749
766
  number:
750
767
  currency:
@@ -810,6 +827,20 @@ en:
810
827
  site_defaults_inline_help: The following settings will be used as defaults for new stories in this account. Changes do not affect existing stories.
811
828
  entries:
812
829
  add_folder: Add folder
830
+ comments:
831
+ tooltip: "Comments: %{summary}"
832
+ topic_count:
833
+ one: 1 unresolved topic
834
+ other: "%{count} unresolved topics"
835
+ unread_reply_count:
836
+ one: 1 unread reply
837
+ other: "%{count} unread replies"
838
+ unread_resolution_count:
839
+ one: 1 newly resolved topic
840
+ other: "%{count} newly resolved topics"
841
+ unread_topic_count:
842
+ one: 1 unread topic
843
+ other: "%{count} unread topics"
813
844
  confirm_depublish: Depublish this story?
814
845
  confirm_duplicate: Duplicate this story?
815
846
  confirm_restore: Restore story to the selected version? A snapshot will be created, so that you can roll back later.
@@ -853,6 +884,10 @@ en:
853
884
  show_public_hint: Visit public page
854
885
  snapshot: Save current version
855
886
  title_hint: This field determines the URL for this story.
887
+ permalink_hint: |-
888
+ Changing the permalink after the story has already been
889
+ published automatically creates a redirect from the old URL
890
+ to the new URL
856
891
  entry:
857
892
  add: Add Story
858
893
  entry_membership_hint: Invite users to your account to assign them as members of this Story.
@@ -890,6 +925,7 @@ en:
890
925
  revisions: Versions
891
926
  sites: Sites
892
927
  users: User
928
+ translations: Translations
893
929
  revisions:
894
930
  published_until_hint: Leave blank to publish indefinitely.
895
931
  restored: Version restored
@@ -907,7 +943,6 @@ en:
907
943
  site are available via URLs of the form
908
944
  https://%{site_host}/feeds/en.atom where "en" can be
909
945
  replaced with any locale you want to filter by.
910
- home_url_hint: Used for requests to the root path with one of the above CNAMES. Default target location for the home button.
911
946
  name: "%{account_name}"
912
947
  remove_logo: Remove logo
913
948
  show: View
@@ -917,6 +952,22 @@ en:
917
952
  https://%{site_host}/sitemap.xml. Register the URL in Google
918
953
  Search Console or similar tools.
919
954
  title_hint: Used in entry titles and as title for the atom feed.
955
+ custom_404_entry:
956
+ none: "(Use default 404 page)"
957
+ hint: "Select an entry to display as the custom 404 page. Only published entries without password protection are available."
958
+ home_url_new_site_hint: |
959
+ Used for requests to the root path with one of the above
960
+ CNAMES. Once the site has been created you can also
961
+ configure an entry as homepage.
962
+ home_url_hint_html: |
963
+ Used for requests to the root path with one of the above
964
+ CNAMES. Alternatively, you can also use an entry as homepage.
965
+ <a href="%{choose_url}">Select existing entry</a> or <a
966
+ href="%{new_url}">create a new one</a>.
967
+ home_url_with_root_entry_hint_html: |
968
+ At the moment, the site uses the entry <a
969
+ href="%{entry_url}">%{entry_title}</a> as homepage. Change
970
+ the permalink of the entry to instead use the redirect URL.
920
971
  user:
921
972
  cannot_add: What you want to do is not possible. You need to upgrade.
922
973
  none_addable_tooltip: No user available
@@ -994,6 +1045,42 @@ en:
994
1045
  suspended: 'The user was suspended and will not be able to sign-in again. '
995
1046
  unsuspend: Unsuspend
996
1047
  unsuspended: The user was unsuspended.
1048
+ entry_translations:
1049
+ add: Link translation
1050
+ generate: Generate translation
1051
+ entry_id: Entry
1052
+ id: Translation(s)
1053
+ new_hint_html: |-
1054
+ Associate entries that represent the same content in
1055
+ different languages.
1056
+ create_model: Link as translation
1057
+ no_translations: No linked entries
1058
+ remove: Remove
1059
+ remove_confirmation: |-
1060
+ Are you sure you want to remove the entry from the list of translations?
1061
+ mark_as_default: Mark as default
1062
+ mark_as_default_confirmation: |-
1063
+ Really mark this translation as default?
1064
+ default_translation: "%{display_locale} (Standard)"
1065
+ default_translation_hint: |-
1066
+ Search engines fall back to the default language if no
1067
+ translation is available that matches the user's language
1068
+ settings.
1069
+ site_root_entry:
1070
+ title: Set Homepage
1071
+ intro_html: |
1072
+ <p>Select the story that should appear as the homepage at:<br>
1073
+ <strong>https://%{site_host}/</strong><br>This content will
1074
+ be shown when someone visits your site without entering a
1075
+ specific path.</p>
1076
+ hint: |
1077
+ The story's permalink will be updated automatically. If
1078
+ the story is already published, a redirect from the old URL
1079
+ to the new ULR will be created.
1080
+ submit: Set as Homepage
1081
+ chosen: The story has been chosen as homepage.
1082
+ root_permalink_directory_required: No permalink directory exists for this site.
1083
+ root_entry_exists: Another story is already being used as homepage.
997
1084
  audio:
998
1085
  help_entries:
999
1086
  page_type:
@@ -1105,6 +1192,11 @@ en:
1105
1192
  entries:
1106
1193
  unsupported_browser_hint:
1107
1194
  message: The Pageflow editor does not support the browser version you are using. We recommend upgrading your browser to the most recent version.
1195
+ entry_structured_data_types:
1196
+ article:
1197
+ label: Article
1198
+ faq_page:
1199
+ label: FAQ Page
1108
1200
  errors:
1109
1201
  UnmatchedUploadError: This filetype is not supported.
1110
1202
  invalid_nested_type_error: 'Error: Upload file ''%{name}'' is a %{type}. Only the following types of files are allowed: %{validList}'
@@ -1118,18 +1210,38 @@ en:
1118
1210
  video_settings_tab: Video Details
1119
1211
  files:
1120
1212
  common_attributes:
1213
+ ai_indicator:
1214
+ blank: "(Not specified)"
1215
+ inline_help: |-
1216
+ Indicate that the file has been generated or modified
1217
+ using artificial intelligence. Displayed as EU AI label
1218
+ at the element where the file is used.
1219
+ label: AI label
1220
+ values:
1221
+ ai_generated: Fully AI generated
1222
+ ai_modified: Partially AI modified
1223
+ ai_indicator_text:
1224
+ inline_help: |-
1225
+ Explains which parts of the file have been generated or
1226
+ modified using artificial intelligence.
1227
+ label: AI label text
1121
1228
  alt:
1122
1229
  inline_help: A hint describing the contents of the displayed element. Not displayed in the story, but can be used by screen reader software. Improves accessibility of the content.
1123
1230
  label: Alt-Text
1124
1231
  file_name:
1125
1232
  column_header: File name
1126
1233
  label: File name
1234
+ display_name:
1235
+ column_header: File name
1236
+ label: File name
1127
1237
  license:
1128
1238
  blank: "(Not specified)"
1129
1239
  inline_help: Adds a link to the license in the credit note.
1130
1240
  label: License
1131
1241
  original_url:
1132
1242
  label: Original
1243
+ download_url:
1244
+ label: Download
1133
1245
  rights:
1134
1246
  cell_title:
1135
1247
  blank: Still blank
@@ -1183,6 +1295,11 @@ en:
1183
1295
  failed: Transfer to S3 failed.
1184
1296
  finished: Successfully transferred to S3.
1185
1297
  pending: Transfer to S3 pending.
1298
+ singular:
1299
+ audio_files: an audio file
1300
+ image_files: an image
1301
+ other_files: a file
1302
+ video_files: a video
1186
1303
  tabs:
1187
1304
  audio_files: Audios
1188
1305
  image_files: Images
@@ -1300,11 +1417,18 @@ en:
1300
1417
  entry_preview:
1301
1418
  navigation_disabled_hint: Page changes not possible in phone preview.
1302
1419
  file_item:
1303
- cancel: Cancel
1420
+ actions: Actions
1421
+ cancel_upload: Cancel upload
1304
1422
  confirm: Confirm
1305
1423
  credits: Credits
1306
1424
  destroy: Delete
1307
1425
  download: Download
1426
+ expand_details: Show details
1427
+ collapse_details: Hide details
1428
+ move: Move...
1429
+ reference_count:
1430
+ one: 1 usage
1431
+ other: "%{count} usages"
1308
1432
  retry: Retry
1309
1433
  select: Select
1310
1434
  settings: Settings
@@ -1315,8 +1439,9 @@ en:
1315
1439
  close: Close
1316
1440
  files:
1317
1441
  back: Back
1442
+ in_folder: 'In folder:'
1318
1443
  files_blank_slate:
1319
- no_files: There are no files of this type, yet. You can upload one to get started.
1444
+ no_files: There are no files yet. You can upload one to get started.
1320
1445
  files_explorer:
1321
1446
  cancel: Cancel
1322
1447
  ok: Ok
@@ -1335,6 +1460,12 @@ en:
1335
1460
  list_item:
1336
1461
  edit: Edit
1337
1462
  remove: Delete
1463
+ list_search_field:
1464
+ placeholder: 'Filter files'
1465
+ hint: 'Type %{hotkey} to search'
1466
+ hint_in_all_folders: 'Type %{hotkey} to search all folders'
1467
+ hint_in_folder: 'Type %{hotkey} to search this folder'
1468
+ reset: 'Clear filter'
1338
1469
  loading:
1339
1470
  loading: Loading...
1340
1471
  locked:
@@ -1390,8 +1521,6 @@ en:
1390
1521
  until_including: Until including
1391
1522
  user_name: User name
1392
1523
  view_revisions: View versions
1393
- select_button:
1394
- select: Select
1395
1524
  storyline_outline:
1396
1525
  header: Outline
1397
1526
  new_chapter: New chapter
@@ -1413,20 +1542,30 @@ en:
1413
1542
  title_loading_spinner:
1414
1543
  widget_type_info_box_text: This is a preview of the 'Title and Image' loading view. The animation runs while the page is loading.
1415
1544
  views:
1545
+ audio_file_preview_view:
1546
+ pause: Pause
1547
+ play: Play
1416
1548
  chapter_item_view:
1417
1549
  chapter: Chapter
1418
1550
  unnamed: "(New chapter)"
1551
+ confirmable_file_item_view:
1552
+ confirm_destroy: Really delete this file?
1419
1553
  edit_chapter_view:
1420
1554
  confirm_destroy: |-
1421
1555
  Really delete this chapter including ALL its pages?
1422
1556
 
1423
1557
  This operation cannot be undone.
1558
+ destroy_menu_item:
1559
+ confirm_destroy: Really delete this record? This action cannot be undone.
1560
+ destroy: Delete
1424
1561
  edit_configuration:
1425
- back: Outline
1562
+ actions: Actions
1563
+ back: "Back"
1426
1564
  confirm_destroy: Really delete this record? This action cannot be undone.
1427
1565
  destroy: Delete
1428
1566
  retry: Retry
1429
1567
  save_error: Saving the record failed.
1568
+ outline: "Outline"
1430
1569
  edit_entry_view:
1431
1570
  cannot_publish: You do not have sufficient rights to publish this story.
1432
1571
  edit_page_view:
@@ -1441,18 +1580,67 @@ en:
1441
1580
  show_editor: Show editor panel
1442
1581
  entry_preview_view:
1443
1582
  scroll_hint: Scroll down to continue
1583
+ file_item_view:
1584
+ confirm_destroy: Really delete this file?
1444
1585
  file_meta_data_item_value_view:
1445
1586
  blank: "-"
1587
+ file_references:
1588
+ header: Referenced by
1589
+ file_preview_progress_bar_view:
1590
+ position: Playback position
1591
+ files_blank_slate_view:
1592
+ empty_folder: 'This folder does not contain any files, yet.'
1593
+ no_matches: 'No file matches the current filter.'
1446
1594
  files_view:
1447
1595
  add: Add
1448
1596
  authenticating: Authenticating
1449
- import: Import
1597
+ folder: New folder
1598
+ import: Import file...
1450
1599
  importer:
1451
1600
  heading: Import files from
1452
- reuse: Reuse
1453
- upload: Upload
1601
+ reuse: Reuse file...
1602
+ tabs:
1603
+ files: Files
1604
+ upload: Upload file...
1605
+ file_type_pills_view:
1606
+ group_label: 'Filter by file type'
1607
+ hint: 'Click a file type to show only its files. Hold Ctrl/Cmd to combine file types.'
1454
1608
  filtered_files_view:
1455
- banner_prefix: 'Active filter:'
1609
+ actions: 'File list actions'
1610
+ any_file_type: 'a file'
1611
+ cancel_selection: 'Cancel selection'
1612
+ confirm_destroy_selection:
1613
+ one: 'Really delete 1 item?'
1614
+ other: 'Really delete %{count} items?'
1615
+ destroy_selection: 'Delete selection'
1616
+ end_selection: 'End selection'
1617
+ move_selection: 'Move...'
1618
+ reset_filter: 'Reset filter'
1619
+ search: 'Filter files and folders'
1620
+ search_in_folder: 'Filter files in %{folder}'
1621
+ select: 'Select %{name}'
1622
+ select_items: 'Select files and folders'
1623
+ selected_items:
1624
+ zero: 'No items selected'
1625
+ one: '1 item selected'
1626
+ other: '%{count} items selected'
1627
+ sort_button_label: 'Sort'
1628
+ sort:
1629
+ alphabetical: 'Alphabetical'
1630
+ most_recent: 'Most recent'
1631
+ folder_breadcrumb_view:
1632
+ label: 'Folder path'
1633
+ reset: 'Leave folder'
1634
+ folder_item_view:
1635
+ actions: 'Folder actions'
1636
+ destroy: 'Delete'
1637
+ file_count:
1638
+ one: '1 file'
1639
+ other: '%{count} files'
1640
+ move: 'Move...'
1641
+ name: 'Name of new folder'
1642
+ new_name: 'New name of folder'
1643
+ rename: 'Rename'
1456
1644
  inputs:
1457
1645
  file_input:
1458
1646
  auto_default_text_track: "(Auto)"
@@ -1466,6 +1654,35 @@ en:
1466
1654
  unset: Reset
1467
1655
  theme_input_view:
1468
1656
  choose: Change theme
1657
+ edit_defaults_input_view:
1658
+ label: Defaults for new elements
1659
+ oembed_url_input_view:
1660
+ status:
1661
+ resolving: "Resolving..."
1662
+ resolved: "Resolved"
1663
+ invalid_provider: "Invalid provider"
1664
+ not_found: "URL not found"
1665
+ error: "Error resolving URL"
1666
+ move_to_folder_dialog_view:
1667
+ cancel: 'Cancel'
1668
+ current: 'Current folder'
1669
+ header:
1670
+ files:
1671
+ one: 'Move file'
1672
+ other: 'Move files'
1673
+ folders:
1674
+ one: 'Move folder'
1675
+ other: 'Move folders'
1676
+ items: 'Move items'
1677
+ hint:
1678
+ files:
1679
+ one: 'Select the folder to move %{name} to.'
1680
+ other: 'Select the folder to move %{count} files to.'
1681
+ folders:
1682
+ one: 'Select the folder to move %{name} to.'
1683
+ other: 'Select the folder to move %{count} folders to.'
1684
+ items: 'Select the folder to move %{count} items to.'
1685
+ root: 'No folder'
1469
1686
  page_item_view:
1470
1687
  unnamed: "(New page)"
1471
1688
  page_link_item_view:
@@ -1474,6 +1691,9 @@ en:
1474
1691
  storylines_picker_view:
1475
1692
  label: Storyline
1476
1693
  without_parent_page: Without parent page
1694
+ video_file_preview_view:
1695
+ mute: Mute
1696
+ unmute: Unmute
1477
1697
  widgets:
1478
1698
  attributes:
1479
1699
  media_loading_spinner:
@@ -1838,10 +2058,15 @@ en:
1838
2058
  untitled: Unnamed storyline
1839
2059
  structured_data:
1840
2060
  feature_name: Embedded structured data
2061
+ faq_page_structured_data:
2062
+ feature_name: FAQ Page structured data
1841
2063
  title_loading_spinner:
1842
2064
  feature_name: "'Title and image' loading view"
1843
2065
  widget_type_name: Title and Image
1844
2066
  ui:
2067
+ color_picker:
2068
+ hue: "Hue"
2069
+ opacity: "Opacity"
1845
2070
  configuration_editor:
1846
2071
  tabs:
1847
2072
  consent_bar: Consent bar
@@ -1983,6 +2208,8 @@ en:
1983
2208
  default_slideshow_mode: Vertical scoll/swipe
1984
2209
  phone_horizontal_slideshow_mode: Horizontal swipe on phone
1985
2210
  slim_player_controls: Minimal
2211
+ cutoff_modes:
2212
+ none: "(None)"
1986
2213
  support:
1987
2214
  array:
1988
2215
  last_word_connector: ", and "
@@ -2004,3 +2231,14 @@ en:
2004
2231
  next: ">>"
2005
2232
  previous: !!str '<<'
2006
2233
  truncate: "..."
2234
+ activemodel:
2235
+ attributes:
2236
+ pageflow/site_root_entry_form:
2237
+ entry: Story
2238
+ entry_id: Story
2239
+ errors:
2240
+ models:
2241
+ pageflow/site_root_entry_form:
2242
+ attributes:
2243
+ entry:
2244
+ blank: not found
data/config/routes.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  Pageflow::Engine.routes.draw do
2
- constraints Pageflow.config(:ignore_not_configured => true).editor_route_constraint do
2
+ constraints Pageflow.config(ignore_not_configured: true).editor_route_constraint do
3
3
  resources :entries, only: [], shallow: true do
4
- get :partials, :on => :member
4
+ get :partials, on: :member
5
5
 
6
6
  resources :revisions, only: [:show] do
7
7
  get :stylesheet, on: :member
@@ -39,16 +39,16 @@ Pageflow::Engine.routes.draw do
39
39
 
40
40
  namespace :editor do
41
41
  resources :entries, only: [:index, :show, :update], shallow: true do
42
- get :seed, :on => :member
42
+ get :seed, on: :member
43
43
 
44
- resources :file_usages, :only => [:create, :destroy]
44
+ resources :file_usages, only: [:create, :destroy]
45
45
 
46
- resources :encoding_confirmations, :only => [:create] do
47
- post :check, :on => :collection
46
+ resources :encoding_confirmations, only: [:create] do
47
+ post :check, on: :collection
48
48
  end
49
49
 
50
- resources :entry_publications, :only => [:create] do
51
- post :check, :on => :collection
50
+ resources :entry_publications, only: [:create] do
51
+ post :check, on: :collection
52
52
  end
53
53
 
54
54
  Pageflow.config(ignore_not_configured: true).entry_types.routes(self)
@@ -63,23 +63,39 @@ Pageflow::Engine.routes.draw do
63
63
  put :publish, on: :member
64
64
  end
65
65
 
66
+ resources :file_folders, only: [:index, :create, :update, :destroy]
67
+
66
68
  get '/file_import/:file_import_name/search' => 'file_import#search'
67
69
  post '/file_import/:file_import_name/files_meta_data' => 'file_import#files_meta_data'
68
70
  post '/file_import/:file_import_name/start_import_job' => 'file_import#start_import_job'
69
71
  end
70
72
 
71
73
  resources :subjects, path: '/subjects/:collection_name', only: [] do
72
- resources :widgets, :only => [:index] do
73
- patch :batch, :on => :collection
74
+ resources :widgets, only: [:index] do
75
+ patch :batch, on: :collection
76
+ end
77
+ end
78
+
79
+ resource :oembed, only: [:show]
80
+ end
81
+
82
+ namespace :review do
83
+ resources :entries, only: [] do
84
+ resources :comment_threads, only: [:index, :create, :update] do
85
+ resources :comments, only: [:create, :update]
74
86
  end
87
+
88
+ resources :comment_thread_reads, only: [:create]
75
89
  end
76
90
  end
77
91
 
78
- root :to => redirect('/admin')
92
+ root to: redirect('/admin')
79
93
  end
80
94
 
81
- get ':entry_id/videos/:id', :to => 'files#show', :as => :short_video_file, :defaults => {:collection_name => 'video_files'}
82
- get ':entry_id/audio/:id', :to => 'files#show', :as => :short_audio_file, :defaults => {:collection_name => 'audio_files'}
95
+ get ':entry_id/videos/:id', to: 'files#show', as: :short_video_file,
96
+ defaults: {collection_name: 'video_files'}
97
+ get ':entry_id/audio/:id', to: 'files#show', as: :short_audio_file,
98
+ defaults: {collection_name: 'audio_files'}
83
99
 
84
100
  resources :entries, only: [:show] do
85
101
  get :stylesheet, on: :member
data/config/spring.rb CHANGED
@@ -1,2 +1,3 @@
1
1
  require File.expand_path('../lib/pageflow/rails_version', File.dirname(__FILE__))
2
- Spring.application_root = File.join(__FILE__, "../../spec/dummy/rails-#{Pageflow::RailsVersion.detect}")
2
+ Spring.application_root = File.join(__FILE__,
3
+ "../../spec/dummy/rails-#{Pageflow::RailsVersion.detect}")
@@ -1,4 +1,4 @@
1
- # rubocop:disable Metrics/LineLength, Metrics/BlockLength
1
+ # rubocop:disable Layout/LineLength, Metrics/ClassLength, Metrics/BlockLength
2
2
 
3
3
  class SetupSchema < ActiveRecord::Migration[5.2]
4
4
  def change
@@ -296,4 +296,4 @@ class SetupSchema < ActiveRecord::Migration[5.2]
296
296
  end
297
297
  end
298
298
 
299
- # rubocop:enable Metrics/LineLength, Metrics/BlockLength
299
+ # rubocop:enable Layout/LineLength, Metrics/ClassLength, Metrics/BlockLength
@@ -1,6 +1,6 @@
1
1
  class CopyFileAttributesOfFailedUploads < ActiveRecord::Migration[5.2]
2
2
  def up
3
- %w(audio text_track video).each do |uploadable_file_type|
3
+ %w[audio text_track video].each do |uploadable_file_type|
4
4
  execute("UPDATE pageflow_#{uploadable_file_type}_files hf
5
5
  SET hf.attachment_on_s3_file_name = hf.attachment_on_filesystem_file_name,
6
6
  hf.attachment_on_s3_content_type = hf.attachment_on_filesystem_content_type,
@@ -12,7 +12,7 @@ class CopyFileAttributesOfFailedUploads < ActiveRecord::Migration[5.2]
12
12
  end
13
13
 
14
14
  def down
15
- %w(audio text_track video).each do |uploadable_file_type|
15
+ %w[audio text_track video].each do |uploadable_file_type|
16
16
  execute("UPDATE pageflow_#{uploadable_file_type}_files hf
17
17
  SET hf.attachment_on_s3_file_name = NULL,
18
18
  hf.attachment_on_s3_content_type = NULL,
@@ -1,6 +1,7 @@
1
1
  class DropAccountsThemes < ActiveRecord::Migration[5.2]
2
2
  def change
3
- drop_table :pageflow_accounts_themes, id: false, options: 'ENGINE=InnoDB DEFAULT CHARSET=utf8', force: :cascade do |t|
3
+ drop_table :pageflow_accounts_themes, id: false, options: 'ENGINE=InnoDB DEFAULT CHARSET=utf8',
4
+ force: :cascade do |t|
4
5
  t.integer 'account_id'
5
6
  t.integer 'theme_name'
6
7
  end
@@ -1,20 +1,20 @@
1
1
  class CreatePageflowScrolledSections < ActiveRecord::Migration[5.2]
2
2
  def change
3
3
  create_table :pageflow_scrolled_sections do |t|
4
- t.references :revision # RevisionComponent
4
+ t.references :revision # RevisionComponent
5
5
  t.integer :perma_id # revision_component
6
6
  t.integer :position, default: 0, null: false # position within chapter
7
7
  t.text :configuration # schemaless JSON
8
- # - title (title for editor-overview)
9
- # - transition (transition from last section)
10
- # - full_height (min viewport height: true/false)
11
- # - layout (section layout on wide screens (left-/right-aligned, centered))
12
- # - appearance (section appearance / text-background)
13
- # - invert (text-color-/text-background-inversion (black on white or white on black))
14
- # - backdrop:
15
- # - type (image/video/color)
16
- # - image-/video-usage-perma_id
17
- # - color-code
8
+ # - title (title for editor-overview)
9
+ # - transition (transition from last section)
10
+ # - full_height (min viewport height: true/false)
11
+ # - layout (section layout on wide screens (left-/right-aligned, centered))
12
+ # - appearance (section appearance / text-background)
13
+ # - invert (text-color-/text-background-inversion (black on white or white on black))
14
+ # - backdrop:
15
+ # - type (image/video/color)
16
+ # - image-/video-usage-perma_id
17
+ # - color-code
18
18
  t.timestamps
19
19
  end
20
20
  end
@@ -4,7 +4,7 @@ class CreatePageflowScrolledChapters < ActiveRecord::Migration[5.2]
4
4
  t.integer :perma_id # deep link / anchor for menu
5
5
  t.integer :position, default: 0, null: false # position within entry
6
6
  t.text :configuration # schemaless JSON
7
- # - title (title for editor-overview)
7
+ # - title (title for editor-overview)
8
8
  t.timestamps
9
9
  end
10
10
  end