pageflow 17.0.5 → 17.1.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 (488) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +362 -35
  3. data/README.md +0 -1
  4. data/admins/pageflow/accounts.rb +16 -14
  5. data/admins/pageflow/entry.rb +68 -20
  6. data/admins/pageflow/entry_templates.rb +10 -9
  7. data/admins/pageflow/folder.rb +1 -1
  8. data/admins/pageflow/membership.rb +4 -4
  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/javascripts/pageflow/admin/entries.js +30 -5
  15. data/app/assets/javascripts/pageflow/dist/ui.js +2865 -257
  16. data/app/assets/stylesheets/pageflow/admin/entries/index_table.scss +2 -1
  17. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +2 -1
  18. data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +6 -0
  19. data/app/assets/stylesheets/pageflow/editor/base.scss +2 -0
  20. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +7 -1
  21. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +5 -1
  22. data/app/assets/stylesheets/pageflow/editor/files.scss +28 -16
  23. data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +24 -0
  24. data/app/assets/stylesheets/pageflow/editor/info_box.scss +11 -3
  25. data/app/assets/stylesheets/pageflow/editor/list.scss +6 -4
  26. data/app/assets/stylesheets/pageflow/editor/list_search_field.scss +52 -0
  27. data/app/assets/stylesheets/pageflow/editor/outline.scss +0 -13
  28. data/app/assets/stylesheets/pageflow/editor/select_button.scss +1 -1
  29. data/app/assets/stylesheets/pageflow/editor/sortable.scss +12 -0
  30. data/app/assets/stylesheets/pageflow/mixins/buttons.scss +4 -4
  31. data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -0
  32. data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +8 -0
  33. data/app/assets/stylesheets/pageflow/ui/input/file_name_input.scss +37 -0
  34. data/app/assets/stylesheets/pageflow/ui/properties.scss +5 -0
  35. data/app/assets/stylesheets/pageflow/ui.scss +1 -0
  36. data/app/controllers/concerns/pageflow/controller_delegation.rb +1 -1
  37. data/app/controllers/concerns/pageflow/edit_locking.rb +17 -10
  38. data/app/controllers/concerns/pageflow/entry_password_protection.rb +1 -0
  39. data/app/controllers/concerns/pageflow/public_https_mode.rb +2 -1
  40. data/app/controllers/concerns/pageflow/quota_verification.rb +5 -4
  41. data/app/controllers/pageflow/admin/initial_passwords_controller.rb +1 -0
  42. data/app/controllers/pageflow/application_controller.rb +19 -19
  43. data/app/controllers/pageflow/chapters_controller.rb +3 -2
  44. data/app/controllers/pageflow/edit_locks_controller.rb +3 -2
  45. data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +1 -0
  46. data/app/controllers/pageflow/editor/entries_controller.rb +2 -1
  47. data/app/controllers/pageflow/editor/entry_publications_controller.rb +1 -0
  48. data/app/controllers/pageflow/editor/file_import_controller.rb +3 -3
  49. data/app/controllers/pageflow/editor/files_controller.rb +7 -6
  50. data/app/controllers/pageflow/editor/widgets_controller.rb +1 -0
  51. data/app/controllers/pageflow/entries_controller.rb +77 -17
  52. data/app/controllers/pageflow/feeds_controller.rb +1 -1
  53. data/app/controllers/pageflow/files_controller.rb +1 -0
  54. data/app/controllers/pageflow/pages_controller.rb +4 -2
  55. data/app/controllers/pageflow/revisions_controller.rb +2 -1
  56. data/app/controllers/pageflow/sitemaps_controller.rb +1 -1
  57. data/app/controllers/pageflow/storylines_controller.rb +1 -0
  58. data/app/helpers/pageflow/admin/cutoff_modes_helper.rb +12 -0
  59. data/app/helpers/pageflow/admin/entries_helper.rb +1 -1
  60. data/app/helpers/pageflow/admin/entry_translations_helper.rb +18 -0
  61. data/app/helpers/pageflow/admin/features_helper.rb +1 -1
  62. data/app/helpers/pageflow/admin/form_helper.rb +3 -3
  63. data/app/helpers/pageflow/admin/locales_helper.rb +10 -2
  64. data/app/helpers/pageflow/admin/memberships_helper.rb +32 -32
  65. data/app/helpers/pageflow/admin/revisions_helper.rb +1 -1
  66. data/app/helpers/pageflow/admin/sites_helper.rb +22 -0
  67. data/app/helpers/pageflow/admin/users_helper.rb +7 -5
  68. data/app/helpers/pageflow/admin/widgets_helper.rb +3 -3
  69. data/app/helpers/pageflow/asset_urls_helper.rb +1 -1
  70. data/app/helpers/pageflow/audio_files_helper.rb +5 -2
  71. data/app/helpers/pageflow/background_image_helper.rb +7 -6
  72. data/app/helpers/pageflow/common_entry_seed_helper.rb +2 -4
  73. data/app/helpers/pageflow/editor/config_helper.rb +1 -1
  74. data/app/helpers/pageflow/editor/files_helper.rb +1 -1
  75. data/app/helpers/pageflow/embed_code_helper.rb +3 -3
  76. data/app/helpers/pageflow/entries_helper.rb +58 -34
  77. data/app/helpers/pageflow/entry_json_seed_helper.rb +3 -2
  78. data/app/helpers/pageflow/feeds_helper.rb +2 -2
  79. data/app/helpers/pageflow/file_background_images_helper.rb +2 -2
  80. data/app/helpers/pageflow/file_thumbnails_helper.rb +4 -3
  81. data/app/helpers/pageflow/files_helper.rb +5 -4
  82. data/app/helpers/pageflow/folders_helper.rb +8 -5
  83. data/app/helpers/pageflow/help_entries_helper.rb +2 -2
  84. data/app/helpers/pageflow/hreflang_links_helper.rb +37 -0
  85. data/app/helpers/pageflow/info_box_helper.rb +7 -11
  86. data/app/helpers/pageflow/media_query_helper.rb +3 -3
  87. data/app/helpers/pageflow/navigation_bar_helper.rb +1 -1
  88. data/app/helpers/pageflow/overview_helper.rb +1 -1
  89. data/app/helpers/pageflow/page_types_helper.rb +5 -5
  90. data/app/helpers/pageflow/pages_helper.rb +29 -15
  91. data/app/helpers/pageflow/public_i18n_helper.rb +1 -1
  92. data/app/helpers/pageflow/quota_helper.rb +4 -4
  93. data/app/helpers/pageflow/render_json_helper.rb +6 -3
  94. data/app/helpers/pageflow/revision_file_helper.rb +2 -1
  95. data/app/helpers/pageflow/sites_helper.rb +3 -3
  96. data/app/helpers/pageflow/social_share_helper.rb +24 -10
  97. data/app/helpers/pageflow/social_share_links_helper.rb +12 -9
  98. data/app/helpers/pageflow/structured_data_helper.rb +1 -1
  99. data/app/helpers/pageflow/stub_page_configuration.rb +7 -3
  100. data/app/helpers/pageflow/text_direction_helper.rb +1 -1
  101. data/app/helpers/pageflow/themes_helper.rb +1 -1
  102. data/app/helpers/pageflow/video_files_helper.rb +29 -13
  103. data/app/helpers/pageflow/widgets_helper.rb +7 -6
  104. data/app/inputs/pageflow_permalink_input.rb +3 -2
  105. data/app/jobs/pageflow/application_job.rb +1 -0
  106. data/app/jobs/pageflow/entry_export_import/upload_and_publish_file_job.rb +1 -1
  107. data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +1 -0
  108. data/app/jobs/pageflow/poll_zencoder_job.rb +3 -2
  109. data/app/jobs/pageflow/process_image_or_text_track_job.rb +1 -0
  110. data/app/jobs/pageflow/prune_auto_snapshots_job.rb +1 -0
  111. data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +1 -0
  112. data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +1 -0
  113. data/app/mailers/pageflow/user_mailer.rb +1 -0
  114. data/app/models/concerns/pageflow/auto_generated_perma_id.rb +13 -1
  115. data/app/models/concerns/pageflow/entry_publication_states.rb +7 -3
  116. data/app/models/concerns/pageflow/feature_target.rb +8 -4
  117. data/app/models/concerns/pageflow/output_source.rb +3 -3
  118. data/app/models/concerns/pageflow/permalinkable.rb +2 -1
  119. data/app/models/concerns/pageflow/reusable_file.rb +23 -23
  120. data/app/models/concerns/pageflow/serialization_blacklist.rb +1 -1
  121. data/app/models/concerns/pageflow/suspendable.rb +5 -3
  122. data/app/models/concerns/pageflow/theme_referencer.rb +1 -1
  123. data/app/models/concerns/pageflow/translatable.rb +62 -0
  124. data/app/models/concerns/pageflow/uploadable_file.rb +6 -6
  125. data/app/models/pageflow/account.rb +6 -5
  126. data/app/models/pageflow/account_member_query.rb +1 -1
  127. data/app/models/pageflow/account_role_query.rb +1 -1
  128. data/app/models/pageflow/application_query.rb +1 -1
  129. data/app/models/pageflow/application_record.rb +1 -1
  130. data/app/models/pageflow/audio_file.rb +4 -4
  131. data/app/models/pageflow/audio_file_url_templates.rb +1 -1
  132. data/app/models/pageflow/authentication_token.rb +2 -2
  133. data/app/models/pageflow/chapter.rb +6 -1
  134. data/app/models/pageflow/chapter_scaffold.rb +2 -4
  135. data/app/models/pageflow/cname_site_request_scope.rb +1 -1
  136. data/app/models/pageflow/customized_theme.rb +6 -6
  137. data/app/models/pageflow/draft_entry.rb +37 -9
  138. data/app/models/pageflow/edit_lock.rb +19 -21
  139. data/app/models/pageflow/encoding_confirmation.rb +2 -2
  140. data/app/models/pageflow/entries_feed.rb +2 -2
  141. data/app/models/pageflow/entry.rb +44 -30
  142. data/app/models/pageflow/entry_at_revision.rb +5 -1
  143. data/app/models/pageflow/entry_duplicate.rb +8 -5
  144. data/app/models/pageflow/entry_publication.rb +2 -2
  145. data/app/models/pageflow/entry_role_query.rb +4 -4
  146. data/app/models/pageflow/entry_template.rb +4 -4
  147. data/app/models/pageflow/entry_title_or_account_name_query.rb +2 -2
  148. data/app/models/pageflow/entry_translation_group.rb +42 -0
  149. data/app/models/pageflow/file_reuse.rb +2 -2
  150. data/app/models/pageflow/file_usage.rb +10 -3
  151. data/app/models/pageflow/folder.rb +2 -2
  152. data/app/models/pageflow/home_button.rb +7 -7
  153. data/app/models/pageflow/image_file.rb +20 -5
  154. data/app/models/pageflow/image_file_url_templates.rb +1 -1
  155. data/app/models/pageflow/invitation_form.rb +2 -1
  156. data/app/models/pageflow/managed_user_query.rb +1 -1
  157. data/app/models/pageflow/membership.rb +5 -5
  158. data/app/models/pageflow/nested_revision_component_copy.rb +263 -0
  159. data/app/models/pageflow/null_user.rb +1 -1
  160. data/app/models/pageflow/overview_button.rb +1 -1
  161. data/app/models/pageflow/page.rb +7 -3
  162. data/app/models/pageflow/permalink.rb +23 -2
  163. data/app/models/pageflow/permalink_directory.rb +7 -0
  164. data/app/models/pageflow/permalink_redirect.rb +7 -0
  165. data/app/models/pageflow/positioned_file.rb +5 -5
  166. data/app/models/pageflow/potential_entry_translations.rb +55 -0
  167. data/app/models/pageflow/potential_memberships.rb +5 -4
  168. data/app/models/pageflow/published_entry.rb +62 -11
  169. data/app/models/pageflow/revision.rb +24 -15
  170. data/app/models/pageflow/roles.rb +14 -18
  171. data/app/models/pageflow/site.rb +36 -3
  172. data/app/models/pageflow/site_root_entry_form.rb +27 -0
  173. data/app/models/pageflow/sitemaps.rb +10 -1
  174. data/app/models/pageflow/storyline.rb +5 -2
  175. data/app/models/pageflow/storyline_scaffold.rb +1 -1
  176. data/app/models/pageflow/text_track_file.rb +1 -1
  177. data/app/models/pageflow/text_track_file_url_templates.rb +1 -1
  178. data/app/models/pageflow/theme_customization_file.rb +3 -2
  179. data/app/models/pageflow/thumbnail_file_resolver.rb +1 -1
  180. data/app/models/pageflow/url_template.rb +1 -1
  181. data/app/models/pageflow/used_file.rb +7 -3
  182. data/app/models/pageflow/user_name_query.rb +2 -2
  183. data/app/models/pageflow/video_file.rb +22 -15
  184. data/app/models/pageflow/video_file_url_templates.rb +6 -4
  185. data/app/models/pageflow/widget.rb +4 -3
  186. data/app/models/pageflow/with_file_usage_extension.rb +1 -1
  187. data/app/models/pageflow/zencoder_attachment.rb +8 -8
  188. data/app/policies/pageflow/account_policy.rb +3 -1
  189. data/app/policies/pageflow/admin/admin_only_tab_policy.rb +1 -0
  190. data/app/policies/pageflow/admin/entry_tab_policy.rb +1 -0
  191. data/app/policies/pageflow/application_policy.rb +2 -0
  192. data/app/policies/pageflow/entry_policy.rb +7 -1
  193. data/app/policies/pageflow/entry_template_policy.rb +2 -1
  194. data/app/policies/pageflow/file_policy.rb +4 -7
  195. data/app/policies/pageflow/folder_policy.rb +18 -8
  196. data/app/policies/pageflow/membership_policy.rb +6 -4
  197. data/app/policies/pageflow/site_policy.rb +10 -3
  198. data/app/policies/pageflow/user_policy.rb +6 -4
  199. data/app/state_machines/pageflow/image_and_text_track_processing_state_machine.rb +3 -2
  200. data/app/state_machines/pageflow/media_encoding_state_machine.rb +5 -4
  201. data/app/views/admin/accounts/_entry_template_details.html.arb +2 -2
  202. data/app/views/admin/entries/_attributes_table.html.arb +6 -5
  203. data/app/views/admin/entries/_form.html.erb +2 -1
  204. data/app/views/admin/entries/_permalink_inputs.html.erb +9 -2
  205. data/app/views/admin/entry_templates/_form.html.erb +1 -3
  206. data/app/views/admin/site_root_entry/choose.html.erb +19 -0
  207. data/app/views/admin/sites/_fields.html.erb +14 -1
  208. data/app/views/admin/translations/_form.html.erb +31 -0
  209. data/app/views/admin/users/_attributes_table.html.arb +13 -0
  210. data/app/views/components/pageflow/admin/add_membership_button.rb +13 -12
  211. data/app/views/components/pageflow/admin/custom_scopes_renderer.rb +1 -0
  212. data/app/views/components/pageflow/admin/embed_code_field.rb +1 -0
  213. data/app/views/components/pageflow/admin/embedded_index_table.rb +9 -10
  214. data/app/views/components/pageflow/admin/entries_tab.rb +1 -0
  215. data/app/views/components/pageflow/admin/entry_publication_state_indicator.rb +6 -5
  216. data/app/views/components/pageflow/admin/entry_templates_tab.rb +2 -1
  217. data/app/views/components/pageflow/admin/entry_translations_tab.rb +102 -0
  218. data/app/views/components/pageflow/admin/entry_user_badge_list.rb +1 -0
  219. data/app/views/components/pageflow/admin/extensible_attributes_table.rb +9 -8
  220. data/app/views/components/pageflow/admin/features_tab.rb +1 -0
  221. data/app/views/components/pageflow/admin/grouped_folder_list.rb +1 -0
  222. data/app/views/components/pageflow/admin/icon_link_to.rb +1 -0
  223. data/app/views/components/pageflow/admin/members_tab.rb +4 -3
  224. data/app/views/components/pageflow/admin/membership_role_with_tooltip.rb +3 -2
  225. data/app/views/components/pageflow/admin/revisions_tab.rb +14 -10
  226. data/app/views/components/pageflow/admin/sites_tab.rb +1 -0
  227. data/app/views/components/pageflow/admin/tabs_view.rb +1 -0
  228. data/app/views/components/pageflow/admin/timestamp.rb +6 -5
  229. data/app/views/components/pageflow/admin/user_account_badge_list.rb +2 -3
  230. data/app/views/components/pageflow/admin/user_accounts_tab.rb +1 -0
  231. data/app/views/components/pageflow/admin/user_entries_tab.rb +1 -0
  232. data/app/views/components/pageflow/admin/users_tab.rb +1 -0
  233. data/app/views/pageflow/editor/config/_seeds.json.jbuilder +1 -1
  234. data/app/views/pageflow/editor/entries/index.json.jbuilder +1 -1
  235. data/app/views/pageflow/editor/entries/show.json.jbuilder +1 -1
  236. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +2 -2
  237. data/app/views/pageflow/editor/files/_file.json.jbuilder +5 -13
  238. data/app/views/pageflow/editor/files/create.json.jbuilder +1 -1
  239. data/app/views/pageflow/editor/files/index.json.jbuilder +1 -1
  240. data/app/views/pageflow/editor/sites/_site.json.jbuilder +1 -0
  241. data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +1 -3
  242. data/app/views/pageflow/entries/share_menu/_bluesky_link.html.erb +8 -0
  243. data/app/views/pageflow/entries/share_menu/_threads_link.html.erb +8 -0
  244. data/app/views/pageflow/files/_file.json.jbuilder +3 -3
  245. data/app/views/pageflow/sitemaps/index.xml.builder +9 -1
  246. data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +1 -1
  247. data/app/views/pageflow/social_share/_page_meta_tags.html.erb +1 -1
  248. data/config/initializers/active_admin_patches.rb +3 -6
  249. data/config/initializers/admin_resource_tabs.rb +3 -0
  250. data/config/initializers/paperclip.rb +1 -0
  251. data/config/initializers/symmetric_encryption.rb +1 -1
  252. data/config/initializers/zencoder.rb +24 -13
  253. data/config/locales/de.yml +110 -4
  254. data/config/locales/en.yml +109 -7
  255. data/config/routes.rb +15 -13
  256. data/config/spring.rb +2 -1
  257. data/db/migrate/20140418225525_setup_schema.rb +2 -2
  258. data/db/migrate/20190306161431_copy_file_attributes_of_failed_uploads.rb +2 -2
  259. data/db/migrate/20190820152900_drop_accounts_themes.rb +2 -1
  260. data/db/migrate/20191202145757_create_pageflow_scrolled_sections.rb +11 -11
  261. data/db/migrate/20191202150657_create_pageflow_scrolled_chapters.rb +1 -1
  262. data/db/migrate/20191202154723_create_pageflow_scrolled_content_elements.rb +9 -9
  263. data/db/migrate/20191219143450_add_position_to_content_elements.rb +2 -1
  264. data/db/migrate/20200117133200_change_revision_appearance_option_default_and_null.rb +2 -1
  265. data/db/migrate/20200122115400_create_pageflow_entry_templates.rb +25 -25
  266. data/db/migrate/20200206134400_convert_legacy_scrolled_content_element_types.rb +3 -3
  267. data/db/migrate/20221215120856_associate_entry_templates_with_sites.rb +2 -2
  268. data/db/migrate/20230120092923_create_other_files.rb +2 -1
  269. data/db/migrate/20230419083307_create_pageflow_entry_translation_group.rb +9 -0
  270. data/db/migrate/20240612110434_add_cutoff_mode_name_to_sites.rb +5 -0
  271. data/db/migrate/20240918084059_create_pageflow_permalink_redirects.rb +14 -0
  272. data/db/migrate/20250508172234_ensure_scrolled_entries_have_main_storyline.rb +14 -0
  273. data/db/migrate/20250617090048_add_custom404_entry_to_sites.rb +5 -0
  274. data/db/migrate/20250617100000_add_perma_id_counter_to_entries.rb +28 -0
  275. data/db/migrate/20250722174123_add_perma_id_to_chapters.rb +10 -0
  276. data/db/migrate/20250725080603_add_perma_id_indexes_to_revision_components.rb +13 -0
  277. data/db/migrate/20250726000000_add_display_name_to_file_usages.rb +5 -0
  278. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +3912 -1486
  279. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +468 -1161
  280. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +28125 -22
  281. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +26589 -19
  282. data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +1 -0
  283. data/entry_types/paged/app/helpers/pageflow_paged/page_background_asset_helper.rb +1 -1
  284. data/entry_types/paged/app/helpers/pageflow_paged/third_party_embed_consent_helper.rb +7 -7
  285. data/entry_types/paged/app/views/pageflow_paged/editor/entries/_seed.json.jbuilder +1 -0
  286. data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
  287. data/entry_types/paged/lib/pageflow_paged/plugin.rb +4 -0
  288. data/entry_types/paged/lib/pageflow_paged/react/page_type.rb +1 -1
  289. data/entry_types/paged/lib/pageflow_paged/react/widget_type.rb +3 -3
  290. data/entry_types/paged/lib/pageflow_paged.rb +1 -1
  291. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +5 -3
  292. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +2 -2
  293. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +2 -2
  294. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +2 -1
  295. data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +2 -2
  296. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +1 -0
  297. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +2 -1
  298. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +60 -6
  299. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +16 -2
  300. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +21 -23
  301. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +16 -1
  302. data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +15 -14
  303. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +12 -0
  304. data/entry_types/scrolled/app/models/pageflow_scrolled/section.rb +12 -1
  305. data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +19 -1
  306. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -0
  307. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +2 -2
  308. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +2 -0
  309. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +17 -9
  310. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry_translations.json.jbuilder +14 -0
  311. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +25 -5
  312. data/entry_types/scrolled/app/views/pageflow_scrolled/storylines/_storyline.json.jbuilder +7 -0
  313. data/entry_types/scrolled/config/locales/de.yml +614 -45
  314. data/entry_types/scrolled/config/locales/en.yml +586 -47
  315. data/entry_types/scrolled/config/routes.rb +18 -8
  316. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +11 -11
  317. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantDesktop.svg +56 -0
  318. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantMobile.svg +22 -0
  319. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +26 -11
  320. data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +27 -8
  321. data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +1 -1
  322. data/entry_types/scrolled/lib/pageflow_scrolled/additional_theme_assets.rb +27 -0
  323. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +16 -4
  324. data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +1 -1
  325. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +24 -4
  326. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +24 -22
  327. data/entry_types/scrolled/lib/pageflow_scrolled.rb +1 -1
  328. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +6 -5
  329. data/entry_types/scrolled/package/config/webpack.js +22 -0
  330. data/entry_types/scrolled/package/contentElements/hotspots-frontend.css +1 -0
  331. data/entry_types/scrolled/package/contentElements/hotspots-frontend.js +1529 -0
  332. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.css +1 -0
  333. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.js +59 -0
  334. data/entry_types/scrolled/package/contentElements-editor.js +2075 -321
  335. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  336. data/entry_types/scrolled/package/contentElements-frontend.js +1019 -643
  337. data/entry_types/scrolled/package/editor.js +2086 -1091
  338. data/entry_types/scrolled/package/frontend/{EditableInlineText.module-ebd22921.js → FloatingPortalRootProvider-51914be7.js} +1200 -1258
  339. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-4ec6b2de.js → PhonePlatformContext-9f76033e.js} +7 -8
  340. data/entry_types/scrolled/package/frontend/ThemeIcon-81f2f066.js +1932 -0
  341. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-788e9cdb.js +39 -0
  342. data/entry_types/scrolled/package/frontend/{Viewer-1bb5597c.js → Viewer-0345ce57.js} +36 -63
  343. data/entry_types/scrolled/package/frontend/{Viewer-1ecf3375.js → Viewer-cdc549cc.js} +15 -22
  344. data/entry_types/scrolled/package/frontend/{Wavesurfer-7d9cf1b7.js → Wavesurfer-1cdc3925.js} +54 -74
  345. data/entry_types/scrolled/package/frontend/{components-024a9893.js → components-96660ffd.js} +1791 -841
  346. data/entry_types/scrolled/package/frontend/{index-11f32f10.js → index-eb670c2f.js} +11 -18
  347. data/entry_types/scrolled/package/frontend/index.css +1 -1
  348. data/entry_types/scrolled/package/frontend/index.js +517 -903
  349. data/entry_types/scrolled/package/frontend/{createSuper-d0f30da3.js → inherits-539844a6.js} +40 -56
  350. data/entry_types/scrolled/package/frontend/{useContentElementEditorState-4f4c3cf6.js → useContentElementEditorState-77fe6c79.js} +7 -8
  351. data/entry_types/scrolled/package/frontend/usePhonePlatform-c2ba875d.js +8 -0
  352. data/entry_types/scrolled/package/frontend-server.js +0 -1
  353. data/entry_types/scrolled/package/package.json +18 -10
  354. data/entry_types/scrolled/package/testHelpers.js +306 -70
  355. data/entry_types/scrolled/package/values/widgets.module.css +18 -0
  356. data/entry_types/scrolled/package/widgets/consentBar.css +1 -1
  357. data/entry_types/scrolled/package/widgets/consentBar.js +47 -66
  358. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  359. data/entry_types/scrolled/package/widgets/defaultNavigation.js +177 -207
  360. data/entry_types/scrolled/package/widgets/excursionDialog.css +1 -0
  361. data/entry_types/scrolled/package/widgets/excursionDialog.js +109 -0
  362. data/entry_types/scrolled/package/widgets/excursionSheet.css +1 -0
  363. data/entry_types/scrolled/package/widgets/excursionSheet.js +262 -0
  364. data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -1
  365. data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +6 -9
  366. data/entry_types/scrolled/package/widgets/iconScrollIndicator.css +1 -0
  367. data/entry_types/scrolled/package/widgets/iconScrollIndicator.js +48 -0
  368. data/entry_types/scrolled/package/widgets/mainStorylineSheet.css +1 -0
  369. data/entry_types/scrolled/package/widgets/mainStorylineSheet.js +144 -0
  370. data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -1
  371. data/entry_types/scrolled/package/widgets/textInlineFileRights.js +26 -9
  372. data/entry_types/scrolled/package/widgets-server.js +1 -0
  373. data/entry_types/scrolled/spec/factories/chapters.rb +14 -1
  374. data/entry_types/scrolled/spec/factories/content_elements.rb +1 -1
  375. data/lib/generators/pageflow/active_admin_initializer/active_admin_initializer_generator.rb +5 -3
  376. data/lib/generators/pageflow/assets/assets_generator.rb +7 -5
  377. data/lib/generators/pageflow/cancan/cancan_generator.rb +2 -1
  378. data/lib/generators/pageflow/cancan/templates/ability.rb +1 -1
  379. data/lib/generators/pageflow/error_pages/error_pages_generator.rb +2 -1
  380. data/lib/generators/pageflow/initializer/initializer_generator.rb +3 -2
  381. data/lib/generators/pageflow/install/install_generator.rb +2 -2
  382. data/lib/generators/pageflow/procfile/procfile_generator.rb +2 -1
  383. data/lib/generators/pageflow/resque/resque_generator.rb +6 -4
  384. data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
  385. data/lib/generators/pageflow/routes/routes_generator.rb +4 -2
  386. data/lib/generators/pageflow/seeds/seeds_generator.rb +3 -2
  387. data/lib/generators/pageflow/seeds/templates/seeds.rb +6 -6
  388. data/lib/generators/pageflow/theme/theme_generator.rb +2 -1
  389. data/lib/generators/pageflow/user/user_generator.rb +2 -1
  390. data/lib/pageflow/ability_mixin.rb +25 -15
  391. data/lib/pageflow/active_admin_patches/views/attributes_table.rb +1 -0
  392. data/lib/pageflow/active_admin_patches/views/pages/base.rb +3 -2
  393. data/lib/pageflow/active_admin_patches/views/table_for.rb +1 -0
  394. data/lib/pageflow/additional_headers.rb +27 -0
  395. data/lib/pageflow/admin/attributes_table_rows.rb +3 -3
  396. data/lib/pageflow/admin/tabs.rb +1 -1
  397. data/lib/pageflow/built_in_file_type.rb +1 -1
  398. data/lib/pageflow/built_in_page_types_plugin.rb +1 -1
  399. data/lib/pageflow/built_in_widget_type.rb +2 -2
  400. data/lib/pageflow/built_in_widget_types_plugin.rb +2 -1
  401. data/lib/pageflow/configuration.rb +141 -18
  402. data/lib/pageflow/cutoff_modes.rb +39 -0
  403. data/lib/pageflow/editor_controller.rb +6 -10
  404. data/lib/pageflow/engine.rb +4 -5
  405. data/lib/pageflow/entry_export_import/attachment_files.rb +1 -1
  406. data/lib/pageflow/entry_export_import/entry_serialization.rb +5 -4
  407. data/lib/pageflow/entry_export_import/file_mappings.rb +1 -0
  408. data/lib/pageflow/entry_export_import/revision_serialization/import.rb +1 -1
  409. data/lib/pageflow/entry_export_import.rb +3 -3
  410. data/lib/pageflow/entry_types.rb +2 -2
  411. data/lib/pageflow/feature.rb +1 -1
  412. data/lib/pageflow/features.rb +4 -6
  413. data/lib/pageflow/file_importers.rb +4 -4
  414. data/lib/pageflow/file_type.rb +3 -3
  415. data/lib/pageflow/file_types.rb +3 -3
  416. data/lib/pageflow/global_config_api.rb +5 -6
  417. data/lib/pageflow/help_entries.rb +7 -7
  418. data/lib/pageflow/help_entry.rb +1 -1
  419. data/lib/pageflow/hooks.rb +1 -1
  420. data/lib/pageflow/nested_revision_component.rb +9 -27
  421. data/lib/pageflow/news_item_api.rb +1 -1
  422. data/lib/pageflow/page_type.rb +2 -3
  423. data/lib/pageflow/page_types.rb +3 -3
  424. data/lib/pageflow/paperclip_interpolations/support.rb +1 -1
  425. data/lib/pageflow/paperclip_processors/vtt.rb +1 -0
  426. data/lib/pageflow/paperclip_processors/webp.rb +2 -2
  427. data/lib/pageflow/partial_editor_fragment_renderer.rb +2 -2
  428. data/lib/pageflow/plugin.rb +1 -2
  429. data/lib/pageflow/quota.rb +9 -5
  430. data/lib/pageflow/quotas.rb +1 -1
  431. data/lib/pageflow/rails_version.rb +1 -0
  432. data/lib/pageflow/react.rb +1 -1
  433. data/lib/pageflow/revision_component.rb +8 -40
  434. data/lib/pageflow/revision_components.rb +16 -6
  435. data/lib/pageflow/seeds.rb +12 -16
  436. data/lib/pageflow/theme.rb +1 -1
  437. data/lib/pageflow/theme_customizations.rb +10 -10
  438. data/lib/pageflow/themes.rb +3 -3
  439. data/lib/pageflow/user_mixin.rb +6 -6
  440. data/lib/pageflow/version.rb +1 -1
  441. data/lib/pageflow/widget_type.rb +4 -4
  442. data/lib/pageflow/widget_types.rb +9 -9
  443. data/lib/pageflow/zencoder_api.rb +32 -42
  444. data/lib/pageflow/zencoder_audio_output_definition.rb +14 -13
  445. data/lib/pageflow/zencoder_meta_data_output_definition.rb +3 -2
  446. data/lib/pageflow/zencoder_output_definition.rb +16 -14
  447. data/lib/pageflow/zencoder_video_output_definition.rb +140 -88
  448. data/lib/pageflow.rb +7 -2
  449. data/lib/tasks/pageflow_tasks.rake +1 -1
  450. data/package/editor.js +954 -868
  451. data/package/frontend.js +113 -387
  452. data/package/package.json +2 -1
  453. data/package/testHelpers.js +10 -56
  454. data/package/ui.js +209 -251
  455. data/spec/factories/accounts.rb +37 -22
  456. data/spec/factories/audio_files.rb +2 -2
  457. data/spec/factories/authentication_tokens.rb +4 -4
  458. data/spec/factories/chapters.rb +4 -4
  459. data/spec/factories/draft_entries.rb +14 -6
  460. data/spec/factories/edit_locks.rb +1 -1
  461. data/spec/factories/entries.rb +28 -19
  462. data/spec/factories/entry_translation_groups.rb +6 -0
  463. data/spec/factories/file_usages.rb +2 -1
  464. data/spec/factories/folders.rb +1 -1
  465. data/spec/factories/image_files.rb +2 -2
  466. data/spec/factories/pages.rb +3 -3
  467. data/spec/factories/published_entries.rb +26 -8
  468. data/spec/factories/revisions.rb +1 -1
  469. data/spec/factories/sites.rb +6 -0
  470. data/spec/factories/test_multi_attachment_files.rb +1 -1
  471. data/spec/factories/text_track_files.rb +1 -1
  472. data/spec/factories/uploadable_files.rb +1 -1
  473. data/spec/factories/users.rb +6 -6
  474. data/spec/factories/video_files.rb +2 -2
  475. data/spec/factories/widgets.rb +1 -1
  476. data/spec/fixtures/7x15_rotated.jpg +0 -0
  477. data/vendor/assets/javascripts/wysihtml-toolbar.js +19288 -0
  478. metadata +98 -45
  479. data/config/initializers/revision_components.rb +0 -5
  480. data/config/locales/twitter_to_x.de.yml +0 -6
  481. data/config/locales/twitter_to_x.en.yml +0 -6
  482. data/entry_types/scrolled/config/locales/twitter_to_x.de.yml +0 -12
  483. data/entry_types/scrolled/config/locales/twitter_to_x.en.yml +0 -12
  484. data/entry_types/scrolled/config/locales/vr_image_projection.de.yml +0 -24
  485. data/entry_types/scrolled/config/locales/vr_image_projection.en.yml +0 -24
  486. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-b79159cc.js +0 -107
  487. data/entry_types/scrolled/package/frontend/arrowRight-62998af9.js +0 -77
  488. data/entry_types/scrolled/package/frontend/i18n-ce13a8bf.js +0 -1129
@@ -2,47 +2,58 @@ require 'zencoder'
2
2
 
3
3
  Pageflow.after_global_configure do |config|
4
4
  zencoder_options = config.zencoder_options
5
- zencoder_options.reverse_merge!(:attachments_version => 'v1')
5
+ zencoder_options.reverse_merge!(attachments_version: 'v1')
6
6
 
7
- Zencoder.api_key = zencoder_options.fetch(:api_key) { raise "Missing api_key option in Pageflow.config.zencoder_options." }
7
+ Zencoder.api_key = zencoder_options.fetch(:api_key) do
8
+ raise 'Missing api_key option in Pageflow.config.zencoder_options.'
9
+ end
8
10
 
9
- Pageflow::ZencoderOutputDefinition.default_output_bucket_name = zencoder_options.fetch(:output_bucket) { raise "Missing output_bucket option in Pageflow.config.zencoder_options." }
11
+ Pageflow::ZencoderOutputDefinition.default_output_bucket_name =
12
+ zencoder_options.fetch(:output_bucket) do
13
+ raise 'Missing output_bucket option in Pageflow.config.zencoder_options.'
14
+ end
10
15
  Pageflow::ZencoderOutputDefinition.default_sftp_host = zencoder_options[:sftp_host]
11
16
  Pageflow::ZencoderOutputDefinition.default_akamai_host = zencoder_options[:akamai_host]
