pageflow 15.2.2 → 15.3.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pageflow might be problematic. Click here for more details.

Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +338 -85
  3. data/admins/pageflow/accounts.rb +1 -98
  4. data/admins/pageflow/entry.rb +21 -1
  5. data/admins/pageflow/entry_templates.rb +140 -0
  6. data/admins/pageflow/membership.rb +12 -0
  7. data/admins/pageflow/user.rb +5 -3
  8. data/app/assets/javascripts/pageflow/admin/entries.js +65 -0
  9. data/app/assets/javascripts/pageflow/admin/users.js +1 -1
  10. data/app/assets/javascripts/pageflow/asset_urls.js.erb +1 -0
  11. data/app/assets/javascripts/pageflow/base.js +0 -12
  12. data/app/assets/javascripts/pageflow/components.js +2 -6
  13. data/app/assets/javascripts/pageflow/dist/ui.js +47 -14
  14. data/app/assets/javascripts/pageflow/vendor.js +13 -10
  15. data/app/assets/stylesheets/pageflow/base.scss +0 -7
  16. data/app/assets/stylesheets/pageflow/editor/base.scss +2 -0
  17. data/app/assets/stylesheets/pageflow/editor/composables.scss +5 -1
  18. data/app/assets/stylesheets/pageflow/editor/emulation_mode_button.scss +44 -55
  19. data/app/assets/stylesheets/pageflow/editor/help.scss +2 -2
  20. data/app/assets/stylesheets/pageflow/ui/tooltip.scss +17 -3
  21. data/app/helpers/pageflow/admin/entries_helper.rb +16 -0
  22. data/app/helpers/pageflow/structured_data_helper.rb +0 -2
  23. data/app/models/pageflow/account.rb +21 -1
  24. data/app/models/pageflow/entry.rb +9 -2
  25. data/app/models/pageflow/entry_duplicate.rb +1 -0
  26. data/app/models/pageflow/entry_template.rb +16 -2
  27. data/app/policies/pageflow/account_policy.rb +10 -0
  28. data/app/policies/pageflow/entry_template_policy.rb +5 -1
  29. data/app/views/admin/accounts/_entry_template_details.html.arb +7 -5
  30. data/app/views/admin/accounts/_form.html.erb +3 -49
  31. data/app/views/admin/entries/_attributes_table.html.arb +5 -0
  32. data/app/views/admin/entries/_not_allowed_to_see_entry_types.json.jbuilder +2 -0
  33. data/app/views/admin/entries/entry_types.json.jbuilder +4 -0
  34. data/app/views/admin/entry_templates/_form.html.erb +58 -0
  35. data/app/views/admin/users/_not_allowed_to_see_user_quota.html.erb +3 -0
  36. data/app/views/components/pageflow/admin/entry_templates_tab.rb +48 -0
  37. data/app/views/pageflow/admin/users/_quota_exhausted.html.erb +1 -1
  38. data/config/initializers/admin_resource_tabs.rb +5 -0
  39. data/config/initializers/help_entries.rb +1 -5
  40. data/config/locales/de.yml +88 -155
  41. data/config/locales/en.yml +79 -143
  42. data/db/migrate/20200515112500_add_constraints_to_entry_templates.rb +21 -0
  43. data/db/migrate/20200807135200_rename_pageflow_entry_template_entry_type_to_entry_type_name.rb +7 -0
  44. data/entry_types/paged/app/assets/javascripts/pageflow_paged/components.js +7 -0
  45. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +1479 -1391
  46. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +9218 -0
  47. data/{app/assets/javascripts/pageflow → entry_types/paged/app/assets/javascripts/pageflow_paged}/dist/react-client.js +1 -1
  48. data/{app/assets/javascripts/pageflow → entry_types/paged/app/assets/javascripts/pageflow_paged}/dist/react-server.js +3 -3
  49. data/entry_types/paged/app/assets/javascripts/pageflow_paged/frontend.js +6 -0
  50. data/entry_types/paged/app/assets/javascripts/pageflow_paged/server_rendering.js +9 -0
  51. data/entry_types/paged/app/assets/javascripts/pageflow_paged/vendor.js +8 -0
  52. data/entry_types/paged/app/controllers/pageflow_paged/application_controller.rb +2 -2
  53. data/{app/helpers/pageflow → entry_types/paged/app/helpers/pageflow_paged}/page_background_asset_helper.rb +4 -3
  54. data/{app/helpers/pageflow → entry_types/paged/app/helpers/pageflow_paged}/react_server_side_rendering_helper.rb +23 -2
  55. data/entry_types/paged/app/views/layouts/pageflow_paged/application.html.erb +2 -2
  56. data/entry_types/paged/app/views/pageflow_paged/editor/entries/_head.html.erb +2 -2
  57. data/entry_types/paged/app/views/pageflow_paged/entries/_entry.html.erb +1 -1
  58. data/{app/views/pageflow → entry_types/paged/app/views/pageflow_paged}/page_background_asset/_element.html.erb +0 -0
  59. data/{app/views/pageflow → entry_types/paged/app/views/pageflow_paged}/react/_widget.html.erb +0 -0
  60. data/{app/views/pageflow → entry_types/paged/app/views/pageflow_paged}/react/page.html.erb +0 -0
  61. data/entry_types/paged/config/initializers/features.rb +1 -1
  62. data/entry_types/paged/config/initializers/help_entries.rb +17 -0
  63. data/entry_types/paged/config/locales/new/help.de.yml +162 -0
  64. data/entry_types/paged/config/locales/new/help.en.yml +153 -0
  65. data/entry_types/paged/lib/pageflow_paged/engine.rb +13 -0
  66. data/entry_types/paged/lib/pageflow_paged/plugin.rb +5 -1
  67. data/entry_types/paged/lib/pageflow_paged/react.rb +12 -0
  68. data/{lib/pageflow → entry_types/paged/lib/pageflow_paged}/react/page_type.rb +2 -2
  69. data/{lib/pageflow → entry_types/paged/lib/pageflow_paged}/react/widget_type.rb +2 -2
  70. data/entry_types/paged/vendor/assets/javascripts/development/pageflow_paged/vendor/react-server.js +20613 -0
  71. data/entry_types/paged/vendor/assets/javascripts/development/pageflow_paged/vendor/react.js +21495 -0
  72. data/entry_types/paged/vendor/assets/javascripts/production/pageflow_paged/vendor/react-server.js +24 -0
  73. data/entry_types/paged/vendor/assets/javascripts/production/pageflow_paged/vendor/react.js +24 -0
  74. data/entry_types/scrolled/app/assets/javascripts/pageflow_scrolled/legacy.js +0 -0
  75. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +2 -2
  76. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +14 -4
  77. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +2 -2
  78. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +8 -0
  79. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +6 -0
  80. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +2 -0
  81. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +33 -0
  82. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +8 -0
  83. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +38 -0
  84. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/content_elements/batch.json.jbuilder +2 -0
  85. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -7
  86. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +19 -3
  87. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +3 -0
  88. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +7 -0
  89. data/entry_types/scrolled/config/initializers/help_entries.rb +16 -0
  90. data/entry_types/scrolled/config/locales/new/de.yml +345 -13
  91. data/entry_types/scrolled/config/locales/new/en.yml +257 -14
  92. data/entry_types/scrolled/config/routes.rb +1 -0
  93. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +28 -0
  94. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDesktop.svg +56 -0
  95. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoMobile.svg +22 -0
  96. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +4 -0
  97. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +3 -1
  98. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +90 -30
  99. data/entry_types/scrolled/lib/tasks/pageflow_scrolled_tasks.rake +64 -27
  100. data/entry_types/scrolled/package/contentElements-editor.js +242 -183
  101. data/entry_types/scrolled/package/contentElements-frontend.css +1 -0
  102. data/entry_types/scrolled/package/contentElements-frontend.js +624 -279
  103. data/entry_types/scrolled/package/editor.js +2561 -363
  104. data/entry_types/scrolled/package/frontend-server.js +228 -0
  105. data/entry_types/scrolled/package/frontend/EditableText-4264c349.js +1993 -0
  106. data/entry_types/scrolled/package/frontend/Wavesurfer-c3c45324.js +378 -0
  107. data/entry_types/scrolled/package/frontend/components-cfe6a479.js +2115 -0
  108. data/entry_types/scrolled/package/frontend/getPrototypeOf-63c7c8e8.js +86 -0
  109. data/entry_types/scrolled/package/frontend/index.css +9 -0
  110. data/entry_types/scrolled/package/frontend/index.js +4425 -0
  111. data/entry_types/scrolled/package/package.json +17 -6
  112. data/entry_types/scrolled/spec/fixtures/audio.m4a +0 -0
  113. data/entry_types/scrolled/spec/fixtures/video.mp4 +0 -0
  114. data/lib/generators/pageflow/initializer/templates/pageflow.rb +20 -9
  115. data/lib/pageflow/ability_mixin.rb +14 -2
  116. data/lib/pageflow/configuration.rb +6 -5
  117. data/lib/pageflow/engine.rb +1 -0
  118. data/lib/pageflow/entry_type_configuration.rb +1 -0
  119. data/lib/pageflow/global_config_api.rb +5 -4
  120. data/lib/pageflow/react.rb +4 -2
  121. data/lib/pageflow/version.rb +1 -1
  122. data/{packages/pageflow → package}/config/jest/index.js +2 -1
  123. data/{packages/pageflow → package}/config/jest/transformers/jst.js +0 -0
  124. data/{packages/pageflow → package}/config/jest/transformers/upwardBabel.js +0 -0
  125. data/package/config/webpack.js +22 -0
  126. data/{packages/pageflow → package}/editor.js +480 -1129
  127. data/package/frontend.js +2525 -0
  128. data/{packages/pageflow → package}/package.json +3 -0
  129. data/{packages/pageflow → package}/testHelpers.js +114 -13
  130. data/{packages/pageflow → package}/ui.js +47 -14
  131. data/spec/factories/accounts.rb +3 -1
  132. data/spec/factories/entry_templates.rb +1 -0
  133. data/spec/factories/published_entries.rb +6 -1
  134. metadata +62 -26
  135. data/app/assets/javascripts/pageflow/dist/frontend.js +0 -5800
  136. data/config/initializers/entry_types.rb +0 -4
  137. data/entry_types/scrolled/package/frontend.js +0 -2879
  138. data/packages/pageflow/config/jest/transformers/cssModules.js +0 -1
  139. data/packages/pageflow/config/webpack.js +0 -14
@@ -6,8 +6,6 @@ module Pageflow
6
6
  include MetaTagsHelper
7
7
 
8
8
  def structured_data_for_entry(entry)
9
- return '' unless Pageflow.config_for(entry).features.enabled?('structured_data')
10
-
11
9
  content_tag(:script, type: 'application/ld+json') do
12
10
  render_json_partial('pageflow/structured_data/entry',
13
11
  entry: entry,
@@ -27,7 +27,27 @@ module Pageflow
27
27
  end
28
28
 
29
29
  def first_paged_entry_template
30
- EntryTemplate.find_or_initialize_by(account: self, entry_type: 'paged')
30
+ EntryTemplate.find_or_initialize_by(account: self, entry_type_name: 'paged')
31
+ end
32
+
33
+ def existing_and_potential_entry_templates
34
+ entry_type_names = Pageflow.config_for(self).entry_types.map(&:name)
35
+ existing_entry_templates = EntryTemplate.where(account_id: id).load
36
+ allowed_existing_entry_templates =
37
+ existing_entry_templates.select do |template|
38
+ entry_type_names.include?(template.entry_type_name)
39
+ end
40
+ free_type_names =
41
+ entry_type_names - allowed_existing_entry_templates.map(&:entry_type_name)
42
+
43
+ potential_entry_templates = free_type_names.map do |type_name|
44
+ EntryTemplate.new(
45
+ account_id: id,
46
+ entry_type_name: type_name
47
+ )
48
+ end
49
+
50
+ allowed_existing_entry_templates + potential_entry_templates
31
51
  end
32
52
 
33
53
  def blacklist_for_serialization
@@ -37,6 +37,7 @@ module Pageflow
37
37
 
38
38
  validates :account, :theming, :presence => true
39
39
  validates :title, presence: true
40
+ validate :entry_type_is_available_for_account
40
41
  validate :folder_belongs_to_same_account
41
42
 
42
43
  scope :editing, -> { joins(:edit_lock).merge(Pageflow::EditLock.active) }
@@ -57,12 +58,12 @@ module Pageflow
57
58
  def entry_template
58
59
  @entry_template ||= EntryTemplate.find_or_initialize_by(
59
60
  account_id: account.id,
60
- entry_type: type_name
61
+ entry_type_name: type_name
61
62
  )
62
63
  end
63
64
 
64
65
  def entry_type
65
- Pageflow.config_for(self).entry_types.find_by_name!(type_name)
66
+ Pageflow.config.entry_types.find_by_name!(type_name)
66
67
  end
67
68
 
68
69
  def edit_lock
@@ -139,6 +140,12 @@ module Pageflow
139
140
  errors.add(:folder, :must_be_same_account) if folder.present? && folder.account_id != account_id
140
141
  end
141
142
 
143
+ def entry_type_is_available_for_account
144
+ return if Pageflow.config_for(account).entry_types.map(&:name).include?(type_name)
145
+
146
+ errors.add(:type_name, :must_be_available_for_account, type_name: type_name)
147
+ end
148
+
142
149
  def update_password!(options)
143
150
  if options[:password].present?
144
151
  self.password = options[:password]
@@ -35,6 +35,7 @@ module Pageflow
35
35
 
36
36
  def new_attributes
37
37
  {
38
+ type_name: original_entry.type_name,
38
39
  title: new_title,
39
40
  account: original_entry.account,
40
41
  theming: original_entry.theming,
@@ -4,12 +4,26 @@ module Pageflow
4
4
  include SerializedConfiguration
5
5
  serialize :default_share_providers, JSON
6
6
  belongs_to :account
7
+ delegate :enabled_feature_names, to: :account
7
8
  has_many :widgets, as: :subject, dependent: :destroy
8
9
 
9
10
  validates :account, presence: true
11
+ validates :entry_type_name, presence: true
12
+ validates :entry_type_name,
13
+ uniqueness: {
14
+ scope: :account
15
+ }
16
+
17
+ def entry_type
18
+ Pageflow.config.entry_types.find_by_name!(entry_type_name)
19
+ end
20
+
21
+ def translated_entry_type_name
22
+ I18n.t("activerecord.values.pageflow/entry.type_names.#{entry_type_name}")
23
+ end
10
24
 
11
25
  def resolve_widgets(options = {})
12
- widgets.resolve(Pageflow.config_for(account), options)
26
+ widgets.resolve(Pageflow.config_for(self), options)
13
27
  end
14
28
 
15
29
  def copy_defaults_to(revision)
@@ -45,7 +59,7 @@ module Pageflow
45
59
  end
46
60
 
47
61
  def available_themes
48
- Pageflow.config_for(account).themes
62
+ Pageflow.config_for(self).themes
49
63
  end
50
64
 
51
65
  def hashify_provider_array(arr)
@@ -88,6 +88,16 @@ module Pageflow
88
88
  query.has_at_least_role?(:manager))
89
89
  end
90
90
 
91
+ def see_user_quota?
92
+ user.admin? ||
93
+ query.has_at_least_role?(:manager)
94
+ end
95
+
96
+ def see_entry_types?
97
+ user.admin? ||
98
+ query.has_at_least_role?(:publisher)
99
+ end
100
+
91
101
  def edit_role_on?
92
102
  user.admin? || query.has_at_least_role?(:manager)
93
103
  end
@@ -5,7 +5,11 @@ module Pageflow
5
5
  @entry_template = entry_template
6
6
  end
7
7
 
8
- def edit?
8
+ def create?
9
+ update?
10
+ end
11
+
12
+ def update?
9
13
  allows?(%w(publisher manager))
10
14
  end
11
15
 
@@ -1,17 +1,19 @@
1
- extensible_attributes_table_for(account.first_paged_entry_template,
2
- Pageflow.config_for(account)
1
+ h5(entry_template.translated_entry_type_name)
2
+
3
+ extensible_attributes_table_for(entry_template,
4
+ Pageflow.config_for(entry_template.account)
3
5
  .admin_attributes_table_rows.for(:entry_template)) do
4
6
  row :theme, class: 'theme' do
5
- account.first_paged_entry_template.theme_name
7
+ entry_template.theme_name
6
8
  end
7
9
  row :default_locale, class: 'default_locale' do
8
- t('pageflow.public._language', locale: account.first_paged_entry_template.default_locale)
10
+ t('pageflow.public._language', locale: entry_template.default_locale)
9
11
  end
10
12
  row :default_author, class: 'default_author'
11
13
  row :default_publisher, class: 'default_publisher'
12
14
  row :default_keywords, class: 'default_keywords'
13
15
  row :default_share_providers, class: 'default_share_providers' do
14
- account.first_paged_entry_template.default_share_providers
16
+ entry_template.default_share_providers
15
17
  .select { |_k, v| v == true }.keys.map(&:camelize).join(', ')
16
18
  end
17
19
  end
@@ -30,55 +30,9 @@
30
30
  <% end %>
31
31
  <% end %>
32
32
 
33
- <%= f.semantic_fields_for 'paged_entry_template_attributes', @entry_template do |et| %>
34
- <%= f.inputs do %>
35
- <%= et.input :default_locale,
36
- as: :select,
37
- include_blank: false,
38
- collection: Pageflow.config.available_public_locales.map{ |locale|
39
- [t('pageflow.public._language', locale: locale), locale.to_s]
40
- },
41
- hint: t('pageflow.admin.themings.default_locale_hint') %>
42
- <%= et.input :default_author,
43
- hint: t('pageflow.admin.themings.default_author_hint'),
44
- placeholder: Pageflow.config.default_author_meta_tag %>
45
- <%= et.input :default_publisher,
46
- hint: t('pageflow.admin.themings.default_publisher_hint'),
47
- placeholder: Pageflow.config.default_publisher_meta_tag %>
48
- <%= et.input :default_keywords,
49
- hint: t('pageflow.admin.themings.default_keywords_hint'),
50
- placeholder: Pageflow.config.default_keywords_meta_tag %>
51
- <%= render('admin/accounts/share_providers_label') %>
52
- <%= et.semantic_fields_for :share_providers,
53
- OpenStruct.new(
54
- @account.first_paged_entry_template.default_share_providers
55
- ) do |providers| %>
56
- <% Pageflow.config.available_share_providers.each do |provider| %>
57
- <%= providers.input provider,
58
- as: :boolean,
59
- label: provider.to_s.camelize,
60
- checked_value: 'true',
61
- unchecked_value: 'false' %>
62
- <% end %>
63
- <% end %>
64
- <% end %>
65
-
66
- <%= f.inputs do %>
67
- <%= render('admin/accounts/theming_defaults_inline_help') %>
68
- <%= et.input :theme_name, include_blank: false, collection: account_config.themes.names %>
69
- <%= render('admin/accounts/configuration_label') %>
70
- <%= et.semantic_fields_for :configuration,
71
- OpenStruct.new(
72
- @account.first_paged_entry_template.configuration
73
- ) do |config| %>
74
- <%= config.input :home_button_enabled,
75
- as: :boolean,
76
- label: I18n.t('activerecord.attributes.pageflow/entry_template.'\
77
- 'configuration.home_button_enabled') %>
78
- <% end %>
79
- <%= admin_widgets_fields(et, account_config) %>
80
- <% end %>
81
- <% end %>
33
+ <p>
34
+ <%= t('pageflow.admin.accounts.entry_template_hint') %>
35
+ </p>
82
36
 
83
37
  <%= f.actions do %>
84
38
  <%= f.action(:submit) %>
@@ -19,6 +19,11 @@ extensible_attributes_table_for(entry,
19
19
  end
20
20
  end
21
21
  end
22
+ row :type_name do
23
+ span do
24
+ I18n.t("activerecord.values.pageflow/entry.type_names.#{entry.type_name}")
25
+ end
26
+ end
22
27
  row :created_at
23
28
  row :edited_at
24
29
  row :published?, :class => 'published' do
@@ -0,0 +1,2 @@
1
+ json.error('forbidden')
2
+ json.exception(I18n.t('pageflow.admin.entries.not_allowed_to_see_entry_types'))
@@ -0,0 +1,4 @@
1
+ json.array! @entry_types do |name|
2
+ json.label name[0]
3
+ json.type_name name[1]
4
+ end
@@ -0,0 +1,58 @@
1
+ <%= admin_form_for [:admin, parent, resource], html: {class: 'entry_template'} do |f| %>
2
+ <% entry_template_config = Pageflow.config_for(resource) %>
3
+ <% entry_type_name = resource.entry_type_name || params[:entry_type_name] %>
4
+
5
+ <%= f.inputs do %>
6
+ <%= f.semantic_errors :entry_type_name %>
7
+ <%= render('admin/accounts/theming_defaults_inline_help') %>
8
+ <%= f.hidden_field :entry_type_name, value: entry_type_name %>
9
+ <%= f.input :default_locale,
10
+ as: :select,
11
+ include_blank: false,
12
+ collection: Pageflow.config.available_public_locales.map{ |locale|
13
+ [t('pageflow.public._language', locale: locale), locale.to_s]
14
+ },
15
+ hint: t('pageflow.admin.themings.default_locale_hint') %>
16
+ <%= f.input :default_author,
17
+ hint: t('pageflow.admin.themings.default_author_hint'),
18
+ placeholder: Pageflow.config.default_author_meta_tag %>
19
+ <%= f.input :default_publisher,
20
+ hint: t('pageflow.admin.themings.default_publisher_hint'),
21
+ placeholder: Pageflow.config.default_publisher_meta_tag %>
22
+ <%= f.input :default_keywords,
23
+ hint: t('pageflow.admin.themings.default_keywords_hint'),
24
+ placeholder: Pageflow.config.default_keywords_meta_tag %>
25
+ <%= render('admin/accounts/share_providers_label') %>
26
+ <%= f.semantic_fields_for :share_providers,
27
+ OpenStruct.new(
28
+ resource.default_share_providers
29
+ ) do |providers| %>
30
+ <% Pageflow.config.available_share_providers.each do |provider| %>
31
+ <%= providers.input provider,
32
+ as: :boolean,
33
+ label: provider.to_s.camelize,
34
+ checked_value: 'true',
35
+ unchecked_value: 'false' %>
36
+ <% end %>
37
+ <% end %>
38
+
39
+ <%= f.input :theme_name, include_blank: false, collection: entry_template_config.themes.names %>
40
+ <% if entry_type_name == 'paged' %>
41
+ <%= render('admin/accounts/configuration_label') %>
42
+ <%= f.semantic_fields_for :configuration,
43
+ OpenStruct.new(
44
+ resource.configuration
45
+ ) do |config| %>
46
+ <%= config.input :home_button_enabled,
47
+ as: :boolean,
48
+ label: I18n.t('activerecord.attributes.pageflow/entry_template.'\
49
+ 'configuration.home_button_enabled') %>
50
+ <% end %>
51
+ <% end %>
52
+ <%= admin_widgets_fields(f, entry_template_config) %>
53
+ <% end %>
54
+ <%= f.actions do %>
55
+ <%= f.action(:submit) %>
56
+ <%= f.action(:cancel, :wrapper_html => {:class => 'cancel'}) %>
57
+ <% end %>
58
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <div class='user_quota_not_allowed'>
2
+ <%= I18n.t('pageflow.admin.users.not_allowed_to_see_user_quota') %>
3
+ </div>
@@ -0,0 +1,48 @@
1
+ module Pageflow
2
+ module Admin
3
+ class EntryTemplatesTab < ViewComponent
4
+ def build(theming)
5
+ account = theming.account
6
+ table_subjects = account.existing_and_potential_entry_templates
7
+
8
+ table_for(table_subjects, i18n: Pageflow::EntryTemplate) do
9
+ column do |entry_template|
10
+ if entry_template.id
11
+ render 'admin/accounts/entry_template_details', entry_template: entry_template
12
+ else
13
+ h5(entry_template.translated_entry_type_name)
14
+ end
15
+ end
16
+ column do |entry_template|
17
+ if entry_template.id
18
+ edit_link(entry_template, account)
19
+ else
20
+ new_link(entry_template, account)
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ def new_link(entry_template, account)
27
+ link_to(
28
+ I18n.t('active_admin.new'),
29
+ new_admin_account_entry_template_path(
30
+ account,
31
+ entry_template,
32
+ entry_type_name: entry_template.entry_type_name
33
+ )
34
+ )
35
+ end
36
+
37
+ def edit_link(entry_template, account)
38
+ link_to(
39
+ I18n.t('active_admin.edit'),
40
+ edit_admin_account_entry_template_path(
41
+ account,
42
+ entry_template
43
+ )
44
+ )
45
+ end
46
+ end
47
+ end
48
+ end
@@ -1 +1 @@
1
- <p>Replace by creating <code>app/views/pageflow/admin/users/_quota_exhausted.html.erb</code></p>
1
+ <p class="quota_exhausted_fallback">Replace by creating <code>app/views/pageflow/admin/users/_quota_exhausted.html.erb</code></p>
@@ -7,6 +7,11 @@ Pageflow.configure do |config|
7
7
 
8
8
  config.admin_resource_tabs.register(:theming, name: :entries, component: Pageflow::Admin::EntriesTab)
9
9
  config.admin_resource_tabs.register(:theming, name: :users, component: Pageflow::Admin::UsersTab)
10
+ config.admin_resource_tabs.register(
11
+ :theming,
12
+ name: :entry_templates,
13
+ component: Pageflow::Admin::EntryTemplatesTab
14
+ )
10
15
  end
11
16
 
12
17
  Pageflow.after_configure do |config|
@@ -1,10 +1,6 @@
1
1
  Pageflow.configure do |config|
2
- config.help_entries.register('pageflow.help_entries.overview', priority: 100)
3
- config.help_entries.register('pageflow.help_entries.meta_data', priority: 50)
4
2
  config.help_entries.register('pageflow.help_entries.files', priority: 40)
5
3
  config.help_entries.register('pageflow.help_entries.text_tracks', priority: 35)
6
- config.help_entries.register('pageflow.help_entries.outline', priority: 30)
7
- config.help_entries.register('pageflow.help_entries.page_options', priority: 20)
8
- config.help_entries.register('pageflow.help_entries.atmo', priority: 7)
4
+
9
5
  config.help_entries.register('pageflow.help_entries.publishing', priority: 5)
10
6
  end
@@ -112,6 +112,7 @@ de:
112
112
  less_than: Kleiner als
113
113
  logout: Abmelden
114
114
  main_content: Bitte implementieren Sie %{model}#main_content, um Inhalte anzuzeigen.
115
+ new: Neu erstellen
115
116
  new_model: "%{model} erstellen"
116
117
  next: Weiter
117
118
  pagination:
@@ -195,6 +196,7 @@ de:
195
196
  summary: Zusammenfassung
196
197
  theme_name: Theme
197
198
  title: Titel
199
+ type_name: Beitrags-Typ
198
200
  updated_at: Geändert am
199
201
  url: Permalink
200
202
  with_publication_state: Veröffentlichungsstatus
@@ -207,6 +209,7 @@ de:
207
209
  default_locale: Standard-Sprache
208
210
  default_publisher: Standard-Herausgeber
209
211
  default_share_providers: Standard-Share-Links
212
+ entry_type_name: Beitrags-Typ
210
213
  theme_name: Theme
211
214
  pageflow/folder:
212
215
  account: Konto
@@ -353,6 +356,12 @@ de:
353
356
  attributes:
354
357
  folder:
355
358
  must_be_same_account: Ordner muss zu gleichem Konto gehören wie Beitrag
359
+ type_name:
360
+ must_be_available_for_account: "'%{type_name}' ist für dieses Konto nicht verfügbar"
361
+ pageflow/entry_template:
362
+ attributes:
363
+ entry_type_name:
364
+ taken: bereits konfiguriert. Es existiert bereits eine Beitragsvorlage für den Beitrags-Typ in diesem Konto. Kehre zum Beitragsvorlagen-Tab zurück und bearbeite die existierende Beitragsvorlage anstatt eine neue anzulegen.
356
365
  pageflow/membership:
357
366
  attributes:
358
367
  user:
@@ -382,6 +391,9 @@ de:
382
391
  pageflow/entry:
383
392
  one: Beitrag
384
393
  other: Beiträge
394
+ pageflow/entry_template:
395
+ one: Beitragsvorlage
396
+ other: Beitragsvorlagen
385
397
  pageflow/folder:
386
398
  one: Ordner
387
399
  other: Ordner
@@ -433,6 +445,9 @@ de:
433
445
  telegram: Telegram (nur Mobilgeräte)
434
446
  twitter: Twitter
435
447
  whats_app: WhatsApp (nur Mobilgeräte)
448
+ type_names:
449
+ paged: Seitenbasiert / klassisch
450
+ scrolled: Kontinuierlich scrollend / Pageflow Next
436
451
  pageflow/membership:
437
452
  role:
438
453
  editor: Redakteur
@@ -777,6 +792,7 @@ de:
777
792
  cannot_add: Was Sie tun möchten, ist nicht möglich.
778
793
  none_addable_tooltip: Kein Konto verfügbar
779
794
  accounts:
795
+ entry_template_hint: Einige Formularfelder sind ab sofort im Beitragsvorlagen-Tab auf der Informations-Seite dieses Kontos zu finden.
780
796
  no_entries: Keine Beiträge
781
797
  no_members: Keine Benutzer
782
798
  theming_defaults_inline_help: Die folgenden Einstellungen werden als Standard für neue Beiträge des Kontos verwendet. Änderungen wirken sich nicht auf existierende Beiträge aus.
@@ -798,6 +814,7 @@ de:
798
814
  members: Mitglieder
799
815
  no_members: Es sind keine Redakteure zugeordnet.
800
816
  no_revisions: Bisher keine Revisionen
817
+ not_allowed_to_see_entry_types: Sie sind nicht berechtigt, die verfügbaren Beitrags-Typen für dieses Konto abzurufen
801
818
  not_published: Nicht veröffentlicht
802
819
  password_protected: Mit Passwortschutz
803
820
  preview: Vorschau
@@ -828,6 +845,10 @@ de:
828
845
  entry_membership_hint: Laden Sie Benutzer in Ihr Konto ein, um sie als Mitglieder dieser Story zuzuweisen.
829
846
  none_addable_tooltip: Kein Beitrag verfügbar
830
847
  user_quota_exhausted: Ihr Benutzerkontingent ist erschöpft.
848
+ entry_templates:
849
+ page_title:
850
+ edit: Beitragsvorlage bearbeiten für Beitrags-Typ
851
+ new: Beitragsvorlage erstellen für Beitrags-Typ
831
852
  features:
832
853
  states:
833
854
  default: Standard (%{inherited})
@@ -850,6 +871,7 @@ de:
850
871
  account_editor_hint: Auf Kontoebene zugeordnete Benutzer sind hier nicht aufgeführt
851
872
  accounts: Konten
852
873
  entries: Beiträge
874
+ entry_templates: Beitragsvorlagen
853
875
  features: Features
854
876
  members: Mitglieder
855
877
  revisions: Revisionen
@@ -904,6 +926,7 @@ de:
904
926
  no_accounts: Keine Konten
905
927
  no_entries: Keine Beiträge
906
928
  none: Sie haben keine Beiträge.
929
+ not_allowed_to_see_user_quota: Sie sind nicht berechtigt, die Nutzer-Quota für dieses Konto abzurufen.
907
930
  resend_invitation: Einladung erneut verschicken
908
931
  resent_invitation: Der Benutzer wurde erneut per E-Mail eingeladen.
909
932
  roles:
@@ -948,7 +971,7 @@ de:
948
971
  help_entries:
949
972
  page_type:
950
973
  menu_item: Audio
951
- text: "# Audio\n\n*Wiedergabe von Audiodatei mit Steuerelementen* \n \nHiermit kannst Du Audiodateien mit Hintergrund-Bild oder Hintergrund-Video und Textinhalten\nkombinieren. Wie beim Seitentyp „Video“ werden\nSteuerelemente angezeigt, und ebenso kann eine zusätzliche\nInfobox mit Text befüllt werden.\n\nTypische Anwendungsbeispiele: Interview, O-Töne,\nMusikstücke"
974
+ text: "# Audio\n\n*Wiedergabe von Audiodatei mit Steuerelementen* \n \nHiermit kannst Du Audiodateien mit Hintergrund-Bild oder Hintergrund-Video und Textinhalten\nkombinieren. Wie beim Seitentyp „Video“ werden\nSteuerelemente angezeigt, und ebenso kann eine zusätzliche\nInfobox mit Text befüllt werden.\n\nUnter „Optionen“ kann das Erscheinungsbild des Players auf die Visualisierung der Waveform eines Audio-Files gewechselt werden.\n\nTypische Anwendungsbeispiele: Interview, O-Töne,\nMusikstücke"
952
975
  open: Audio anhören
953
976
  page_attributes:
954
977
  audio_player_controls_variant:
@@ -969,27 +992,7 @@ de:
969
992
  help_entries:
970
993
  page_type:
971
994
  menu_item: Hintergrund-Bild/-Video
972
- text: |-
973
- # Hintergrund-Bild/-Video
974
-
975
- Bildschirmfüllendes Bild und Text
976
-
977
- Mit dem Seitentyp „Hintergrund-Bild/-Video“ werden großformatige
978
- Bilder oder Videos mit Text überlagert und zur optimalen Lesbarkeit
979
- mit einem manuell einstellbaren Farbverlauf gepaart. über
980
- die Auswahl des Bildausschnitts stellst Du sicher, dass
981
- Dein Bild auch auf mobilen Endgeräten optimal dargestellt
982
- wird. Wahlweise kann der Text für einen ausreichenden
983
- Kontrast auch invertiert - also von hell in dunkel -
984
- vertauscht werden. Das bietet sich bei hellen
985
- Hintergrund-Bildern an.
986
-
987
- User haben übrigens die Möglichkeit Farbverlauf und Text
988
- im Front-End auszublenden, sofern Sie sich speziell für
989
- das Hintergrund-Bild oder - Video interessieren.
990
-
991
- Typische Anwendungsbeispiele: Präsentation, Teil einer
992
- Bildergalerie, Portrait
995
+ text: "# Hintergrund-Bild/-Video\n\n*Bildschirmfüllendes Bild und Text*\n\nMit dem Seitentyp „Hintergrund-Bild/-Video“ werden großformatige Bilder oder Videos mit Text überlagert und zur optimalen Lesbarkeit mit einem manuell einstellbaren Farbverlauf gepaart. Über die Auswahl des Bildausschnitts stellst Du sicher, dass Dein Bild auch auf mobilen Endgeräten im Portrait-Modus den relevanten Ausschnitt deines Motivs zeigt. \n\nWahlweise kann der Text für einen ausreichenden\nKontrast auch invertiert - also von hell in dunkel -\nvertauscht werden. Das bietet sich bei hellen\nHintergrund-Bildern an.\n\nUser haben übrigens die Möglichkeit Farbverlauf und Text\nim Front-End auszublenden, sofern Sie sich speziell für\ndas Hintergrund-Bild oder - Video interessieren.\n\nTypische Anwendungsbeispiele: Präsentation, Teil einer\nBildergalerie, Portrait\n\n**Hinweis zum Ton bei Hintergrund-Videos:** Aufgrund technischer Einschränkungen, basierend auf der „Autoplay Policy“ der Browser-Hersteller, können Videos mit Ton nicht auf allen Geräten/Browsern automatisch abgespielt werden. \n\nUm die Wiedergabe von Videoloops auf mobilen Geräten und bei Safari auf Desktop und Tablets zu ermöglichen wird der Ton daher unterdrückt. Bei Chrome wird diese Einschränkung durch einen Unmute-Button umgangen, bei Firefox entscheiden Nutzer selbst, ob die automatische Wiedergabe von Audios zugelassen wird."
993
996
  page_type_category_name: Basic
994
997
  page_type_description: Bildschirmfüllendes Bild oder Video-Loop mit Text
995
998
  page_type_name: Hintergrund Bild/Video
@@ -1237,10 +1240,8 @@ de:
1237
1240
  page_link:
1238
1241
  reset: Zurücksetzen
1239
1242
  emulation_mode_button:
1240
- desktop: Desktop
1241
1243
  disabled_hint: Von diesem Seitentyp nicht unterstützt
1242
- header: 'Vorschau Modus:'
1243
- phone: Phone
1244
+ tooltip: Desktop/ Phone Vorschau
1244
1245
  entry_preview:
1245
1246
  navigation_disabled_hint: Seitenwechsel sind innerhalb der Phone Vorschau nicht möglich.
1246
1247
  file_item:
@@ -1415,6 +1416,9 @@ de:
1415
1416
  widgets:
1416
1417
  attributes:
1417
1418
  media_loading_spinner:
1419
+ animation_duration:
1420
+ inline_help: Steuert die Animationsdauer beim Laden des Spinners
1421
+ label: Animationsdauer
1418
1422
  blur_strength:
1419
1423
  inline_help: Steuern Sie die Unschärfe des Hintergrundbilds.
1420
1424
  label: Unschärfe
@@ -1424,6 +1428,9 @@ de:
1424
1428
  remove_logo:
1425
1429
  label: Logo entfernen
1426
1430
  title_loading_spinner:
1431
+ animation_duration:
1432
+ inline_help: Steuert die Animationsdauer beim Laden des Spinners
1433
+ label: Animationsdauer
1427
1434
  blur_strength:
1428
1435
  inline_help: Steuern Sie die Unschärfe des Hintergrundbilds.
1429
1436
  label: Unschärfe
@@ -1469,22 +1476,6 @@ de:
1469
1476
  overview_button_enabled_disabled:
1470
1477
  inline_help: Diese Funktion steht in diesem Theme nicht zur Verfügung.
1471
1478
  help_entries:
1472
- atmo:
1473
- menu_item: Atmo Audio
1474
- text: |-
1475
- # Atmo Audio
1476
-
1477
- Mit der „Atmo“ kann jede Seite, unabhängig vom Seitentyp, im Hintergrund Sound abspielen. Dabei kannst Du bestimmen, ob ein Sound nur auf einer Seite zu hören ist oder über mehrere Seiten ohne Unterbrechung läuft. Wähle dazu einfach für die benachbarten Seiten die selbe Audiodatei als Atmo aus.
1478
-
1479
- Auf diese Weise lassen sich Kapitel akustisch voneinander absetzen und zusammenhängende Seiten stärker verweben.
1480
-
1481
- Beim Seitentyp Video kann zusätzlich ausgwählt werden, ob der Hintergrundsound während der Video-Wiedergabe normal oder leiser weitergespielt oder ganz ausgeblendet werden soll.
1482
-
1483
- Die Einstellung der Atmo-Sounds erreichst du bei jeder Seite über den Reiter „Optionen“.
1484
-
1485
- Sollte Dich die Atmo während der Bearbeitung Deines Beitrags im Editor einmal stören, kannst Du sie mit der Tastenkombination „Alt + a“ vorübergehend stumm schalten. Um die Atmo wieder zu aktivieren, drücke einfach erneut „Alt + a“.
1486
-
1487
- ACHTUNG: Atmo-Audios werden auf mobilen Geräten nicht wiedergegeben.
1488
1479
  files:
1489
1480
  menu_item: Dateien verwalten
1490
1481
  text: |-
@@ -1530,13 +1521,6 @@ de:
1530
1521
  die Verarbeitung noch nicht abgeschlossen ist. Während des
1531
1522
  Ladevorgangs kann also problemlos weiter gearbeitet werden.
1532
1523
 
1533
- ## Datei-Einstellungen bearbeiten
1534
-
1535
- Für jede Datei kann über die Schaltfläche "Einstellungen
1536
- bearbeiten" ein Dialog mit weiteren Optionen angezeigt
1537
- werden. Hier können z.B. die beim Upload eingegebenen
1538
- Metadaten (wie die Angaben zum Urheberrecht) noch einmal
1539
- bearbeiten werden.
1540
1524
 
1541
1525
  ## Dateien wiederverwenden
1542
1526
 
@@ -1546,73 +1530,72 @@ de:
1546
1530
  "Dateien verwalten“ auf "Hinzufügen -> Wiederverwenden", um
1547
1531
  andere Beiträge nach Dateien zu durchsuchen und sie in den
1548
1532
  bearbeiteten Beitrag zu übernehmen.
1549
- meta_data:
1550
- menu_item: Titel und Optionen
1551
- text: |
1552
- # Titel und Optionen
1553
-
1554
- ## Allgemein
1555
-
1556
- ### Titel des Pageflows
1557
1533
 
1558
- Hier kannst Du Deinem Pageflow einen Titel geben, der in der
1559
- Titelleiste des Browserfensters angezeigt wird. Unter diesem
1560
- Titel wird Dein Pageflow nach der Veröffentlichung auch in
1561
- Suchmaschinen indiziert werden.
1562
-
1563
- ### Sprache
1564
-
1565
- Wähle hier, in welcher Sprache Dein Pageflow ausgespielt
1566
- wird. Hierbei geht es um nicht editierbare Texte, wie
1567
- z.B. den Multimedia-Hinweis, Scroll-Hinweis, die Übersicht
1568
- und Impressum.
1569
-
1570
- ### Impressum
1571
-
1572
- Hier kannst Du Deine Impressums-Information im Freitext
1573
- eingeben.
1534
+ ## Datei-Einstellungen bearbeiten
1574
1535
 
1575
- ## Erscheinungsbild
1536
+ Für jede Datei kann über die Schaltfläche "Einstellungen
1537
+ bearbeiten" ein Dialog mit weiteren Optionen angezeigt
1538
+ werden. Hier können z.B. die beim Upload eingegebenen
1539
+ Metadaten (wie die Angaben zum Urheberrecht) noch einmal
1540
+ bearbeiten werden.
1541
+ meta_data:
1542
+ general:
1543
+ menu_item: Allgemein
1544
+ text: |
1545
+ # Allgemein
1576
1546
 
1577
- ### Multimedia Hinweis vor dem Start
1547
+ ## Titel des Pageflows
1578
1548
 
1579
- Entscheide, ob zu Beginn Deines Pageflows ein Hinweis angezeigt wird.
1549
+ Hier kannst Du Deinem Pageflow einen Titel geben, der in der
1550
+ Titelleiste des Browserfensters angezeigt wird. Unter diesem
1551
+ Titel wird Dein Pageflow nach der Veröffentlichung auch in
1552
+ Suchmaschinen indiziert werden.
1580
1553
 
1581
- ### Kapitelanfang hervorheben
1554
+ ## Sprache
1582
1555
 
1583
- Mit dieser Option wird der Titel der jeweils ersten Seite
1584
- eines Kapitels größer dargestellt.
1556
+ Wähle hier, in welcher Sprache Dein Pageflow ausgespielt
1557
+ wird. Hierbei geht es um die Frontend-Elemente wie
1558
+ z.B. Scroll-Hinweise, die Mouse-over-Texte der Navigation
1559
+ und das Impressum.
1585
1560
 
1586
- ## Neue Seiten hervorheben
1561
+ ## Credits
1587
1562
 
1588
- Zeigt zum Start des Pageflows in einer Info-Box die seit dem
1589
- letzten Besuch neu erstellen Seiten an.
1563
+ Hier kannst Du Deine Impressums-Information im Freitext
1564
+ eingeben. Zudem können für alle Dateien unter „Dateien
1565
+ verwalten“ auch Bildrechte vergeben werden, die dann
1566
+ automatisch im Impressum angezeigt werden.
1567
+ menu_item: Titel und Optionen
1568
+ social:
1569
+ menu_item: Social
1570
+ text: |
1571
+ # Social
1590
1572
 
1591
- ### Home-Button anzeigen
1573
+ ## Social Sharing Bild
1592
1574
 
1593
- Es gibt die Möglichkeit, in der Navigation einen Button
1594
- anzuzeigen, der auf eine externe Seite verlinkt, z.B. zurück
1595
- auf die Homepage, von der aus Du den Pageflow verlinkt hast.
1575
+ Wähle hier das Bild aus, das beim Teilen des Pageflows in
1576
+ sozialen Netzwerken erscheinen soll.
1596
1577
 
1597
- ### Navigationsleiste
1578
+ ## Zusammenfassung
1598
1579
 
1599
- Wähle zwischen "Navigationsleiste mit Fortschrittsbalken“
1600
- oder "Navigationsleiste mit Thumbnails“. Beachte, dass bei
1601
- mobilen Endgeräten statt der Navigationsleiste aus
1602
- Platzgründen in beiden Fällen lediglich das Icon „Übersicht“
1603
- angezeigt wird.
1580
+ Trage hier ein, welcher Beschreibungstext beim Teilen in
1581
+ sozialen Netzwerken angezeigt wird.
1604
1582
 
1605
- ## Social
1583
+ ## Social Sharing URL
1606
1584
 
1607
- ### Social Sharing Bild
1585
+ Wenn Beiträge in eigene Webseiten (mit abweichender URL)
1586
+ eingebettet werden kann hier eine individuelle URL
1587
+ festgelegt werden, die beim Teilen des Beitrags verwendet
1588
+ werden soll.
1608
1589
 
1609
- Wähle hier das Bild aus, das beim Teilen des Pageflows in
1610
- sozialen Netzwerken erscheinen soll.
1590
+ ## Social Share Links
1611
1591
 
1612
- ### Zusammenfassung
1592
+ Bestimme, welche Share-Buttons beim Klick auf die
1593
+ „Share-Funktion“ angezeigt werden soll.
1594
+ text: |
1595
+ # Titel und Optionen
1613
1596
 
1614
- Trage hier ein, welcher Beschreibungstext beim Teilen in
1615
- sozialen Netzwerken angezeigt wird.
1597
+ Allgemeine Einstellungen für den Beitrag. Bitte einen
1598
+ Unterpunkt auf der linken Seite auswählen.
1616
1599
  outline:
1617
1600
  menu_item: Kapitel und Seiten
1618
1601
  text: |
@@ -1639,58 +1622,6 @@ de:
1639
1622
  sich Pageflow, als ob keine Kapitelstruktur vorhanden
1640
1623
  ist. (Kapitel und Kapiteltitel werden in diesem Falle nicht
1641
1624
  in der Übersicht bzw. Navigation dargestellt).
1642
- overview:
1643
- menu_item: Übersicht
1644
- text: |
1645
- # Übersicht
1646
-
1647
- Dies ist der Editor zum Bearbeiten eines Pageflows. Mit
1648
- seiner Zweiteilung ermöglicht er die direkte Vorschau
1649
- während der Bearbeitung, zeigt Änderungen am Text oder neu
1650
- ausgewählte Dateien unmittelbar an und speichert diese
1651
- automatisch.
1652
-
1653
- Die Seitenleiste kann durch einen Klick auf den Anfasser zur
1654
- Größenänderung ein- und ausgeblendet werden. Mit einem
1655
- Verschieben der Seitenleiste nach links und rechts kannst Du
1656
- die Größe des Vorschaufensters verändern. Wird das
1657
- Vorschaufenster schmal, und somit eher zu einem hochkantigen
1658
- Mobiltelefon-Format gestaucht, wird aus Platzgründen statt
1659
- der Navigationsleiste nur das Icon „Übersicht“ angezeigt.
1660
-
1661
- Die Navigation des Editors ist unterteilt in die vier
1662
- Bereiche:
1663
-
1664
- ## Titel und Optionen
1665
-
1666
- Unter „Titel und Optionen“ kannst Du grundsätzliche
1667
- Parameter des Erscheinungsbildes, sowie Titel, Sprache,
1668
- Impressum etc. einstellen. Dazu können Texte festgelegt
1669
- werden, die beim Teilen des Beitrags über Social Media
1670
- Dienste angezeigt werden sollen.
1671
-
1672
- Details findest Du unter: [Titel und Optionen](#pageflow.help_entries.meta_data)
1673
-
1674
- ## Dateien verwalten
1675
-
1676
- Unter „Dateien verwalten“ lädst Du die Mediendateien hoch,
1677
- die im Pageflow verwendet werden sollen. Du kannst hier auch
1678
- bereits hochgeladene Videos, Fotos und Audios
1679
- wiederverwenden.
1680
-
1681
- Details findest Du unter: [Dateien verwalten](#pageflow.help_entries.files)
1682
-
1683
- ## Gliederung
1684
-
1685
- Über die „Gliederung“ kannst Du Kapitel und Seiten
1686
- hinzufügen, also die eigentlichen Inhalte bearbeiten. Per
1687
- Drag&Drop lassen sich Seiten und Kapitel auch jederzeit
1688
- umsortieren.
1689
-
1690
- Details findest Du unter: [Kapitel und Seiten](#pageflow.help_entries.outline)
1691
- page_options:
1692
- menu_item: Allgemeine Seitenoptionen
1693
- text: "# Allgemeine Seitenoptionen\n\n### Titel\n\nHier gibst Du den Titel der jeweiligen Seite ein. Dieser\nwird nicht nur als Überschrift des Fliesstextes der Seite\nausgespielt, sondern dient zudem als Titel innerhalb der\nNavigation und der Übersicht. Wird eine einzelne Seite in\nsozialen Netzwerken geteilt, ist dieser Titel zugleich auch\nder Titel des Social Media-Beitrages.\n\n### Titel ausblenden\n\nOptional lässt sich der Titel auch ausblenden. Das heisst:\nEr wird nicht mehr als Überschrift im Fliesstext\nangezeigt. Er bleibt zur Identifikation einer Seite\nallerdings in Navigation, Übersicht und geteilten Beträgen\nerhalten.\n\n### Tagline und Untertitel\n\nHier kann wahlweise eine Tagline und/oder ein Untertitel\neingegeben werden. Falls Du ein Häkchen bei „Titel\nausblenden“ gesetzt hast, sind Tagline und Untertitel über\ndem Fliesstext ebenfalls nicht zu sehen.\n\n### Text\n\nDer Textblock kann mit den Buttons unterhalb des\nEingabefeldes formatiert werden. [ B=Fett / I=kursiv /\nU=unterstrichen „gekippte acht“=Link/URL auf fremde Seite\neinfügen].\n\nAlle Änderungen sind in der linken Frontend-Ansicht\nsichtbar, sobald das entsprechende Texteingabefeld im\nEditierbereich verlassen wurde.\n\n### Textposition\n\nWähle hier, ob der Text auf der linken oder rechten Seite\nangezeigt wird.\n\n### Intensität der Abblendung\n\nDie Intensität des Farbverlaufs dient der Lesbarkeit von\nTexten auf Videos oder Bildern.\n\nDurch den Schieberegler kann der Bildhintergrund so stark\nabgedunkelt bzw. aufgehellt werden, bis der Kontrast\nzwischen Bild und Text ausreichend ist.\n\n### Farben invertieren\n\nBeim Invertieren werden „hell“ und „dunkel“ vertauscht, die\nsonst weiße Schrift ändert sich dabei automatisch in\nschwarz.\n\nGrundsätzlich gilt: Helle Schrift für dunkle Bilder, dunkle\nSchrift für helle Bilder.\n\n### Thumbnail\n\nDas Thumbnail ersetzt das ansonsten automatisch generierte\nVorschaubild in der Navigation und in der Übersicht.\n\n### In Navigationsleiste anzeigen\n\nIst diese Option nicht gesetzt, wird die jeweilige Seite\nnicht in der Navigation repräsentiert, kann also nicht\ndirekt über die Navigation erreicht werden.\n\nDies bietet sich vor allem für Seiten an, die inhaltlich als\n„Unterseiten“ einer anderen Seite anzusehen sind.\n\n### Übergangseffekt\n\nEs gibt verschiedene Effekte, die sichtbar sind, wenn von einer Kapitelseite zur nächsten gescrollt oder geklickt wird. Zur Auswahl stehen Seitenübergänge, wie „Überblendung“, „Schwarzblende“ oder „Harter Schnitt“ die sich vertikal auswirken, zudem kann auch „Horizontal Scrollen“ von rechts oder links ausgewählt werden. \n\nWelcher Effekt verwendet wird, kann unter „Optionen“ individuell für jede Seite festgelegt werden.\n\n### Text verzögert einblenden\n\nBestimme mit dieser Option, ob Text und Abblendung mit zeitlicher Verzögerung angezeigt werden.\nHierbei sehen User zunächst nur den Hintergrund, dann erscheinen Titel, Tagline und Untertitel und mit minimaler Verzögerung schließlich der Fließtext.\n\nInsgesamt stehen drei Verzögerungslängen zur Verfügung: kurz = 1 Sekunde, mittel = 3 Sekunde, lang = 5 Sekunde.\n\nDieses Feature eignet sich zum Beispiel für Intros oder Kapitelanfänge.\n\n### Beschreibung für Übersicht\n\nHier kann der Text eingegeben werden, der angezeigt wird,\nwenn der User in der Übersicht mit der Mouse über die\njeweilige Seite fährt. Außerdem entspricht der hier\neingegebene Text"
1694
1625
  page_types:
1695
1626
  menu_item: Seitentypen
1696
1627
  text: |
@@ -1703,10 +1634,7 @@ de:
1703
1634
  in der linken Spalte.
1704
1635
  publishing:
1705
1636
  menu_item: Veröffentlichen
1706
- text: "# Veröffentlichen\n\nKlicke in der Gliederung auf die Schaltfläche\n„Veröffentlichen“ um Deinen Pageflow zu publizieren. Eine\nReportage kann entweder zeitlich unbegrenzt oder bis zu\neinem bestimmten Stichtag veröffentlicht\nwerden. \n\nAußerdem gibt es die Möglichkeit, Pageflows mit einem Passwort zu schützen. \nHierzu muss einfach das entsprechende Häkchen bei „Mit Passwort schützen\" gesetzt werden. \nDas System verwendet als Benutzernamen den Namen des Kontos und generiert ein Passwort, \nwelches auch manuell geändert werden kann. \n\nBeiträge, die bereits veröffentlicht sind, können nachträglich mit einem Passwort geschützt werden - \nund andersherum können auch geschützte Beiträge anschließend mit erneutem Klick auf „Veröffentlichen“ vom Passwortschutz befreit werden. \nBei der Veröffentlichung werden die auszuführenden Schritte im Dialogfenster angezeigt und erklärt.\n\nVeröffentlichte Pageflows können jederzeit manuell\ndepubliziert werden. Sollte eine Reportage bereits\nveröffentlicht sein, bleiben Änderungen solange öffentlich\nunsichtbar, bis die Reportage erneut veröffentlicht wird.\nEine Reportage kann stets nur von einem Redakteur zur\ngleichen Zeit bearbeitet werden.\n\nVorschaubild zum Einbetten in Externe Webseiten Nach der\nVeröffentlichung erstellt das System ein Vorschaubild, das\nals iframe zur Verlinkung in eine externe Seite eingebunden\nwerden kann. Anhand des ausgespielten Codes lässt sich die\nGröße des iframes frei einstellen. Hierbei ist jedoch eine\nMindesthöhe von 150px und und eine Mindestbreite von 220px\nzu beachten."
1707
- storylines:
1708
- menu_item: Erzählstränge
1709
- text: "# Erzählstränge\n\nErgänzend zur linearen Erzählung von „oben nach unten“, können auch weitere (non-lineare) Erzählstränge als Exkurse zu vertiefenden Inhalten genutzt werden. Mit „Erzählstrang“ ist hier die zusammenhängende Kapitel- und Seitenabfolge gemeint, durch die ein User hindurch scrollt. Zu unterscheiden ist zwischen dem sogenannten Haupterzählstrang, in dem ein User zu Beginn eines Pageflows einsteigt, und weiteren untergeordneten Erzählsträngen. \n\nUm vom Haupterzählstrang einen Abzweig zu erstellen, benutze eine „Verweise“-Seite (Mosaik, Collage oder Hotspot) und lege auf der jeweiligen Seite unter „Verweise“ die entsprechenden Verknüpfungen an. \n\nDabei kann durch das Festlegen einer „übergeordneten Seite“ bestimmt werden, zu welcher Seite der User am Ende des Erzählstrangs gelangt.\n\nOptisch unterstützt werden diese Exkurse in untergeordnete Erzählstränge durch einen horizontalen Seitenübergangseffekt, der beim Eintreten und Verlassen dieser Stränge automatisch eingestellt ist. \n\nErstellt werden diese Erzählstränge in der Gliederung über ein Klick auf die Plus-Schaltfläche neben der Erzählstrang-Auswahl. Dabei öffnet sich automatisch ein neues Kapitel, in dem dann weitere Seiten angelegt werden können.\n\n\n### Übergeordnete Seiten\n\nIn jedem Untererzählstrang muss eine „Übergeordnete Seite“ festgelegt werden, die bestimmt, wohin ein User beim zurück-scrollen gelangt. Mit einem Klick auf das Stift-Symbol neben der Erzählstrang-Auswahl kann diese Zielseite ausgewählt werden. Durch die Auswahl einer übergeordneten Seite erscheint auf allen Seiten eines untergeordneten Erzählstrangs zudem automatisch ein „Zurück“-Button, der zu der übergeordneten Seite führt. \n\n\n### Kapitel-Hierarchie\n\nDurch die Verwendung mehrerer „untergeordneter“ Erzählstränge und der Festlegung von übergeordneten Seiten ergibt sich eine Kapitelhierarchie, wie man sie auch von Buch-Gliederungen kennt:\n\n1. (Hauptstrang), 1.1 (Übergeordneter Unterstrang), 1.1.1 (vertiefende Seite im übergeordneten Unterstrang) und so weiter.\n\nDiese Hierarchie kann nachträglich in der Erzählstrang-Auswahl über ein Klick auf Stift-Symbol geändert werden. Ein untergeordneter Erzählstrang kann an dieser Stelle zudem auch nachträglich zum Haupt-Erzählstrang umsortiert werden.\n\n\n### Scroll-Nachfolger\n\nFalls der User von der letzten Seite eines Unterkapitels (1.1.1) auf eine andere Stelle im Beitrag geleitet werden soll (z.B. 2.1), kann hierzu ebenfalls über das Stiftsymbol in den Erzählstrang-Einstellungen der sogenannte „Scroll-Nachfolger“ festgelegt werden. Um in dem Beispiel zu bleiben wäre der folgende Ablauf denkbar: 1 -> 1.1 -> 1.1.1 -> 2.1\n\nAchtung: Während des Editierens wird immer nur das aktuell ausgewählte Kapitel angezeigt. Um zu den anderen Erzählsträngen zu gelangen klicke auf das Auswahlmenü „Erzählstrang“."
1637
+ text: "# Veröffentlichen\n\nKlicke in der Gliederung auf die Schaltfläche\n„Veröffentlichen“ um Deinen Pageflow zu publizieren. Eine\nReportage kann entweder zeitlich unbegrenzt oder bis zu\neinem bestimmten Stichtag veröffentlicht\nwerden. \n\n### Passwortschutz\n\nAußerdem gibt es die Möglichkeit, Pageflows mit einem Passwort zu schützen. \nHierzu muss einfach das entsprechende Häkchen bei „Mit Passwort schützen\" gesetzt werden. \nDas System verwendet als Benutzernamen den Namen des Kontos und generiert ein Passwort, \nwelches auch manuell geändert werden kann. \n\nBeiträge, die bereits veröffentlicht sind, können nachträglich mit einem Passwort geschützt werden - und andersherum können auch geschützte Beiträge anschließend mit erneutem Klick auf „Veröffentlichen“ vom Passwortschutz befreit werden. Bei der Veröffentlichung werden die auszuführenden Schritte im Dialogfenster angezeigt und erklärt.\n\n### Änderungen nach der Veröffentlichung\n\nVeröffentlichte Pageflows können jederzeit manuell depubliziert werden. Sollte eine Reportage bereits veröffentlicht sein, werden nachträgliche Änderungen erst öffentlich sichtbar, sobald die Reportage erneut veröffentlicht wird. \n\n\n### Einbettung als iframe\n\nVeröffentlichte Beiträge können auch in die eigene Webseite eingebettet werden. Weitere Informationen findest Du in diesem [Artikel](https://pageflow.freshdesk.com/support/solutions/articles/11000002742-wie-kann-ich-einen-beitrag-in-eine-webseite-einbetten)\n\n### Einbettung iframe-Teaser \n\nVorschaubild zum Einbetten in Externe Webseiten Nach der Veröffentlichung erstellt das System ein Vorschaubild, das als iframe zur Verlinkung in eine externe Seite eingebunden werden kann. Anhand des ausgespielten Codes lässt sich die\nGröße des iframes frei einstellen. Hierbei ist jedoch eine Mindesthöhe von 150px und und eine Mindestbreite von 220px zu beachten."
1710
1638
  text_tracks:
1711
1639
  menu_item: Textspuren
1712
1640
  text: |-
@@ -1815,10 +1743,14 @@ de:
1815
1743
  scroll_over_from_left: Überlagern (von links)
1816
1744
  scroll_over_from_right: Überlagern (von rechts)
1817
1745
  scroll_right: Scrollen (von rechts)
1746
+ paged_entry_type:
1747
+ feature_name: Beitragstyp Seitenbasiert/Klassisch
1818
1748
  phone_horizontal_slideshow_mode:
1819
1749
  feature_name: Horizontales Wischen auf Phones
1820
1750
  quotas:
1821
1751
  exhausted: Quota verbraucht.
1752
+ scrolled_entry_type:
1753
+ feature_name: Beitragstyp Kontinuierlich Scrollend/Pageflow Next
1822
1754
  selectable_themes:
1823
1755
  feature_name: Editor-Theme-Auswahl
1824
1756
  storyline_attributes:
@@ -1871,6 +1803,7 @@ de:
1871
1803
  author: Name des Autors.
1872
1804
  credits: Text wird zusammen mit dem Impressumsverweis angezeigt.
1873
1805
  keywords: Schlüsselwörter als Vorschlag für Suchmaschinen.
1806
+ locale: Sprache der Beschriftungen in Navigationsleisten und Steuerelementen des Beitrags.
1874
1807
  publisher: Name oder Firmenname des Herausgeber.
1875
1808
  share_providers: Social Media Plattformen, die unter dem Menüpunkt "Teilen" des Beitrags angezeigt werden sollen
1876
1809
  share_url: URL, die geteilt werden soll, wenn der Benutzer auf einen der Social Media Buttons klickt. Feld frei lassen, um URL des veröffentlichten Beitrags zu verwenden.
@@ -1961,7 +1894,7 @@ de:
1961
1894
  help_entries:
1962
1895
  page_type:
1963
1896
  menu_item: Video
1964
- text: "# Video\n\n*Wiedergabe einer Videodatei mit Steuerelementen* \n \nAnders als bei „Hintergrund-Videos“ werden hier Textelemente nach ein\npaar Sekunden automatisch ausgeblendet, um die\nAufmerksamkeit auf das Bewegtbild zu lenken. Mit\nSteuerelementen kann der Nutzer das Video jederzeit\nstarten und pausieren, vor- oder zurückspulen. Ein\nweiterer Unterschied ist, dass Du wählen kannst, ob ein\nVideo automatisch gestartet wird, sobald die Seite\nangezeigt wird. Als dezente Alternative oder Ergänzung zu\nden normalen Texteingabemöglichkeiten, kann eine\nsogenannte „Infobox“ mit Text befüllt werden.\n\nUnter Optionen lässt sich ein automatisches weiterscrollen am Ende des Videos aktivieren. \nDas kann nützlich sein, um einen nahtlosen Übergang zur nächsten Seite herzustellen.\n\nTypische Anwendungsbeispiele: Filme aller Art, Interviews,\nPortrait"
1897
+ text: "# Video\n\n*Wiedergabe einer Videodatei mit Steuerelementen* \n \nAnders als bei „Hintergrund-Videos“ werden hier Textelemente nach ein\npaar Sekunden automatisch ausgeblendet, um die\nAufmerksamkeit auf das Bewegtbild zu lenken. Mit\nSteuerelementen kann der Nutzer das Video jederzeit\nstarten und pausieren, vor- oder zurückspulen. Ein\nweiterer Unterschied ist, dass Du wählen kannst, ob ein\nVideo automatisch* gestartet wird, sobald die Seite\nangezeigt wird. Als dezente Alternative oder Ergänzung zu\nden normalen Texteingabemöglichkeiten, kann eine\nsogenannte „Infobox“ mit Text befüllt werden.\n\nUnter Optionen lässt sich ein automatisches Weiterscrollen am Ende des Videos aktivieren. \nDas kann nützlich sein, um einen nahtlosen Übergang zur nächsten Seite herzustellen.\n\nTypische Anwendungsbeispiele: Filme aller Art, Interviews,\nPortrait\n\n*Hinweis zum Autoplay bei Videos: Aufgrund technischer Einschränkungen, basierend auf der „Autoplay Policy“ der Browser-Hersteller, können Videos mit Ton nicht auf allem Geräten/Browsern automatisch abgespielt werden. Bei Safari und auf mobilen Geräten können Videos nur manuell gestartet werden. "
1965
1898
  page_attributes:
1966
1899
  mobile_poster_image_id:
1967
1900
  inline_help: Wird in der Mobilvariante gezeigt, bevor das Video startet.