pageflow 15.7.1 → 15.8.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }