pageflow 15.7.0 → 15.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +103 -199
  3. data/README.md +1 -9
  4. data/Rakefile +4 -1
  5. data/admins/pageflow/entry.rb +32 -6
  6. data/admins/pageflow/membership.rb +5 -1
  7. data/admins/pageflow/user.rb +7 -0
  8. data/app/assets/javascripts/pageflow/admin/entries.js +40 -0
  9. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +65 -0
  10. data/app/assets/stylesheets/pageflow/admin.scss +1 -0
  11. data/app/assets/stylesheets/pageflow/editor/base.scss +2 -6
  12. data/app/assets/stylesheets/pageflow/editor/dialogs.scss +2 -0
  13. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +9 -0
  14. data/app/assets/stylesheets/pageflow/editor/info_box.scss +13 -3
  15. data/app/assets/stylesheets/pageflow/mixins/buttons.scss +1 -0
  16. data/app/assets/stylesheets/pageflow/page.scss +0 -2
  17. data/app/assets/stylesheets/pageflow/themes/default/page.scss +1 -1
  18. data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -1
  19. data/app/controllers/pageflow/editor/file_import_controller.rb +32 -42
  20. data/app/controllers/pageflow/entries_controller.rb +25 -1
  21. data/app/helpers/pageflow/admin/permalinks_helper.rb +15 -0
  22. data/app/helpers/pageflow/entries_helper.rb +9 -1
  23. data/app/helpers/pageflow/themings_helper.rb +1 -1
  24. data/app/inputs/pageflow_permalink_input.rb +47 -0
  25. data/app/models/concerns/pageflow/permalinkable.rb +12 -0
  26. data/app/models/concerns/pageflow/reusable_file.rb +5 -0
  27. data/app/models/concerns/pageflow/uploadable_file.rb +4 -0
  28. data/app/models/pageflow/customized_theme.rb +4 -2
  29. data/app/models/pageflow/entry.rb +13 -0
  30. data/app/models/pageflow/entry_at_revision.rb +2 -1
  31. data/app/models/pageflow/entry_duplicate.rb +7 -0
  32. data/app/models/pageflow/image_file_url_templates.rb +2 -2
  33. data/app/models/pageflow/permalink.rb +39 -0
  34. data/app/models/pageflow/permalink_directory.rb +10 -0
  35. data/app/models/pageflow/published_entry.rb +17 -0
  36. data/app/models/pageflow/revision.rb +1 -1
  37. data/app/models/pageflow/theme_customization_file.rb +6 -1
  38. data/app/models/pageflow/theming.rb +1 -0
  39. data/app/views/admin/entries/_form.html.erb +9 -1
  40. data/app/views/admin/entries/_permalink_inputs.html.erb +6 -0
  41. data/app/views/admin/entries/permalink_inputs.html.erb +7 -0
  42. data/app/views/pageflow/editor/file_import/start_import_job.json.jbuilder +10 -0
  43. data/app/views/pageflow/files/_file.json.jbuilder +1 -0
  44. data/config/initializers/mime_types.rb +1 -0
  45. data/config/routes.rb +8 -5
  46. data/db/migrate/20221024100724_create_pageflow_permalink_directories.rb +10 -0
  47. data/db/migrate/20221025074049_add_permalink_attributes_to_entries.rb +5 -0
  48. data/db/migrate/20221027065022_create_pageflow_permalinks.rb +12 -0
  49. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +166 -169
  50. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +44 -2
  51. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +5 -5
  52. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +1 -1
  53. data/entry_types/paged/config/initializers/features.rb +2 -0
  54. data/entry_types/paged/config/locales/{new/help.de.yml → de.yml} +74 -65
  55. data/entry_types/paged/config/locales/{new/help.en.yml → en.yml} +66 -56
  56. data/entry_types/scrolled/app/helpers/pageflow_scrolled/favicon_helper.rb +39 -13
  57. data/entry_types/scrolled/app/helpers/pageflow_scrolled/generated_media_queries_helper.rb +55 -0
  58. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +6 -2
  59. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +2 -0
  60. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/_manifest.json.jbuilder +16 -0
  61. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +9 -3
  62. data/entry_types/scrolled/app/views/pageflow_scrolled/favicons/_entry.html.erb +16 -10
  63. data/entry_types/scrolled/config/locales/de.yml +265 -76
  64. data/entry_types/scrolled/config/locales/en.yml +266 -77
  65. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +3 -3
  66. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +14 -0
  67. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +1 -1
  68. data/entry_types/scrolled/lib/pageflow_scrolled/web_app_manifest.rb +11 -0
  69. data/entry_types/scrolled/lib/pageflow_scrolled.rb +39 -1
  70. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +3 -2
  71. data/entry_types/scrolled/package/contentElements-editor.js +124 -38
  72. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  73. data/entry_types/scrolled/package/contentElements-frontend.js +321 -27
  74. data/entry_types/scrolled/package/editor.js +1345 -739
  75. data/entry_types/scrolled/package/frontend/EditableInlineText.module-c6672f27.js +5314 -0
  76. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-9fb97827.js → PhonePlatformContext-22e65f92.js} +40 -4
  77. data/entry_types/scrolled/package/frontend/{Viewer-e2290ea0.js → Viewer-6b05522f.js} +6 -40
  78. data/entry_types/scrolled/package/frontend/arrowRight-7e3d9dd5.js +42 -0
  79. data/entry_types/scrolled/package/frontend/{components-6ab26015.js → components-487daafa.js} +546 -361
  80. data/entry_types/scrolled/package/frontend/index.css +1 -1
  81. data/entry_types/scrolled/package/frontend/index.js +197 -3674
  82. data/entry_types/scrolled/package/package.json +3 -2
  83. data/entry_types/scrolled/package/testHelpers.js +12 -2
  84. data/entry_types/scrolled/package/widgets/defaultNavigation.css +1 -1
  85. data/entry_types/scrolled/package/widgets/defaultNavigation.js +35 -32
  86. data/entry_types/scrolled/spec/fixtures/image.ico +0 -0
  87. data/lib/pageflow/entry_type.rb +6 -2
  88. data/lib/pageflow/user_mixin.rb +6 -0
  89. data/lib/pageflow/version.rb +1 -1
  90. data/package/editor.js +122 -149
  91. data/package/frontend.js +19 -2
  92. data/package/testHelpers.js +39 -6
  93. data/spec/factories/entries.rb +17 -0
  94. data/spec/factories/permalink_directory.rb +6 -0
  95. data/spec/factories/permalinks.rb +4 -0
  96. data/spec/factories/published_entries.rb +2 -0
  97. metadata +30 -47
  98. data/entry_types/paged/config/locales/new/video_contain.de.yml +0 -7
  99. data/entry_types/paged/config/locales/new/video_contain.en.yml +0 -7
  100. data/entry_types/scrolled/config/locales/new/before_after_slider.de.yml +0 -8
  101. data/entry_types/scrolled/config/locales/new/before_after_slider.en.yml +0 -8
  102. data/entry_types/scrolled/config/locales/new/center_ragged.de.yml +0 -8
  103. data/entry_types/scrolled/config/locales/new/center_ragged.en.yml +0 -9
  104. data/entry_types/scrolled/config/locales/new/consent.de.yml +0 -25
  105. data/entry_types/scrolled/config/locales/new/consent.en.yml +0 -24
  106. data/entry_types/scrolled/config/locales/new/content_element_categories.de.yml +0 -39
  107. data/entry_types/scrolled/config/locales/new/content_element_categories.en.yml +0 -39
  108. data/entry_types/scrolled/config/locales/new/default_transition.de.yml +0 -14
  109. data/entry_types/scrolled/config/locales/new/default_transition.en.yml +0 -14
  110. data/entry_types/scrolled/config/locales/new/header_line_breaks.de.yml +0 -28
  111. data/entry_types/scrolled/config/locales/new/header_line_breaks.en.yml +0 -27
  112. data/entry_types/scrolled/config/locales/new/header_size.de.yml +0 -17
  113. data/entry_types/scrolled/config/locales/new/header_size.en.yml +0 -17
  114. data/entry_types/scrolled/config/locales/new/iframe_embed.de.yml +0 -39
  115. data/entry_types/scrolled/config/locales/new/iframe_embed.en.yml +0 -39
  116. data/entry_types/scrolled/config/locales/new/inline_loops.de.yml +0 -26
  117. data/entry_types/scrolled/config/locales/new/inline_loops.en.yml +0 -26
  118. data/entry_types/scrolled/config/locales/new/portrait_inline_image.de.yml +0 -9
  119. data/entry_types/scrolled/config/locales/new/portrait_inline_image.en.yml +0 -9
  120. data/entry_types/scrolled/config/locales/new/section_width.de.yml +0 -10
  121. data/entry_types/scrolled/config/locales/new/section_width.en.yml +0 -10
  122. data/entry_types/scrolled/config/locales/new/typography_variants.de.yml +0 -7
  123. data/entry_types/scrolled/config/locales/new/typography_variants.en.yml +0 -7
  124. data/entry_types/scrolled/config/locales/new/video_embed_poster.de.yml +0 -8
  125. data/entry_types/scrolled/config/locales/new/video_embed_poster.en.yml +0 -8
  126. data/entry_types/scrolled/config/locales/new/waveform_styles.de.yml +0 -11
  127. data/entry_types/scrolled/config/locales/new/waveform_styles.en.yml +0 -12
  128. data/entry_types/scrolled/config/locales/new/widgets.de.yml +0 -6
  129. data/entry_types/scrolled/config/locales/new/widgets.en.yml +0 -6
  130. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/browserconfig.xml +0 -9
  131. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/mstile-150x150.png +0 -0
  132. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/safari-pinned-tab.svg +0 -46
  133. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/site.webmanifest +0 -19
  134. data/entry_types/scrolled/package/frontend/EditableInlineText.module-b9923660.js +0 -993
  135. data/entry_types/scrolled/package/frontend/usePhonePlatform-2857c22b.js +0 -34
