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
@@ -1,6 +1,8 @@
1
1
  <%= admin_form_for([:admin, resource]) do |f| %>
2
2
  <%= f.inputs do %>
3
- <%= f.input :title, hint: I18n.t('pageflow.admin.entries.title_hint') %>
3
+ <%= f.input(:title,
4
+ hint: @entry.theming.permalink_directories.blank? &&
5
+ I18n.t('pageflow.admin.entries.title_hint')) %>
4
6
 
5
7
  <% if authorized?(:update_account_on, resource) &&
6
8
  account_policy_scope.entry_creatable.many? %>
@@ -27,6 +29,12 @@
27
29
  include_blank: false) %>
28
30
  <% end %>
29
31
 
32
+ <%= f.fields_for(:permalink, @entry.permalink || Pageflow::Permalink.new) do |permalink| %>
33
+ <%= render('admin/entries/permalink_inputs',
34
+ entry: resource,
35
+ form: permalink) %>
36
+ <% end %>
37
+
30
38
  <% if resource.new_record? %>
31
39
  <%= render('pageflow/admin/entries/entry_type_name_input',
32
40
  form: f,
@@ -0,0 +1,6 @@
1
+ <%= form.input(:permalink,
2
+ as: :pageflow_permalink,
3
+ base_url: pretty_theming_url(entry.theming),
4
+ directory_collection: collection_for_permalink_directories(entry.theming,
5
+ form.object),
6
+ slug_placeholder: entry.default_permalink_slug) %>
@@ -0,0 +1,7 @@
1
+ <%= fields_for(:entry, @entry, builder: ActiveAdmin::FormBuilder) do |form| %>
2
+ <%= form.fields_for(:permalink, @entry.permalink || Pageflow::Permalink.new) do |permalink| %>
3
+ <%= render('admin/entries/permalink_inputs',
4
+ entry: @entry,
5
+ form: permalink) %>
6
+ <% end %>
7
+ <% end %>
@@ -0,0 +1,10 @@
1
+ json.array! @items do |item|
2
+ json.source_url item[:source_url]
3
+
4
+ json.attributes do
5
+ json.partial!(object: item[:file],
6
+ partial: 'pageflow/editor/files/file',
7
+ locals: {file_type: item[:file].file_type},
8
+ as: :file)
9
+ end
10
+ end
@@ -2,6 +2,7 @@ json.call(file,
2
2
  :id,
3
3
  :perma_id,
4
4
  :basename,
5
+ :extension,
5
6
  :rights,
6
7
  :configuration,
7
8
  :parent_file_id,
@@ -0,0 +1 @@
1
+ Mime::Type.register 'application/manifest+json', :webmanifest
data/config/routes.rb CHANGED
@@ -85,13 +85,16 @@ Pageflow::Engine.routes.draw do
85
85
  get :stylesheet, on: :member
86
86
  end
87
87
 
88
- get ':id', to: 'entries#show', as: :short_entry
89
- get ':id/embed', to: 'entries#show', defaults: {embed: '1'}, as: :entry_embed
88
+ # Authentication provider call back
89
+ get '/auth/:provider/callback', to: 'users/omniauth_callbacks#auth_callback'
90
90
 
91
- get '/', to: 'entries#index', as: :public_root
91
+ get ':id/manifest', to: 'entries#manifest', as: :entry_manifest
92
+ get ':id/embed', to: 'entries#show', defaults: {embed: '1'}, as: :entry_embed
92
93
 
93
94
  get ':id/pages/:page_index', to: 'entries#page'
94
95
 
95
- # Authentication provider call back
96
- get '/auth/:provider/callback', to: 'users/omniauth_callbacks#auth_callback'
96
+ get ':id', to: 'entries#show', as: :short_entry
97
+ get '*directory:id', to: 'entries#show', as: :permalink, constraints: {directory: %r{(.+/)*}}
98
+
99
+ get '/', to: 'entries#index', as: :public_root
97
100
  end
@@ -0,0 +1,10 @@
1
+ class CreatePageflowPermalinkDirectories < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :pageflow_permalink_directories do |t|
4
+ t.string :path
5
+ t.belongs_to :theming, index: true
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ class AddPermalinkAttributesToEntries < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_reference :pageflow_entries, :permalink, index: true
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ class CreatePageflowPermalinks < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :pageflow_permalinks do |t|
4
+ t.string :slug
5
+ t.belongs_to :directory, index: true
6
+
7
+ t.timestamps
8
+
9
+ t.index ['slug', 'directory_id'], name: 'index_pageflow_peralinks_on_slug', unique: true
10
+ end
11
+ end
12
+ end