12
- Pageflow::ZencoderOutputDefinition.default_akamai_credentials = zencoder_options[:akamai_credentials]
17
+ Pageflow::ZencoderOutputDefinition.default_akamai_credentials =
18
+ zencoder_options[:akamai_credentials]
13
19
  Pageflow::ZencoderVideoOutputDefinition.skip_hls = zencoder_options.fetch(:skip_hls, false)
14
20
  Pageflow::ZencoderVideoOutputDefinition.skip_smil = zencoder_options.fetch(:skip_smil, false)
15
21
 
16
- raise "Missing s3_host_alias option in Pageflow.config.zencoder_options." unless zencoder_options.has_key?(:s3_host_alias)
17
- raise "Missing s3_protocol option in Pageflow.config.zencoder_options." unless zencoder_options.has_key?(:s3_protocol)
22
+ unless zencoder_options.key?(:s3_host_alias)
23
+ raise 'Missing s3_host_alias option in Pageflow.config.zencoder_options.'
24
+ end
25
+ unless zencoder_options.key?(:s3_protocol)
26
+ raise 'Missing s3_protocol option in Pageflow.config.zencoder_options.'
27
+ end
18
28
 
19
- Pageflow::ZencoderAttachment.default_options.merge!(zencoder_options.slice(:path, :url, :hls_url, :hls_origin_url))
29
+ Pageflow::ZencoderAttachment.default_options.merge!(zencoder_options.slice(:path, :url, :hls_url,
30
+ :hls_origin_url))
20
31
  end
