pageflow 15.7.1 → 15.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +103 -216
  3. data/README.md +1 -9
  4. data/Rakefile +4 -1
  5. data/admins/pageflow/entry.rb +32 -6
  6. data/admins/pageflow/user.rb +7 -0
  7. data/app/assets/javascripts/pageflow/admin/entries.js +40 -0
  8. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +65 -0
  9. data/app/assets/stylesheets/pageflow/admin.scss +1 -0
  10. data/app/assets/stylesheets/pageflow/editor/base.scss +2 -6
  11. data/app/assets/stylesheets/pageflow/editor/dialogs.scss +2 -0
  12. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +9 -0
  13. data/app/assets/stylesheets/pageflow/editor/info_box.scss +13 -3
  14. data/app/assets/stylesheets/pageflow/mixins/buttons.scss +1 -0
  15. data/app/assets/stylesheets/pageflow/page.scss +0 -2
  16. data/app/assets/stylesheets/pageflow/themes/default/page.scss +1 -1
  17. data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -1
  18. data/app/controllers/pageflow/editor/file_import_controller.rb +32 -42
  19. data/app/controllers/pageflow/entries_controller.rb +25 -1
  20. data/app/helpers/pageflow/admin/permalinks_helper.rb +15 -0
  21. data/app/helpers/pageflow/entries_helper.rb +9 -1
  22. data/app/helpers/pageflow/themings_helper.rb +1 -1
  23. data/app/inputs/pageflow_permalink_input.rb +47 -0
  24. data/app/models/concerns/pageflow/permalinkable.rb +12 -0
  25. data/app/models/concerns/pageflow/reusable_file.rb +5 -0
  26. data/app/models/concerns/pageflow/uploadable_file.rb +4 -0
  27. data/app/models/pageflow/customized_theme.rb +4 -2
  28. data/app/models/pageflow/entry.rb +5 -0
  29. data/app/models/pageflow/entry_at_revision.rb +2 -1
  30. data/app/models/pageflow/entry_duplicate.rb +7 -0
  31. data/app/models/pageflow/image_file_url_templates.rb +2 -2
  32. data/app/models/pageflow/permalink.rb +39 -0
  33. data/app/models/pageflow/permalink_directory.rb +10 -0
  34. data/app/models/pageflow/published_entry.rb +17 -0
  35. data/app/models/pageflow/revision.rb +1 -1
  36. data/app/models/pageflow/theme_customization_file.rb +6 -1
  37. data/app/models/pageflow/theming.rb +1 -0
  38. data/app/views/admin/entries/_form.html.erb +9 -1
  39. data/app/views/admin/entries/_permalink_inputs.html.erb +6 -0
  40. data/app/views/admin/entries/permalink_inputs.html.erb +7 -0
  41. data/app/views/pageflow/editor/file_import/start_import_job.json.jbuilder +10 -0
  42. data/app/views/pageflow/files/_file.json.jbuilder +1 -0
  43. data/config/initializers/mime_types.rb +1 -0
  44. data/config/routes.rb +8 -5
  45. data/db/migrate/20221024100724_create_pageflow_permalink_directories.rb +10 -0
  46. data/db/migrate/20221025074049_add_permalink_attributes_to_entries.rb +5 -0
  47. data/db/migrate/20221027065022_create_pageflow_permalinks.rb +12 -0
  48. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +166 -169
  49. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +44 -2
  50. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +5 -5
  51. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +1 -1
  52. data/entry_types/paged/config/initializers/features.rb +2 -0
  53. data/entry_types/paged/config/locales/{new/help.de.yml → de.yml} +74 -65
  54. data/entry_types/paged/config/locales/{new/help.en.yml → en.yml} +66 -56
  55. data/entry_types/scrolled/app/helpers/pageflow_scrolled/favicon_helper.rb +39 -13
  56. data/entry_types/scrolled/app/helpers/pageflow_scrolled/generated_media_queries_helper.rb +55 -0
  57. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +6 -2
  58. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +2 -0
  59. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/_manifest.json.jbuilder +16 -0
  60. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +9 -3
  61. data/entry_types/scrolled/app/views/pageflow_scrolled/favicons/_entry.html.erb +16 -10
  62. data/entry_types/scrolled/config/locales/de.yml +265 -76
  63. data/entry_types/scrolled/config/locales/en.yml +266 -77
  64. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +3 -3
  65. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +14 -0
  66. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +1 -1
  67. data/entry_types/scrolled/lib/pageflow_scrolled/web_app_manifest.rb +11 -0
  68. data/entry_types/scrolled/lib/pageflow_scrolled.rb +39 -1
  69. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +3 -2
  70. data/entry_types/scrolled/package/contentElements-editor.js +124 -38
  71. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  72. data/entry_types/scrolled/package/contentElements-frontend.js +321 -27
  73. data/entry_types/scrolled/package/editor.js +1345 -739
  74. data/entry_types/scrolled/package/frontend/EditableInlineText.module-c6672f27.js +5314 -0
  75. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-9fb97827.js → PhonePlatformContext-22e65f92.js} +40 -4
  76. data/entry_types/scrolled/package/frontend/{Viewer-e2290ea0.js → Viewer-6b05522f.js} +6 -40
  77. data/entry_types/scrolled/package/frontend/arrowRight-7e3d9dd5.js +42 -0
  78. data/entry_types/scrolled/package/frontend/{components-6ab26015.js → components-487daafa.js} +546 -361
  79. data/entry_types/scrolled/package/frontend/index.css +1 -1
  80. data/entry_types/scrolled/package/frontend/index.js +197 -3674
  81. data/entry_types/scrolled/package/package.json +3 -2
  82. data/entry_types/scrolled/package/testHelpers.js +12 -2
  83. data/entry_types/scrolled/package/widgets/defaultNavigation.css +1 -1
  84. data/entry_types/scrolled/package/widgets/defaultNavigation.js +35 -32
  85. data/entry_types/scrolled/spec/fixtures/image.ico +0 -0
  86. data/lib/pageflow/entry_type.rb +6 -2
  87. data/lib/pageflow/version.rb +1 -1
  88. data/package/editor.js +122 -149
  89. data/package/frontend.js +19 -2
  90. data/package/testHelpers.js +39 -6
  91. data/spec/factories/entries.rb +17 -0
  92. data/spec/factories/permalink_directory.rb +6 -0
  93. data/spec/factories/permalinks.rb +4 -0
  94. data/spec/factories/published_entries.rb +2 -0
  95. metadata +31 -52
  96. data/app/assets/javascripts/pageflow/dist/editor.js +0 -11890
  97. data/app/assets/javascripts/pageflow/dist/frontend.js +0 -5800
  98. data/app/assets/javascripts/pageflow/dist/react-client.js +0 -22
  99. data/app/assets/javascripts/pageflow/dist/react-server.js +0 -19
  100. data/entry_types/paged/config/locales/new/video_contain.de.yml +0 -7
  101. data/entry_types/paged/config/locales/new/video_contain.en.yml +0 -7
  102. data/entry_types/scrolled/config/locales/new/before_after_slider.de.yml +0 -8
  103. data/entry_types/scrolled/config/locales/new/before_after_slider.en.yml +0 -8
  104. data/entry_types/scrolled/config/locales/new/center_ragged.de.yml +0 -8
  105. data/entry_types/scrolled/config/locales/new/center_ragged.en.yml +0 -9
  106. data/entry_types/scrolled/config/locales/new/consent.de.yml +0 -25
  107. data/entry_types/scrolled/config/locales/new/consent.en.yml +0 -24
  108. data/entry_types/scrolled/config/locales/new/content_element_categories.de.yml +0 -39
  109. data/entry_types/scrolled/config/locales/new/content_element_categories.en.yml +0 -39
  110. data/entry_types/scrolled/config/locales/new/default_transition.de.yml +0 -14
  111. data/entry_types/scrolled/config/locales/new/default_transition.en.yml +0 -14
  112. data/entry_types/scrolled/config/locales/new/header_line_breaks.de.yml +0 -28
  113. data/entry_types/scrolled/config/locales/new/header_line_breaks.en.yml +0 -27
  114. data/entry_types/scrolled/config/locales/new/header_size.de.yml +0 -17
  115. data/entry_types/scrolled/config/locales/new/header_size.en.yml +0 -17
  116. data/entry_types/scrolled/config/locales/new/iframe_embed.de.yml +0 -39
  117. data/entry_types/scrolled/config/locales/new/iframe_embed.en.yml +0 -39
  118. data/entry_types/scrolled/config/locales/new/inline_loops.de.yml +0 -26
  119. data/entry_types/scrolled/config/locales/new/inline_loops.en.yml +0 -26
  120. data/entry_types/scrolled/config/locales/new/portrait_inline_image.de.yml +0 -9
  121. data/entry_types/scrolled/config/locales/new/portrait_inline_image.en.yml +0 -9
  122. data/entry_types/scrolled/config/locales/new/section_width.de.yml +0 -10
  123. data/entry_types/scrolled/config/locales/new/section_width.en.yml +0 -10
  124. data/entry_types/scrolled/config/locales/new/typography_variants.de.yml +0 -7
  125. data/entry_types/scrolled/config/locales/new/typography_variants.en.yml +0 -7
  126. data/entry_types/scrolled/config/locales/new/video_embed_poster.de.yml +0 -8
  127. data/entry_types/scrolled/config/locales/new/video_embed_poster.en.yml +0 -8
  128. data/entry_types/scrolled/config/locales/new/waveform_styles.de.yml +0 -11
  129. data/entry_types/scrolled/config/locales/new/waveform_styles.en.yml +0 -12
  130. data/entry_types/scrolled/config/locales/new/widgets.de.yml +0 -6
  131. data/entry_types/scrolled/config/locales/new/widgets.en.yml +0 -6
  132. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/browserconfig.xml +0 -9
  133. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/mstile-150x150.png +0 -0
  134. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/safari-pinned-tab.svg +0 -46
  135. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/site.webmanifest +0 -19
  136. data/entry_types/scrolled/package/frontend/EditableInlineText.module-b9923660.js +0 -993
  137. data/entry_types/scrolled/package/frontend/usePhonePlatform-2857c22b.js +0 -34
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c1a50cfe81bd53808d9ae9dad7d9a4a66b694bd4362e5b775cc214978404cedc
4
- data.tar.gz: 2071f8c941906db50038ad08e3c6e16ea3082e1f879f4f523d9c5ca8e69870d6
3
+ metadata.gz: f1bbd00f3c57790e6bdeb0ffd65d56fa29eb3c239b31a1b92c11fed242f9423e
4
+ data.tar.gz: d9d44c5a5273ffd92086d3303bf5806347c16406083ff60ece793b6e09de7e71
5
5
  SHA512:
