pageflow 15.4.0 → 15.5.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 +94 -166
- data/admins/pageflow/user.rb +0 -2
- data/app/assets/javascripts/pageflow/dist/ui.js +32 -9
- data/app/assets/javascripts/pageflow/editor/vendor.js +1 -0
- data/app/assets/stylesheets/pageflow/themes/default/page.scss +7 -0
- data/app/models/pageflow/chapter.rb +3 -9
- data/app/models/pageflow/page.rb +1 -4
- data/app/models/pageflow/revision.rb +0 -4
- data/app/models/pageflow/storyline.rb +2 -9
- data/app/views/pageflow/admin/initial_passwords/edit.html.erb +2 -1
- data/app/views/pageflow/themes/_theme.json.jbuilder +1 -1
- data/config/initializers/revision_components.rb +5 -0
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +37 -13
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +19 -6
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +28 -0
- data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +3 -9
- data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +1 -4
- data/entry_types/scrolled/app/models/pageflow_scrolled/section.rb +3 -9
- data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +1 -9
- data/entry_types/scrolled/app/views/pageflow_scrolled/entries/_global_notices.html.erb +10 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +6 -3
- data/entry_types/scrolled/config/locales/de.yml +14 -0
- data/entry_types/scrolled/config/locales/en.yml +15 -49
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +43 -6
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +26 -0
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/create_bundle_symlinks_for_yarn.rake +32 -0
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/dummy.rake +8 -0
- data/entry_types/scrolled/lib/tasks/{pageflow_scrolled_tasks.rake → pageflow_scrolled/storybook.rake} +53 -14
- data/entry_types/scrolled/package/contentElements-editor.js +66 -7
- data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
- data/entry_types/scrolled/package/contentElements-frontend.js +109 -52
- data/entry_types/scrolled/package/editor.js +34 -25
- data/entry_types/scrolled/package/frontend/EditableText-7093fd0e.js +1071 -0
- data/entry_types/scrolled/package/frontend/Viewer-e49e7807.js +387 -0
- data/entry_types/scrolled/package/frontend/{Wavesurfer-b88b02e0.js → Wavesurfer-0adf5667.js} +1 -1
- data/entry_types/scrolled/package/frontend/{components-3ead1b4a.js → components-6a6793ca.js} +2 -1
- data/entry_types/scrolled/package/frontend/i18n-4dc6c377.js +1092 -0
- data/entry_types/scrolled/package/frontend/index.css +2 -2
- data/entry_types/scrolled/package/frontend/index.js +358 -179
- data/entry_types/scrolled/package/frontend/useBrowserFeature-91a4c29d.js +33 -0
- data/entry_types/scrolled/package/package.json +3 -5
- data/lib/generators/pageflow/initializer/templates/pageflow.rb +0 -7
- data/lib/pageflow/entry_export_import/revision_serialization.rb +15 -13
- data/lib/pageflow/entry_export_import/revision_serialization/import.rb +18 -26
- data/lib/pageflow/entry_type_configuration.rb +1 -0
- data/lib/pageflow/nested_revision_component.rb +49 -0
- data/lib/pageflow/revision_component.rb +6 -2
- data/lib/pageflow/user_mixin.rb +2 -1
- data/lib/pageflow/version.rb +1 -1
- data/package/editor.js +2 -1
- data/package/frontend.js +13 -2
- data/package/ui.js +32 -9
- data/spec/factories/test_revision_components.rb +4 -0
- metadata +18 -10
- data/entry_types/scrolled/package/frontend/EditableText-43c50894.js +0 -2161
@@ -10,15 +10,8 @@ module Pageflow
|
|
10
10
|
|
11
11
|
has_many :pages, through: :chapters
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
def copy_to(revision)
|
16
|
-
storyline = dup
|
17
|
-
revision.storylines << storyline
|
13
|
+
nested_revision_components :chapters
|
18
14
|
|
19
|
-
|
20
|
-
chapter.copy_to(storyline)
|
21
|
-
end
|
22
|
-
end
|
15
|
+
delegate :entry, to: :revision
|
23
16
|
end
|
24
17
|
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
<div id="login">
|
2
2
|
<h2><%= render_or_call_method_or_proc_on(self, active_admin_application.site_title) %> - <%= title t('pageflow.initial_password.title') %></h2>
|
3
3
|
|
4
|
-
<%=
|
4
|
+
<%= render "devise/shared/error_messages", resource: resource %>
|
5
|
+
|
5
6
|
<%= active_admin_form_for(resource, as: resource_name, url: admin_initial_password_path, html: { method: :put }) do |f|
|
6
7
|
f.inputs do
|
7
8
|
f.input :password
|
@@ -2218,6 +2218,21 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
|
|
2218
2218
|
}
|
2219
2219
|
});
|
2220
2220
|
|
2221
|
+
function _defineProperty(obj, key, value) {
|
2222
|
+
if (key in obj) {
|
2223
|
+
Object.defineProperty(obj, key, {
|
2224
|
+
value: value,
|
2225
|
+
enumerable: true,
|
2226
|
+
configurable: true,
|
2227
|
+
writable: true
|
2228
|
+
});
|
2229
|
+
} else {
|
2230
|
+
obj[key] = value;
|
2231
|
+
}
|
2232
|
+
|
2233
|
+
return obj;
|
2234
|
+
}
|
2235
|
+
|
2221
2236
|
function template$9(data) {
|
2222
2237
|
var __p = '';
|
2223
2238
|
__p += '<label>\n <span class="name"></span>\n <span class="inline_help"></span>\n</label>\n<input type="text" />\n<div class="validation"></div>\n';
|
@@ -2260,24 +2275,32 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
|
|
2260
2275
|
this.validate();
|
2261
2276
|
},
|
2262
2277
|
onChange: function onChange() {
|
2263
|
-
var
|
2264
|
-
|
2265
|
-
this.validate().
|
2266
|
-
|
2278
|
+
var _this = this;
|
2279
|
+
|
2280
|
+
this.validate().then(function () {
|
2281
|
+
return _this.save();
|
2282
|
+
}, function () {
|
2283
|
+
return _this.saveDisplayProperty();
|
2267
2284
|
});
|
2268
2285
|
},
|
2269
2286
|
saveDisplayProperty: function saveDisplayProperty() {
|
2287
|
+
this.model.unset(this.options.propertyName, {
|
2288
|
+
silent: true
|
2289
|
+
});
|
2270
2290
|
this.model.set(this.options.displayPropertyName, this.ui.input.val());
|
2271
|
-
this.model.unset(this.options.propertyName);
|
2272
2291
|
},
|
2273
2292
|
save: function save() {
|
2274
|
-
var
|
2275
|
-
|
2276
|
-
|
2293
|
+
var _this2 = this;
|
2294
|
+
|
2295
|
+
var value = this.ui.input.val();
|
2296
|
+
$.when(this.transformPropertyValue(value)).then(function (transformedValue) {
|
2297
|
+
var _this2$model$set;
|
2298
|
+
|
2299
|
+
_this2.model.set((_this2$model$set = {}, _defineProperty(_this2$model$set, _this2.options.displayPropertyName, value), _defineProperty(_this2$model$set, _this2.options.propertyName, transformedValue), _this2$model$set));
|
2277
2300
|
});
|
2278
2301
|
},
|
2279
2302
|
load: function load() {
|
2280
|
-
this.ui.input.val(this.model.get(this.options.displayPropertyName));
|
2303
|
+
this.ui.input.val(this.model.has(this.options.displayPropertyName) ? this.model.get(this.options.displayPropertyName) : this.model.get(this.options.propertyName));
|
2281
2304
|
this.onLoad();
|
2282
2305
|
},
|
2283
2306
|
|
@@ -2912,7 +2935,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
|
|
2912
2935
|
};
|
2913
2936
|
})();
|
2914
2937
|
|
2915
|
-
function _defineProperty(obj, key, value) {
|
2938
|
+
function _defineProperty$1(obj, key, value) {
|
2916
2939
|
if (key in obj) {
|
2917
2940
|
Object.defineProperty(obj, key, {
|
2918
2941
|
value: value,
|
@@ -2947,7 +2970,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
|
|
2947
2970
|
|
2948
2971
|
if (i % 2) {
|
2949
2972
|
ownKeys(Object(source), true).forEach(function (key) {
|
2950
|
-
_defineProperty(target, key, source[key]);
|
2973
|
+
_defineProperty$1(target, key, source[key]);
|
2951
2974
|
});
|
2952
2975
|
} else if (Object.getOwnPropertyDescriptors) {
|
2953
2976
|
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
@@ -6409,7 +6432,8 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
|
|
6409
6432
|
|
6410
6433
|
model.set(options.foreignKeyAttribute, parentModel.id);
|
6411
6434
|
});
|
6412
|
-
this.listenTo(parentModel, 'destroy', function () {
|
6435
|
+
this.listenTo(parentModel, 'destroy dependentDestroy', function () {
|
6436
|
+
this.invoke('trigger', 'dependentDestroy');
|
6413
6437
|
this.clear();
|
6414
6438
|
});
|
6415
6439
|
|
@@ -6825,7 +6849,7 @@ var pageflow_paged = (function (exports, Backbone, _, Marionette, $, I18n$1, Chi
|
|
6825
6849
|
function modelLifecycleTrackingView(_ref) {
|
6826
6850
|
var classNames = _ref.classNames;
|
6827
6851
|
return {
|
6828
|
-
events: _defineProperty({}, "click .".concat(classNames.retryButton), function click() {
|
6852
|
+
events: _defineProperty$1({}, "click .".concat(classNames.retryButton), function click() {
|
6829
6853
|
editor.failures.retry();
|
6830
6854
|
return false;
|
6831
6855
|
}),
|
@@ -4724,7 +4724,11 @@ this.pageflow_paged.frontend = (function (exports, jqueryUi, $, Backbone, _, Vid
|
|
4724
4724
|
loop: options.loop,
|
4725
4725
|
controls: options.controls,
|
4726
4726
|
html5: {
|
4727
|
-
nativeCaptions: !isAudio && browser.has('iphone platform')
|
4727
|
+
nativeCaptions: !isAudio && browser.has('iphone platform'),
|
4728
|
+
// Only used by pageflow-scrolled
|
4729
|
+
vhs: {
|
4730
|
+
useBandwidthFromLocalStorage: true
|
4731
|
+
}
|
4728
4732
|
},
|
4729
4733
|
bufferUnderrunWaiting: true,
|
4730
4734
|
fallbackToMutedAutoplay: !isAudio,
|
@@ -4830,7 +4834,8 @@ this.pageflow_paged.frontend = (function (exports, jqueryUi, $, Backbone, _, Vid
|
|
4830
4834
|
loop = _ref$loop === void 0 ? false : _ref$loop,
|
4831
4835
|
_ref$controls = _ref.controls,
|
4832
4836
|
controls = _ref$controls === void 0 ? false : _ref$controls,
|
4833
|
-
altText = _ref.altText
|
4837
|
+
altText = _ref.altText,
|
4838
|
+
onRelease = _ref.onRelease;
|
4834
4839
|
var player = undefined;
|
4835
4840
|
|
4836
4841
|
if (!this.unAllocatedPlayers[playerType]) {
|
@@ -4858,6 +4863,7 @@ this.pageflow_paged.frontend = (function (exports, jqueryUi, $, Backbone, _, Vid
|
|
4858
4863
|
player.updateMediaEventsContext(mediaEventsContextData);
|
4859
4864
|
this.allocatedPlayers[playerType].push(player);
|
4860
4865
|
player.playerId = playerId || this.allocatedPlayers[playerType].length;
|
4866
|
+
player.releaseCallback = onRelease;
|
4861
4867
|
return player;
|
4862
4868
|
} else {
|
4863
4869
|
console.log('no player found for allocation');
|
@@ -4883,6 +4889,11 @@ this.pageflow_paged.frontend = (function (exports, jqueryUi, $, Backbone, _, Vid
|
|
4883
4889
|
player.poster('');
|
4884
4890
|
clearTextTracks(player);
|
4885
4891
|
this.unAllocatedPlayers[type].push(player);
|
4892
|
+
|
4893
|
+
if (player.releaseCallback) {
|
4894
|
+
player.releaseCallback();
|
4895
|
+
player.releaseCallback = null;
|
4896
|
+
}
|
4886
4897
|
}
|
4887
4898
|
}
|
4888
4899
|
}, {
|
@@ -5499,9 +5510,14 @@ this.pageflow_paged.frontend = (function (exports, jqueryUi, $, Backbone, _, Vid
|
|
5499
5510
|
return new ChapterFilter(state$1.entryData);
|
5500
5511
|
};
|
5501
5512
|
|
5513
|
+
var readyDeferred = new $.Deferred();
|
5514
|
+
var ready = readyDeferred.promise();
|
5515
|
+
|
5502
5516
|
var cookieNotice = {
|
5503
5517
|
request: function request() {
|
5504
|
-
|
5518
|
+
ready.then(function () {
|
5519
|
+
events.trigger('cookie_notice:request');
|
5520
|
+
});
|
5505
5521
|
}
|
5506
5522
|
};
|
5507
5523
|
|
@@ -7026,9 +7042,6 @@ this.pageflow_paged.frontend = (function (exports, jqueryUi, $, Backbone, _, Vid
|
|
7026
7042
|
});
|
7027
7043
|
})($);
|
7028
7044
|
|
7029
|
-
var readyDeferred = new $.Deferred();
|
7030
|
-
var ready = readyDeferred.promise();
|
7031
|
-
|
7032
7045
|
(function ($) {
|
7033
7046
|
var boundaries = {
|
7034
7047
|
back: 'top',
|
@@ -4,5 +4,33 @@ module PageflowScrolled
|
|
4
4
|
def scrolled_theme_asset_path(theme, path)
|
5
5
|
asset_pack_path("media/pageflow-scrolled/themes/#{theme.name}/#{path}")
|
6
6
|
end
|
7
|
+
|
8
|
+
def scrolled_theme_stylesheet_pack_tags(theme)
|
9
|
+
safe_join(theme.options.fetch(:stylesheet_packs, []).map do |pack|
|
10
|
+
stylesheet_pack_tag(pack, media: 'all')
|
11
|
+
end)
|
12
|
+
end
|
13
|
+
|
14
|
+
def scrolled_theme_properties_style_tag(theme)
|
15
|
+
declarations = [
|
16
|
+
scrolled_theme_deep_declarations(theme.options.fetch(:font_family, {}), 'font_family'),
|
17
|
+
scrolled_theme_deep_declarations(theme.options.fetch(:colors, {}), 'color')
|
18
|
+
].flatten
|
19
|
+
|
20
|
+
content_tag('style', raw(":root {\n#{declarations.join("\n")}\n}\n"))
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def scrolled_theme_deep_declarations(hash, suffix, prefix = [])
|
26
|
+
hash.flat_map do |key, value|
|
27
|
+
if value.is_a?(Hash)
|
28
|
+
scrolled_theme_deep_declarations(value, suffix, [*prefix, key])
|
29
|
+
else
|
30
|
+
name = [*prefix, key, suffix].join('_')
|
31
|
+
"--theme-#{name.dasherize}: #{value};"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
7
35
|
end
|
8
36
|
end
|
@@ -2,6 +2,7 @@ module PageflowScrolled
|
|
2
2
|
class Chapter < Pageflow::ApplicationRecord
|
3
3
|
include Pageflow::SerializedConfiguration
|
4
4
|
include Pageflow::AutoGeneratedPermaId
|
5
|
+
include Pageflow::NestedRevisionComponent
|
5
6
|
|
6
7
|
belongs_to :storyline, touch: true
|
7
8
|
has_many :sections,
|
@@ -10,6 +11,8 @@ module PageflowScrolled
|
|
10
11
|
inverse_of: :chapter
|
11
12
|
has_many :content_elements, through: :sections
|
12
13
|
|
14
|
+
nested_revision_components :sections
|
15
|
+
|
13
16
|
attr_accessor :revision # used on :create to lazily create storyline
|
14
17
|
before_validation :ensure_storyline, on: :create
|
15
18
|
|
@@ -18,15 +21,6 @@ module PageflowScrolled
|
|
18
21
|
.where(pageflow_scrolled_storylines: {revision_id: revision})
|
19
22
|
end
|
20
23
|
|
21
|
-
def copy_to(storyline)
|
22
|
-
chapter = dup
|
23
|
-
storyline.chapters << chapter
|
24
|
-
|
25
|
-
sections.each do |section|
|
26
|
-
section.copy_to(chapter)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
24
|
private
|
31
25
|
|
32
26
|
def ensure_storyline
|
@@ -3,6 +3,7 @@ module PageflowScrolled
|
|
3
3
|
class ContentElement < Pageflow::ApplicationRecord
|
4
4
|
include Pageflow::SerializedConfiguration
|
5
5
|
include Pageflow::AutoGeneratedPermaId
|
6
|
+
include Pageflow::NestedRevisionComponent
|
6
7
|
|
7
8
|
belongs_to :section
|
8
9
|
|
@@ -11,10 +12,6 @@ module PageflowScrolled
|
|
11
12
|
.where(pageflow_scrolled_storylines: {revision_id: revision})
|
12
13
|
end
|
13
14
|
|
14
|
-
def copy_to(section)
|
15
|
-
section.content_elements << dup
|
16
|
-
end
|
17
|
-
|
18
15
|
# @api private
|
19
16
|
class Batch
|
20
17
|
def initialize(section, items)
|
@@ -2,6 +2,7 @@ module PageflowScrolled
|
|
2
2
|
class Section < Pageflow::ApplicationRecord
|
3
3
|
include Pageflow::SerializedConfiguration
|
4
4
|
include Pageflow::AutoGeneratedPermaId
|
5
|
+
include Pageflow::NestedRevisionComponent
|
5
6
|
|
6
7
|
belongs_to :chapter
|
7
8
|
has_many :content_elements,
|
@@ -9,18 +10,11 @@ module PageflowScrolled
|
|
9
10
|
dependent: :destroy,
|
10
11
|
inverse_of: :section
|
11
12
|
|
13
|
+
nested_revision_components :content_elements
|
14
|
+
|
12
15
|
def self.all_for_revision(revision)
|
13
16
|
joins(chapter: {storyline: :revision})
|
14
17
|
.where(pageflow_scrolled_storylines: {revision_id: revision})
|
15
18
|
end
|
16
|
-
|
17
|
-
def copy_to(chapter)
|
18
|
-
section = dup
|
19
|
-
chapter.sections << section
|
20
|
-
|
21
|
-
content_elements.each do |content_element|
|
22
|
-
content_element.copy_to(section)
|
23
|
-
end
|
24
|
-
end
|
25
19
|
end
|
26
20
|
end
|
@@ -26,14 +26,6 @@ module PageflowScrolled
|
|
26
26
|
-> { reorder(CONTENT_ELEMENTS_ORDER) },
|
27
27
|
through: :sections
|
28
28
|
|
29
|
-
|
30
|
-
storyline = dup
|
31
|
-
storyline.revision = revision
|
32
|
-
storyline.save!
|
33
|
-
|
34
|
-
chapters.each do |chapter|
|
35
|
-
chapter.copy_to(storyline)
|
36
|
-
end
|
37
|
-
end
|
29
|
+
nested_revision_components :chapters
|
38
30
|
end
|
39
31
|
end
|
@@ -6,7 +6,8 @@
|
|
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
|
-
|
9
|
+
<%= scrolled_theme_stylesheet_pack_tags(@entry.theme) %>
|
10
|
+
<%= scrolled_theme_properties_style_tag(@entry.theme) %>
|
10
11
|
|
11
12
|
<%= social_share_meta_tags_for(@entry) %>
|
12
13
|
<%= meta_tags_for_entry(@entry) %>
|
@@ -15,7 +16,7 @@
|
|
15
16
|
|
16
17
|
<%= javascript_include_tag 'pageflow_scrolled/legacy' %>
|
17
18
|
|
18
|
-
<%= stylesheet_pack_tag 'pageflow-scrolled-theme' %>
|
19
|
+
<%= stylesheet_pack_tag 'pageflow-scrolled-theme', media: 'all' %>
|
19
20
|
|
20
21
|
<%= render_widget_head_fragments(@entry, scope: @widget_scope) %>
|
21
22
|
|
@@ -34,7 +35,9 @@
|
|
34
35
|
<body>
|
35
36
|
<%= structured_data_for_entry(@entry) unless @skip_structured_data %>
|
36
37
|
|
37
|
-
|
38
|
+
<%= render 'pageflow_scrolled/entries/global_notices' %>
|
39
|
+
|
40
|
+
<div id="fullscreenRoot"></div>
|
38
41
|
<div id="root"><%= render_scrolled_entry(@entry) unless @skip_ssr %></div>
|
39
42
|
|
40
43
|
<div id='template-widget-container'>
|
@@ -28,6 +28,7 @@ de:
|
|
28
28
|
left: Links eingerückt
|
29
29
|
right: Rechts eingerückt
|
30
30
|
sticky: Sticky
|
31
|
+
wide: Breit
|
31
32
|
content_elements:
|
32
33
|
dataWrapperChart:
|
33
34
|
attributes:
|
@@ -183,6 +184,14 @@ de:
|
|
183
184
|
name: Video Embed
|
184
185
|
tabs:
|
185
186
|
general: Video-Embed
|
187
|
+
vrImage:
|
188
|
+
attributes:
|
189
|
+
image:
|
190
|
+
label: 360°-Bild
|
191
|
+
initialPitch:
|
192
|
+
label: Initialer Gierungswinkel
|
193
|
+
initialYaw:
|
194
|
+
label: Initialer Neigungswinkel
|
186
195
|
edit_chapter:
|
187
196
|
attributes:
|
188
197
|
summary:
|
@@ -583,6 +592,10 @@ de:
|
|
583
592
|
public:
|
584
593
|
chart:
|
585
594
|
default_title: Interaktives Diagramm
|
595
|
+
enter_fullscreen: Vollbild
|
596
|
+
exit_fullscreen: Vollbild verlassen
|
597
|
+
image_rights: Bildrechte
|
598
|
+
js_required: Bitte aktivieren Sie JavaScript, um diese Website korrekt anzuzeigen.
|
586
599
|
languages:
|
587
600
|
ar: Arabisch
|
588
601
|
cs: Tschechisch
|
@@ -643,6 +656,7 @@ de:
|
|
643
656
|
opt_out:
|
644
657
|
prompt: Um externe Dienste auszuschalten, %{link} klicken.
|
645
658
|
prompt_link: hier
|
659
|
+
unsupported_browser: Diese Website verwendet Funktionen, die Ihr Browser nicht unterstützt. Bitte aktualisieren Sie Ihren Browser auf eine aktuelle Version.
|
646
660
|
video_qualities:
|
647
661
|
annotations:
|
648
662
|
4k: 4K
|
@@ -28,6 +28,7 @@ en:
|
|
28
28
|
left: Floated left
|
29
29
|
right: Floated right
|
30
30
|
sticky: Sticky
|
31
|
+
wide: Wide
|
31
32
|
content_elements:
|
32
33
|
dataWrapperChart:
|
33
34
|
attributes:
|
@@ -183,6 +184,14 @@ en:
|
|
183
184
|
name: Video Embed
|
184
185
|
tabs:
|
185
186
|
general: Video-Embed
|
187
|
+
vrImage:
|
188
|
+
attributes:
|
189
|
+
image:
|
190
|
+
label: 360° Image
|
191
|
+
initialPitch:
|
192
|
+
label: Initial Pitch
|
193
|
+
initialYaw:
|
194
|
+
label: Initial Yaw
|
186
195
|
edit_chapter:
|
187
196
|
attributes:
|
188
197
|
summary:
|
@@ -368,55 +377,7 @@ en:
|
|
368
377
|
The switch at the bottom of the sidebar next to the help button can be used to switch to the phone preview. This allows you to test how your entry looks and works in portrait format.
|
369
378
|
sections:
|
370
379
|
menu_item: Section Options
|
371
|
-
text:
|
372
|
-
# Section Options
|
373
|
-
|
374
|
-
A click in an empty area of a section will display a selection rectangle around the section. On the right side of the selection rectangle you will find a button with a pencil icon that allows you to edit the options of the section in the sidebar.
|
375
|
-
|
376
|
-
## Layout
|
377
|
-
|
378
|
-
The **Foreground Positioning** option allows you to select how the contents of the section should be arranged horizontally. For example, if the background of the section is on the right side, text and content elements can be positioned on the left side and vice versa. For backgrounds in the total or a centred motif, the content elements can be positioned in the middle.
|
379
|
-
|
380
|
-
By selecting a **gradient function**, a sufficient contrast between text and background can be ensured. With the **shadow**, the background is darkened or lightened with a colour gradient. With the **Card** setting, the content elements are displayed on a surface with rounded corners.
|
381
|
-
|
382
|
-
## Background
|
383
|
-
|
384
|
-
Either an **image**, a **colour** or a **video loop** can be displayed in the background of the section. For background images and video, the important (to be emphasised, essential) part of the image can be marked. This motif area is then initially not covered by the scrolling foreground in both desktop and mobile device displays. Further information about the "motif areas" here.
|
385
|
-
|
386
|
-
The **Background image (portrait)** option can be used to optionally specify an alternative image to be used if the screen aspect ratio of a terminal device is higher than wide, for example on smartphones and tablets in portrait mode. The image can be configured as an alternative to the background image in landscape mode, from which otherwise important parts might be cut off.
|
387
|
-
|
388
|
-
## Atmo Audio
|
389
|
-
|
390
|
-
With the **"Atmo"**, each section can play sound in the background, regardless of the content element. It can be determined whether a sound can only be heard in one section or continues over several sections without interruption. Simply select the same audio file for the following sections under **Options** as Atmo. In this way chapters can be acoustically separated from each other and coherent pages can be interwoven more strongly.
|
391
|
-
|
392
|
-
When playing audio and video, you can also select whether the background sound should continue to play normally or more quietly during media playback, or whether it should fade out completely. The setting of the ambience sounds can be accessed on each page via the **Options** tab. If the atmosphere disturbs you while editing your entry in the editor, you can temporarily mute it with the key combination **Alt + a**. To reactivate the Atmo, simply press **Alt + a** again.
|
393
|
-
|
394
|
-
|
395
|
-
## Transitions
|
396
|
-
|
397
|
-
For each section a transition effect to the next section can be selected. The transition has a different effect on the background and the foreground. To set the transition from the currently selected section to the next, **click in the background of the section** and then on the **arrow button** in the upper right corner. The following **transitions** are available
|
398
|
-
|
399
|
-
## Crossfade
|
400
|
-
|
401
|
-
Soft fade from section A to section B.
|
402
|
-
|
403
|
-
## Scroll in/out
|
404
|
-
|
405
|
-
Both sections are scrolled in and out.
|
406
|
-
|
407
|
-
## Overlay
|
408
|
-
|
409
|
-
Section B overlays section A from below.
|
410
|
-
|
411
|
-
## Expose
|
412
|
-
|
413
|
-
Section A moves up as you scroll and exposes the section B below.
|
414
|
-
|
415
|
-
## Scrolling with static backgrounds
|
416
|
-
|
417
|
-
Section B scrolls over the static section A.
|
418
|
-
|
419
|
-
The selected setting always defines the transition from the previous to the currently selected section. The transition affects the background and foreground differently. The **Cross-Fade All** and **Cross-Fade Background Only** effects are only available when the **Use Full Viewport-Height** option is enabled.
|
380
|
+
text: "# Section Options\n\nA click in an empty area of a section will display a selection rectangle around the section. On the right side of the selection rectangle you will find a button with a pencil icon that allows you to edit the options of the section in the sidebar.\n\n## Layout\n\nThe **Foreground Positioning** option allows you to select how the contents of the section should be arranged horizontally. For example, if the background of the section is on the right side, text and content elements can be positioned on the left side and vice versa. For backgrounds in the total or a centred motif, the content elements can be positioned in the middle.\n\nBy selecting a **gradient function**, a sufficient contrast between text and background can be ensured. With the **shadow**, the background is darkened or lightened with a colour gradient. With the **Card** setting, the content elements are displayed on a surface with rounded corners.\n\n## Background\n\nEither an **image**, a **colour** or a **video loop** can be displayed in the background of the section. For background images and video, the important (to be emphasised, essential) part of the image can be marked. This motif area is then initially not covered by the scrolling foreground in both desktop and mobile device displays. Further information about the \"motif areas\" here.\n\nThe **Background image (portrait)** option can be used to optionally specify an alternative image to be used if the screen aspect ratio of a terminal device is higher than wide, for example on smartphones and tablets in portrait mode. The image can be configured as an alternative to the background image in landscape mode, from which otherwise important parts might be cut off.\n\n## Atmo Audio\n\nWith the **\"Atmo\"**, each section can play sound in the background, regardless of the content element. It can be determined whether a sound can only be heard in one section or continues over several sections without interruption. Simply select the same audio file for the following sections under **Options** as Atmo. In this way chapters can be acoustically separated from each other and coherent pages can be interwoven more strongly.\n\nWhen playing audio and video, you can also select whether the background sound should continue to play normally or more quietly during media playback, or whether it should fade out completely. The setting of the ambience sounds can be accessed on each page via the **Options** tab. If the atmosphere disturbs you while editing your entry in the editor, you can temporarily mute it with the key combination **Alt + a**. To reactivate the Atmo, simply press **Alt + a** again.\n\n\n## Transitions\n\nA **transition effect** can be selected between every two sections. \nClick in the background of a section to select it. On the right side \nof the selection rectangle, buttons with two interlocking arrows as \nsymbols appear at the borders of the neighbouring sections. \n\nClick on one of the buttons to select the transition effect for the section \nborder in the sidebar.\n\nThe **Fade** effect is only available between sections for which the \n**Full Viewport Height** option has been activated.\n"
|
420
381
|
inline_editing:
|
421
382
|
add_content_element: Add new element
|
422
383
|
cancel: Cancel
|
@@ -450,6 +411,10 @@ en:
|
|
450
411
|
public:
|
451
412
|
chart:
|
452
413
|
default_title: Interactive chart
|
414
|
+
enter_fullscreen: Fullscreen
|
415
|
+
exit_fullscreen: Exit fullscreen
|
416
|
+
image_rights: Image rights
|
417
|
+
js_required: Please activate JavaScript to make this website display correctly.
|
453
418
|
languages:
|
454
419
|
ar: Arabic
|
455
420
|
cs: Czech
|
@@ -510,6 +475,7 @@ en:
|
|
510
475
|
opt_out:
|
511
476
|
prompt: To opt out of displaying external embeds, change your settings %{link}.
|
512
477
|
prompt_link: here
|
478
|
+
unsupported_browser: This website uses features that your browser doesn't support. Please upgrade to a recent version of your browser.
|
513
479
|
video_qualities:
|
514
480
|
annotations:
|
515
481
|
4k: 4K
|