pageflow 17.0.4 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +372 -26
- data/README.md +0 -1
- data/admins/pageflow/accounts.rb +16 -14
- data/admins/pageflow/entry.rb +68 -20
- data/admins/pageflow/entry_templates.rb +10 -9
- data/admins/pageflow/folder.rb +1 -1
- data/admins/pageflow/membership.rb +4 -4
- data/admins/pageflow/revisions.rb +5 -5
- data/admins/pageflow/site_root_entry.rb +64 -0
- data/admins/pageflow/sites.rb +12 -3
- data/admins/pageflow/translations.rb +75 -0
- data/admins/pageflow/user.rb +21 -35
- data/app/assets/javascripts/pageflow/admin/entries.js +30 -5
- data/app/assets/javascripts/pageflow/dist/ui.js +2865 -257
- data/app/assets/stylesheets/pageflow/admin/entries/index_table.scss +2 -1
- data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +2 -1
- data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +6 -0
- data/app/assets/stylesheets/pageflow/editor/base.scss +2 -0
- data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +7 -1
- data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +5 -1
- data/app/assets/stylesheets/pageflow/editor/files.scss +28 -16
- data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +24 -0
- data/app/assets/stylesheets/pageflow/editor/info_box.scss +11 -3
- data/app/assets/stylesheets/pageflow/editor/list.scss +6 -4
- data/app/assets/stylesheets/pageflow/editor/list_search_field.scss +52 -0
- data/app/assets/stylesheets/pageflow/editor/outline.scss +0 -13
- data/app/assets/stylesheets/pageflow/editor/select_button.scss +1 -1
- data/app/assets/stylesheets/pageflow/editor/sortable.scss +12 -0
- data/app/assets/stylesheets/pageflow/mixins/buttons.scss +4 -4
- data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -0
- data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +8 -0
- data/app/assets/stylesheets/pageflow/ui/input/file_name_input.scss +37 -0
- data/app/assets/stylesheets/pageflow/ui/properties.scss +5 -0
- data/app/assets/stylesheets/pageflow/ui.scss +1 -0
- data/app/controllers/concerns/pageflow/controller_delegation.rb +1 -1
- data/app/controllers/concerns/pageflow/edit_locking.rb +17 -10
- data/app/controllers/concerns/pageflow/entry_password_protection.rb +1 -0
- data/app/controllers/concerns/pageflow/public_https_mode.rb +2 -1
- data/app/controllers/concerns/pageflow/quota_verification.rb +5 -4
- data/app/controllers/pageflow/admin/initial_passwords_controller.rb +1 -0
- data/app/controllers/pageflow/application_controller.rb +19 -19
- data/app/controllers/pageflow/chapters_controller.rb +3 -2
- data/app/controllers/pageflow/edit_locks_controller.rb +3 -2
- data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +1 -0
- data/app/controllers/pageflow/editor/entries_controller.rb +2 -1
- data/app/controllers/pageflow/editor/entry_publications_controller.rb +1 -0
- data/app/controllers/pageflow/editor/file_import_controller.rb +3 -3
- data/app/controllers/pageflow/editor/files_controller.rb +7 -6
- data/app/controllers/pageflow/editor/widgets_controller.rb +1 -0
- data/app/controllers/pageflow/entries_controller.rb +77 -17
- data/app/controllers/pageflow/feeds_controller.rb +1 -1
- data/app/controllers/pageflow/files_controller.rb +1 -0
- data/app/controllers/pageflow/pages_controller.rb +4 -2
- data/app/controllers/pageflow/revisions_controller.rb +2 -1
- data/app/controllers/pageflow/sitemaps_controller.rb +1 -1
- data/app/controllers/pageflow/storylines_controller.rb +1 -0
- data/app/helpers/pageflow/admin/cutoff_modes_helper.rb +12 -0
- data/app/helpers/pageflow/admin/entries_helper.rb +1 -1
- data/app/helpers/pageflow/admin/entry_translations_helper.rb +18 -0
- data/app/helpers/pageflow/admin/features_helper.rb +1 -1
- data/app/helpers/pageflow/admin/form_helper.rb +3 -3
- data/app/helpers/pageflow/admin/locales_helper.rb +10 -2
- data/app/helpers/pageflow/admin/memberships_helper.rb +32 -32
- data/app/helpers/pageflow/admin/revisions_helper.rb +1 -1
- data/app/helpers/pageflow/admin/sites_helper.rb +22 -0
- data/app/helpers/pageflow/admin/users_helper.rb +7 -5
- data/app/helpers/pageflow/admin/widgets_helper.rb +3 -3
- data/app/helpers/pageflow/asset_urls_helper.rb +1 -1
- data/app/helpers/pageflow/audio_files_helper.rb +5 -2
- data/app/helpers/pageflow/background_image_helper.rb +7 -6
- data/app/helpers/pageflow/common_entry_seed_helper.rb +2 -4
- data/app/helpers/pageflow/editor/config_helper.rb +1 -1
- data/app/helpers/pageflow/editor/files_helper.rb +1 -1
- data/app/helpers/pageflow/embed_code_helper.rb +3 -3
- data/app/helpers/pageflow/entries_helper.rb +58 -34
- data/app/helpers/pageflow/entry_json_seed_helper.rb +3 -2
- data/app/helpers/pageflow/feeds_helper.rb +2 -2
- data/app/helpers/pageflow/file_background_images_helper.rb +2 -2
- data/app/helpers/pageflow/file_thumbnails_helper.rb +4 -3
- data/app/helpers/pageflow/files_helper.rb +5 -4
- data/app/helpers/pageflow/folders_helper.rb +8 -5
- data/app/helpers/pageflow/help_entries_helper.rb +2 -2
- data/app/helpers/pageflow/hreflang_links_helper.rb +37 -0
- data/app/helpers/pageflow/info_box_helper.rb +7 -11
- data/app/helpers/pageflow/media_query_helper.rb +3 -3
- data/app/helpers/pageflow/navigation_bar_helper.rb +1 -1
- data/app/helpers/pageflow/overview_helper.rb +1 -1
- data/app/helpers/pageflow/page_types_helper.rb +5 -5
- data/app/helpers/pageflow/pages_helper.rb +29 -15
- data/app/helpers/pageflow/public_i18n_helper.rb +1 -1
- data/app/helpers/pageflow/quota_helper.rb +4 -4
- data/app/helpers/pageflow/render_json_helper.rb +6 -3
- data/app/helpers/pageflow/revision_file_helper.rb +2 -1
- data/app/helpers/pageflow/sites_helper.rb +3 -3
- data/app/helpers/pageflow/social_share_helper.rb +24 -10
- data/app/helpers/pageflow/social_share_links_helper.rb +12 -9
- data/app/helpers/pageflow/structured_data_helper.rb +1 -1
- data/app/helpers/pageflow/stub_page_configuration.rb +7 -3
- data/app/helpers/pageflow/text_direction_helper.rb +1 -1
- data/app/helpers/pageflow/themes_helper.rb +1 -1
- data/app/helpers/pageflow/video_files_helper.rb +29 -13
- data/app/helpers/pageflow/widgets_helper.rb +7 -6
- data/app/inputs/pageflow_permalink_input.rb +3 -2
- data/app/jobs/pageflow/application_job.rb +1 -0
- data/app/jobs/pageflow/entry_export_import/upload_and_publish_file_job.rb +1 -1
- data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +1 -0
- data/app/jobs/pageflow/poll_zencoder_job.rb +3 -2
- data/app/jobs/pageflow/process_image_or_text_track_job.rb +1 -0
- data/app/jobs/pageflow/prune_auto_snapshots_job.rb +1 -0
- data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +1 -0
- data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +1 -0
- data/app/mailers/pageflow/user_mailer.rb +1 -0
- data/app/models/concerns/pageflow/auto_generated_perma_id.rb +13 -1
- data/app/models/concerns/pageflow/entry_publication_states.rb +7 -3
- data/app/models/concerns/pageflow/feature_target.rb +8 -4
- data/app/models/concerns/pageflow/output_source.rb +3 -3
- data/app/models/concerns/pageflow/permalinkable.rb +2 -1
- data/app/models/concerns/pageflow/reusable_file.rb +23 -23
- data/app/models/concerns/pageflow/serialization_blacklist.rb +1 -1
- data/app/models/concerns/pageflow/suspendable.rb +5 -3
- data/app/models/concerns/pageflow/theme_referencer.rb +1 -1
- data/app/models/concerns/pageflow/translatable.rb +62 -0
- data/app/models/concerns/pageflow/uploadable_file.rb +6 -6
- data/app/models/pageflow/account.rb +6 -5
- data/app/models/pageflow/account_member_query.rb +1 -1
- data/app/models/pageflow/account_role_query.rb +1 -1
- data/app/models/pageflow/application_query.rb +1 -1
- data/app/models/pageflow/application_record.rb +1 -1
- data/app/models/pageflow/audio_file.rb +4 -4
- data/app/models/pageflow/audio_file_url_templates.rb +1 -1
- data/app/models/pageflow/authentication_token.rb +2 -2
- data/app/models/pageflow/chapter.rb +6 -1
- data/app/models/pageflow/chapter_scaffold.rb +2 -4
- data/app/models/pageflow/cname_site_request_scope.rb +1 -1
- data/app/models/pageflow/customized_theme.rb +6 -6
- data/app/models/pageflow/draft_entry.rb +37 -9
- data/app/models/pageflow/edit_lock.rb +19 -21
- data/app/models/pageflow/encoding_confirmation.rb +2 -2
- data/app/models/pageflow/entries_feed.rb +2 -2
- data/app/models/pageflow/entry.rb +44 -30
- data/app/models/pageflow/entry_at_revision.rb +5 -1
- data/app/models/pageflow/entry_duplicate.rb +8 -5
- data/app/models/pageflow/entry_publication.rb +2 -2
- data/app/models/pageflow/entry_role_query.rb +4 -4
- data/app/models/pageflow/entry_template.rb +4 -4
- data/app/models/pageflow/entry_title_or_account_name_query.rb +2 -2
- data/app/models/pageflow/entry_translation_group.rb +42 -0
- data/app/models/pageflow/file_reuse.rb +2 -2
- data/app/models/pageflow/file_usage.rb +10 -3
- data/app/models/pageflow/folder.rb +2 -2
- data/app/models/pageflow/home_button.rb +7 -7
- data/app/models/pageflow/image_file.rb +20 -5
- data/app/models/pageflow/image_file_url_templates.rb +1 -1
- data/app/models/pageflow/invitation_form.rb +2 -1
- data/app/models/pageflow/managed_user_query.rb +1 -1
- data/app/models/pageflow/membership.rb +5 -5
- data/app/models/pageflow/nested_revision_component_copy.rb +263 -0
- data/app/models/pageflow/null_user.rb +1 -1
- data/app/models/pageflow/overview_button.rb +1 -1
- data/app/models/pageflow/page.rb +7 -3
- data/app/models/pageflow/permalink.rb +23 -2
- data/app/models/pageflow/permalink_directory.rb +7 -0
- data/app/models/pageflow/permalink_redirect.rb +7 -0
- data/app/models/pageflow/positioned_file.rb +5 -5
- data/app/models/pageflow/potential_entry_translations.rb +55 -0
- data/app/models/pageflow/potential_memberships.rb +5 -4
- data/app/models/pageflow/published_entry.rb +62 -11
- data/app/models/pageflow/revision.rb +24 -15
- data/app/models/pageflow/roles.rb +14 -18
- data/app/models/pageflow/site.rb +36 -3
- data/app/models/pageflow/site_root_entry_form.rb +27 -0
- data/app/models/pageflow/sitemaps.rb +10 -1
- data/app/models/pageflow/storyline.rb +5 -2
- data/app/models/pageflow/storyline_scaffold.rb +1 -1
- data/app/models/pageflow/text_track_file.rb +1 -1
- data/app/models/pageflow/text_track_file_url_templates.rb +1 -1
- data/app/models/pageflow/theme_customization_file.rb +3 -2
- data/app/models/pageflow/thumbnail_file_resolver.rb +1 -1
- data/app/models/pageflow/url_template.rb +1 -1
- data/app/models/pageflow/used_file.rb +7 -3
- data/app/models/pageflow/user_name_query.rb +2 -2
- data/app/models/pageflow/video_file.rb +22 -15
- data/app/models/pageflow/video_file_url_templates.rb +6 -4
- data/app/models/pageflow/widget.rb +4 -3
- data/app/models/pageflow/with_file_usage_extension.rb +1 -1
- data/app/models/pageflow/zencoder_attachment.rb +8 -8
- data/app/policies/pageflow/account_policy.rb +3 -1
- data/app/policies/pageflow/admin/admin_only_tab_policy.rb +1 -0
- data/app/policies/pageflow/admin/entry_tab_policy.rb +1 -0
- data/app/policies/pageflow/application_policy.rb +2 -0
- data/app/policies/pageflow/entry_policy.rb +7 -1
- data/app/policies/pageflow/entry_template_policy.rb +2 -1
- data/app/policies/pageflow/file_policy.rb +4 -7
- data/app/policies/pageflow/folder_policy.rb +18 -8
- data/app/policies/pageflow/membership_policy.rb +6 -4
- data/app/policies/pageflow/site_policy.rb +10 -3
- data/app/policies/pageflow/user_policy.rb +6 -4
- data/app/state_machines/pageflow/image_and_text_track_processing_state_machine.rb +3 -2
- data/app/state_machines/pageflow/media_encoding_state_machine.rb +5 -4
- data/app/views/admin/accounts/_entry_template_details.html.arb +2 -2
- data/app/views/admin/entries/_attributes_table.html.arb +6 -5
- data/app/views/admin/entries/_form.html.erb +2 -1
- data/app/views/admin/entries/_permalink_inputs.html.erb +9 -2
- data/app/views/admin/entry_templates/_form.html.erb +1 -3
- data/app/views/admin/site_root_entry/choose.html.erb +19 -0
- data/app/views/admin/sites/_fields.html.erb +14 -1
- data/app/views/admin/translations/_form.html.erb +31 -0
- data/app/views/admin/users/_attributes_table.html.arb +13 -0
- data/app/views/components/pageflow/admin/add_membership_button.rb +13 -12
- data/app/views/components/pageflow/admin/custom_scopes_renderer.rb +1 -0
- data/app/views/components/pageflow/admin/embed_code_field.rb +1 -0
- data/app/views/components/pageflow/admin/embedded_index_table.rb +9 -10
- data/app/views/components/pageflow/admin/entries_tab.rb +1 -0
- data/app/views/components/pageflow/admin/entry_publication_state_indicator.rb +6 -5
- data/app/views/components/pageflow/admin/entry_templates_tab.rb +2 -1
- data/app/views/components/pageflow/admin/entry_translations_tab.rb +102 -0
- data/app/views/components/pageflow/admin/entry_user_badge_list.rb +1 -0
- data/app/views/components/pageflow/admin/extensible_attributes_table.rb +9 -8
- data/app/views/components/pageflow/admin/features_tab.rb +1 -0
- data/app/views/components/pageflow/admin/grouped_folder_list.rb +1 -0
- data/app/views/components/pageflow/admin/icon_link_to.rb +1 -0
- data/app/views/components/pageflow/admin/members_tab.rb +4 -3
- data/app/views/components/pageflow/admin/membership_role_with_tooltip.rb +3 -2
- data/app/views/components/pageflow/admin/revisions_tab.rb +14 -10
- data/app/views/components/pageflow/admin/sites_tab.rb +1 -0
- data/app/views/components/pageflow/admin/tabs_view.rb +1 -0
- data/app/views/components/pageflow/admin/timestamp.rb +6 -5
- data/app/views/components/pageflow/admin/user_account_badge_list.rb +2 -3
- data/app/views/components/pageflow/admin/user_accounts_tab.rb +1 -0
- data/app/views/components/pageflow/admin/user_entries_tab.rb +1 -0
- data/app/views/components/pageflow/admin/users_tab.rb +1 -0
- data/app/views/pageflow/editor/config/_seeds.json.jbuilder +1 -1
- data/app/views/pageflow/editor/entries/index.json.jbuilder +1 -1
- data/app/views/pageflow/editor/entries/show.json.jbuilder +1 -1
- data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +2 -2
- data/app/views/pageflow/editor/files/_file.json.jbuilder +5 -13
- data/app/views/pageflow/editor/files/create.json.jbuilder +1 -1
- data/app/views/pageflow/editor/files/index.json.jbuilder +1 -1
- data/app/views/pageflow/editor/sites/_site.json.jbuilder +1 -0
- data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +1 -3
- data/app/views/pageflow/entries/share_menu/_bluesky_link.html.erb +8 -0
- data/app/views/pageflow/entries/share_menu/_threads_link.html.erb +8 -0
- data/app/views/pageflow/entries/share_menu/_twitter_link.html.erb +3 -13
- data/app/views/pageflow/files/_file.json.jbuilder +3 -3
- data/app/views/pageflow/sitemaps/index.xml.builder +9 -1
- data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +1 -1
- data/app/views/pageflow/social_share/_page_meta_tags.html.erb +1 -1
- data/config/initializers/active_admin_patches.rb +3 -6
- data/config/initializers/admin_resource_tabs.rb +3 -0
- data/config/initializers/paperclip.rb +1 -0
- data/config/initializers/symmetric_encryption.rb +1 -1
- data/config/initializers/zencoder.rb +24 -13
- data/config/locales/de.yml +110 -5
- data/config/locales/en.yml +109 -8
- data/config/routes.rb +15 -13
- data/config/spring.rb +2 -1
- data/db/migrate/20140418225525_setup_schema.rb +2 -2
- data/db/migrate/20190306161431_copy_file_attributes_of_failed_uploads.rb +2 -2
- data/db/migrate/20190820152900_drop_accounts_themes.rb +2 -1
- data/db/migrate/20191202145757_create_pageflow_scrolled_sections.rb +11 -11
- data/db/migrate/20191202150657_create_pageflow_scrolled_chapters.rb +1 -1
- data/db/migrate/20191202154723_create_pageflow_scrolled_content_elements.rb +9 -9
- data/db/migrate/20191219143450_add_position_to_content_elements.rb +2 -1
- data/db/migrate/20200117133200_change_revision_appearance_option_default_and_null.rb +2 -1
- data/db/migrate/20200122115400_create_pageflow_entry_templates.rb +25 -25
- data/db/migrate/20200206134400_convert_legacy_scrolled_content_element_types.rb +3 -3
- data/db/migrate/20221215120856_associate_entry_templates_with_sites.rb +2 -2
- data/db/migrate/20230120092923_create_other_files.rb +2 -1
- data/db/migrate/20230419083307_create_pageflow_entry_translation_group.rb +9 -0
- data/db/migrate/20240612110434_add_cutoff_mode_name_to_sites.rb +5 -0
- data/db/migrate/20240918084059_create_pageflow_permalink_redirects.rb +14 -0
- data/db/migrate/20250508172234_ensure_scrolled_entries_have_main_storyline.rb +14 -0
- data/db/migrate/20250617090048_add_custom404_entry_to_sites.rb +5 -0
- data/db/migrate/20250617100000_add_perma_id_counter_to_entries.rb +28 -0
- data/db/migrate/20250722174123_add_perma_id_to_chapters.rb +10 -0
- data/db/migrate/20250725080603_add_perma_id_indexes_to_revision_components.rb +13 -0
- data/db/migrate/20250726000000_add_display_name_to_file_usages.rb +5 -0
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +3918 -1489
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +468 -1161
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +28125 -22
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +26589 -19
- data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +1 -0
- data/entry_types/paged/app/helpers/pageflow_paged/page_background_asset_helper.rb +1 -1
- data/entry_types/paged/app/helpers/pageflow_paged/third_party_embed_consent_helper.rb +7 -7
- data/entry_types/paged/app/views/pageflow_paged/editor/entries/_seed.json.jbuilder +1 -0
- data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
- data/entry_types/paged/lib/pageflow_paged/plugin.rb +4 -0
- data/entry_types/paged/lib/pageflow_paged/react/page_type.rb +1 -1
- data/entry_types/paged/lib/pageflow_paged/react/widget_type.rb +3 -3
- data/entry_types/paged/lib/pageflow_paged.rb +1 -1
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +5 -3
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +2 -2
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +2 -2
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +2 -1
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +2 -2
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +1 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +2 -1
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +60 -6
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +16 -2
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +21 -23
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +16 -1
- data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +15 -14
- data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +12 -0
- data/entry_types/scrolled/app/models/pageflow_scrolled/section.rb +12 -1
- data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +19 -1
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +2 -2
- data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +2 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +17 -9
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry_translations.json.jbuilder +14 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +25 -5
- data/entry_types/scrolled/app/views/pageflow_scrolled/storylines/_storyline.json.jbuilder +7 -0
- data/entry_types/scrolled/config/locales/de.yml +612 -49
- data/entry_types/scrolled/config/locales/en.yml +584 -51
- data/entry_types/scrolled/config/routes.rb +18 -8
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +12 -20
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/icons/information.svg +13 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/icons/muted.svg +1 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/icons/share.svg +12 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/icons/unmuted.svg +1 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantDesktop.svg +56 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantMobile.svg +22 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +26 -11
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +27 -8
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +1 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_theme_assets.rb +27 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +16 -4
- data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +1 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +24 -4
- data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +24 -22
- data/entry_types/scrolled/lib/pageflow_scrolled.rb +1 -1
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +6 -5
- data/entry_types/scrolled/package/config/webpack.js +22 -0
- data/entry_types/scrolled/package/contentElements/hotspots-frontend.css +1 -0
- data/entry_types/scrolled/package/contentElements/hotspots-frontend.js +1529 -0
- data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.css +1 -0
- data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.js +59 -0
- data/entry_types/scrolled/package/contentElements-editor.js +2076 -322
- data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
- data/entry_types/scrolled/package/contentElements-frontend.js +1022 -648
- data/entry_types/scrolled/package/editor.js +2086 -1091
- data/entry_types/scrolled/package/frontend/{EditableInlineText.module-6ee0e024.js → FloatingPortalRootProvider-51914be7.js} +1200 -1258
- data/entry_types/scrolled/package/frontend/{PhonePlatformContext-b28d991a.js → PhonePlatformContext-9f76033e.js} +7 -8
- data/entry_types/scrolled/package/frontend/ThemeIcon-81f2f066.js +1932 -0
- data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-788e9cdb.js +39 -0
- data/entry_types/scrolled/package/frontend/{Viewer-6e4d14ed.js → Viewer-0345ce57.js} +36 -63
- data/entry_types/scrolled/package/frontend/{Viewer-32cd1ac1.js → Viewer-cdc549cc.js} +15 -22
- data/entry_types/scrolled/package/frontend/{Wavesurfer-7d9cf1b7.js → Wavesurfer-1cdc3925.js} +54 -74
- data/entry_types/scrolled/package/frontend/{components-24363f97.js → components-96660ffd.js} +1791 -841
- data/entry_types/scrolled/package/frontend/{index-fc4b13e6.js → index-eb670c2f.js} +11 -18
- data/entry_types/scrolled/package/frontend/index.css +1 -1
- data/entry_types/scrolled/package/frontend/index.js +517 -903
- data/entry_types/scrolled/package/frontend/{createSuper-d0f30da3.js → inherits-539844a6.js} +40 -56
- data/entry_types/scrolled/package/frontend/{useContentElementEditorState-245f1986.js → useContentElementEditorState-77fe6c79.js} +7 -8
- data/entry_types/scrolled/package/frontend/usePhonePlatform-c2ba875d.js +8 -0
- data/entry_types/scrolled/package/frontend-server.js +0 -1
- data/entry_types/scrolled/package/package.json +19 -10
- data/entry_types/scrolled/package/testHelpers.js +306 -70
- data/entry_types/scrolled/package/values/widgets.module.css +18 -0
- data/entry_types/scrolled/package/widgets/consentBar.css +1 -1
- data/entry_types/scrolled/package/widgets/consentBar.js +47 -66
- data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
- data/entry_types/scrolled/package/widgets/defaultNavigation.js +177 -207
- data/entry_types/scrolled/package/widgets/excursionDialog.css +1 -0
- data/entry_types/scrolled/package/widgets/excursionDialog.js +109 -0
- data/entry_types/scrolled/package/widgets/excursionSheet.css +1 -0
- data/entry_types/scrolled/package/widgets/excursionSheet.js +262 -0
- data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -1
- data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +6 -9
- data/entry_types/scrolled/package/widgets/iconScrollIndicator.css +1 -0
- data/entry_types/scrolled/package/widgets/iconScrollIndicator.js +48 -0
- data/entry_types/scrolled/package/widgets/mainStorylineSheet.css +1 -0
- data/entry_types/scrolled/package/widgets/mainStorylineSheet.js +144 -0
- data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -1
- data/entry_types/scrolled/package/widgets/textInlineFileRights.js +26 -9
- data/entry_types/scrolled/package/widgets-server.js +5 -0
- data/entry_types/scrolled/spec/factories/chapters.rb +14 -1
- data/entry_types/scrolled/spec/factories/content_elements.rb +1 -1
- data/lib/generators/pageflow/active_admin_initializer/active_admin_initializer_generator.rb +5 -3
- data/lib/generators/pageflow/assets/assets_generator.rb +7 -5
- data/lib/generators/pageflow/cancan/cancan_generator.rb +2 -1
- data/lib/generators/pageflow/cancan/templates/ability.rb +1 -1
- data/lib/generators/pageflow/error_pages/error_pages_generator.rb +2 -1
- data/lib/generators/pageflow/initializer/initializer_generator.rb +3 -2
- data/lib/generators/pageflow/install/install_generator.rb +2 -2
- data/lib/generators/pageflow/procfile/procfile_generator.rb +2 -1
- data/lib/generators/pageflow/resque/resque_generator.rb +6 -4
- data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
- data/lib/generators/pageflow/routes/routes_generator.rb +4 -2
- data/lib/generators/pageflow/seeds/seeds_generator.rb +3 -2
- data/lib/generators/pageflow/seeds/templates/seeds.rb +6 -6
- data/lib/generators/pageflow/theme/theme_generator.rb +2 -1
- data/lib/generators/pageflow/user/user_generator.rb +2 -1
- data/lib/pageflow/ability_mixin.rb +25 -15
- data/lib/pageflow/active_admin_patches/views/attributes_table.rb +1 -0
- data/lib/pageflow/active_admin_patches/views/pages/base.rb +3 -2
- data/lib/pageflow/active_admin_patches/views/table_for.rb +1 -0
- data/lib/pageflow/additional_headers.rb +27 -0
- data/lib/pageflow/admin/attributes_table_rows.rb +3 -3
- data/lib/pageflow/admin/tabs.rb +1 -1
- data/lib/pageflow/built_in_file_type.rb +1 -1
- data/lib/pageflow/built_in_page_types_plugin.rb +1 -1
- data/lib/pageflow/built_in_widget_type.rb +2 -2
- data/lib/pageflow/built_in_widget_types_plugin.rb +2 -1
- data/lib/pageflow/configuration.rb +141 -18
- data/lib/pageflow/cutoff_modes.rb +39 -0
- data/lib/pageflow/editor_controller.rb +6 -10
- data/lib/pageflow/engine.rb +4 -5
- data/lib/pageflow/entry_export_import/attachment_files.rb +1 -1
- data/lib/pageflow/entry_export_import/entry_serialization.rb +5 -4
- data/lib/pageflow/entry_export_import/file_mappings.rb +1 -0
- data/lib/pageflow/entry_export_import/revision_serialization/import.rb +1 -1
- data/lib/pageflow/entry_export_import.rb +3 -3
- data/lib/pageflow/entry_types.rb +2 -2
- data/lib/pageflow/feature.rb +1 -1
- data/lib/pageflow/features.rb +4 -6
- data/lib/pageflow/file_importers.rb +4 -4
- data/lib/pageflow/file_type.rb +3 -3
- data/lib/pageflow/file_types.rb +3 -3
- data/lib/pageflow/global_config_api.rb +5 -6
- data/lib/pageflow/help_entries.rb +7 -7
- data/lib/pageflow/help_entry.rb +1 -1
- data/lib/pageflow/hooks.rb +1 -1
- data/lib/pageflow/nested_revision_component.rb +9 -27
- data/lib/pageflow/news_item_api.rb +1 -1
- data/lib/pageflow/page_type.rb +2 -3
- data/lib/pageflow/page_types.rb +3 -3
- data/lib/pageflow/paperclip_interpolations/support.rb +1 -1
- data/lib/pageflow/paperclip_processors/vtt.rb +1 -0
- data/lib/pageflow/paperclip_processors/webp.rb +2 -2
- data/lib/pageflow/partial_editor_fragment_renderer.rb +2 -2
- data/lib/pageflow/plugin.rb +1 -2
- data/lib/pageflow/quota.rb +9 -5
- data/lib/pageflow/quotas.rb +1 -1
- data/lib/pageflow/rails_version.rb +1 -0
- data/lib/pageflow/react.rb +1 -1
- data/lib/pageflow/revision_component.rb +8 -40
- data/lib/pageflow/revision_components.rb +16 -6
- data/lib/pageflow/seeds.rb +12 -16
- data/lib/pageflow/theme.rb +1 -1
- data/lib/pageflow/theme_customizations.rb +10 -10
- data/lib/pageflow/themes.rb +3 -3
- data/lib/pageflow/user_mixin.rb +6 -6
- data/lib/pageflow/version.rb +1 -1
- data/lib/pageflow/widget_type.rb +4 -4
- data/lib/pageflow/widget_types.rb +9 -9
- data/lib/pageflow/zencoder_api.rb +32 -42
- data/lib/pageflow/zencoder_audio_output_definition.rb +14 -13
- data/lib/pageflow/zencoder_meta_data_output_definition.rb +3 -2
- data/lib/pageflow/zencoder_output_definition.rb +16 -14
- data/lib/pageflow/zencoder_video_output_definition.rb +140 -88
- data/lib/pageflow.rb +7 -2
- data/lib/tasks/pageflow_tasks.rake +1 -1
- data/package/editor.js +960 -871
- data/package/frontend.js +113 -387
- data/package/package.json +2 -1
- data/package/testHelpers.js +10 -56
- data/package/ui.js +209 -251
- data/spec/factories/accounts.rb +37 -22
- data/spec/factories/audio_files.rb +2 -2
- data/spec/factories/authentication_tokens.rb +4 -4
- data/spec/factories/chapters.rb +4 -4
- data/spec/factories/draft_entries.rb +14 -6
- data/spec/factories/edit_locks.rb +1 -1
- data/spec/factories/entries.rb +28 -19
- data/spec/factories/entry_translation_groups.rb +6 -0
- data/spec/factories/file_usages.rb +2 -1
- data/spec/factories/folders.rb +1 -1
- data/spec/factories/image_files.rb +2 -2
- data/spec/factories/pages.rb +3 -3
- data/spec/factories/published_entries.rb +26 -8
- data/spec/factories/revisions.rb +1 -1
- data/spec/factories/sites.rb +6 -0
- data/spec/factories/test_multi_attachment_files.rb +1 -1
- data/spec/factories/text_track_files.rb +1 -1
- data/spec/factories/uploadable_files.rb +1 -1
- data/spec/factories/users.rb +6 -6
- data/spec/factories/video_files.rb +2 -2
- data/spec/factories/widgets.rb +1 -1
- data/spec/fixtures/7x15_rotated.jpg +0 -0
- data/vendor/assets/javascripts/wysihtml-toolbar.js +19288 -0
- metadata +105 -41
- data/config/initializers/revision_components.rb +0 -5
- data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-8242f213.js +0 -107
- data/entry_types/scrolled/package/frontend/arrowRight-e42e6011.js +0 -77
- data/entry_types/scrolled/package/frontend/i18n-71c39823.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!(:
|
5
|
+
zencoder_options.reverse_merge!(attachments_version: 'v1')
|
6
6
|
|
7
|
-
Zencoder.api_key = zencoder_options.fetch(:api_key)
|
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 =
|
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 =
|
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
|
-
|
17
|
-
|
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,
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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,
|
56
|
+
Paperclip.interpolates(:zencoder_path) do |attachment, _style|
|
46
57
|
attachment.path
|
47
58
|
end
|
48
59
|
|
data/config/locales/de.yml
CHANGED
@@ -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:
|
@@ -451,8 +459,10 @@ de:
|
|
451
459
|
facebook: Facebook
|
452
460
|
linked_in: LinkedIn
|
453
461
|
telegram: Telegram (nur Mobilgeräte)
|
454
|
-
twitter: Twitter
|
455
462
|
whats_app: WhatsApp (nur Mobilgeräte)
|
463
|
+
bluesky: Bluesky
|
464
|
+
threads: Threads
|
465
|
+
twitter: X
|
456
466
|
type_names:
|
457
467
|
paged: Seitenbasiert / klassisch
|
458
468
|
scrolled: Kontinuierlich scrollend / Pageflow Next
|
@@ -507,7 +517,7 @@ de:
|
|
507
517
|
- Fr
|
508
518
|
- Sa
|
509
519
|
abbr_month_names:
|
510
|
-
-
|
520
|
+
-
|
511
521
|
- Jan
|
512
522
|
- Feb
|
513
523
|
- Mär
|
@@ -533,7 +543,7 @@ de:
|
|
533
543
|
long: "%e. %B %Y"
|
534
544
|
short: "%e. %b"
|
535
545
|
month_names:
|
536
|
-
-
|
546
|
+
-
|
537
547
|
- Januar
|
538
548
|
- Februar
|
539
549
|
- März
|
@@ -854,6 +864,10 @@ de:
|
|
854
864
|
show_public_hint: Öffentliche Seite anzeigen
|
855
865
|
snapshot: Aktuellen Stand sichern
|
856
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.
|
857
871
|
entry:
|
858
872
|
add: Beitrag hinzufügen
|
859
873
|
entry_membership_hint: Laden Sie Benutzer in Ihr Konto ein, um sie als Mitglieder dieser Story zuzuweisen.
|
@@ -891,6 +905,7 @@ de:
|
|
891
905
|
revisions: Revisionen
|
892
906
|
sites: Sites
|
893
907
|
users: Benutzer
|
908
|
+
translations: Übersetzungen
|
894
909
|
revisions:
|
895
910
|
published_until_hint: Freilassen, um Beitrag unbegrenzt zu veröffentlichen.
|
896
911
|
restored: Revision wiederhergestellt
|
@@ -909,7 +924,6 @@ de:
|
|
909
924
|
https://%{site_host}/feeds/de.atom zu Verfügung, wobei "en"
|
910
925
|
durch ein beliebiges Sprachkürzel ersetzt werden kann, nach
|
911
926
|
dem gefiltert werden soll.
|
912
|
-
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.
|
913
927
|
name: "%{account_name}"
|
914
928
|
remove_logo: Logo entfernen
|
915
929
|
show: Anzeigen
|
@@ -921,6 +935,25 @@ de:
|
|
921
935
|
title_hint: |-
|
922
936
|
Wird in Titeln der Beiträge und als Titel für den Atom-Feed
|
923
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.
|
924
957
|
user:
|
925
958
|
cannot_add: Was Sie tun möchten, ist nicht möglich. Sie müssen aktualisieren.
|
926
959
|
none_addable_tooltip: Kein Benutzer verfügbar
|
@@ -998,6 +1031,43 @@ de:
|
|
998
1031
|
suspended: Der Benutzer wurde gesperrt. Er kann sich nun nicht mehr anmelden.
|
999
1032
|
unsuspend: Entsperren
|
1000
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.
|
1001
1071
|
audio:
|
1002
1072
|
help_entries:
|
1003
1073
|
page_type:
|
@@ -1127,12 +1197,17 @@ de:
|
|
1127
1197
|
file_name:
|
1128
1198
|
column_header: Dateiname
|
1129
1199
|
label: Dateiname
|
1200
|
+
display_name:
|
1201
|
+
column_header: Dateiname
|
1202
|
+
label: Dateiname
|
1130
1203
|
license:
|
1131
1204
|
blank: "(Nicht angegeben)"
|
1132
1205
|
inline_help: Fügt der Rechteangabe im Beitrag einen Link zur Lizenz hinzu.
|
1133
1206
|
label: Lizenz
|
1134
1207
|
original_url:
|
1135
1208
|
label: Original
|
1209
|
+
download_url:
|
1210
|
+
label: Download
|
1136
1211
|
rights:
|
1137
1212
|
cell_title:
|
1138
1213
|
blank: Noch nicht ausgefüllt
|
@@ -1309,6 +1384,8 @@ de:
|
|
1309
1384
|
credits: Rechte
|
1310
1385
|
destroy: Löschen
|
1311
1386
|
download: Herunterladen
|
1387
|
+
expand_details: Details einblenden
|
1388
|
+
collapse_details: Details ausblenden
|
1312
1389
|
retry: Erneut versuchen
|
1313
1390
|
select: Auswählen
|
1314
1391
|
settings: Einstellungen
|
@@ -1339,6 +1416,10 @@ de:
|
|
1339
1416
|
list_item:
|
1340
1417
|
edit: Bearbeiten
|
1341
1418
|
remove: Löschen
|
1419
|
+
list_search_field:
|
1420
|
+
placeholder: 'Dateien filtern'
|
1421
|
+
hint: 'Mit %{hotkey} suchen'
|
1422
|
+
reset: 'Filter zurücksetzen'
|
1342
1423
|
loading:
|
1343
1424
|
loading: Daten werden geladen.
|
1344
1425
|
locked:
|
@@ -1426,11 +1507,12 @@ de:
|
|
1426
1507
|
|
1427
1508
|
Dieser Schritt kann nicht rückgängig gemacht werden.
|
1428
1509
|
edit_configuration:
|
1429
|
-
back:
|
1510
|
+
back: "Zurück"
|
1430
1511
|
confirm_destroy: Wirklich löschen?
|
1431
1512
|
destroy: Löschen
|
1432
1513
|
retry: Erneut versuchen
|
1433
1514
|
save_error: Fehler beim Speichern
|
1515
|
+
outline: "Gliederung"
|
1434
1516
|
edit_entry_view:
|
1435
1517
|
cannot_publish: Sie sind nicht berechtigt diesen Beitrag zu veröffentlichen.
|
1436
1518
|
edit_page_view:
|
@@ -1457,6 +1539,10 @@ de:
|
|
1457
1539
|
upload: Hochladen
|
1458
1540
|
filtered_files_view:
|
1459
1541
|
banner_prefix: 'Aktiver Filter:'
|
1542
|
+
sort_button_label: 'Sortieren'
|
1543
|
+
sort:
|
1544
|
+
alphabetical: 'Alphabetisch'
|
1545
|
+
most_recent: 'Zuletzt hochgeladen'
|
1460
1546
|
inputs:
|
1461
1547
|
file_input:
|
1462
1548
|
auto_default_text_track: "(Automatisch)"
|
@@ -1989,6 +2075,8 @@ de:
|
|
1989
2075
|
default_slideshow_mode: Vertikales Scrollen/Wischen
|
1990
2076
|
phone_horizontal_slideshow_mode: Horizontales Wischen auf Phones
|
1991
2077
|
slim_player_controls: Minimalistisch
|
2078
|
+
cutoff_modes:
|
2079
|
+
none: "(Kein)"
|
1992
2080
|
support:
|
1993
2081
|
array:
|
1994
2082
|
last_word_connector: " und "
|
@@ -2010,3 +2098,20 @@ de:
|
|
2010
2098
|
next: ">>"
|
2011
2099
|
previous: !!str '<<'
|
2012
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
|
data/config/locales/en.yml
CHANGED
@@ -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:
|
@@ -451,8 +459,10 @@ en:
|
|
451
459
|
facebook: Facebook
|
452
460
|
linked_in: LinkedIn
|
453
461
|
telegram: Telegram (only mobile)
|
454
|
-
twitter: Twitter
|
455
462
|
whats_app: WhatsApp (only mobile)
|
463
|
+
bluesky: Bluesky
|
464
|
+
threads: Threads
|
465
|
+
twitter: X
|
456
466
|
type_names:
|
457
467
|
paged: Page-based / Classic
|
458
468
|
scrolled: Continuously scrolling / Pageflow Next
|
@@ -507,7 +517,7 @@ en:
|
|
507
517
|
- Fri
|
508
518
|
- Sat
|
509
519
|
abbr_month_names:
|
510
|
-
-
|
520
|
+
-
|
511
521
|
- Jan
|
512
522
|
- Feb
|
513
523
|
- Mar
|
@@ -533,7 +543,7 @@ en:
|
|
533
543
|
long: "%B %d, %Y"
|
534
544
|
short: "%b %d"
|
535
545
|
month_names:
|
536
|
-
-
|
546
|
+
-
|
537
547
|
- January
|
538
548
|
- February
|
539
549
|
- March
|
@@ -743,9 +753,9 @@ en:
|
|
743
753
|
i18n:
|
744
754
|
transliterate:
|
745
755
|
rule:
|
746
|
-
ä:
|
747
|
-
ö:
|
748
|
-
ü:
|
756
|
+
ä:
|
757
|
+
ö:
|
758
|
+
ü:
|
749
759
|
language: English
|
750
760
|
number:
|
751
761
|
currency:
|
@@ -854,6 +864,10 @@ en:
|
|
854
864
|
show_public_hint: Visit public page
|
855
865
|
snapshot: Save current version
|
856
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
|
857
871
|
entry:
|
858
872
|
add: Add Story
|
859
873
|
entry_membership_hint: Invite users to your account to assign them as members of this Story.
|
@@ -891,6 +905,7 @@ en:
|
|
891
905
|
revisions: Versions
|
892
906
|
sites: Sites
|
893
907
|
users: User
|
908
|
+
translations: Translations
|
894
909
|
revisions:
|
895
910
|
published_until_hint: Leave blank to publish indefinitely.
|
896
911
|
restored: Version restored
|
@@ -908,7 +923,6 @@ en:
|
|
908
923
|
site are available via URLs of the form
|
909
924
|
https://%{site_host}/feeds/en.atom where "en" can be
|
910
925
|
replaced with any locale you want to filter by.
|
911
|
-
home_url_hint: Used for requests to the root path with one of the above CNAMES. Default target location for the home button.
|
912
926
|
name: "%{account_name}"
|
913
927
|
remove_logo: Remove logo
|
914
928
|
show: View
|
@@ -918,6 +932,22 @@ en:
|
|
918
932
|
https://%{site_host}/sitemap.xml. Register the URL in Google
|
919
933
|
Search Console or similar tools.
|
920
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.
|
921
951
|
user:
|
922
952
|
cannot_add: What you want to do is not possible. You need to upgrade.
|
923
953
|
none_addable_tooltip: No user available
|
@@ -995,6 +1025,42 @@ en:
|
|
995
1025
|
suspended: 'The user was suspended and will not be able to sign-in again. '
|
996
1026
|
unsuspend: Unsuspend
|
997
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.
|
998
1064
|
audio:
|
999
1065
|
help_entries:
|
1000
1066
|
page_type:
|
@@ -1125,12 +1191,17 @@ en:
|
|
1125
1191
|
file_name:
|
1126
1192
|
column_header: File name
|
1127
1193
|
label: File name
|
1194
|
+
display_name:
|
1195
|
+
column_header: File name
|
1196
|
+
label: File name
|
1128
1197
|
license:
|
1129
1198
|
blank: "(Not specified)"
|
1130
1199
|
inline_help: Adds a link to the license in the credit note.
|
1131
1200
|
label: License
|
1132
1201
|
original_url:
|
1133
1202
|
label: Original
|
1203
|
+
download_url:
|
1204
|
+
label: Download
|
1134
1205
|
rights:
|
1135
1206
|
cell_title:
|
1136
1207
|
blank: Still blank
|
@@ -1306,6 +1377,8 @@ en:
|
|
1306
1377
|
credits: Credits
|
1307
1378
|
destroy: Delete
|
1308
1379
|
download: Download
|
1380
|
+
expand_details: Show details
|
1381
|
+
collapse_details: Hide details
|
1309
1382
|
retry: Retry
|
1310
1383
|
select: Select
|
1311
1384
|
settings: Settings
|
@@ -1336,6 +1409,10 @@ en:
|
|
1336
1409
|
list_item:
|
1337
1410
|
edit: Edit
|
1338
1411
|
remove: Delete
|
1412
|
+
list_search_field:
|
1413
|
+
placeholder: 'Filter files'
|
1414
|
+
hint: 'Type %{hotkey} to search'
|
1415
|
+
reset: 'Clear filter'
|
1339
1416
|
loading:
|
1340
1417
|
loading: Loading...
|
1341
1418
|
locked:
|
@@ -1423,11 +1500,12 @@ en:
|
|
1423
1500
|
|
1424
1501
|
This operation cannot be undone.
|
1425
1502
|
edit_configuration:
|
1426
|
-
back:
|
1503
|
+
back: "Back"
|
1427
1504
|
confirm_destroy: Really delete this record? This action cannot be undone.
|
1428
1505
|
destroy: Delete
|
1429
1506
|
retry: Retry
|
1430
1507
|
save_error: Saving the record failed.
|
1508
|
+
outline: "Outline"
|
1431
1509
|
edit_entry_view:
|
1432
1510
|
cannot_publish: You do not have sufficient rights to publish this story.
|
1433
1511
|
edit_page_view:
|
@@ -1454,6 +1532,10 @@ en:
|
|
1454
1532
|
upload: Upload
|
1455
1533
|
filtered_files_view:
|
1456
1534
|
banner_prefix: 'Active filter:'
|
1535
|
+
sort_button_label: 'Sort'
|
1536
|
+
sort:
|
1537
|
+
alphabetical: 'Alphabetical'
|
1538
|
+
most_recent: 'Most recent'
|
1457
1539
|
inputs:
|
1458
1540
|
file_input:
|
1459
1541
|
auto_default_text_track: "(Auto)"
|
@@ -1984,6 +2066,8 @@ en:
|
|
1984
2066
|
default_slideshow_mode: Vertical scoll/swipe
|
1985
2067
|
phone_horizontal_slideshow_mode: Horizontal swipe on phone
|
1986
2068
|
slim_player_controls: Minimal
|
2069
|
+
cutoff_modes:
|
2070
|
+
none: "(None)"
|
1987
2071
|
support:
|
1988
2072
|
array:
|
1989
2073
|
last_word_connector: ", and "
|
@@ -2005,3 +2089,20 @@ en:
|
|
2005
2089
|
next: ">>"
|
2006
2090
|
previous: !!str '<<'
|
2007
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(:
|
2
|
+
constraints Pageflow.config(ignore_not_configured: true).editor_route_constraint do
|
3
3
|
resources :entries, only: [], shallow: true do
|
4
|
-
get :partials, :
|
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, :
|
42
|
+
get :seed, on: :member
|
43
43
|
|
44
|
-
resources :file_usages, :
|
44
|
+
resources :file_usages, only: [:create, :destroy]
|
45
45
|
|
46
|
-
resources :encoding_confirmations, :
|
47
|
-
post :check, :
|
46
|
+
resources :encoding_confirmations, only: [:create] do
|
47
|
+
post :check, on: :collection
|
48
48
|
end
|
49
49
|
|
50
|
-
resources :entry_publications, :
|
51
|
-
post :check, :
|
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, :
|
73
|
-
patch :batch, :
|
72
|
+
resources :widgets, only: [:index] do
|
73
|
+
patch :batch, on: :collection
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
-
root :
|
78
|
+
root to: redirect('/admin')
|
79
79
|
end
|
80
80
|
|
81
|
-
get ':entry_id/videos/:id', :
|
82
|
-
|
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__,
|
2
|
+
Spring.application_root = File.join(__FILE__,
|
3
|
+
"../../spec/dummy/rails-#{Pageflow::RailsVersion.detect}")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# rubocop:disable
|
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
|
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
|
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
|
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',
|
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
|