21
32
 
22
- Paperclip.interpolates(:zencoder_host_alias) do |attachment, style|
33
+ Paperclip.interpolates(:zencoder_host_alias) do |_attachment, _style|
23
34
  Pageflow.config.zencoder_options.fetch(:s3_host_alias)
24
35
  end
25
36
 
26
- Paperclip.interpolates(:zencoder_hls_host_alias) do |attachment, style|
37
+ Paperclip.interpolates(:zencoder_hls_host_alias) do |_attachment, _style|
27
38
  Pageflow.config.zencoder_options[:hls_host_alias] ||
28
39
  Pageflow.config.zencoder_options.fetch(:s3_host_alias)
29
40
  end
30
41
 
31
- Paperclip.interpolates(:zencoder_hls_origin_host_alias) do |attachment, style|
42
+ Paperclip.interpolates(:zencoder_hls_origin_host_alias) do |_attachment, _style|
32
43
  Pageflow.config.zencoder_options[:hls_origin_host_alias] ||
33
44
  Pageflow.config.zencoder_options.fetch(:s3_host_alias)
34
45
  end
35
46
 
36
- Paperclip.interpolates(:zencoder_protocol) do |attachment, style|
47
+ Paperclip.interpolates(:zencoder_protocol) do |_attachment, _style|
37
48
  protocol = Pageflow.config.zencoder_options.fetch(:s3_protocol)
38
49
  protocol.empty? ? protocol : "#{protocol}:"
39
50
  end
40
51
 
41
- Paperclip.interpolates(:zencoder_asset_version) do |attachment, style|
52
+ Paperclip.interpolates(:zencoder_asset_version) do |_attachment, _style|
42
53
  Pageflow.config.zencoder_options.fetch(:attachments_version)
43
54
  end
44
55
 
45
- Paperclip.interpolates(:zencoder_path) do |attachment, style|
56
+ Paperclip.interpolates(:zencoder_path) do |attachment, _style|
46
57
  attachment.path
47
58
  end
48
59
 
@@ -142,6 +142,9 @@ de:
142
142
  recommendation: Wir empfehlen ein Update des Browsers auf eine aktuelle Version von <a href="http://windows.microsoft.com/ie">Internet Explorer</a>, <a href="https://chrome.google.com/">Google Chrome</a>, oder <a href="https://mozilla.org/firefox/">Firefox</a>.
143
143
  turn_off_compatibility_view: Internet Explorer Version 9 und niedriger sind nicht unterstützt.
144
144
  view: Anzeigen
145
+ resources:
146
+ translations:
147
+ new_model: Übersetzung zuordnen
145
148
  activerecord:
146
149
  attributes:
147
150
  admin_user:
@@ -279,6 +282,8 @@ de:
279
282
  share_providers: Standard Share Links
280
283
  sitemap_enabled: XML-Sitemap
281
284
  title: Titel
285
+ custom_404_entry_id: "Benutzerdefinierte 404-Seite"
286
+ cutoff_mode_name: "Cutoff-Modus"
282
287
  pageflow/text_track_file:
283
288
  kind: Art
284
289
  label: Label
@@ -431,6 +436,9 @@ de:
431
436
  user:
432
437
  one: Nutzer
433
438
  other: Nutzer
439
+ translation:
440
+ one: Übersetzung
441
+ other: Übersetzungen
434
442
  values:
435
443
  pageflow/chapter:
436
444
  navigation_bar_mode:
@@ -452,6 +460,9 @@ de:
452
460
  linked_in: LinkedIn
453
461
  telegram: Telegram (nur Mobilgeräte)
454
462
  whats_app: WhatsApp (nur Mobilgeräte)
463
+ bluesky: Bluesky
464
+ threads: Threads
465
+ twitter: X
455
466
  type_names:
456
467
  paged: Seitenbasiert / klassisch
457
468
  scrolled: Kontinuierlich scrollend / Pageflow Next
@@ -506,7 +517,7 @@ de:
506
517
  - Fr
507
518
  - Sa
508
519
  abbr_month_names:
509
- -
520
+ -
510
521
  - Jan
511
522
  - Feb
512
523
  - Mär
@@ -532,7 +543,7 @@ de:
532
543
  long: "%e. %B %Y"
533
544
  short: "%e. %b"
534
545
  month_names:
535
- -
546
+ -
536
547
  - Januar
537
548
  - Februar
538
549
  - März
@@ -853,6 +864,10 @@ de:
853
864
  show_public_hint: Öffentliche Seite anzeigen
854
865
  snapshot: Aktuellen Stand sichern
855
866
  title_hint: Dieses Feld bestimmt die URL, unter der der Beitrag öffentlich erreichbar ist.
867
+ permalink_hint: |-
868
+ Wenn der Permalink geändert wird, nachdem der Beitrag
869
+ bereits veröffentlicht wurde, wird automatisch eine
870
+ Weiterleitung von der alten URL zur neuen URL eingerichtet.
856
871
  entry:
857
872
  add: Beitrag hinzufügen
858
873
  entry_membership_hint: Laden Sie Benutzer in Ihr Konto ein, um sie als Mitglieder dieser Story zuzuweisen.
@@ -890,6 +905,7 @@ de:
890
905
  revisions: Revisionen
891
906
  sites: Sites
892
907
  users: Benutzer
908
+ translations: Übersetzungen
893
909
  revisions:
894
910
  published_until_hint: Freilassen, um Beitrag unbegrenzt zu veröffentlichen.
895
911
  restored: Revision wiederhergestellt
@@ -908,7 +924,6 @@ de:
908
924
  https://%{site_host}/feeds/de.atom zu Verfügung, wobei "en"
909
925
  durch ein beliebiges Sprachkürzel ersetzt werden kann, nach
910
926
  dem gefiltert werden soll.
911
- home_url_hint: Wird einer der obigen CNAMES ohne Pfad in der URL verwendet, wird zu dieser URL umgeleitet. Standard Link Ziel des Home Buttons.
912
927
  name: "%{account_name}"
913
928
  remove_logo: Logo entfernen
914
929
  show: Anzeigen
@@ -920,6 +935,25 @@ de:
920
935
  title_hint: |-
921
936
  Wird in Titeln der Beiträge und als Titel für den Atom-Feed
922
937
  verwendet.
938
+ custom_404_entry:
939
+ none: "(Standard 404-Seite verwenden)"
940
+ hint: "Wählen Sie einen Eintrag aus, der als benutzerdefinierte 404-Seite angezeigt werden soll. Nur veröffentlichte Einträge ohne Passwortschutz sind verfügbar."
941
+ home_url_new_site_hint: |
942
+ Wird einer der obigen CNAMES ohne Pfad in der URL verwendet,
943
+ wird zu dieser URL umgeleitet. Nachdem die Site erstellt
944
+ wurde kann auch ein Beitrag als Einstiegsseite konfiguriert
945
+ werden.
946
+ home_url_hint_html: |
947
+ Wird einer der obigen CNAMES ohne Pfad in der URL verwendet,
948
+ wird zu dieser URL umgeleitet.
949
+ Alternativ kannst du auch einen Beitrag als Einstiegsseite
950
+ verwenden. <a href="%{choose_url}">Bestehenden Beitrag auswählen</a>
951
+ oder <a href="%{new_url}">neuen Beitrag erstellen</a>.
952
+ home_url_with_root_entry_hint_html: |
953
+ Im Moment wird der Beitrag <a
954
+ href="%{entry_url}">%{entry_title}</a> als Einstiegsseite
955
+ verwendet. Ändere den Permalink des Beitrags, um stattdessen
956
+ die Redirect URL zu verwenden.
923
957
  user:
924
958
  cannot_add: Was Sie tun möchten, ist nicht möglich. Sie müssen aktualisieren.
925
959
  none_addable_tooltip: Kein Benutzer verfügbar
@@ -997,6 +1031,43 @@ de:
997
1031
  suspended: Der Benutzer wurde gesperrt. Er kann sich nun nicht mehr anmelden.
998
1032
  unsuspend: Entsperren
999
1033
  unsuspended: Der Benutzer wurde entsperrt. Er kann sich nun wieder anmelden.
1034
+ entry_translations:
1035
+ add: Übersetzung zuordnen
1036
+ generate: Übersetzung generieren
1037
+ entry_id: Beitrag
1038
+ id: Übersetzung(en)
1039
+ new_hint_html: |-
1040
+ Verknüpfe Beiträge, die denselben Inhalt in verschiedenen
1041
+ Sprachen darstellen.
1042
+ create_model: Als Übersetzung zuordnen
1043
+ no_translations: Keine Beiträge zugeordnet
1044
+ remove: Entfernen
1045
+ remove_confirmation: |-
1046
+ Beitrag wirklich aus der Liste der Übersetzungen entfernen?
1047
+ mark_as_default: Als Standard markieren
1048
+ mark_as_default_confirmation: |-
1049
+ Beitrag wirklich as Standardübersetzung markieren?
1050
+ default_translation: "%{display_locale} (Standard)"
1051
+ default_translation_hint: |-
1052
+ Suchmaschinen verwenden den als Standard markierten Beitrag,
1053
+ falls keine Übersetzung verfügbar ist, die den
1054
+ Spracheinstellungen des Besuchers entspricht.
1055
+ site_root_entry:
1056
+ title: Einstiegsseite festlegen
1057
+ intro_html: |
1058
+ <p>Wähle den Beitrag aus, der als Einstiegsseite unter der
1059
+ folgenden URL gezeigt werden soll:
1060
+ <strong>https://%{site_host}/</strong><br>Dieser Inhalt
1061
+ wird gezeigt, wenn die Domain der Site ohne weiteren Pfad
1062
+ aufgerufen wird.</p>
1063
+ hint: |
1064
+ Der Permalink des Beitrags wird automatisch angepasst. Falls
1065
+ der Beitrag bereits veröffentlicht wurde, wird eine
1066
+ Weiterleitung von der alten URL zur neuen URL eingerichtet.
1067
+ submit: Als Einstiegsseite festlegen
1068
+ chosen: Der Beitrag wurde als Einstiegsseite festgelegt.
1069
+ root_permalink_directory_required: Für diese Seite wurde noch kein Permalink-Verzeichnis angelegt.
1070
+ root_entry_exists: Es existiert bereits ein Beitrag, der als Einstiegsseite verwendet wird.
1000
1071
  audio:
1001
1072
  help_entries:
1002
1073
  page_type:
@@ -1126,12 +1197,17 @@ de:
1126
1197
  file_name:
1127
1198
  column_header: Dateiname
1128
1199
  label: Dateiname
1200
+ display_name:
1201
+ column_header: Dateiname
1202
+ label: Dateiname
1129
1203
  license:
1130
1204
  blank: "(Nicht angegeben)"
1131
1205
  inline_help: Fügt der Rechteangabe im Beitrag einen Link zur Lizenz hinzu.
1132
1206
  label: Lizenz
1133
1207
  original_url:
1134
1208
  label: Original
1209
+ download_url:
1210
+ label: Download
1135
1211
  rights:
1136
1212
  cell_title:
1137
1213
  blank: Noch nicht ausgefüllt
@@ -1308,6 +1384,8 @@ de:
1308
1384
  credits: Rechte
1309
1385
  destroy: Löschen
1310
1386
  download: Herunterladen
1387
+ expand_details: Details einblenden
1388
+ collapse_details: Details ausblenden
1311
1389
  retry: Erneut versuchen
1312
1390
  select: Auswählen
1313
1391
  settings: Einstellungen
@@ -1338,6 +1416,10 @@ de:
1338
1416
  list_item:
1339
1417
  edit: Bearbeiten
1340
1418
  remove: Löschen
1419
+ list_search_field:
1420
+ placeholder: 'Dateien filtern'
1421
+ hint: 'Mit %{hotkey} suchen'
1422
+ reset: 'Filter zurücksetzen'
1341
1423
  loading:
1342
1424
  loading: Daten werden geladen.
1343
1425
  locked:
@@ -1425,11 +1507,12 @@ de:
1425
1507
 
1426
1508
  Dieser Schritt kann nicht rückgängig gemacht werden.
1427
1509
  edit_configuration:
1428
- back: Gliederung
1510
+ back: "Zurück"
1429
1511
  confirm_destroy: Wirklich löschen?
1430
1512
  destroy: Löschen
1431
1513
  retry: Erneut versuchen
1432
1514
  save_error: Fehler beim Speichern
1515
+ outline: "Gliederung"
1433
1516
  edit_entry_view:
1434
1517
  cannot_publish: Sie sind nicht berechtigt diesen Beitrag zu veröffentlichen.
1435
1518
  edit_page_view:
@@ -1456,6 +1539,10 @@ de:
1456
1539
  upload: Hochladen
1457
1540
  filtered_files_view:
1458
1541
  banner_prefix: 'Aktiver Filter:'
1542
+ sort_button_label: 'Sortieren'
1543
+ sort:
1544
+ alphabetical: 'Alphabetisch'
1545
+ most_recent: 'Zuletzt hochgeladen'
1459
1546
  inputs:
1460
1547
  file_input:
1461
1548
  auto_default_text_track: "(Automatisch)"
@@ -1988,6 +2075,8 @@ de:
1988
2075
  default_slideshow_mode: Vertikales Scrollen/Wischen
1989
2076
  phone_horizontal_slideshow_mode: Horizontales Wischen auf Phones
1990
2077
  slim_player_controls: Minimalistisch
2078
+ cutoff_modes:
2079
+ none: "(Kein)"
1991
2080
  support:
1992
2081
  array:
1993
2082
  last_word_connector: " und "
@@ -2009,3 +2098,20 @@ de:
2009
2098
  next: ">>"
2010
2099
  previous: !!str '<<'
2011
2100
  truncate: "..."
2101
+ pageflow_scrolled:
2102
+ editor:
2103
+ section_item:
2104
+ set_cutoff: "Paywall Grenze oberhalb setzen"
2105
+ reset_cutoff: "Paywall Grenze entfernen"
2106
+ cutoff: "Paywall Grenze"
2107
+ activemodel:
2108
+ attributes:
2109
+ pageflow/site_root_entry_form:
2110
+ entry: Beitrag
2111
+ entry_id: Beitrag
2112
+ errors:
2113
+ models:
2114
+ pageflow/site_root_entry_form:
2115
+ attributes:
2116
+ entry:
2117
+ blank: nicht gefunden
@@ -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:
@@ -279,6 +282,8 @@ en:
279
282
  share_providers: Default Share Links
280
283
  sitemap_enabled: XML sitemap
281
284
  title: Title
285
+ custom_404_entry_id: "Custom 404 page"
286
+ cutoff_mode_name: "Cutoff mode"
282
287
  pageflow/text_track_file:
283
288
  kind: Kind
284
289
  label: Label
@@ -431,6 +436,9 @@ en:
431
436
  user:
432
437
  one: User
433
438
  other: Users
439
+ translation:
440
+ one: Translation
441
+ other: Translations
434
442
  values:
435
443
  pageflow/chapter:
436
444
  navigation_bar_mode:
@@ -452,6 +460,9 @@ en:
452
460
  linked_in: LinkedIn
453
461
  telegram: Telegram (only mobile)
454
462
  whats_app: WhatsApp (only mobile)
463
+ bluesky: Bluesky
464
+ threads: Threads
465
+ twitter: X
455
466
  type_names:
456
467
  paged: Page-based / Classic
457
468
  scrolled: Continuously scrolling / Pageflow Next
@@ -506,7 +517,7 @@ en:
506
517
  - Fri
507
518
  - Sat
508
519
  abbr_month_names:
509
- -
520
+ -
510
521
  - Jan
511
522
  - Feb
512
523
  - Mar
@@ -532,7 +543,7 @@ en:
532
543
  long: "%B %d, %Y"
533
544
  short: "%b %d"
534
545
  month_names:
535
- -
546
+ -
536
547
  - January
537
548
  - February
538
549
  - March
@@ -742,9 +753,9 @@ en:
742
753
  i18n:
743
754
  transliterate:
744
755
  rule:
745
- ä:
746
- ö:
747
- ü:
756
+ ä:
757
+ ö:
758
+ ü:
748
759
  language: English
749
760
  number:
750
761
  currency:
@@ -853,6 +864,10 @@ en:
853
864
  show_public_hint: Visit public page
854
865
  snapshot: Save current version
855
866
  title_hint: This field determines the URL for this story.
867
+ permalink_hint: |-
868
+ Changing the permalink after the story has already been
869
+ published automatically creates a redirect from the old URL
870
+ to the new URL
856
871
  entry:
857
872
  add: Add Story
858
873
  entry_membership_hint: Invite users to your account to assign them as members of this Story.
@@ -890,6 +905,7 @@ en:
890
905
  revisions: Versions
891
906
  sites: Sites
892
907
  users: User
908
+ translations: Translations
893
909
  revisions:
894
910
  published_until_hint: Leave blank to publish indefinitely.
895
911
  restored: Version restored
@@ -907,7 +923,6 @@ en:
907
923
  site are available via URLs of the form
908
924
  https://%{site_host}/feeds/en.atom where "en" can be