data/package/frontend.js CHANGED
@@ -390,7 +390,9 @@ var Consent = /*#__PURE__*/function () {
390
390
 
391
391
  return this.withState(this.vendors.filter(function (vendor) {
392
392
  return (additionalVendorNames === null || additionalVendorNames === void 0 ? void 0 : additionalVendorNames.includes(vendor.name)) || vendor.paradigm === 'opt-in' || vendor.paradigm === 'external opt-out' || vendor.paradigm === 'lazy opt-in' && _this3.persistence.read(vendor) !== 'undecided';
393
- }));
393
+ }), {
394
+ applyDefaults: true
395
+ });
394
396
  }
395
397
  }, {
396
398
  key: "require",
@@ -527,12 +529,26 @@ var Consent = /*#__PURE__*/function () {
527
529
  value: function withState(vendors) {
528
530
  var _this8 = this;
529
531
 
532
+ var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
533
+ applyDefaults = _ref4.applyDefaults;
534
+
530
535
  return vendors.map(function (vendor) {
536
+ var state = _this8.persistence.read(vendor);
537
+
531
538
  return _objectSpread2(_objectSpread2({}, vendor), {}, {
532
- state: _this8.persistence.read(vendor)
539
+ state: state === 'undecided' && applyDefaults ? _this8.getDefaultState(vendor) : state
533
540
  });
534
541
  });
535
542
  }
543
+ }, {
544
+ key: "getDefaultState",
545
+ value: function getDefaultState(vendor) {
546
+ if (vendor.paradigm === 'external opt-out') {
547
+ return 'accepted';
548
+ }
549
+
550
+ return 'undecided';
551
+ }
536
552
  }]);
