pageflow 15.7.0 → 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 (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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e07646ad594c834e19ed93553b64ba592dc807d85cca57a07ce3ea392f77d4c2
4
- data.tar.gz: 845f8fc85917afe64894bf61f05f520993e03b9c61a1eaed0d314d450aa41319
3
+ metadata.gz: f1bbd00f3c57790e6bdeb0ffd65d56fa29eb3c239b31a1b92c11fed242f9423e
4
+ data.tar.gz: d9d44c5a5273ffd92086d3303bf5806347c16406083ff60ece793b6e09de7e71
5
5
  SHA512:
6
- metadata.gz: 0eb5bb9a53af5e48c692d603d926d591bf2a2d762a7fb5aa630959ef4e0a3a8cea236ae3fb16d9cfa302e020318d26f7f9866fd536ba9bc385078b468cb30326
7
- data.tar.gz: c91f4e74965891b57b343f0a12eb4b8b33907a47035b7f0e3e59f36eed59b26755ca388ebe958f981be7eb1a396a69979acb7e5f1dd27ae997c84d7680395fd8
6
+ metadata.gz: 96f45b7ee97ae6218a92b973b9265437dafc8709587f50035d1a8cfb733022d7dbdfd82a79e3545fa71f5e6d8f45347fcd207c897a2c0cf961c6441045a60381
7
+ data.tar.gz: 786c1620c4977004d401dcd85ee51868abfb5bb4ce6c48c0131ce4e79fa481e1f8880f05c2a3498bc782b409769eff81d6b7e6c45f496a56901a266b02a4bd59
data/CHANGELOG.md CHANGED
@@ -1,248 +1,152 @@
1
1
  # CHANGELOG
2
2
 
3
- ### Version 15.7.0
3
+ ### Version 15.8.0
4
4
 
5
- 2022-07-18
5
+ 2022-12-23
6
6
 
7
- [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)
8
8
 
9
9
  #### Core
10
10
 
11
11
  ##### Rails Engine
12
12
 
13
- - Allow skipping encoding confirmation
14
- ([#1824](https://github.com/codevise/pageflow/pull/1824))
15
- - Allow disabling taking snapshots when acquiring an editor lock
16
- ([#1819](https://github.com/codevise/pageflow/pull/1819))
17
- - Theme customization
18
- ([#1713](https://github.com/codevise/pageflow/pull/1713),
19
- [#1771](https://github.com/codevise/pageflow/pull/1771))
20
- - Fix compatibility with JBuilder 2.11.3
21
- ([#1757](https://github.com/codevise/pageflow/pull/1757))
22
- - Prevent exception when reusing file from deleted entry
23
- ([#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))
24
19
 
25
20
  ##### Admin
26
21
 
27
- - Improve entry new form
28
- ([#1822](https://github.com/codevise/pageflow/pull/1822))
29
- - Improve admin styles
30
- ([#1816](https://github.com/codevise/pageflow/pull/1816))
31
- - Remove scrolling attribute from embed iframe snippet
32
- ([#1759](https://github.com/codevise/pageflow/pull/1759))
33
- - Let admin filters entry admin by entry type
34
- ([#1756](https://github.com/codevise/pageflow/pull/1756))
22
+ - Improve membership update
23
+ ([#1862](https://github.com/codevise/pageflow/pull/1862))
35
24
 
36
25
  ##### Editor
37
26
 
38
- - Rebrush editor UI
39
- ([#1809](https://github.com/codevise/pageflow/pull/1809))
40
- - Improve supported host handling in url input
41
- ([#1741](https://github.com/codevise/pageflow/pull/1741))
27
+ - Improve file import controller
28
+ ([#1847](https://github.com/codevise/pageflow/pull/1847))
42
29
 
43
30
  ##### Published Entry
44
31
 
45
- - Use canonical entry url prefix in pretty urls
46
- ([#1752](https://github.com/codevise/pageflow/pull/1752))
47
- - Support adding trailing slash to canonical entry urls
48
- ([#1833](https://github.com/codevise/pageflow/pull/1833))
49
- - Support csmil HLS playlists
50
- ([#1817](https://github.com/codevise/pageflow/pull/1817))
51
- - Load DASH on Android if hls-playlist host contains an underscore
52
- ([#1791](https://github.com/codevise/pageflow/pull/1791))
53
- - Consent
54
- ([#1705](https://github.com/codevise/pageflow/pull/1705),
55
- [#1735](https://github.com/codevise/pageflow/pull/1735),
56
- [#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))
57
41
 
58
42
  ##### Internal
59
43
 
60
- - Prevent full table scan in EntryRoleQuery::Scope
61
- ([#1758](https://github.com/codevise/pageflow/pull/1758))
62
- - Upgrade Jest and Testing Library
63
- ([#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
+
64
47
 
65
48
  #### Paged Entry Type
66
49
 
67
50
  ##### Published Entry
68
51
 
69
- - Add feature flag to use ultra image variant for paged backgrounds
70
- ([#1815](https://github.com/codevise/pageflow/pull/1815))
71
- - Allow deactivating smart contain for video pages
72
- ([#1812](https://github.com/codevise/pageflow/pull/1812))
73
- - Use large image variant for non-blurred media loading spinner
74
- ([#1769](https://github.com/codevise/pageflow/pull/1769))
75
- - Consent and embed opt-in
76
- ([#1716](https://github.com/codevise/pageflow/pull/1716),
77
- [#1715](https://github.com/codevise/pageflow/pull/1715),
78
- [#1714](https://github.com/codevise/pageflow/pull/1714),
79
- [#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))
80
58
 
81
- ##### Themes
59
+ ##### Internal
82
60
 
83
- - Add theme option to display image on page shadow
84
- ([#1704](https://github.com/codevise/pageflow/pull/1704),
85
- [#1706](https://github.com/codevise/pageflow/pull/1706))
86
- - Add theme option to change left position of logo
87
- ([#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))
88
63
 
89
64
  #### Scrolled Entry Type
90
65
 
91
- ##### Rails Engine
92
-
93
- - Additional frontend seed data
94
- ([#1799](https://github.com/codevise/pageflow/pull/1799),
95
- [#1801](https://github.com/codevise/pageflow/pull/1801))
96
- - Improve guides for Pageflow Scrolled
97
- ([#1793](https://github.com/codevise/pageflow/pull/1793))
98
- - Move guides for Pageflow Pageflow to entry type directory
99
- ([#1792](https://github.com/codevise/pageflow/pull/1792))
100
- - Allow registering additional frontend/editor packs
101
- ([#1772](https://github.com/codevise/pageflow/pull/1772))
102
- - Make Webpack load chunks via asset host
103
- ([#1753](https://github.com/codevise/pageflow/pull/1753),
104
- [#1754](https://github.com/codevise/pageflow/pull/1754))
105
- - Allow transforming theme customizations
106
- ([#1746](https://github.com/codevise/pageflow/pull/1746))
107
- - Allow passing traits to create_used_file
108
- ([#1742](https://github.com/codevise/pageflow/pull/1742))
109
-
110
66
  ##### Editor
111
67
 
112
- - Make default section configurable and change default to fade
113
- ([#1760](https://github.com/codevise/pageflow/pull/1760),
114
- [#1761](https://github.com/codevise/pageflow/pull/1761))
115
- - Always allow inserting all content element types
116
- ([#1740](https://github.com/codevise/pageflow/pull/1740))
117
- - Allow moving text block ranges
118
- ([#1739](https://github.com/codevise/pageflow/pull/1739))
119
- - Render fade transition check box in Firefox
120
- ([#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))
121
73
 
122
74
  ##### Published Entry
123
75
 
124
- - Add centerRagged layout variant
125
- ([#1787](https://github.com/codevise/pageflow/pull/1787))
126
- - Prevent shadow flickering while scrolling on iOS 14
127
- ([#1755](https://github.com/codevise/pageflow/pull/1755))
128
- - Consent for scrolled entries
129
- ([#1722](https://github.com/codevise/pageflow/pull/1722))
130
- - Transliterate German Umlauts in entry slugs
131
- ([#1720](https://github.com/codevise/pageflow/pull/1720))
132
-
133
- ##### Widgets
134
-
135
- - Scrolled widget types
136
- ([#1749](https://github.com/codevise/pageflow/pull/1749))
137
- - Do not convert SVG files uploaded as scrolled logo
138
- ([#1835](https://github.com/codevise/pageflow/pull/1835))
139
- - Update highlighted chapter in navigation when scrolling
140
- ([#1836](https://github.com/codevise/pageflow/pull/1836))
141
- - Allow placing widget in default navigation bar credit box
142
- ([#1828](https://github.com/codevise/pageflow/pull/1828))
143
- - Do not pause loops when audio focus is lost
144
- ([#1827](https://github.com/codevise/pageflow/pull/1827))
145
- - Fix unmute icon color in Safari
146
- ([#1808](https://github.com/codevise/pageflow/pull/1808))
147
- - Ensure last item of mobile menu is visible on Android
148
- ([#1807](https://github.com/codevise/pageflow/pull/1807))
149
- - Do not collapse navigation bar after iOS scroll bouncing
150
- ([#1806](https://github.com/codevise/pageflow/pull/1806))
151
- - Align navigation breakpoints with theme breakpoints
152
- ([#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))
153
103
 
154
104
  ##### Content Elements
155
105
 
156
- - Allow more position options for content elements
157
- ([#1745](https://github.com/codevise/pageflow/pull/1745))
158
- - Add portrait image option to inline image
159
- ([#1744](https://github.com/codevise/pageflow/pull/1744))
160
- - Allow defining custom poster for video embeds
161
- ([#1743](https://github.com/codevise/pageflow/pull/1743))
162
- - Make external link id generation more robust
163
- ([#1802](https://github.com/codevise/pageflow/pull/1802))
164
- - Server generated peak data for waveforms
165
- ([#1814](https://github.com/codevise/pageflow/pull/1814))
166
- - Inline video loops and improved unmute options
167
- ([#1810](https://github.com/codevise/pageflow/pull/1810))
168
- - Prevent displaying black lines at the side of FitViewport elements
169
- ([#1825](https://github.com/codevise/pageflow/pull/1825))
170
- - Allow sorting items in external links content element
171
- ([#1800](https://github.com/codevise/pageflow/pull/1800))
172
- - Apply consist max-width to wide elements
173
- ([#1798](https://github.com/codevise/pageflow/pull/1798))
174
- - Add iframe embed content element
175
- ([#1762](https://github.com/codevise/pageflow/pull/1762),
176
- [#1765](https://github.com/codevise/pageflow/pull/1765))
177
- - Display subtitles at the bottom of the media element
178
- ([#1764](https://github.com/codevise/pageflow/pull/1764))
179
- - Add line break and manual hyphenation support for headings
180
- ([#1751](https://github.com/codevise/pageflow/pull/1751))
181
- - Add feature flag to disable scrolled chart opt-in
182
- ([#1732](https://github.com/codevise/pageflow/pull/1732))
183
- - Prevent interpreting external links as relative
184
- ([#1727](https://github.com/codevise/pageflow/pull/1727))
185
- - Use lazy opt-in consent paradigm for scrolled embeds
186
- ([#1726](https://github.com/codevise/pageflow/pull/1726))
187
- - Make heading text size configurable
188
- ([#1725](https://github.com/codevise/pageflow/pull/1725))
189
- - Make it easier to recognize 360° images
190
- ([#1724](https://github.com/codevise/pageflow/pull/1724))
191
- - Ensure contrast of text in embed opt-in
192
- ([#1723](https://github.com/codevise/pageflow/pull/1723))
193
- - Remove option hide before/after handles
194
- ([#1719](https://github.com/codevise/pageflow/pull/1719))
195
- - Fit viewport without displaying pillar boxes
196
- ([#1718](https://github.com/codevise/pageflow/pull/1718))
197
- - Add missing translation for VR content element
198
- ([#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))
199
124
 
200
- ##### Themes
125
+ ##### Widgets
201
126
 
202
- - Render typography CSS rules based on scrolled theme options
203
- ([#1750](https://github.com/codevise/pageflow/pull/1750))
204
- - Allow rendering content elements with rounded corners.
205
- ([#1804](https://github.com/codevise/pageflow/pull/1804),
206
- [#1805](https://github.com/codevise/pageflow/pull/1805))
207
- - Add content surface color properties
208
- ([#1803](https://github.com/codevise/pageflow/pull/1803))
209
- - Restore spacing but make it theme configurable
210
- - Allow configuring section widths in theme
211
- ([#1786](https://github.com/codevise/pageflow/pull/1786),
212
- [#1795](https://github.com/codevise/pageflow/pull/1795),
213
- [#1796](https://github.com/codevise/pageflow/pull/1796))
214
- - Allow targeting different heading sizes via theme typography rules
215
- ([#1789](https://github.com/codevise/pageflow/pull/1789))
216
- - Text variants
217
- ([#1788](https://github.com/codevise/pageflow/pull/1788))
218
- - Allow changing content text color via theme options
219
- ([#1785](https://github.com/codevise/pageflow/pull/1785))
220
- - Allow overriding text block heading margins in typography rules
221
- ([#1784](https://github.com/codevise/pageflow/pull/1784))
222
- - Let themes customize navigation bar icons
223
- ([#1775](https://github.com/codevise/pageflow/pull/1775),
224
- [#1776](https://github.com/codevise/pageflow/pull/1776))
225
- - More theme options for scrolled default navigation
226
- ([#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))
227
133
 
228
- ##### JavaScript API
134
+ ##### Themes
229
135
 
230
- - Make scrolled rendering test helpers available outside package
231
- ([#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))
232
144
 
233
145
  ##### Internal
234
146
 
235
- - Fix storybook
236
- ([#1826](https://github.com/codevise/pageflow/pull/1826))
237
- - Upgrade React minor version used in development
238
- ([#1773](https://github.com/codevise/pageflow/pull/1773))
239
- - Transpile pageflow package in scrolled storybook
240
- ([#1717](https://github.com/codevise/pageflow/pull/1717))
241
- - Update Video.js for SSR fix
242
- ([#1701](https://github.com/codevise/pageflow/pull/1701))
243
- - Do not use import/export keywords in vendored deps
244
- ([#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))
245
149
 
246
150
  See
247
- [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)
248
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
  []
@@ -112,7 +112,11 @@ module Pageflow
112
112
  private
113
113
 
114
114
  def permitted_params
115
- params.permit(membership: [:user_id, :entity_id, :entity_type, :role])
115
+ if [:create, :new].include?(action_name.to_sym)
116
+ params.permit(membership: [:user_id, :entity_id, :entity_type, :role])
117
+ else
118
+ params.permit(membership: [:role])
119
+ end
116
120
  end
117
121
 
118
122
  def redirect_path
@@ -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
+ }
@@ -0,0 +1,65 @@
1
+ $pageflow-permalink-input-padding: 8px 10px 7px !default;
2
+ $pageflow-permalink-input-line-height: 1.15 !default;
3
+ $pageflow-permalink-input-border-color: #c9d0d6 !default;
4
+ $pageflow-permalink-input-border-radius: 3px !default;
5
+ $pageflow-permalink-input-focus-border-color: #99a2aa !default;
6
+ $pageflow-permalink-input-focus-box-shadow: 0 0 4px #99a2aa !default;
7
+ $pageflow-permalink-input-background-color: #fff !default;
8
+ $pageflow-permalink-input-min-width: 30% !default;
9
+
10
+ $pageflow-permalink-input-base-url-background-color: #f4f4f4 !default;
11
+ $pageflow-permalink-input-base-url-color: null !default;
12
+
13
+ $pageflow-permalink-input-directory-padding-left: 7px !default;
14
+ $pageflow-permalink-input-directory-padding-right: 7px !default;
15
+ $pageflow-permalink-input-directory-margin-h: 3px !default;
16
+ $pageflow-permalink-input-directory-background-position: null !default;
17
+
18
+ .pageflow_permalink.input {
19
+ .permalink {
20
+ display: inline-flex;
21
+ border: 1px solid $pageflow-permalink-input-border-color;
22
+ border-radius: $pageflow-permalink-input-border-radius;
23
+ background-color: $pageflow-permalink-input-background-color;
24
+ box-sizing: border-box;
25
+ min-width: $pageflow-permalink-input-min-width;
26
+ overflow: hidden;
27
+ width: 100%;
28
+
29
+ &:focus-within {
30
+ border-color: $pageflow-permalink-input-focus-border-color;
31
+ box-shadow: $pageflow-permalink-input-focus-box-shadow;
32
+ }
33
+ }
34
+
35
+ .permalink_base_url {
36
+ padding: $pageflow-permalink-input-padding;
37
+ line-height: $pageflow-permalink-input-line-height;
38
+ background-color: $pageflow-permalink-input-base-url-background-color;
39
+ color: $pageflow-permalink-input-base-url-color;
40
+ }
41
+
42
+ select,
43
+ input {
44
+ width: auto;
45
+ border: 0;
46
+
47
+ &:focus {
48
+ border: 0;
49
+ box-shadow: none;
50
+ }
51
+ }
52
+
53
+ select {
54
+ background-color: $pageflow-permalink-input-background-color;
55
+ background-position: $pageflow-permalink-input-directory-background-position;
56
+ padding-left: $pageflow-permalink-input-directory-padding-left;
57
+ padding-right: $pageflow-permalink-input-directory-padding-right;
58
+ margin: 0 $pageflow-permalink-input-directory-margin-h;
59
+ }
60
+
61
+ input {
62
+ padding-left: 0;
63
+ flex: 1;
64
+ }
65
+ }