909
925
  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
926
  name: "%{account_name}"
912
927
  remove_logo: Remove logo
913
928
  show: View
@@ -917,6 +932,22 @@ en:
917
932
  https://%{site_host}/sitemap.xml. Register the URL in Google
918
933
  Search Console or similar tools.
919
934
  title_hint: Used in entry titles and as title for the atom feed.
935
+ custom_404_entry:
936
+ none: "(Use default 404 page)"
937
+ hint: "Select an entry to display as the custom 404 page. Only published entries without password protection are available."
938
+ home_url_new_site_hint: |
939
+ Used for requests to the root path with one of the above
940
+ CNAMES. Once the site has been created you can also
941
+ configure an entry as homepage.
942
+ home_url_hint_html: |
943
+ Used for requests to the root path with one of the above
944
+ CNAMES. Alternatively, you can also use an entry as homepage.
945
+ <a href="%{choose_url}">Select existing entry</a> or <a
946
+ href="%{new_url}">create a new one</a>.
947
+ home_url_with_root_entry_hint_html: |
948
+ At the moment, the site uses the entry <a
949
+ href="%{entry_url}">%{entry_title}</a> as homepage. Change
950
+ the permalink of the entry to instead use the redirect URL.
920
951
  user:
921
952
  cannot_add: What you want to do is not possible. You need to upgrade.
922
953
  none_addable_tooltip: No user available
@@ -994,6 +1025,42 @@ en:
994
1025
  suspended: 'The user was suspended and will not be able to sign-in again. '
995
1026
  unsuspend: Unsuspend
996
1027
  unsuspended: The user was unsuspended.
1028
+ entry_translations:
1029
+ add: Link translation
1030
+ generate: Generate translation
1031
+ entry_id: Entry
1032
+ id: Translation(s)
1033
+ new_hint_html: |-
1034
+ Associate entries that represent the same content in
1035
+ different languages.
1036
+ create_model: Link as translation
1037
+ no_translations: No linked entries
1038
+ remove: Remove
1039
+ remove_confirmation: |-
1040
+ Are you sure you want to remove the entry from the list of translations?
1041
+ mark_as_default: Mark as default
1042
+ mark_as_default_confirmation: |-
1043
+ Really mark this translation as default?
1044
+ default_translation: "%{display_locale} (Standard)"
1045
+ default_translation_hint: |-
1046
+ Search engines fall back to the default language if no
1047
+ translation is available that matches the user's language
1048
+ settings.
1049
+ site_root_entry:
1050
+ title: Set Homepage
1051
+ intro_html: |
1052
+ <p>Select the story that should appear as the homepage at:<br>
1053
+ <strong>https://%{site_host}/</strong><br>This content will
1054
+ be shown when someone visits your site without entering a
1055
+ specific path.</p>
1056
+ hint: |
1057
+ The story's permalink will be updated automatically. If
1058
+ the story is already published, a redirect from the old URL
1059
+ to the new ULR will be created.
1060
+ submit: Set as Homepage
1061
+ chosen: The story has been chosen as homepage.
1062
+ root_permalink_directory_required: No permalink directory exists for this site.
1063
+ root_entry_exists: Another story is already being used as homepage.
997
1064
  audio:
998
1065
  help_entries:
999
1066
  page_type:
@@ -1124,12 +1191,17 @@ en:
1124
1191
  file_name:
1125
1192
  column_header: File name
1126
1193
  label: File name
1194
+ display_name:
1195
+ column_header: File name
1196
+ label: File name
1127
1197
  license:
1128
1198
  blank: "(Not specified)"
1129
1199
  inline_help: Adds a link to the license in the credit note.
1130
1200
  label: License
1131
1201
  original_url:
1132
1202
  label: Original
1203
+ download_url:
1204
+ label: Download
1133
1205
  rights:
1134
1206
  cell_title:
1135
1207
  blank: Still blank
@@ -1305,6 +1377,8 @@ en:
1305
1377
  credits: Credits
1306
1378
  destroy: Delete
1307
1379
  download: Download
1380
+ expand_details: Show details
1381
+ collapse_details: Hide details
1308
1382
  retry: Retry
1309
1383
  select: Select
1310
1384
  settings: Settings
@@ -1335,6 +1409,10 @@ en:
1335
1409
  list_item:
1336
1410
  edit: Edit
1337
1411
  remove: Delete
1412
+ list_search_field:
1413
+ placeholder: 'Filter files'
1414
+ hint: 'Type %{hotkey} to search'
1415
+ reset: 'Clear filter'
1338
1416
  loading:
1339
1417
  loading: Loading...
1340
1418
  locked:
@@ -1422,11 +1500,12 @@ en:
1422
1500
 
1423
1501
  This operation cannot be undone.
1424
1502
  edit_configuration:
1425
- back: Outline
1503
+ back: "Back"
1426
1504
  confirm_destroy: Really delete this record? This action cannot be undone.
1427
1505
  destroy: Delete
1428
1506
  retry: Retry
1429
1507
  save_error: Saving the record failed.
1508
+ outline: "Outline"
1430
1509
  edit_entry_view:
1431
1510
  cannot_publish: You do not have sufficient rights to publish this story.
1432
1511
  edit_page_view:
@@ -1453,6 +1532,10 @@ en:
1453
1532
  upload: Upload
1454
1533
  filtered_files_view:
1455
1534
  banner_prefix: 'Active filter:'
1535
+ sort_button_label: 'Sort'
1536
+ sort:
1537
+ alphabetical: 'Alphabetical'
1538
+ most_recent: 'Most recent'
1456
1539
  inputs:
1457
1540
  file_input:
1458
1541
  auto_default_text_track: "(Auto)"
@@ -1983,6 +2066,8 @@ en:
1983
2066
  default_slideshow_mode: Vertical scoll/swipe
1984
2067
  phone_horizontal_slideshow_mode: Horizontal swipe on phone
1985
2068
  slim_player_controls: Minimal
2069
+ cutoff_modes:
2070
+ none: "(None)"
1986
2071
  support:
1987
2072
  array:
1988
2073
  last_word_connector: ", and "
@@ -2004,3 +2089,20 @@ en:
2004
2089
  next: ">>"
2005
2090
  previous: !!str '<<'
2006
2091
  truncate: "..."
2092
+ pageflow_scrolled:
2093
+ editor:
2094
+ section_item:
2095
+ set_cutoff: "Set paywall cutoff above"
2096
+ reset_cutoff: "Remove paywall cutoff"
2097
+ cutoff: "Paywall cutoff"
2098
+ activemodel:
2099
+ attributes:
2100
+ pageflow/site_root_entry_form:
2101
+ entry: Story
2102
+ entry_id: Story
2103
+ errors:
2104
+ models:
2105
+ pageflow/site_root_entry_form:
2106
+ attributes:
2107
+ entry:
2108
+ 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)
@@ -69,17 +69,19 @@ Pageflow::Engine.routes.draw do
69
69
  end
70
70
 
71
71
  resources :subjects, path: '/subjects/:collection_name', only: [] do
72
- resources :widgets, :only => [:index] do
73
- patch :batch, :on => :collection
72
+ resources :widgets, only: [:index] do
73
+ patch :batch, on: :collection
74
74
  end
75
75
  end
76
76
  end
77
77
 
78
- root :to => redirect('/admin')
78
+ root to: redirect('/admin')
79
79
  end
80
80
 
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'}
81
+ get ':entry_id/videos/:id', to: 'files#show', as: :short_video_file,
82
+ defaults: {collection_name: 'video_files'}
83
+ get ':entry_id/audio/:id', to: 'files#show', as: :short_audio_file,
84
+ defaults: {collection_name: 'audio_files'}
83
85
 
84
86
  resources :entries, only: [:show] do
85
87
  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/MethodLength, Metrics/AbcSize, 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/MethodLength, Metrics/AbcSize, 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