pageflow 15.5.0 → 15.7.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of pageflow might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +219 -87
- data/README.md +1 -2
- data/admins/pageflow/entry.rb +28 -57
- data/admins/pageflow/user.rb +1 -3
- data/app/assets/images/pageflow/admin/icons/buttons/editor.svg +2 -0
- data/app/assets/images/pageflow/admin/icons/buttons/preview.svg +2 -0
- data/app/assets/images/pageflow/admin/icons/buttons/show_public.svg +2 -0
- data/app/assets/images/pageflow/admin/icons/delete.svg +9 -0
- data/app/assets/images/pageflow/admin/icons/done.svg +6 -0
- data/app/assets/images/pageflow/admin/icons/edit.svg +7 -0
- data/app/assets/images/pageflow/admin/icons/editor.svg +2 -0
- data/app/assets/images/pageflow/admin/icons/folder.svg +8 -0
- data/app/assets/images/pageflow/admin/icons/folder_active.svg +8 -0
- data/app/assets/images/pageflow/admin/icons/info.svg +3 -0
- data/app/assets/images/pageflow/admin/icons/new.svg +5 -0
- data/app/assets/images/pageflow/admin/icons/preview.svg +2 -0
- data/app/assets/images/pageflow/admin/icons/published.svg +2 -0
- data/app/assets/images/pageflow/admin/icons/published_with_password.svg +2 -0
- data/app/assets/images/pageflow/admin/icons/show_public.svg +2 -0
- data/app/assets/images/pageflow/editor/blank_entry/logo.png +0 -0
- data/app/assets/images/pageflow/themes/default/embed_opt_in.svg +3 -0
- data/app/assets/images/pageflow/themes/default/embed_opt_out_info.svg +16 -0
- data/app/assets/javascripts/pageflow/admin/entries.js +9 -57
- data/app/assets/javascripts/pageflow/dist/ui.js +127 -10
- data/app/assets/stylesheets/pageflow/admin/active_admin_patches.scss +18 -16
- data/app/assets/stylesheets/pageflow/admin/badge_list.scss +25 -35
- data/app/assets/stylesheets/pageflow/admin/columns.scss +13 -11
- data/app/assets/stylesheets/pageflow/admin/embed_code.scss +1 -4
- data/app/assets/stylesheets/pageflow/admin/entries/folders.scss +44 -19
- data/app/assets/stylesheets/pageflow/admin/entries.scss +15 -31
- data/app/assets/stylesheets/pageflow/admin/features.scss +3 -1
- data/app/assets/stylesheets/pageflow/admin/forms.scss +14 -12
- data/app/assets/stylesheets/pageflow/admin/hint.scss +8 -14
- data/app/assets/stylesheets/pageflow/admin/icon_button.scss +25 -14
- data/app/assets/stylesheets/pageflow/admin/icon_link.scss +31 -15
- data/app/assets/stylesheets/pageflow/admin/publication_state_indicator.scss +14 -7
- data/app/assets/stylesheets/pageflow/admin/status_tags.scss +5 -4
- data/app/assets/stylesheets/pageflow/admin/tabs_view.scss +36 -34
- data/app/assets/stylesheets/pageflow/admin/tooltip_bubble.scss +15 -11
- data/app/assets/stylesheets/pageflow/admin.scss +12 -0
- data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +15 -61
- data/app/assets/stylesheets/pageflow/editor/base.scss +28 -13
- data/app/assets/stylesheets/pageflow/editor/blank_entry.scss +6 -6
- data/app/assets/stylesheets/pageflow/editor/change_theme.scss +28 -71
- data/app/assets/stylesheets/pageflow/editor/composables.scss +2 -2
- data/app/assets/stylesheets/pageflow/editor/confirm_encoding.scss +18 -36
- data/app/assets/stylesheets/pageflow/editor/confirm_upload.scss +12 -39
- data/app/assets/stylesheets/pageflow/editor/dialogs.scss +39 -12
- data/app/assets/stylesheets/pageflow/editor/disabled_atmo_indicator.scss +3 -3
- data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +7 -10
- data/app/assets/stylesheets/pageflow/editor/emulation_mode_button.scss +3 -8
- data/app/assets/stylesheets/pageflow/editor/failures.scss +3 -3
- data/app/assets/stylesheets/pageflow/editor/file_import.scss +22 -38
- data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +3 -7
- data/app/assets/stylesheets/pageflow/editor/file_settings_dialog.scss +4 -24
- data/app/assets/stylesheets/pageflow/editor/file_stages.scss +10 -11
- data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +4 -8
- data/app/assets/stylesheets/pageflow/editor/files.scss +7 -6
- data/app/assets/stylesheets/pageflow/editor/files_explorer.scss +13 -30
- data/app/assets/stylesheets/pageflow/editor/files_gallery.scss +15 -11
- data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +6 -7
- data/app/assets/stylesheets/pageflow/editor/help.scss +19 -14
- data/app/assets/stylesheets/pageflow/editor/help_image.scss +1 -1
- data/app/assets/stylesheets/pageflow/editor/info_box.scss +19 -0
- data/app/assets/stylesheets/pageflow/editor/inputs/file_input.scss +7 -11
- data/app/assets/stylesheets/pageflow/editor/inputs/file_processing_state_display.scss +0 -2
- data/app/assets/stylesheets/pageflow/editor/inputs/reference.scss +7 -11
- data/app/assets/stylesheets/pageflow/editor/list.scss +13 -10
- data/app/assets/stylesheets/pageflow/editor/loading.scss +1 -1
- data/app/assets/stylesheets/pageflow/editor/locked.scss +9 -5
- data/app/assets/stylesheets/pageflow/editor/menu.scss +5 -5
- data/app/assets/stylesheets/pageflow/editor/notifications.scss +15 -14
- data/app/assets/stylesheets/pageflow/editor/other_entry_item.scss +7 -3
- data/app/assets/stylesheets/pageflow/editor/outline.scss +57 -19
- data/app/assets/stylesheets/pageflow/editor/page_links.scss +10 -8
- data/app/assets/stylesheets/pageflow/editor/page_selection.scss +2 -29
- data/app/assets/stylesheets/pageflow/editor/publish_entry.scss +5 -6
- data/app/assets/stylesheets/pageflow/editor/quotas.scss +2 -3
- data/app/assets/stylesheets/pageflow/editor/select_button.scss +12 -6
- data/app/assets/stylesheets/pageflow/editor/sidebar_footer.scss +1 -5
- data/app/assets/stylesheets/pageflow/editor/storyline_picker.scss +6 -2
- data/app/assets/stylesheets/pageflow/editor/text_tracks.scss +6 -22
- data/app/assets/stylesheets/pageflow/editor/widgets.scss +2 -2
- data/app/assets/stylesheets/pageflow/editor/wysihtml5.scss +35 -29
- data/app/assets/stylesheets/pageflow/mixins/background_icons.scss +3 -3
- data/app/assets/stylesheets/pageflow/mixins/buttons.scss +50 -68
- data/app/assets/stylesheets/pageflow/themes/default/base.scss +2 -0
- data/app/assets/stylesheets/pageflow/themes/default/consent/bar.scss +156 -0
- data/app/assets/stylesheets/pageflow/themes/default/consent/vendor_list.scss +62 -0
- data/app/assets/stylesheets/pageflow/themes/default/consent.scss +2 -0
- data/app/assets/stylesheets/pageflow/themes/default/logo/alignment.scss +7 -0
- data/app/assets/stylesheets/pageflow/themes/default/page/shadow.scss +44 -0
- data/app/assets/stylesheets/pageflow/themes/default/third_party_embed_consent.scss +103 -0
- data/app/assets/stylesheets/pageflow/ui/forms.scss +79 -84
- data/app/assets/stylesheets/pageflow/ui/functions.scss +56 -0
- data/app/assets/stylesheets/pageflow/ui/input/check_box_group_input.scss +2 -3
- data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +6 -6
- data/app/assets/stylesheets/pageflow/ui/input/extended_select_input.scss +63 -50
- data/app/assets/stylesheets/pageflow/ui/normalize/forms.scss +153 -0
- data/app/assets/stylesheets/pageflow/ui/normalize.scss +278 -0
- data/app/assets/stylesheets/pageflow/ui/properties.scss +44 -0
- data/app/assets/stylesheets/pageflow/ui/table_cells/delete_row_table_cell.scss +1 -1
- data/app/assets/stylesheets/pageflow/ui/table_view.scss +14 -18
- data/app/assets/stylesheets/pageflow/ui/tabs_view.scss +8 -11
- data/app/assets/stylesheets/pageflow/ui/tooltip.scss +6 -8
- data/app/assets/stylesheets/pageflow/ui/validation_error_messages.scss +6 -0
- data/app/assets/stylesheets/pageflow/ui.scss +4 -0
- data/app/controllers/pageflow/edit_locks_controller.rb +3 -1
- data/app/helpers/pageflow/admin/entries_helper.rb +2 -12
- data/app/helpers/pageflow/embed_code_helper.rb +1 -1
- data/app/helpers/pageflow/entries_helper.rb +41 -2
- data/app/helpers/pageflow/file_background_images_helper.rb +1 -1
- data/app/helpers/pageflow/page_types_helper.rb +1 -1
- data/app/helpers/pageflow/themes_helper.rb +1 -1
- data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +1 -1
- data/app/jobs/pageflow/poll_zencoder_job.rb +1 -9
- data/app/models/pageflow/audio_file.rb +17 -0
- data/app/models/pageflow/audio_file_url_templates.rb +4 -1
- data/app/models/pageflow/customized_theme.rb +37 -0
- data/app/models/pageflow/draft_entry.rb +6 -59
- data/app/models/pageflow/entry_at_revision.rb +68 -0
- data/app/models/pageflow/entry_role_query.rb +44 -24
- data/app/models/pageflow/image_file_css_background_image_urls.rb +8 -2
- data/app/models/pageflow/published_entry.rb +9 -56
- data/app/models/pageflow/theme_customization.rb +46 -0
- data/app/models/pageflow/theme_customization_file.rb +58 -0
- data/app/models/pageflow/video_file.rb +11 -1
- data/app/models/pageflow/video_file_url_templates.rb +1 -0
- data/app/policies/pageflow/entry_policy.rb +4 -0
- data/app/state_machines/pageflow/media_encoding_state_machine.rb +23 -4
- data/app/views/admin/entries/_form.html.erb +50 -0
- data/app/views/admin/entries/entry_type_name_input.html.erb +5 -0
- data/app/views/admin/features/_form.html.erb +1 -1
- data/app/views/admin/memberships/_form.html.erb +2 -3
- data/app/views/admin/users/_form.html.erb +1 -1
- data/app/views/admin/users/invitation.html.erb +2 -2
- data/app/views/components/pageflow/admin/entry_user_badge_list.rb +10 -9
- data/app/views/components/pageflow/admin/members_tab.rb +5 -1
- data/app/views/components/pageflow/admin/revisions_tab.rb +13 -3
- data/app/views/components/pageflow/admin/timestamp.rb +20 -0
- data/app/views/components/pageflow/admin/user_account_badge_list.rb +5 -6
- data/app/views/pageflow/admin/entries/_cannot_add_user.html.erb +9 -5
- data/app/views/pageflow/admin/entries/_entry_type_name_input.html.erb +7 -0
- data/app/views/pageflow/audio_files/_audio_file.json.jbuilder +13 -0
- data/app/views/pageflow/editor/encoding_confirmations/_intro.html.erb +0 -0
- data/app/views/pageflow/editor/encoding_confirmations/check.json.jbuilder +14 -2
- data/config/initializers/paperclip.rb +16 -1
- data/config/locales/de.yml +24 -28
- data/config/locales/en.yml +19 -10
- data/db/migrate/20210528073122_create_pageflow_theme_customizations.rb +11 -0
- data/db/migrate/20210531090654_create_pageflow_theme_customization_files.rb +15 -0
- data/db/migrate/20210531102228_add_selected_file_ids_to_theme_customizations.rb +5 -0
- data/db/migrate/20211020085902_add_canonical_entry_url_prefix_to_themings.rb +5 -0
- data/db/migrate/20220503150010_add_peak_data_to_audio_files.rb +5 -0
- data/db/migrate/20220705084830_add_trailing_slash_in_canonical_urls_to_themings.rb +5 -0
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +256 -124
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +566 -167
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +5 -5
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +4 -4
- data/entry_types/paged/app/helpers/pageflow_paged/third_party_embed_consent_helper.rb +38 -0
- data/entry_types/paged/app/views/pageflow_paged/third_party_embed_consent/_opt_in.html.erb +12 -0
- data/entry_types/paged/app/views/pageflow_paged/third_party_embed_consent/_opt_out_info.html.erb +10 -0
- data/entry_types/paged/config/initializers/features.rb +2 -0
- data/entry_types/paged/config/locales/new/video_contain.de.yml +7 -0
- data/entry_types/paged/config/locales/new/video_contain.en.yml +7 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +3 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +1 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +58 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +37 -3
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +92 -6
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/webpack_public_path_helper.rb +20 -0
- data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +7 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +5 -2
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_seed.json.jbuilder +5 -1
- data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +5 -4
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +16 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +13 -2
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_widget.json.jbuilder +2 -0
- data/entry_types/scrolled/config/locales/de.yml +1 -8
- data/entry_types/scrolled/config/locales/en.yml +1 -9
- data/entry_types/scrolled/config/locales/new/before_after_slider.de.yml +8 -0
- data/entry_types/scrolled/config/locales/new/before_after_slider.en.yml +8 -0
- data/entry_types/scrolled/config/locales/new/center_ragged.de.yml +8 -0
- data/entry_types/scrolled/config/locales/new/center_ragged.en.yml +9 -0
- data/entry_types/scrolled/config/locales/new/consent.de.yml +25 -0
- data/entry_types/scrolled/config/locales/new/consent.en.yml +24 -0
- data/entry_types/scrolled/config/locales/new/content_element_categories.de.yml +39 -0
- data/entry_types/scrolled/config/locales/new/content_element_categories.en.yml +39 -0
- data/entry_types/scrolled/config/locales/new/default_transition.de.yml +14 -0
- data/entry_types/scrolled/config/locales/new/default_transition.en.yml +14 -0
- data/entry_types/scrolled/config/locales/new/header_line_breaks.de.yml +28 -0
- data/entry_types/scrolled/config/locales/new/header_line_breaks.en.yml +27 -0
- data/entry_types/scrolled/config/locales/new/header_size.de.yml +17 -0
- data/entry_types/scrolled/config/locales/new/header_size.en.yml +17 -0
- data/entry_types/scrolled/config/locales/new/iframe_embed.de.yml +39 -0
- data/entry_types/scrolled/config/locales/new/iframe_embed.en.yml +39 -0
- data/entry_types/scrolled/config/locales/new/inline_loops.de.yml +26 -0
- data/entry_types/scrolled/config/locales/new/inline_loops.en.yml +26 -0
- data/entry_types/scrolled/config/locales/new/portrait_inline_image.de.yml +9 -0
- data/entry_types/scrolled/config/locales/new/portrait_inline_image.en.yml +9 -0
- data/entry_types/scrolled/config/locales/new/section_width.de.yml +10 -0
- data/entry_types/scrolled/config/locales/new/section_width.en.yml +10 -0
- data/entry_types/scrolled/config/locales/new/typography_variants.de.yml +7 -0
- data/entry_types/scrolled/config/locales/new/typography_variants.en.yml +7 -0
- data/entry_types/scrolled/config/locales/new/video_embed_poster.de.yml +8 -0
- data/entry_types/scrolled/config/locales/new/video_embed_poster.en.yml +8 -0
- data/entry_types/scrolled/config/locales/new/waveform_styles.de.yml +11 -0
- data/entry_types/scrolled/config/locales/new/waveform_styles.en.yml +12 -0
- data/entry_types/scrolled/config/locales/new/widgets.de.yml +6 -0
- data/entry_types/scrolled/config/locales/new/widgets.en.yml +6 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +29 -5
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +8 -6
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +37 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +57 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +49 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +2 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +8 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +42 -0
- data/entry_types/scrolled/lib/pageflow_scrolled.rb +17 -1
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/create_bundle_symlinks_for_yarn.rake +3 -2
- data/entry_types/scrolled/package/config/webpack.js +11 -0
- data/entry_types/scrolled/package/contentElements-editor.js +323 -89
- data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
- data/entry_types/scrolled/package/contentElements-frontend.js +719 -529
- data/entry_types/scrolled/package/editor.js +459 -261
- data/entry_types/scrolled/package/frontend/{EditableText-7093fd0e.js → EditableInlineText.module-b9923660.js} +284 -362
- data/entry_types/scrolled/package/frontend/{i18n-4dc6c377.js → PhonePlatformContext-9fb97827.js} +199 -106
- data/entry_types/scrolled/package/frontend/{Viewer-e49e7807.js → Viewer-e2290ea0.js} +196 -79
- data/entry_types/scrolled/package/frontend/{Wavesurfer-0adf5667.js → Wavesurfer-7d9cf1b7.js} +16 -58
- data/entry_types/scrolled/package/frontend/{components-6a6793ca.js → components-6ab26015.js} +664 -671
- data/entry_types/scrolled/package/frontend/{getPrototypeOf-63c7c8e8.js → createSuper-d0f30da3.js} +34 -5
- data/entry_types/scrolled/package/frontend/index.css +1 -9
- data/entry_types/scrolled/package/frontend/index.js +1919 -2386
- data/entry_types/scrolled/package/frontend/{useBrowserFeature-91a4c29d.js → usePhonePlatform-2857c22b.js} +9 -8
- data/entry_types/scrolled/package/frontend-server.js +3 -6
- data/entry_types/scrolled/package/package.json +16 -8
- data/entry_types/scrolled/package/testHelpers.js +456 -0
- data/entry_types/scrolled/package/values/breakpoints.module.css +9 -0
- data/entry_types/scrolled/package/values/colors.module.css +5 -0
- data/entry_types/scrolled/package/widgets/defaultNavigation.css +9 -0
- data/entry_types/scrolled/package/widgets/defaultNavigation.js +612 -0
- data/entry_types/scrolled/spec/fixtures/image.svg +1 -0
- data/lib/pageflow/ability_mixin.rb +4 -0
- data/lib/pageflow/built_in_widget_type.rb +4 -0
- data/lib/pageflow/built_in_widget_types_plugin.rb +7 -0
- data/lib/pageflow/configuration.rb +34 -1
- data/lib/pageflow/entry_type.rb +11 -2
- data/lib/pageflow/entry_type_configuration.rb +2 -0
- data/lib/pageflow/file_type.rb +24 -0
- data/lib/pageflow/paperclip_processors/audio_waveform.rb +42 -0
- data/lib/pageflow/paperclip_processors/noop.rb +10 -0
- data/lib/pageflow/theme_customizations.rb +61 -0
- data/lib/pageflow/version.rb +1 -1
- data/lib/pageflow.rb +9 -0
- data/package/config/jest/index.js +2 -1
- data/package/config/postcss/scaleFunctions.js +71 -0
- data/package/editor.js +95 -85
- data/package/frontend.js +521 -161
- data/package/package.json +5 -3
- data/package/testHelpers.js +26 -5
- data/package/ui.js +124 -11
- data/spec/factories/draft_entries.rb +19 -1
- data/spec/factories/entries.rb +4 -0
- data/spec/factories/published_entries.rb +6 -0
- data/spec/fixtures/audio.ogg +0 -0
- metadata +119 -14
- data/app/views/admin/entries/_not_allowed_to_see_entry_types.json.jbuilder +0 -2
- data/app/views/admin/entries/entry_types.json.jbuilder +0 -4
- data/package/config/jest/transformers/upwardBabel.js +0 -5
@@ -0,0 +1,38 @@
|
|
1
|
+
module PageflowPaged
|
2
|
+
# Render opt-in placeholders for embeds and opt-out hints.
|
3
|
+
module ThirdPartyEmbedConsentHelper
|
4
|
+
include Pageflow::EntriesHelper
|
5
|
+
|
6
|
+
def third_party_embed_opt_in(entry:, vendor_name:, message:)
|
7
|
+
link_html = third_party_embed_privacy_link(
|
8
|
+
entry: entry,
|
9
|
+
text: t('pageflow.public.third_party_embed_consent.opt_in.more_information'),
|
10
|
+
vendor_name: vendor_name
|
11
|
+
)
|
12
|
+
|
13
|
+
render('pageflow_paged/third_party_embed_consent/opt_in',
|
14
|
+
message: message,
|
15
|
+
vendor_name: vendor_name,
|
16
|
+
link_html: link_html)
|
17
|
+
end
|
18
|
+
|
19
|
+
def third_party_embed_opt_out_info(entry)
|
20
|
+
link_html = third_party_embed_privacy_link(
|
21
|
+
entry: entry,
|
22
|
+
text: t('pageflow.public.third_party_embed_consent.opt_out_info.prompt_link')
|
23
|
+
)
|
24
|
+
|
25
|
+
render('pageflow_paged/third_party_embed_consent/opt_out_info', link_html: link_html)
|
26
|
+
end
|
27
|
+
|
28
|
+
def third_party_embed_privacy_link(entry:, text:, vendor_name: nil)
|
29
|
+
params = vendor_name ? "&vendors=#{vendor_name}" : ''
|
30
|
+
|
31
|
+
link_to(
|
32
|
+
text,
|
33
|
+
"#{entry_privacy_link_url(entry)}#{params}#consent",
|
34
|
+
target: '_blank', rel: 'noopener noreferrer'
|
35
|
+
)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div class="third_party_embed_opt_in">
|
2
|
+
<div class="third_party_embed_opt_in-message">
|
3
|
+
<%= message %>
|
4
|
+
<%= link_html %>
|
5
|
+
</div>
|
6
|
+
<div>
|
7
|
+
<button class="third_party_embed_opt_in-button"
|
8
|
+
data-consent-vendor="<%= vendor_name %>">
|
9
|
+
<%= t('pageflow.public.third_party_embed_consent.opt_in.confirm') %>
|
10
|
+
</button>
|
11
|
+
</div>
|
12
|
+
</div>
|
data/entry_types/paged/app/views/pageflow_paged/third_party_embed_consent/_opt_out_info.html.erb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
<div class="third_party_embed_opt_out_info">
|
2
|
+
<a href="#" class="third_party_embed_opt_out_info-icon">
|
3
|
+
</a>
|
4
|
+
<div class="third_party_embed_opt_out_info-tooltip">
|
5
|
+
<p>
|
6
|
+
<%= t('pageflow.public.third_party_embed_consent.opt_out_info.prompt_html',
|
7
|
+
link: link_html) %>
|
8
|
+
</p>
|
9
|
+
</div>
|
10
|
+
</div>
|
@@ -1,5 +1,7 @@
|
|
1
1
|
Pageflow.configure do |config|
|
2
2
|
config.for_entry_type(PageflowPaged.entry_type) do |entry_type_config|
|
3
|
+
entry_type_config.features.register('highdef_background_images')
|
4
|
+
|
3
5
|
entry_type_config.features.register('auto_change_page')
|
4
6
|
entry_type_config.features.register('delayed_text_fade_in')
|
5
7
|
|
@@ -0,0 +1,7 @@
|
|
1
|
+
de:
|
2
|
+
pageflow:
|
3
|
+
video:
|
4
|
+
page_attributes:
|
5
|
+
smart_contain:
|
6
|
+
label: "Letterboxing/Pillarboxing vermeiden"
|
7
|
+
inline_help: "Video skalieren, um die Darstellung von schwarzen Balken oben und unten (Letterboxing) bzw. rechts und links (Pillarboxing) zu vermeiden, wenn das Seitenverhältnis des Videos nur leicht vom Seitenverhältnis des Browser-Viewports abweicht."
|
@@ -0,0 +1,7 @@
|
|
1
|
+
en:
|
2
|
+
pageflow:
|
3
|
+
video:
|
4
|
+
page_attributes:
|
5
|
+
smart_contain:
|
6
|
+
label: "Avoid letterboxing/pillarboxing"
|
7
|
+
inline_help: "Scale video to prevent displaying black bars above and below it (letterboxing) or on the left and right (pillarboxing) when the aspect ratio of the video only deviates slightly from the aspect ratio of the browser viewport."
|
@@ -7,6 +7,8 @@ module PageflowScrolled
|
|
7
7
|
include Pageflow::WidgetsHelper
|
8
8
|
include Pageflow::StructuredDataHelper
|
9
9
|
include FaviconHelper
|
10
|
+
include PacksHelper
|
11
|
+
include WebpackPublicPathHelper
|
10
12
|
|
11
13
|
def scrolled_editor_iframe_seed_html_script_tag(entry)
|
12
14
|
html = render(template: 'pageflow_scrolled/entries/show',
|
@@ -17,6 +19,7 @@ module PageflowScrolled
|
|
17
19
|
:@skip_structured_data => true,
|
18
20
|
:@seed_options => {
|
19
21
|
skip_collections: true,
|
22
|
+
include_unused_additional_seed_data: true,
|
20
23
|
translations: {include_inline_editing: true}
|
21
24
|
}
|
22
25
|
})
|
@@ -32,6 +32,7 @@ module PageflowScrolled
|
|
32
32
|
entry_config: Pageflow.config_for(scrolled_entry),
|
33
33
|
sections: main_storyline.sections,
|
34
34
|
content_elements: main_storyline.content_elements,
|
35
|
+
widgets: scrolled_entry.resolve_widgets(insert_point: :react),
|
35
36
|
options: options)
|
36
37
|
end
|
37
38
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module PageflowScrolled
|
2
|
+
# @api private
|
3
|
+
module PacksHelper
|
4
|
+
def scrolled_frontend_javascript_packs_tag(entry, options)
|
5
|
+
javascript_packs_with_chunks_tag(
|
6
|
+
*scrolled_frontend_packs(entry, options)
|
7
|
+
)
|
8
|
+
end
|
9
|
+
|
10
|
+
def scrolled_frontend_stylesheet_packs_tag(entry, options)
|
11
|
+
stylesheet_packs_with_chunks_tag(
|
12
|
+
*scrolled_frontend_packs(entry, options),
|
13
|
+
media: 'all'
|
14
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
def scrolled_editor_javascript_packs_tag(entry)
|
18
|
+
javascript_packs_with_chunks_tag(
|
19
|
+
*scrolled_editor_packs(entry)
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
def scrolled_frontend_packs(entry, widget_scope:)
|
24
|
+
widget_types = scrolled_frontend_pack_widget_types(entry, widget_scope)
|
25
|
+
|
26
|
+
['pageflow-scrolled-frontend'] +
|
27
|
+
scrolled_frontend_content_element_packs(entry, widget_scope) +
|
28
|
+
widget_types.map(&:pack)
|
29
|
+
end
|
30
|
+
|
31
|
+
def scrolled_editor_packs(entry)
|
32
|
+
['pageflow-scrolled-editor'] +
|
33
|
+
Pageflow.config_for(entry).additional_editor_packs.paths
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def scrolled_frontend_content_element_packs(entry, widget_scope)
|
39
|
+
additional_packs = Pageflow.config_for(entry).additional_frontend_packs
|
40
|
+
return additional_packs.paths if widget_scope == :editor
|
41
|
+
|
42
|
+
additional_packs.paths_for_content_element_types(
|
43
|
+
ContentElement.select_used_type_names(
|
44
|
+
entry.revision,
|
45
|
+
additional_packs.content_element_type_names
|
46
|
+
)
|
47
|
+
)
|
48
|
+
end
|
49
|
+
|
50
|
+
def scrolled_frontend_pack_widget_types(entry, widget_scope)
|
51
|
+
if widget_scope == :editor
|
52
|
+
ReactWidgetType.all_for(entry)
|
53
|
+
else
|
54
|
+
entry.resolve_widgets(insert_point: :react).map(&:widget_type)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb
CHANGED
@@ -26,15 +26,49 @@ module PageflowScrolled
|
|
26
26
|
# Scrolled from host application configuration.
|
27
27
|
class ReactRenderer < ::React::ServerRendering::BundleRenderer
|
28
28
|
def asset_container_class
|
29
|
-
|
29
|
+
WebpackerSplitChunksManifestContainer
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# see https://github.com/reactjs/react-rails/issues/970#issuecomment-476338244
|
34
|
+
class WebpackerSplitChunksManifestContainer < React::ServerRendering::WebpackerManifestContainer
|
35
|
+
def find_asset(logical_path)
|
36
|
+
asset_paths = manifest.lookup_pack_with_chunks(logical_path, type: :javascript)
|
37
|
+
|
38
|
+
asset_contents =
|
39
|
+
begin
|
40
|
+
if Webpacker.dev_server.running?
|
41
|
+
ds = Webpacker.dev_server
|
42
|
+
asset_paths.map do |asset_path|
|
43
|
+
# Remove the protocol and host from the asset
|
44
|
+
# path. Sometimes webpacker includes this, sometimes
|
45
|
+
# it does not
|
46
|
+
asset_path.slice!("#{ds.protocol}://#{ds.host_with_port}")
|
47
|
+
dev_server_asset =
|
48
|
+
URI.open("#{ds.protocol}://#{ds.host_with_port}#{asset_path}").read
|
49
|
+
dev_server_asset.sub!(CLIENT_REQUIRE, '//\0')
|
50
|
+
dev_server_asset
|
51
|
+
end
|
52
|
+
else
|
53
|
+
asset_paths.map do |asset_path|
|
54
|
+
full_path = ::Rails.root.join('public', asset_path[1..-1])
|
55
|
+
File.read(full_path)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
asset_contents.join("\n")
|
30
61
|
end
|
31
62
|
end
|
32
63
|
|
33
64
|
def self.new_renderer
|
34
65
|
ReactRenderer
|
35
|
-
.new(files: ['pageflow-scrolled-server
|
66
|
+
.new(files: ['pageflow-scrolled-server'],
|
36
67
|
# Define required external globals.
|
37
|
-
code:
|
68
|
+
code: <<-JS)
|
69
|
+
#{WebpackPublicPathHelper.js_snippet}
|
70
|
+
function videojs() {};
|
71
|
+
JS
|
38
72
|
end
|
39
73
|
end
|
40
74
|
end
|
@@ -1,13 +1,21 @@
|
|
1
1
|
module PageflowScrolled
|
2
2
|
# @api private
|
3
3
|
module ThemesHelper
|
4
|
-
def scrolled_theme_asset_path(theme, path)
|
5
|
-
|
4
|
+
def scrolled_theme_asset_path(theme, path, theme_file_role: nil, relative_url: false)
|
5
|
+
path =
|
6
|
+
theme.files.dig(theme_file_role, :resized) ||
|
7
|
+
asset_pack_path("media/pageflow-scrolled/themes/#{theme.name}/#{path}")
|
8
|
+
|
9
|
+
if relative_url
|
10
|
+
URI.parse(path).path
|
11
|
+
else
|
12
|
+
path
|
13
|
+
end
|
6
14
|
end
|
7
15
|
|
8
16
|
def scrolled_theme_stylesheet_pack_tags(theme)
|
9
17
|
safe_join(theme.options.fetch(:stylesheet_packs, []).map do |pack|
|
10
|
-
stylesheet_pack_tag(pack, media: 'all')
|
18
|
+
stylesheet_pack_tag(pack, media: 'all', data: {theme: ''})
|
11
19
|
end)
|
12
20
|
end
|
13
21
|
|
@@ -17,17 +25,95 @@ module PageflowScrolled
|
|
17
25
|
scrolled_theme_deep_declarations(theme.options.fetch(:colors, {}), 'color')
|
18
26
|
].flatten
|
19
27
|
|
20
|
-
content_tag('style', raw(
|
28
|
+
content_tag('style', raw(<<~CSS), data: {theme: ''})
|
29
|
+
:root {
|
30
|
+
#{declarations.join("\n")}
|
31
|
+
}
|
32
|
+
|
33
|
+
#{scrolled_theme_typography_rules(theme)}
|
34
|
+
#{scrolled_theme_properties_rules(theme)}
|
35
|
+
CSS
|
36
|
+
end
|
37
|
+
|
38
|
+
def scrolled_theme_typography_rules(theme)
|
39
|
+
RuleSet.new(prefix: 'typography').generate(theme.options.fetch(:typography, {}))
|
40
|
+
end
|
41
|
+
|
42
|
+
def scrolled_theme_properties_rules(theme)
|
43
|
+
RuleSet.new(prefix: 'scope',
|
44
|
+
custom_properties: true).generate(theme.options.fetch(:properties, {}))
|
21
45
|
end
|
22
46
|
|
23
47
|
private
|
24
48
|
|
25
|
-
|
49
|
+
BREAKPOINTS = {
|
50
|
+
sm: '640px',
|
51
|
+
md: '768px',
|
52
|
+
lg: '1024px',
|
53
|
+
xl: '1280px'
|
54
|
+
}.freeze
|
55
|
+
|
56
|
+
# @api private
|
57
|
+
class RuleSet
|
58
|
+
def initialize(prefix:, custom_properties: false)
|
59
|
+
@prefix = prefix
|
60
|
+
@property_prefix = custom_properties ? '--theme-' : ''
|
61
|
+
end
|
62
|
+
|
63
|
+
def generate(rules)
|
64
|
+
rules.flat_map { |rule_name, declarations|
|
65
|
+
declarations = declarations.dup
|
66
|
+
declarations_by_breakpoint = extract_breakpoint_declarations!(declarations)
|
67
|
+
|
68
|
+
[
|
69
|
+
generate_rule(rule_name, declarations),
|
70
|
+
*declarations_by_breakpoint.map do |breakpoint_name, breakpoint_declarations|
|
71
|
+
generate_media_query_rule(breakpoint_name, rule_name, breakpoint_declarations)
|
72
|
+
end
|
73
|
+
]
|
74
|
+
}.join("\n")
|
75
|
+
end
|
76
|
+
|
77
|
+
private
|
78
|
+
|
79
|
+
def extract_breakpoint_declarations!(declarations)
|
80
|
+
BREAKPOINTS.keys.each_with_object({}) { |breakpoint_name, result|
|
81
|
+
result[breakpoint_name] = declarations.delete(breakpoint_name)
|
82
|
+
}.compact
|
83
|
+
end
|
84
|
+
|
85
|
+
def generate_media_query_rule(breakpoint_name, rule_name, declarations)
|
86
|
+
<<~CSS
|
87
|
+
@media (min-width: #{BREAKPOINTS[breakpoint_name]}) {
|
88
|
+
#{generate_rule(rule_name, declarations)}
|
89
|
+
}
|
90
|
+
CSS
|
91
|
+
end
|
92
|
+
|
93
|
+
def generate_rule(rule_name, declarations)
|
94
|
+
declarations = declarations.map do |property, value|
|
95
|
+
"#{@property_prefix}#{property.to_s.dasherize}: #{value};"
|
96
|
+
end
|
97
|
+
|
98
|
+
<<~CSS
|
99
|
+
#{selector(rule_name)} {
|
100
|
+
#{declarations.join("\n")}
|
101
|
+
}
|
102
|
+
CSS
|
103
|
+
end
|
104
|
+
|
105
|
+
def selector(rule_name)
|
106
|
+
return ':root' if rule_name == :root
|
107
|
+
".#{@prefix}-#{rule_name.to_s.camelize(:lower)}"
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def scrolled_theme_deep_declarations(hash, suffix = nil, prefix = [])
|
26
112
|
hash.flat_map do |key, value|
|
27
113
|
if value.is_a?(Hash)
|
28
114
|
scrolled_theme_deep_declarations(value, suffix, [*prefix, key])
|
29
115
|
else
|
30
|
-
name = [*prefix, key, suffix].join('_')
|
116
|
+
name = [*prefix, key, suffix].compact.join('_')
|
31
117
|
"--theme-#{name.dasherize}: #{value};"
|
32
118
|
end
|
33
119
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module PageflowScrolled
|
2
|
+
# @api private
|
3
|
+
module WebpackPublicPathHelper
|
4
|
+
def scrolled_webpack_public_path_script_tag
|
5
|
+
content_tag(:script, WebpackPublicPathHelper.js_snippet(request).html_safe)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.js_snippet(request = nil)
|
9
|
+
config_host = Rails.configuration.action_controller.asset_host
|
10
|
+
packs_dir = Webpacker.config.public_output_path.basename
|
11
|
+
asset_host = if config_host.respond_to?(:call)
|
12
|
+
config_host.call(packs_dir, request)
|
13
|
+
else
|
14
|
+
config_host
|
15
|
+
end
|
16
|
+
|
17
|
+
"var __webpack_public_path__ = '#{asset_host}/#{packs_dir}/';"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -12,6 +12,13 @@ module PageflowScrolled
|
|
12
12
|
.where(pageflow_scrolled_storylines: {revision_id: revision})
|
13
13
|
end
|
14
14
|
|
15
|
+
def self.select_used_type_names(revision, type_names)
|
16
|
+
all_for_revision(revision)
|
17
|
+
.where(type_name: type_names)
|
18
|
+
.map(&:type_name)
|
19
|
+
.uniq
|
20
|
+
end
|
21
|
+
|
15
22
|
# @api private
|
16
23
|
class Batch
|
17
24
|
def initialize(section, items)
|
@@ -1,6 +1,9 @@
|
|
1
1
|
<%= stylesheet_link_tag 'pageflow_paged/editor', media: 'all' %>
|
2
|
-
<%=
|
2
|
+
<%= stylesheet_packs_with_chunks_tag 'pageflow-scrolled-frontend' %>
|
3
|
+
|
4
|
+
<%= scrolled_theme_properties_style_tag(entry.theme) %>
|
5
|
+
<%= scrolled_theme_stylesheet_pack_tags(entry.theme) %>
|
3
6
|
|
4
7
|
<%= javascript_include_tag 'pageflow/vendor' %>
|
5
8
|
<%= javascript_include_tag 'pageflow/editor/vendor' %>
|
6
|
-
<%=
|
9
|
+
<%= scrolled_editor_javascript_packs_tag(entry) %>
|
@@ -6,8 +6,6 @@
|
|
6
6
|
<meta charset="utf-8" />
|
7
7
|
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
8
8
|
|
9
|
-
<%= scrolled_theme_stylesheet_pack_tags(@entry.theme) %>
|
10
|
-
<%= scrolled_theme_properties_style_tag(@entry.theme) %>
|
11
9
|
|
12
10
|
<%= social_share_meta_tags_for(@entry) %>
|
13
11
|
<%= meta_tags_for_entry(@entry) %>
|
@@ -15,8 +13,10 @@
|
|
15
13
|
<%= scrolled_favicons_for_entry(@entry.theme) %>
|
16
14
|
|
17
15
|
<%= javascript_include_tag 'pageflow_scrolled/legacy' %>
|
16
|
+
<%= scrolled_frontend_stylesheet_packs_tag(@entry, widget_scope: @widget_scope) %>
|
18
17
|
|
19
|
-
<%=
|
18
|
+
<%= scrolled_theme_properties_style_tag(@entry.theme) %>
|
19
|
+
<%= scrolled_theme_stylesheet_pack_tags(@entry.theme) %>
|
20
20
|
|
21
21
|
<%= render_widget_head_fragments(@entry, scope: @widget_scope) %>
|
22
22
|
|
@@ -44,7 +44,8 @@
|
|
44
44
|
<%= render_widgets(@entry, scope: @widget_scope, insert_point: :bottom_of_entry) %>
|
45
45
|
</div>
|
46
46
|
|
47
|
-
<%=
|
47
|
+
<%= scrolled_webpack_public_path_script_tag %>
|
48
|
+
<%= scrolled_frontend_javascript_packs_tag(@entry, widget_scope: @widget_scope) %>
|
48
49
|
|
49
50
|
<%= scrolled_entry_json_seed_script_tag(@entry, @seed_options || {}) %>
|
50
51
|
</body>
|
@@ -29,7 +29,16 @@ json.config do
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
json.enabled_feature_names entry.enabled_feature_names
|
32
33
|
json.partial! 'pageflow_scrolled/entry_json_seed/theme', theme: entry.theme
|
34
|
+
|
35
|
+
json.additional_seed_data(
|
36
|
+
entry_config
|
37
|
+
.additional_frontend_seed_data
|
38
|
+
.for(entry,
|
39
|
+
self,
|
40
|
+
include_unused: options[:include_unused_additional_seed_data])
|
41
|
+
)
|
33
42
|
end
|
34
43
|
|
35
44
|
unless options[:skip_i18n]
|
@@ -70,6 +79,13 @@ unless options[:skip_collections]
|
|
70
79
|
end
|
71
80
|
end
|
72
81
|
|
82
|
+
json.widgets do
|
83
|
+
json.array!(widgets) do |widget|
|
84
|
+
json.partial! 'pageflow_scrolled/entry_json_seed/widget',
|
85
|
+
widget: widget
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
73
89
|
files_json_seed(json, entry) unless options[:skip_files]
|
74
90
|
end
|
75
91
|
end
|
@@ -1,8 +1,19 @@
|
|
1
1
|
json.theme do
|
2
2
|
json.assets do
|
3
|
-
json.logo_desktop scrolled_theme_asset_path(theme, 'logoDesktop.svg'
|
4
|
-
|
3
|
+
json.logo_desktop scrolled_theme_asset_path(theme, 'logoDesktop.svg',
|
4
|
+
theme_file_role: :logo_desktop)
|
5
|
+
json.logo_mobile scrolled_theme_asset_path(theme, 'logoMobile.svg',
|
6
|
+
theme_file_role: :logo_mobile)
|
5
7
|
json.unmute scrolled_theme_asset_path(theme, 'unmute.mp3')
|
8
|
+
|
9
|
+
json.icons({})
|
10
|
+
json.icons do
|
11
|
+
theme.options.fetch(:custom_icons, []).each do |icon_name|
|
12
|
+
json.set!(icon_name,
|
13
|
+
scrolled_theme_asset_path(theme, "icons/#{icon_name}.svg",
|
14
|
+
relative_url: true))
|
15
|
+
end
|
16
|
+
end
|
6
17
|
end
|
7
18
|
json.options(theme.options.deep_transform_keys { |key| key.to_s.camelize(:lower) })
|
8
19
|
end
|
@@ -95,7 +95,6 @@ de:
|
|
95
95
|
label: Player Controls
|
96
96
|
values:
|
97
97
|
classic: Klassisch
|
98
|
-
waveform: Waveform
|
99
98
|
posterId:
|
100
99
|
label: Poster
|
101
100
|
waveformColor:
|
@@ -121,15 +120,9 @@ de:
|
|
121
120
|
initial_slider_position:
|
122
121
|
inline_help: Falls die Trennlinie zu Beginn nicht in der Mitte des Bildes liegen soll, lässt sich ihre Startposition hier voreinstellen.
|
123
122
|
label: Trennlinien-Startposition
|
124
|
-
slider:
|
125
|
-
inline_help: Zeigt/versteckt den sichtbaren Schieberegler.
|
126
|
-
label: Schieberegler sichtbar
|
127
123
|
slider_color:
|
128
124
|
inline_help: Farbe des Schiebereglers inklusive Griff kann frei konfiguriert werden. Achte auf gute Sichtbarkeit des Reglers über den gesamten Vorher/Nachher-Bereich.
|
129
125
|
label: Schieberegler-Farbe
|
130
|
-
slider_handle:
|
131
|
-
inline_help: Aktiviert/deaktiviert den Griff des Schiebereglers.
|
132
|
-
label: Schieberegler-Griff sichtbar
|
133
126
|
name: Vorher/Nachher
|
134
127
|
tabs:
|
135
128
|
general: Vorher/Nachher
|
@@ -192,6 +185,7 @@ de:
|
|
192
185
|
label: Initialer Gierungswinkel
|
193
186
|
initialYaw:
|
194
187
|
label: Initialer Neigungswinkel
|
188
|
+
name: 360°-Bild
|
195
189
|
edit_chapter:
|
196
190
|
attributes:
|
197
191
|
summary:
|
@@ -652,7 +646,6 @@ de:
|
|
652
646
|
confirm: Einverstanden
|
653
647
|
opt_in_prompt:
|
654
648
|
datawrapper: Ich bin damit einverstanden, dass mir Diagramme von Datawrapper angezeigt werden.
|
655
|
-
video: Ich bin damit einverstanden, dass mir Videos von externen Anbietern gezeigt werden.
|
656
649
|
opt_out:
|
657
650
|
prompt: Um externe Dienste auszuschalten, %{link} klicken.
|
658
651
|
prompt_link: hier
|
@@ -95,7 +95,6 @@ en:
|
|
95
95
|
label: Player Controls
|
96
96
|
values:
|
97
97
|
classic: Classic
|
98
|
-
waveform: Waveform
|
99
98
|
posterId:
|
100
99
|
label: Poster
|
101
100
|
waveformColor:
|
@@ -121,15 +120,9 @@ en:
|
|
121
120
|
initial_slider_position:
|
122
121
|
inline_help: In case the divider shouldn't be in the middle at the start, its start position can be set here.
|
123
122
|
label: Divider start position
|
124
|
-
slider:
|
125
|
-
inline_help: Shows/hides visible slider at divider line.
|
126
|
-
label: Show Slider
|
127
123
|
slider_color:
|
128
124
|
inline_help: You can configure slider color (incl. slider handle) freely. Make sure that the slider can be seen clearly on every position over the entire Before/After area.
|
129
125
|
label: Slider Color
|
130
|
-
slider_handle:
|
131
|
-
inline_help: Activates/deactivates slider handle.
|
132
|
-
label: Show Slider Handle
|
133
126
|
name: Before/After
|
134
127
|
tabs:
|
135
128
|
general: Before/After
|
@@ -192,6 +185,7 @@ en:
|
|
192
185
|
label: Initial Pitch
|
193
186
|
initialYaw:
|
194
187
|
label: Initial Yaw
|
188
|
+
name: 360° Image
|
195
189
|
edit_chapter:
|
196
190
|
attributes:
|
197
191
|
summary:
|
@@ -260,7 +254,6 @@ en:
|
|
260
254
|
inline_help: This setting controls the position of the scrolling foreground layer of the section on desktop devices. On mobile devices the foreground layer will automatically become centered.
|
261
255
|
label: Content alignment
|
262
256
|
values:
|
263
|
-
center: Center
|
264
257
|
left: Left
|
265
258
|
right: Right
|
266
259
|
staticShadowOpacity:
|
@@ -471,7 +464,6 @@ en:
|
|
471
464
|
confirm: Okay
|
472
465
|
opt_in_prompt:
|
473
466
|
datawrapper: I agree with being shown Datawrapper graphs.
|
474
|
-
video: I agree with being shown videos from external providers.
|
475
467
|
opt_out:
|
476
468
|
prompt: To opt out of displaying external embeds, change your settings %{link}.
|
477
469
|
prompt_link: here
|
@@ -0,0 +1,25 @@
|
|
1
|
+
de:
|
2
|
+
pageflow_scrolled:
|
3
|
+
public:
|
4
|
+
third_party_consent:
|
5
|
+
opt_in_prompt:
|
6
|
+
video: DELETED
|
7
|
+
youtube: Ich bin damit einverstanden, dass mir YouTube Videos gezeigt werden.
|
8
|
+
vimeo: Ich bin damit einverstanden, dass mir Vimeo Videos gezeigt werden.
|
9
|
+
facebook: Ich bin damit einverstanden, dass mir Facebook Videos gezeigt werden.
|
10
|
+
consent_accept_all: Alle akzeptieren und schließen
|
11
|
+
consent_configure: Mehr Informationen
|
12
|
+
consent_deny_all: Ablehnen
|
13
|
+
consent_expand_vendor: Mehr Informationen
|
14
|
+
consent_no_vendors: Es werden im Moment keine Drittanbieter verwendet.
|
15
|
+
consent_prompt_html: |-
|
16
|
+
Diese Website nutzt Technologien von Drittanbietern.
|
17
|
+
Wir bitten Sie hiermit um Erlaubnis, diese Technologien zu verwenden.
|
18
|
+
Sie können Ihre Einwilligung später jederzeit auf unserer Seite zur
|
19
|
+
<a href="%{privacyLinkUrl}" target="_blank">Datenschutzerklärung</a>
|
20
|
+
ändern oder widerrufen.
|
21
|
+
consent_save: Auswahl speichern
|
22
|
+
consent_settings: Privatsphäre-Einstellungen
|
23
|
+
pageflow:
|
24
|
+
datawrapper_chart_embed_opt_in:
|
25
|
+
feature_name: 'Opt-in für Datawrapper Embeds'
|