537
553
 
538
554
  return Consent;
@@ -2122,6 +2138,7 @@ var mediaEvents$1 = function mediaEvents(player, context) {
2122
2138
  currentTime: player.currentTime(),
2123
2139
  duration: player.duration(),
2124
2140
  volume: player.volume(),
2141
+ altText: player.getMediaElement().getAttribute('alt'),
2125
2142
  bitrate: 3500000
2126
2143
  });
2127
2144
  }
@@ -173,6 +173,11 @@ var ConfigurationEditorTab = Base.extend({
173
173
  return $(this).data('inputPropertyName');
174
174
  }).get();
175
175
  },
176
+ visibleInputPropertyNames: function visibleInputPropertyNames() {
177
+ return this.$el.find('.input:not(.input-hidden_via_binding)').map(function () {
178
+ return $(this).data('inputPropertyName');
179
+ }).get();
180
+ },
176
181
  inputLabels: function inputLabels() {
177
182
  return this.$el.find('.input').map(function () {
178
183
  return $(this).data('labelText');
@@ -210,6 +215,9 @@ var ConfigurationEditor = Base.extend({
210
215
  inputPropertyNames: function inputPropertyNames() {
211
216
  return ConfigurationEditorTab.find(this.$el).inputPropertyNames();
212
217
  },
218
+ visibleInputPropertyNames: function visibleInputPropertyNames() {
219
+ return ConfigurationEditorTab.find(this.$el).visibleInputPropertyNames();
220
+ },
213
221
  inputLabels: function inputLabels() {
214
222
  return ConfigurationEditorTab.find(this.$el).inputLabels();
215
223
  },
@@ -441,6 +449,22 @@ var factories = {
441
449
  });
442
450
  return this;
443
451
  },
452
+ withAudioFileType: function withAudioFileType(options) {
453
+ fileTypes.register('audio_files', _.extend({
454
+ model: VideoFile,
455
+ matchUpload: /^audio/,
456
+ topLevelType: true
457
+ }, options));
458
+ fileTypesSetupArray.push({
459
+ collectionName: 'audio_files',
460
+ typeName: 'Pageflow::AudioFile',
461
+ i18nKey: 'pageflow/audio_files',
462
+ nestedFileTypes: [{
463
+ collectionName: 'text_track_files'
464
+ }]
465
+ });
466
+ return this;
467
+ },
444
468
  withTextTrackFileType: function withTextTrackFileType(options) {
445
469
  fileTypes.register('text_track_files', _.extend({
446
470
  model: TextTrackFile,
@@ -638,7 +662,7 @@ function fakeBrowserAgent(name) {
638
662
  var state = window.pageflow || {};
639
663
 
640
664
  /**
641
- * Setup global state for testing Backbone editro components.
665
+ * Setup global state for testing Backbone editor components.
642
666
  *
643
667
  * For some editor components like (some views or models) it's easier
644
668
  * to depend on the global mutable state (available via the `$state`
@@ -658,11 +682,7 @@ var setupGlobals = function setupGlobals(mapping) {
658
682
  }
659
683
 
660
684
  globalsBackup = {};
661
-
662
- _.each(mapping, function (value, key) {
663
- globalsBackup[key] = state[key];
664
- state[key] = typeof value === 'function' ? value.call(this) : value;
665
- });
685
+ setGlobals(mapping);
666
686
  });
667
687
  afterEach(function () {
668
688
  _.each(mapping, function (_, key) {
@@ -671,6 +691,19 @@ var setupGlobals = function setupGlobals(mapping) {
671
691
 
672
692
  globalsBackup = null;
673
693
  });
694
+
695
+ function setGlobals(mapping) {
696
+ _.each(mapping, function (value, key) {
697
+ globalsBackup[key] = state[key];
698
+ state[key] = typeof value === 'function' ? value.call(this) : value;
699
+ });
700
+
701
+ return mapping;
702
+ }
703
+
704
+ return {
705
+ setGlobals: setGlobals
706
+ };
674
707
  };
675
708
 
676
709
  /**
@@ -23,6 +23,8 @@ module Pageflow
23
23
  without_feature { nil }
24
24
 
25
25
  draft_attributes { nil }
26
+
27
+ permalink_attributes { nil }
26
28
  end
27
29
 
28
30
  after(:create) do |entry, evaluator|
@@ -50,6 +52,21 @@ module Pageflow
50
52
  entry.features_configuration =
51
53
  entry.features_configuration.merge(evaluator.with_feature => true,
52
54
  evaluator.without_feature => false)
55
+
56
+ if evaluator.permalink_attributes
57
+ permalink_directory =
58
+ evaluator.permalink_attributes[:directory] ||
59
+ build(
60
+ :permalink_directory,
61
+ theming: entry.theming,
62
+ path: evaluator.permalink_attributes.fetch(:directory_path, '')
63
+ )
64
+
65
+ entry.build_permalink(
66
+ directory: permalink_directory,
67
+ slug: evaluator.permalink_attributes.fetch(:slug)
68
+ )
69
+ end
53
70
  end
54
71
 
55
72
  trait :published do
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :permalink_directory, class: Pageflow::PermalinkDirectory do
3
+ theming
4
+ path { '' }
5
+ end
6
+ end
@@ -0,0 +1,4 @@
1
+ FactoryBot.define do
2
+ factory :permalink, class: Pageflow::Permalink do
3
+ end
4
+ end
@@ -7,6 +7,7 @@ module Pageflow
7
7
  theming
8
8
  type_name { 'paged' }
9
9
  revision_attributes { {} }
10
+ permalink_attributes { nil }
10
11
 
11
12
  with_feature { nil }
12
13
  without_feature { nil }
@@ -20,6 +21,7 @@ module Pageflow
20
21
  theming: theming,
21
22
  type_name: type_name,
22
23
  published_revision_attributes: revision_attributes,
24
+ permalink_attributes: permalink_attributes,
23
25
  with_feature: with_feature,
24
26
  without_feature: without_feature))
25
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pageflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 15.7.0
4
+ version: 15.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Codevise Solutions Ltd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-18 00:00:00.000000000 Z
11
+ date: 2022-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -490,14 +490,14 @@ dependencies:
490
490
  requirements:
491
491
  - - "~>"
492
492
  - !ruby/object:Gem::Version
493
- version: '1.20'
493
+ version: '1.21'
494
494
  type: :runtime
495
495
  prerelease: false
496
496
  version_requirements: !ruby/object:Gem::Requirement
497
497
  requirements:
498
498
  - - "~>"
499
499
  - !ruby/object:Gem::Version
500
- version: '1.20'
500
+ version: '1.21'
501
501
  - !ruby/object:Gem::Dependency
502
502
  name: bcrypt
503
503
  requirement: !ruby/object:Gem::Requirement
@@ -1112,6 +1112,7 @@ files:
1112
1112
  - app/assets/stylesheets/pageflow/admin/hint.scss
1113
1113
  - app/assets/stylesheets/pageflow/admin/icon_button.scss
1114
1114
  - app/assets/stylesheets/pageflow/admin/icon_link.scss
1115
+ - app/assets/stylesheets/pageflow/admin/permalink_input.scss
1115
1116
  - app/assets/stylesheets/pageflow/admin/publication_state_indicator.scss
1116
1117
  - app/assets/stylesheets/pageflow/admin/quotas.scss
1117
1118
  - app/assets/stylesheets/pageflow/admin/status_tags.scss
@@ -1374,6 +1375,7 @@ files:
1374
1375
  - app/helpers/pageflow/admin/form_helper.rb
1375
1376
  - app/helpers/pageflow/admin/locales_helper.rb
1376
1377
  - app/helpers/pageflow/admin/memberships_helper.rb
1378
+ - app/helpers/pageflow/admin/permalinks_helper.rb
1377
1379
  - app/helpers/pageflow/admin/revisions_helper.rb
1378
1380
  - app/helpers/pageflow/admin/users_helper.rb
1379
1381
  - app/helpers/pageflow/admin/widgets_helper.rb
@@ -1413,6 +1415,7 @@ files:
1413
1415
  - app/helpers/pageflow/themings_helper.rb
1414
1416
  - app/helpers/pageflow/video_files_helper.rb
1415
1417
  - app/helpers/pageflow/widgets_helper.rb
1418
+ - app/inputs/pageflow_permalink_input.rb
1416
1419
  - app/jobs/pageflow/application_job.rb
1417
1420
  - app/jobs/pageflow/entry_export_import/upload_and_publish_file_job.rb
1418
1421
  - app/jobs/pageflow/file_import_job.rb
@@ -1427,6 +1430,7 @@ files:
1427
1430
  - app/models/concerns/pageflow/entry_publication_states.rb
1428
1431
  - app/models/concerns/pageflow/feature_target.rb
1429
1432
  - app/models/concerns/pageflow/output_source.rb
1433
+ - app/models/concerns/pageflow/permalinkable.rb
1430
1434
  - app/models/concerns/pageflow/reusable_file.rb
1431
1435
  - app/models/concerns/pageflow/serialization_blacklist.rb
1432
1436
  - app/models/concerns/pageflow/serialized_configuration.rb
@@ -1471,6 +1475,8 @@ files:
1471
1475
  - app/models/pageflow/null_user.rb
1472
1476
  - app/models/pageflow/overview_button.rb
1473
1477
  - app/models/pageflow/page.rb
1478
+ - app/models/pageflow/permalink.rb
1479
+ - app/models/pageflow/permalink_directory.rb
1474
1480
  - app/models/pageflow/positioned_file.rb
1475
1481
  - app/models/pageflow/potential_memberships.rb
1476
1482
  - app/models/pageflow/published_entry.rb
@@ -1516,7 +1522,9 @@ files:
1516
1522
  - app/views/admin/entries/_attributes_table.html.arb
1517
1523
  - app/views/admin/entries/_form.html.erb
1518
1524
  - app/views/admin/entries/_links.html.arb
1525
+ - app/views/admin/entries/_permalink_inputs.html.erb
1519
1526
  - app/views/admin/entries/entry_type_name_input.html.erb
1527
+ - app/views/admin/entries/permalink_inputs.html.erb
1520
1528
  - app/views/admin/entry_templates/_form.html.erb
1521
1529
  - app/views/admin/features/_form.html.erb
1522
1530
  - app/views/admin/memberships/_form.html.erb
@@ -1588,6 +1596,7 @@ files:
1588
1596
  - app/views/pageflow/editor/entries/show.json.jbuilder
1589
1597
  - app/views/pageflow/editor/entry_publications/_published_message.html.erb
1590
1598
  - app/views/pageflow/editor/entry_publications/check.json.jbuilder
1599
+ - app/views/pageflow/editor/file_import/start_import_job.json.jbuilder
1591
1600
  - app/views/pageflow/editor/files/_file.json.jbuilder
1592
1601
  - app/views/pageflow/editor/files/create.json.jbuilder
1593
1602
  - app/views/pageflow/editor/files/index.json.jbuilder
@@ -1648,6 +1657,7 @@ files:
1648
1657
  - config/initializers/admin_resource_tabs.rb
1649
1658
  - config/initializers/features.rb
1650
1659
  - config/initializers/help_entries.rb
1660
+ - config/initializers/mime_types.rb
1651
1661
  - config/initializers/paperclip.rb
1652
1662
  - config/initializers/revision_components.rb
1653
1663
  - config/initializers/symmetric_encryption.rb
@@ -1688,6 +1698,9 @@ files:
1688
1698
  - db/migrate/20211020085902_add_canonical_entry_url_prefix_to_themings.rb
1689
1699
  - db/migrate/20220503150010_add_peak_data_to_audio_files.rb
1690
1700
  - db/migrate/20220705084830_add_trailing_slash_in_canonical_urls_to_themings.rb
1701
+ - db/migrate/20221024100724_create_pageflow_permalink_directories.rb
1702
+ - db/migrate/20221025074049_add_permalink_attributes_to_entries.rb
1703
+ - db/migrate/20221027065022_create_pageflow_permalinks.rb
1691
1704
  - entry_types/paged/app/assets/javascripts/pageflow_paged/components.js
1692
1705
  - entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js
1693
1706
  - entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js
@@ -1736,10 +1749,8 @@ files:
1736
1749
  - entry_types/paged/config/initializers/features.rb
1737
1750
  - entry_types/paged/config/initializers/help_entries.rb
1738
1751
  - entry_types/paged/config/initializers/page_types.rb
1739
- - entry_types/paged/config/locales/new/help.de.yml
1740
- - entry_types/paged/config/locales/new/help.en.yml
1741
- - entry_types/paged/config/locales/new/video_contain.de.yml
1742
- - entry_types/paged/config/locales/new/video_contain.en.yml
1752
+ - entry_types/paged/config/locales/de.yml
1753
+ - entry_types/paged/config/locales/en.yml
1743
1754
  - entry_types/paged/config/routes.rb
1744
1755
  - entry_types/paged/lib/pageflow_paged.rb
1745
1756
  - entry_types/paged/lib/pageflow_paged/configuration.rb
@@ -1766,6 +1777,7 @@ files:
1766
1777
  - entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb
1767
1778
  - entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb
1768
1779
  - entry_types/scrolled/app/helpers/pageflow_scrolled/favicon_helper.rb
1780
+ - entry_types/scrolled/app/helpers/pageflow_scrolled/generated_media_queries_helper.rb
1769
1781
  - entry_types/scrolled/app/helpers/pageflow_scrolled/i18n_helper.rb
1770
1782
  - entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb
1771
1783
  - entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb
@@ -1782,6 +1794,7 @@ files:
1782
1794
  - entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb
1783
1795
  - entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_seed.json.jbuilder
1784
1796
  - entry_types/scrolled/app/views/pageflow_scrolled/entries/_global_notices.html.erb
1797
+ - entry_types/scrolled/app/views/pageflow_scrolled/entries/_manifest.json.jbuilder
1785
1798
  - entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb
1786
1799
  - entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder
1787
1800
  - entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder
@@ -1791,48 +1804,14 @@ files:
1791
1804
  - entry_types/scrolled/config/initializers/help_entries.rb
1792
1805
  - entry_types/scrolled/config/locales/de.yml
1793
1806
  - entry_types/scrolled/config/locales/en.yml
1794
- - entry_types/scrolled/config/locales/new/before_after_slider.de.yml
1795
- - entry_types/scrolled/config/locales/new/before_after_slider.en.yml
1796
- - entry_types/scrolled/config/locales/new/center_ragged.de.yml
1797
- - entry_types/scrolled/config/locales/new/center_ragged.en.yml
1798
- - entry_types/scrolled/config/locales/new/consent.de.yml
1799
- - entry_types/scrolled/config/locales/new/consent.en.yml
1800
- - entry_types/scrolled/config/locales/new/content_element_categories.de.yml
1801
- - entry_types/scrolled/config/locales/new/content_element_categories.en.yml
1802
- - entry_types/scrolled/config/locales/new/default_transition.de.yml
1803
- - entry_types/scrolled/config/locales/new/default_transition.en.yml
1804
- - entry_types/scrolled/config/locales/new/header_line_breaks.de.yml
1805
- - entry_types/scrolled/config/locales/new/header_line_breaks.en.yml
1806
- - entry_types/scrolled/config/locales/new/header_size.de.yml
1807
- - entry_types/scrolled/config/locales/new/header_size.en.yml
1808
- - entry_types/scrolled/config/locales/new/iframe_embed.de.yml
1809
- - entry_types/scrolled/config/locales/new/iframe_embed.en.yml
1810
- - entry_types/scrolled/config/locales/new/inline_loops.de.yml
1811
- - entry_types/scrolled/config/locales/new/inline_loops.en.yml
1812
- - entry_types/scrolled/config/locales/new/portrait_inline_image.de.yml
1813
- - entry_types/scrolled/config/locales/new/portrait_inline_image.en.yml
1814
- - entry_types/scrolled/config/locales/new/section_width.de.yml
1815
- - entry_types/scrolled/config/locales/new/section_width.en.yml
1816
- - entry_types/scrolled/config/locales/new/typography_variants.de.yml
1817
- - entry_types/scrolled/config/locales/new/typography_variants.en.yml
1818
- - entry_types/scrolled/config/locales/new/video_embed_poster.de.yml
1819
- - entry_types/scrolled/config/locales/new/video_embed_poster.en.yml
1820
- - entry_types/scrolled/config/locales/new/waveform_styles.de.yml
1821
- - entry_types/scrolled/config/locales/new/waveform_styles.en.yml
1822
- - entry_types/scrolled/config/locales/new/widgets.de.yml
1823
- - entry_types/scrolled/config/locales/new/widgets.en.yml
1824
1807
  - entry_types/scrolled/config/routes.rb
1825
1808
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb
1826
1809
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/android-chrome-192x192.png
1827
1810
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/android-chrome-512x512.png
1828
1811
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/apple-touch-icon.png
1829
- - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/browserconfig.xml
1830
1812
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/favicon-16x16.png
1831
1813
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/favicon-32x32.png
1832
1814
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/favicon.ico
1833
- - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/mstile-150x150.png
1834
- - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/safari-pinned-tab.svg
1835
- - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/site.webmanifest
1836
1815
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDesktop.svg
1837
1816
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoMobile.svg
1838
1817
  - entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/unmute.mp3
@@ -1845,6 +1824,7 @@ files:
1845
1824
  - entry_types/scrolled/lib/pageflow_scrolled/plugin.rb
1846
1825
  - entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb
1847
1826
  - entry_types/scrolled/lib/pageflow_scrolled/seeds.rb
1827
+ - entry_types/scrolled/lib/pageflow_scrolled/web_app_manifest.rb
1848
1828
  - entry_types/scrolled/lib/tasks/pageflow_scrolled/create_bundle_symlinks_for_yarn.rake
1849
1829
  - entry_types/scrolled/lib/tasks/pageflow_scrolled/dummy.rake
1850
1830
  - entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake
@@ -1854,15 +1834,15 @@ files:
1854
1834
  - entry_types/scrolled/package/contentElements-frontend.js
1855
1835
  - entry_types/scrolled/package/editor.js
1856
1836
  - entry_types/scrolled/package/frontend-server.js
1857
- - entry_types/scrolled/package/frontend/EditableInlineText.module-b9923660.js
1858
- - entry_types/scrolled/package/frontend/PhonePlatformContext-9fb97827.js
1859
- - entry_types/scrolled/package/frontend/Viewer-e2290ea0.js
1837
+ - entry_types/scrolled/package/frontend/EditableInlineText.module-c6672f27.js
1838
+ - entry_types/scrolled/package/frontend/PhonePlatformContext-22e65f92.js
1839
+ - entry_types/scrolled/package/frontend/Viewer-6b05522f.js
1860
1840
  - entry_types/scrolled/package/frontend/Wavesurfer-7d9cf1b7.js
1861
- - entry_types/scrolled/package/frontend/components-6ab26015.js
1841
+ - entry_types/scrolled/package/frontend/arrowRight-7e3d9dd5.js
1842
+ - entry_types/scrolled/package/frontend/components-487daafa.js
1862
1843
  - entry_types/scrolled/package/frontend/createSuper-d0f30da3.js
1863
1844
  - entry_types/scrolled/package/frontend/index.css
1864
1845
  - entry_types/scrolled/package/frontend/index.js
1865
- - entry_types/scrolled/package/frontend/usePhonePlatform-2857c22b.js
1866
1846
  - entry_types/scrolled/package/package.json
1867
1847
  - entry_types/scrolled/package/testHelpers.js
1868
1848
  - entry_types/scrolled/package/values/breakpoints.module.css
@@ -1874,6 +1854,7 @@ files:
1874
1854
  - entry_types/scrolled/spec/factories/sections.rb
1875
1855
  - entry_types/scrolled/spec/factories/storylines.rb
1876
1856
  - entry_types/scrolled/spec/fixtures/audio.m4a
1857
+ - entry_types/scrolled/spec/fixtures/image.ico
1877
1858
  - entry_types/scrolled/spec/fixtures/image.jpg
1878
1859
  - entry_types/scrolled/spec/fixtures/image.svg
1879
1860
  - entry_types/scrolled/spec/fixtures/video.mp4
@@ -2016,6 +1997,8 @@ files:
2016
1997
  - spec/factories/invited_user.rb
2017
1998
  - spec/factories/memberships.rb
2018
1999
  - spec/factories/pages.rb
2000
+ - spec/factories/permalink_directory.rb
2001
+ - spec/factories/permalinks.rb
2019
2002
  - spec/factories/published_entries.rb
2020
2003
  - spec/factories/revisions.rb
2021
2004
  - spec/factories/storylines.rb
@@ -1,7 +0,0 @@
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."
@@ -1,7 +0,0 @@
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."
@@ -1,8 +0,0 @@
1
- de:
2
- pageflow_scrolled:
3
- editor:
4
- content_elements:
5
- inlineBeforeAfter:
6
- attributes:
7
- slider: DELETED
8
- slider_handle: DELETED
@@ -1,8 +0,0 @@
1
- en:
2
- pageflow_scrolled:
3
- editor:
4
- content_elements:
5
- inlineBeforeAfter:
6
- attributes:
7
- slider: DELETED
8
- slider_handle: DELETED
@@ -1,8 +0,0 @@
1
- de:
2
- pageflow_scrolled:
3
- editor:
4
- edit_section:
5
- attributes:
6
- layout:
7
- values:
8
- centerRagged: "Zentriert"
@@ -1,9 +0,0 @@
1
- en:
2
- pageflow_scrolled:
3
- editor:
4
- edit_section:
5
- attributes:
6
- layout:
7
- values:
8
- centerRagged: "Centered (Ragged)"
9
- center: "Centered"
@@ -1,25 +0,0 @@
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'
@@ -1,24 +0,0 @@
1
- en:
2
- pageflow_scrolled:
3
- public:
4
- third_party_consent:
5
- opt_in_prompt:
6
- video: DELETED
7
- youtube: I agree with being shown YouTube videos.
8
- vimeo: I agree with being shown Vimeo videos.
9
- facebook: I agree with being shown Facebook videos.
10
- consent_accept_all: Accept all and close
11
- consent_configure: More Information
12
- consent_deny_all: Deny
13
- consent_expand_vendor: More information
14
- consent_no_vendors: Currently not using any third party integrations.
15
- consent_prompt_html: |-
16
- This website uses third party technologies.
17
- We are asking your permission to use these technologies.
18
- You can always change or withdraw your consent later via our
19
- <a href="%{privacyLinkUrl}" target="_blank">privacy policy</a> page.
20
- consent_save: Save selection
21
- consent_settings: Privacy Settings
22
- pageflow:
23
- datawrapper_chart_embed_opt_in:
24
- feature_name: 'Opt-in for Datawrapper embeds'
@@ -1,39 +0,0 @@
1
- de:
2
- pageflow_scrolled:
3
- editor:
4
- content_element_categories:
5
- basic:
6
- name: "Basic"
7
- links:
8
- name: "Verweise"
9
- data:
10
- name: "Daten und Diagramme"
11
- media:
12
- name: "Media"
13
- interactive:
14
- name: "Interaktiv"
15
- content_elements:
16
- dataWrapperChart:
17
- description: "Einbindung von Diagrammen, die mit Datawrapper erstellt wurden"
18
- externalLinkList:
19
- description: "Sammlung von Verweisen zu Webseiten außerhalb des Beitrags"
20
- heading:
21
- description: "Beitrags- oder Kapiteltitel"
22
- inlineAudio:
23
- description: "Wiedergabe einer Audiodatei mit Steuerelementen"
24
- inlineBeforeAfter:
25
- description: "Zwei übereinandergelegte Bilder mit Schieberegler getrennt"
26
- inlineImage:
27
- description: "Einbindung von Bildern"
28
- inlineVideo:
29
- description: "Wiedergabe einer Videodatei mit Steuerelementen"
30
- soundDisclaimer:
31
- description: "Lass den Leser den Ton aktiveren"
32
- textBlock:
33
- description: "Text mit Listen, Zitaten und Zwischenüberschriften"
34
- videoEmbed:
35
- description: "Bettet ein externes Video von YouTube, Vimeo oder Facebook ein"
36
- vrImage:
37
- description: "Interaktives Panorama aus Bild mit rektangularer Projektion"
38
- iframeEmbed:
39
- description: "Einbindung einer extern gehosteten Website"
@@ -1,39 +0,0 @@
1
- en:
2
- pageflow_scrolled:
3
- editor:
4
- content_element_categories:
5
- basic:
6
- name: "Basic"
7
- links:
8
- name: "Links"
9
- data:
10
- name: "Data and Diagrams"
11
- media:
12
- name: "Media"
13
- interactive:
14
- name: "Interactive"
15
- content_elements:
16
- dataWrapperChart:
17
- description: "Embedded chart created with Datawrapper"
18
- externalLinkList:
19
- description: "A collection of links to external websites"
20
- heading:
21
- description: "Entry or chapter title"
22
- inlineAudio:
23
- description: "Player or waveform with controls"
24
- inlineBeforeAfter:
25
- description: "Compare to images using a slider"
26
- inlineImage:
27
- description: "Display an image"
28
- inlineVideo:
29
- description: "Player with controls"
30
- soundDisclaimer:
31
- description: "Make sure users unmute before continuing"
32
- textBlock:
33
- description: "Text with lists, block quotes and sub-headings"
34
- videoEmbed:
35
- description: "Embed a video from YouTube, Vimeo or Facebook"
36
- vrImage:
37
- description: "Interactive panorama using an image with rectangular projection"
38
- iframeEmbed:
39
- description: "Embed externally hosted websites"
@@ -1,14 +0,0 @@
1
- de:
2
- pageflow_scrolled:
3
- editor:
4
- edit_section_transition:
5
- attributes:
6
- transition:
7
- values:
8
- fade: "Überblenden"
9
- fadeBg: "DELETE"
10
- variants:
11
- fade: "Inhalte der Abschnitte ebenfalls überblenden"
12
- fadeBg: "Nur Hintergründe der Abschnitte überblenden"
13
- mark_as_default_transition: "Als Standard für neue Abschnitte verwenden"
14
- default_transition: "Wird als Standard für neue Abschnitte verwendet"
@@ -1,14 +0,0 @@
1
- en:
2
- pageflow_scrolled:
3
- editor:
4
- edit_section_transition:
5
- attributes:
6
- transition:
7
- values:
8
- fade: "Cross Fade"
9
- fadeBg: "DELETE"
10
- variants:
11
- fade: "Also fade content of sections"
12
- fadeBg: "Fade only section backgrounds"
13
- mark_as_default_transition: "Use as default for new sections"
14
- default_transition: "Used as default for new sections"