6
- metadata.gz: 207901a660ce7258638a9ac6095cf95e9260904eec7e471ceb3e9c8a23dcc6aef00b098135b1fb1b7b81be750166426a412d91013803452f4d72ed8eef77471f
7
- data.tar.gz: de7df8277fe83db6d8b0e5391868a6f94f86fb3a82622c526d71cc5656c5e12bcec1c33cf75d5a3ec420cd8af352545555433306d2f59cbc16dd45549790297a
6
+ metadata.gz: 96f45b7ee97ae6218a92b973b9265437dafc8709587f50035d1a8cfb733022d7dbdfd82a79e3545fa71f5e6d8f45347fcd207c897a2c0cf961c6441045a60381
7
+ data.tar.gz: 786c1620c4977004d401dcd85ee51868abfb5bb4ce6c48c0131ce4e79fa481e1f8880f05c2a3498bc782b409769eff81d6b7e6c45f496a56901a266b02a4bd59
data/CHANGELOG.md CHANGED
@@ -1,265 +1,152 @@
1
1
  # CHANGELOG
2
2
 
3
- ### Version 15.7.1
3
+ ### Version 15.8.0
4
4
 
5
- 2022-09-14
5
+ 2022-12-23
6
6
 
7
- [Compare changes](https://github.com/codevise/pageflow/compare/v15.7.0...v15.7.1)
8
-
9
- ##### Security
10
-
11
- - Fix
12
- [GHSA-qcqv-38jg-2r43](https://github.com/codevise/pageflow/security/advisories/GHSA-qcqv-38jg-2r43):
13
- Insecure direct object reference in membership update endpoint
14
- ([#1862](https://github.com/codevise/pageflow/pull/1862))
15
- - Fix
16
- [GHSA-wrrw-crp8-979q](https://github.com/codevise/pageflow/security/advisories/GHSA-wrrw-crp8-979q):
17
- Sensitive user data extraction via Ransack query injection
18
- ([#1862](https://github.com/codevise/pageflow/pull/1862))
19
-
20
- ### Version 15.7.0
21
-
22
- 2022-07-18
23
-
24
- [Compare changes](https://github.com/codevise/pageflow/compare/15-6-stable...v15.7.0)
7
+ [Compare changes](https://github.com/codevise/pageflow/compare/15-7-stable...v15.8.0)
25
8
 
26
9
  #### Core
27
10
 
28
11
  ##### Rails Engine
29
12
 
30
- - Allow skipping encoding confirmation
31
- ([#1824](https://github.com/codevise/pageflow/pull/1824))
32
- - Allow disabling taking snapshots when acquiring an editor lock
33
- ([#1819](https://github.com/codevise/pageflow/pull/1819))
34
- - Theme customization
35
- ([#1713](https://github.com/codevise/pageflow/pull/1713),
36
- [#1771](https://github.com/codevise/pageflow/pull/1771))
37
- - Fix compatibility with JBuilder 2.11.3
38
- ([#1757](https://github.com/codevise/pageflow/pull/1757))
39
- - Prevent exception when reusing file from deleted entry
40
- ([#1834](https://github.com/codevise/pageflow/pull/1834))
13
+ - Permalinks
14
+ ([#1883](https://github.com/codevise/pageflow/pull/1883))
15
+ - Add user_changed hook
16
+ ([#1859](https://github.com/codevise/pageflow/pull/1859))
17
+ - Allow adding id in data attribute when adding editor main menu item
18
+ ([#1837](https://github.com/codevise/pageflow/pull/1837))
41
19
 
42
20
  ##### Admin
43
21
 
44
- - Improve entry new form
45
- ([#1822](https://github.com/codevise/pageflow/pull/1822))
46
- - Improve admin styles
47
- ([#1816](https://github.com/codevise/pageflow/pull/1816))
48
- - Remove scrolling attribute from embed iframe snippet
49
- ([#1759](https://github.com/codevise/pageflow/pull/1759))
50
- - Let admin filters entry admin by entry type
51
- ([#1756](https://github.com/codevise/pageflow/pull/1756))
22
+ - Improve membership update
23
+ ([#1862](https://github.com/codevise/pageflow/pull/1862))
52
24
 
53
25
  ##### Editor
54
26
 
55
- - Rebrush editor UI
56
- ([#1809](https://github.com/codevise/pageflow/pull/1809))
57
- - Improve supported host handling in url input
58
- ([#1741](https://github.com/codevise/pageflow/pull/1741))
27
+ - Improve file import controller
28
+ ([#1847](https://github.com/codevise/pageflow/pull/1847))
59
29
 
60
30
  ##### Published Entry
61
31
 
62
- - Use canonical entry url prefix in pretty urls
63
- ([#1752](https://github.com/codevise/pageflow/pull/1752))
64
- - Support adding trailing slash to canonical entry urls
65
- ([#1833](https://github.com/codevise/pageflow/pull/1833))
66
- - Support csmil HLS playlists
67
- ([#1817](https://github.com/codevise/pageflow/pull/1817))
68
- - Load DASH on Android if hls-playlist host contains an underscore
69
- ([#1791](https://github.com/codevise/pageflow/pull/1791))
70
- - Consent
71
- ([#1705](https://github.com/codevise/pageflow/pull/1705),
72
- [#1735](https://github.com/codevise/pageflow/pull/1735),
73
- [#1712](https://github.com/codevise/pageflow/pull/1712))
32
+ - Display opt-out vendors as accepted by default on privacy page
33
+ ([#1899](https://github.com/codevise/pageflow/pull/1899))
34
+
35
+ ##### JavaScript API
36
+
37
+ - Pass alt text in media events
38
+ ([#1901](https://github.com/codevise/pageflow/pull/1901))
39
+ - Provide more tracking data
40
+ ([#1885](https://github.com/codevise/pageflow/pull/1885))
74
41
 
75
42
  ##### Internal
76
43
 
77
- - Prevent full table scan in EntryRoleQuery::Scope
78
- ([#1758](https://github.com/codevise/pageflow/pull/1758))
79
- - Upgrade Jest and Testing Library
80
- ([#1721](https://github.com/codevise/pageflow/pull/1721))
44
+ - Migrate to supported setup-ruby action
45
+ ([#1892](https://github.com/codevise/pageflow/pull/1892))
46
+
81
47
 
82
48
  #### Paged Entry Type
83
49
 
84
50
  ##### Published Entry
85
51
 
86
- - Add feature flag to use ultra image variant for paged backgrounds
87
- ([#1815](https://github.com/codevise/pageflow/pull/1815))
88
- - Allow deactivating smart contain for video pages
89
- ([#1812](https://github.com/codevise/pageflow/pull/1812))
90
- - Use large image variant for non-blurred media loading spinner
91
- ([#1769](https://github.com/codevise/pageflow/pull/1769))
92
- - Consent and embed opt-in
93
- ([#1716](https://github.com/codevise/pageflow/pull/1716),
94
- [#1715](https://github.com/codevise/pageflow/pull/1715),
95
- [#1714](https://github.com/codevise/pageflow/pull/1714),
96
- [#1710](https://github.com/codevise/pageflow/pull/1710))
52
+ - Add feature flag to enforce usage of FullHD videos
53
+ ([#1879](https://github.com/codevise/pageflow/pull/1879))
54
+ - Allow enforcing best video quality in Paged entries
55
+ ([#1863](https://github.com/codevise/pageflow/pull/1863))
56
+ - Ensure scroller content is accessible via OS X Spoken Content
57
+ ([#1870](https://github.com/codevise/pageflow/pull/1870))
97
58
 
98
- ##### Themes
59
+ ##### Internal
99
60
 
100
- - Add theme option to display image on page shadow
101
- ([#1704](https://github.com/codevise/pageflow/pull/1704),
102
- [#1706](https://github.com/codevise/pageflow/pull/1706))
103
- - Add theme option to change left position of logo
104
- ([#1707](https://github.com/codevise/pageflow/pull/1707))
61
+ - Missing semicolon in themes/default/page.scss
62
+ ([#1898](https://github.com/codevise/pageflow/pull/1898))
105
63
 
106
64
  #### Scrolled Entry Type
107
65
 
108
- ##### Rails Engine
109
-
110
- - Additional frontend seed data
111
- ([#1799](https://github.com/codevise/pageflow/pull/1799),
112
- [#1801](https://github.com/codevise/pageflow/pull/1801))
113
- - Improve guides for Pageflow Scrolled
114
- ([#1793](https://github.com/codevise/pageflow/pull/1793))
115
- - Move guides for Pageflow Pageflow to entry type directory
116
- ([#1792](https://github.com/codevise/pageflow/pull/1792))
117
- - Allow registering additional frontend/editor packs
118
- ([#1772](https://github.com/codevise/pageflow/pull/1772))
119
- - Make Webpack load chunks via asset host
120
- ([#1753](https://github.com/codevise/pageflow/pull/1753),
121
- [#1754](https://github.com/codevise/pageflow/pull/1754))
122
- - Allow transforming theme customizations
123
- ([#1746](https://github.com/codevise/pageflow/pull/1746))
124
- - Allow passing traits to create_used_file
125
- ([#1742](https://github.com/codevise/pageflow/pull/1742))
126
-
127
66
  ##### Editor
128
67
 
129
- - Make default section configurable and change default to fade
130
- ([#1760](https://github.com/codevise/pageflow/pull/1760),
131
- [#1761](https://github.com/codevise/pageflow/pull/1761))
132
- - Always allow inserting all content element types
133
- ([#1740](https://github.com/codevise/pageflow/pull/1740))
134
- - Allow moving text block ranges
135
- ([#1739](https://github.com/codevise/pageflow/pull/1739))
136
- - Render fade transition check box in Firefox
137
- ([#1728](https://github.com/codevise/pageflow/pull/1728))
68
+ - Set correct lang attribute on html element in editor preview iframe
69
+ ([#1867](https://github.com/codevise/pageflow/pull/1867),
70
+ [#1872](https://github.com/codevise/pageflow/pull/1872))
71
+ - Bug: Ensure link tooltip is readable in inverted sections
72
+ ([#1849](https://github.com/codevise/pageflow/pull/1849))
138
73
 
139
74
  ##### Published Entry
140
75
 
141
- - Add centerRagged layout variant
142
- ([#1787](https://github.com/codevise/pageflow/pull/1787))
143
- - Prevent shadow flickering while scrolling on iOS 14
144
- ([#1755](https://github.com/codevise/pageflow/pull/1755))
145
- - Consent for scrolled entries
146
- ([#1722](https://github.com/codevise/pageflow/pull/1722))
147
- - Transliterate German Umlauts in entry slugs
148
- ([#1720](https://github.com/codevise/pageflow/pull/1720))
149
-
150
- ##### Widgets
151
-
152
- - Scrolled widget types
153
- ([#1749](https://github.com/codevise/pageflow/pull/1749))
154
- - Do not convert SVG files uploaded as scrolled logo
155
- ([#1835](https://github.com/codevise/pageflow/pull/1835))
156
- - Update highlighted chapter in navigation when scrolling
157
- ([#1836](https://github.com/codevise/pageflow/pull/1836))
158
- - Allow placing widget in default navigation bar credit box
159
- ([#1828](https://github.com/codevise/pageflow/pull/1828))
160
- - Do not pause loops when audio focus is lost
161
- ([#1827](https://github.com/codevise/pageflow/pull/1827))
162
- - Fix unmute icon color in Safari
163
- ([#1808](https://github.com/codevise/pageflow/pull/1808))
164
- - Ensure last item of mobile menu is visible on Android
165
- ([#1807](https://github.com/codevise/pageflow/pull/1807))
166
- - Do not collapse navigation bar after iOS scroll bouncing
167
- ([#1806](https://github.com/codevise/pageflow/pull/1806))
168
- - Align navigation breakpoints with theme breakpoints
169
- ([#1770](https://github.com/codevise/pageflow/pull/1770))
76
+ - Section and chapter inline links
77
+ ([#1886](https://github.com/codevise/pageflow/pull/1886))
78
+ - Typography variants
79
+ ([#1842](https://github.com/codevise/pageflow/pull/1842),
80
+ [#1845](https://github.com/codevise/pageflow/pull/1845))
81
+ - Improve backdrop hiding
82
+ ([#1882](https://github.com/codevise/pageflow/pull/1881),
83
+ [#1881](https://github.com/codevise/pageflow/pull/1882))
84
+ - Backdrop effects
85
+ ([#1841](https://github.com/codevise/pageflow/pull/1841),
86
+ [#1846](https://github.com/codevise/pageflow/pull/1846))
87
+ - Make border radius of cards appearance configurable
88
+ ([#1838](https://github.com/codevise/pageflow/pull/1838))
89
+ - Allow using SVG images as backdrops and inline images
90
+ ([#1860](https://github.com/codevise/pageflow/pull/1860))
91
+ - Improve scrolled favicons
92
+ ([#1858](https://github.com/codevise/pageflow/pull/1858))
93
+ - Use public translations from pageflow-public-i18n in scrolled
94
+ ([#1853](https://github.com/codevise/pageflow/pull/1853))
95
+ - Rewrite backdrop/motif area logic based on CSS as experimental feature
96
+ ([#1854](https://github.com/codevise/pageflow/pull/1854),
97
+ [#1855](https://github.com/codevise/pageflow/pull/1855),
98
+ [#1856](https://github.com/codevise/pageflow/pull/1856))
99
+ - Bug: Prevent foreground shadow from overlaying next section
100
+ ([#1900](https://github.com/codevise/pageflow/pull/1900))
101
+ - Bug: Ensure backdrop covers viewport in iOS in-app browers
102
+ ([#1884](https://github.com/codevise/pageflow/pull/1884))
170
103
 
171
104
  ##### Content Elements
172
105
 
173
- - Allow more position options for content elements
174
- ([#1745](https://github.com/codevise/pageflow/pull/1745))
175
- - Add portrait image option to inline image
176
- ([#1744](https://github.com/codevise/pageflow/pull/1744))
177
- - Allow defining custom poster for video embeds
178
- ([#1743](https://github.com/codevise/pageflow/pull/1743))
179
- - Make external link id generation more robust
180
- ([#1802](https://github.com/codevise/pageflow/pull/1802))
181
- - Server generated peak data for waveforms
182
- ([#1814](https://github.com/codevise/pageflow/pull/1814))
183
- - Inline video loops and improved unmute options
184
- ([#1810](https://github.com/codevise/pageflow/pull/1810))
185
- - Prevent displaying black lines at the side of FitViewport elements
186
- ([#1825](https://github.com/codevise/pageflow/pull/1825))
187
- - Allow sorting items in external links content element
188
- ([#1800](https://github.com/codevise/pageflow/pull/1800))
189
- - Apply consist max-width to wide elements
190
- ([#1798](https://github.com/codevise/pageflow/pull/1798))
191
- - Add iframe embed content element
192
- ([#1762](https://github.com/codevise/pageflow/pull/1762),
193
- [#1765](https://github.com/codevise/pageflow/pull/1765))
194
- - Display subtitles at the bottom of the media element
195
- ([#1764](https://github.com/codevise/pageflow/pull/1764))
196
- - Add line break and manual hyphenation support for headings
197
- ([#1751](https://github.com/codevise/pageflow/pull/1751))
198
- - Add feature flag to disable scrolled chart opt-in
199
- ([#1732](https://github.com/codevise/pageflow/pull/1732))
200
- - Prevent interpreting external links as relative
201
- ([#1727](https://github.com/codevise/pageflow/pull/1727))
202
- - Use lazy opt-in consent paradigm for scrolled embeds
203
- ([#1726](https://github.com/codevise/pageflow/pull/1726))
204
- - Make heading text size configurable
205
- ([#1725](https://github.com/codevise/pageflow/pull/1725))
206
- - Make it easier to recognize 360° images
207
- ([#1724](https://github.com/codevise/pageflow/pull/1724))
208
- - Ensure contrast of text in embed opt-in
209
- ([#1723](https://github.com/codevise/pageflow/pull/1723))
210
- - Remove option hide before/after handles
211
- ([#1719](https://github.com/codevise/pageflow/pull/1719))
212
- - Fit viewport without displaying pillar boxes
213
- ([#1718](https://github.com/codevise/pageflow/pull/1718))
214
- - Add missing translation for VR content element
215
- ([#1711](https://github.com/codevise/pageflow/pull/1711))
106
+ - Disable automatic hyphenation in text block headings
107
+ ([#1875](https://github.com/codevise/pageflow/pull/1875))
108
+ - Disable top padding for new headings
109
+ ([#1896](https://github.com/codevise/pageflow/pull/1896))
110
+ - Remove space before heading in cards appearance
111
+ ([#1851](https://github.com/codevise/pageflow/pull/1851))
112
+ - Text block line breaks
113
+ ([#1869](https://github.com/codevise/pageflow/pull/1869),
114
+ [#1871](https://github.com/codevise/pageflow/pull/1871))
115
+ - Improve mobile block quote size
116
+ ([#1868](https://github.com/codevise/pageflow/pull/1868))
117
+ - Preserve Tweet hide when unloading
118
+ ([#1864](https://github.com/codevise/pageflow/pull/1864))
119
+ - Question content element
120
+ ([#1861](https://github.com/codevise/pageflow/pull/1861))
121
+ - Improve video embed content element
122
+ ([#1848](https://github.com/codevise/pageflow/pull/1848),
123
+ [#1850](https://github.com/codevise/pageflow/pull/1850))
216
124
 
217
- ##### Themes
125
+ ##### Widgets
218
126
 
219
- - Render typography CSS rules based on scrolled theme options
220
- ([#1750](https://github.com/codevise/pageflow/pull/1750))
221
- - Allow rendering content elements with rounded corners.
222
- ([#1804](https://github.com/codevise/pageflow/pull/1804),
223
- [#1805](https://github.com/codevise/pageflow/pull/1805))
224
- - Add content surface color properties
225
- ([#1803](https://github.com/codevise/pageflow/pull/1803))
226
- - Restore spacing but make it theme configurable
227
- - Allow configuring section widths in theme
228
- ([#1786](https://github.com/codevise/pageflow/pull/1786),
229
- [#1795](https://github.com/codevise/pageflow/pull/1795),
230
- [#1796](https://github.com/codevise/pageflow/pull/1796))
231
- - Allow targeting different heading sizes via theme typography rules
232
- ([#1789](https://github.com/codevise/pageflow/pull/1789))
233
- - Text variants
234
- ([#1788](https://github.com/codevise/pageflow/pull/1788))
235
- - Allow changing content text color via theme options
236
- ([#1785](https://github.com/codevise/pageflow/pull/1785))
237
- - Allow overriding text block heading margins in typography rules
238
- ([#1784](https://github.com/codevise/pageflow/pull/1784))
239
- - Let themes customize navigation bar icons
240
- ([#1775](https://github.com/codevise/pageflow/pull/1775),
241
- [#1776](https://github.com/codevise/pageflow/pull/1776))
242
- - More theme options for scrolled default navigation
243
- ([#1768](https://github.com/codevise/pageflow/pull/1768))
127
+ - Fix info box position when all share providers are disabled
128
+ ([#1877](https://github.com/codevise/pageflow/pull/1877))
129
+ - Add option to prevent collapsing default navigation on desktop
130
+ ([#1891](https://github.com/codevise/pageflow/pull/1891))
131
+ - Options for scrolled default navigation
132
+ ([#1866](https://github.com/codevise/pageflow/pull/1866))
244
133
 
245
- ##### JavaScript API
134
+ ##### Themes
246
135
 
247
- - Make scrolled rendering test helpers available outside package
248
- ([#1818](https://github.com/codevise/pageflow/pull/1818))
136
+ - Let themes define external link list variants
137
+ ([#1880](https://github.com/codevise/pageflow/pull/1880))
138
+ - Text block theme properties
139
+ ([#1873](https://github.com/codevise/pageflow/pull/1873))
140
+ - Add theme properties for cards colors
141
+ ([#1865](https://github.com/codevise/pageflow/pull/1865))
142
+ - Pass consistent arguments when transforming theme options
143
+ ([#1844](https://github.com/codevise/pageflow/pull/1844))
249
144
 
250
145
  ##### Internal
251
146
 
252
- - Fix storybook
253
- ([#1826](https://github.com/codevise/pageflow/pull/1826))
254
- - Upgrade React minor version used in development
255
- ([#1773](https://github.com/codevise/pageflow/pull/1773))
256
- - Transpile pageflow package in scrolled storybook
257
- ([#1717](https://github.com/codevise/pageflow/pull/1717))
258
- - Update Video.js for SSR fix
259
- ([#1701](https://github.com/codevise/pageflow/pull/1701))
260
- - Do not use import/export keywords in vendored deps
261
- ([#1700](https://github.com/codevise/pageflow/pull/1700))
147
+ - Also set Webpack public path for editor JS.
148
+ ([#1874](https://github.com/codevise/pageflow/pull/1874))
262
149
 
263
150
  See
264
- [15-6-stable branch](https://github.com/codevise/pageflow/blob/15-6-stable/CHANGELOG.md)
151
+ [15-7-stable branch](https://github.com/codevise/pageflow/blob/15-7-stable/CHANGELOG.md)
265
152
  for previous changes.
data/README.md CHANGED
@@ -171,15 +171,7 @@ If you run into problems during the installation of Pageflow, please refer to th
171
171
 
172
172
  ## Security Policy
173
173
 
174
- For major security issues, at least the current release series and the
175
- last major series will receive patches and new versions.
176
-
177
- Security related announcements will be posted to the
178
- [`ruby-security-ann`](https://groups.google.com/forum/#!forum/ruby-security-ann)
179
- mailing list.
180
-
181
- If you have found a security related bug, please contact
182
- `info(at)codevise.de` instead of creating a publicly visible issue.
174
+ See [`SECURITY.md`](https://github.com/codevise/pageflow/blob/master/SECURITY.md).
183
175
 
184
176
  ## Contributing
185
177
 
data/Rakefile CHANGED
@@ -21,7 +21,10 @@ end
21
21
  require 'semmy'
22
22
  Semmy::Tasks.install do |config|
23
23
  config.github_repository = 'codevise/pageflow'
24
- config.source_files_with_docs_tags = '{app,lib,packages/*/src,spec/support/pageflow}/**/*.{js,jsx,rb,scss}'
24
+ config.source_files_with_docs_tags =
25
+ '{app,lib,packages/*/src,spec/support/pageflow,' \
26
+ 'entry_types/*/{app,lib,package/src,packages/*/src}}' \
27
+ '/**/*.{js,jsx,rb,scss}'
25
28
  end
26
29
 
27
30
  require File.expand_path('spec/support/pageflow/dummy/app', File.dirname(__FILE__))
@@ -151,6 +151,18 @@ module Pageflow
151
151
  end
152
152
  end
153
153
 
154
+ collection_action :permalink_inputs do
155
+ @entry = Entry.new(permitted_params[:entry])
156
+
157
+ apply_entry_defaults(@entry)
158
+
159
+ if authorized?(:create, @entry)
160
+ render(layout: false)
161
+ else
162
+ head :forbidden
163
+ end
164
+ end
165
+
154
166
  member_action :duplicate, method: :post do
155
167
  entry = Entry.find(params[:id])
156
168
  authorize!(:duplicate, entry)
@@ -185,17 +197,18 @@ module Pageflow
185
197
  helper FoldersHelper
186
198
  helper EntriesHelper
187
199
  helper EmbedCodeHelper
200
+ helper ThemingsHelper
188
201
  helper Admin::EntriesHelper
189
202
  helper Admin::FeaturesHelper
190
203
  helper Admin::FormHelper
191
204
  helper Admin::MembershipsHelper
205
+ helper Admin::PermalinksHelper
192
206
  helper Admin::RevisionsHelper
193
207
 
194
208
  helper_method :account_policy_scope
195
209
 
196
210
  after_build do |entry|
197
- entry.account ||= account_policy_scope.entry_creatable.first || Account.first
198
- entry.theming ||= entry.account.default_theming
211
+ apply_entry_defaults(entry)
199
212
 
200
213
  if action_name == 'new' &&
201
214
  (default_entry_type = Pageflow.config.default_entry_type&.call(entry.account))
@@ -217,7 +230,15 @@ module Pageflow
217
230
  end
218
231
 
219
232
  def scoped_collection
220
- result = super.includes(:theming, :account, {memberships: :user}, :published_revision).references(:published_revision)
233
+ result =
234
+ super
235
+ .includes(:theming,
236
+ {permalink: :directory},
237
+ :account,
238
+ {memberships: :user},
239
+ :published_revision)
240
+ .references(:published_revision)
241
+
221
242
  params.key?(:folder_id) ? result.where(folder_id: params[:folder_id]) : result
222
243
  end
223
244
 
@@ -233,6 +254,11 @@ module Pageflow
233
254
 
234
255
  private
235
256
 
257
+ def apply_entry_defaults(entry)
258
+ entry.account ||= account_policy_scope.entry_creatable.first || Account.first
259
+ entry.theming ||= entry.account.default_theming
260
+ end
261
+
236
262
  def account_policy_scope
237
263
  AccountPolicy::Scope.new(current_user, Account)
238
264
  end
@@ -242,7 +268,7 @@ module Pageflow
242
268
  end
243
269
 
244
270
  def permitted_attributes
245
- result = [:title, :type_name]
271
+ result = [:title, :type_name, {permalink_attributes: [:slug, :directory_id]}]
246
272
  target = if !params[:id] && current_user.admin?
247
273
  Account.first
248
274
  elsif params[:id]
@@ -289,7 +315,7 @@ module Pageflow
289
315
  end
290
316
 
291
317
  def create_or_new_action?
292
- [:create, :new].include?(action_name.to_sym)
318
+ [:create, :new, :permalink_inputs].include?(action_name.to_sym)
293
319
  end
294
320
 
295
321
  def theming_in_allowed_themings_for?(accounts)
@@ -299,7 +325,7 @@ module Pageflow
299
325
 
300
326
  def permitted_account_attributes
301
327
  if account_params_present? &&
302
- (action_name.to_sym == :create || legally_moving_entry_to_other_account)
328
+ (create_or_new_action? || legally_moving_entry_to_other_account)
303
329
  [:account_id]
304
330
  else
305
331
  []
@@ -101,6 +101,10 @@ module Pageflow
101
101
 
102
102
  form(partial: 'form')
103
103
 
104
+ after_update do |user|
105
+ Pageflow.config.hooks.invoke(:user_changed, user)
106
+ end
107
+
104
108
  collection_action :invitation, method: [:get, :post] do
105
109
  @page_title = I18n.t('pageflow.admin.users.invite_user')
106
110
  @invitation_form = InvitationForm.new(invitation_form_params.fetch(:invitation_form, {}),
@@ -109,6 +113,7 @@ module Pageflow
109
113
 
110
114
  if request.post?
111
115
  if @invitation_form.save
116
+ Pageflow.config.hooks.invoke(:user_changed, @invitation_form.target_user)
112
117
  redirect_to(admin_user_path(@invitation_form.target_user))
113
118
  else
114
119
  render status: 422
@@ -130,6 +135,8 @@ module Pageflow
130
135
 
131
136
  if request.patch?
132
137
  if @user.update_with_password(user_profile_params)
138
+ Pageflow.config.hooks.invoke(:user_changed, @user)
139
+
133
140
  bypass_sign_in @user, scope: :user
134
141
  redirect_to admin_root_path, notice: I18n.t('pageflow.admin.users.me.updated')
135
142
  end
@@ -88,6 +88,8 @@ jQuery(function($) {
88
88
 
89
89
  $('.admin_entries form.pageflow_entry').each(function() {
90
90
  var accountSelect = $('#entry_account_id', this);
91
+ var themingSelect = $('#entry_theming_id', this);
92
+ var titleInput = $('#entry_title', this);
91
93
 
92
94
  function updateEntryTypeInput() {
93
95
  var selectedAccountId = accountSelect.val();
@@ -100,6 +102,44 @@ jQuery(function($) {
100
102
  });
101
103
  }
102
104
 
105
+ function updatePermalinkInput() {
106
+ fetchPermalinkInput(function(response) {
107
+ $('#entry_permalink_attributes_permalink_input').replaceWith(response);
108
+ });
109
+ }
110
+
111
+ function updateSlugPlaceholder() {
112
+ fetchPermalinkInput(function(response) {
113
+ $('#entry_permalink_attributes_permalink_input input[placeholder]')
114
+ .attr('placeholder',
115
+ $(response).find('input[placeholder]').attr('placeholder'));
116
+ });
117
+ }
118
+
119
+ function fetchPermalinkInput(callback) {
120
+ $.get('/admin/entries/permalink_inputs' +
121
+ '?entry[account_id]=' + accountSelect.val() +
122
+ (themingSelect.val() ? '&entry[theming_id]=' + themingSelect.val() : '') +
123
+ '&entry[title]=' + encodeURIComponent(titleInput.val()))
124
+ .done(callback);
125
+ }
126
+
103
127
  accountSelect.on('change', updateEntryTypeInput);
128
+
129
+ accountSelect.on('change', updatePermalinkInput);
130
+ themingSelect.on('change', updatePermalinkInput);
131
+
132
+ titleInput.on('change keyup', debounce(updateSlugPlaceholder, 300));
104
133
  });
105
134
  });
135
+
136
+ function debounce(func, timeout){
137
+ var timer;
138
+
139
+ return function() {
140
+ var args = arguments;
141
+
142
+ clearTimeout(timer);
143
+ timer = setTimeout(function() { func.apply(this, args); }, timeout);
144
+ };
145
+ }