pageflow 15.7.0 → 15.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +103 -199
  3. data/README.md +1 -9
  4. data/Rakefile +4 -1
  5. data/admins/pageflow/entry.rb +32 -6
  6. data/admins/pageflow/membership.rb +5 -1
  7. data/admins/pageflow/user.rb +7 -0
  8. data/app/assets/javascripts/pageflow/admin/entries.js +40 -0
  9. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +65 -0
  10. data/app/assets/stylesheets/pageflow/admin.scss +1 -0
  11. data/app/assets/stylesheets/pageflow/editor/base.scss +2 -6
  12. data/app/assets/stylesheets/pageflow/editor/dialogs.scss +2 -0
  13. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +9 -0
  14. data/app/assets/stylesheets/pageflow/editor/info_box.scss +13 -3
  15. data/app/assets/stylesheets/pageflow/mixins/buttons.scss +1 -0
  16. data/app/assets/stylesheets/pageflow/page.scss +0 -2
  17. data/app/assets/stylesheets/pageflow/themes/default/page.scss +1 -1
  18. data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -1
  19. data/app/controllers/pageflow/editor/file_import_controller.rb +32 -42
  20. data/app/controllers/pageflow/entries_controller.rb +25 -1
  21. data/app/helpers/pageflow/admin/permalinks_helper.rb +15 -0
  22. data/app/helpers/pageflow/entries_helper.rb +9 -1
  23. data/app/helpers/pageflow/themings_helper.rb +1 -1
  24. data/app/inputs/pageflow_permalink_input.rb +47 -0
  25. data/app/models/concerns/pageflow/permalinkable.rb +12 -0
  26. data/app/models/concerns/pageflow/reusable_file.rb +5 -0
  27. data/app/models/concerns/pageflow/uploadable_file.rb +4 -0
  28. data/app/models/pageflow/customized_theme.rb +4 -2
  29. data/app/models/pageflow/entry.rb +13 -0
  30. data/app/models/pageflow/entry_at_revision.rb +2 -1
  31. data/app/models/pageflow/entry_duplicate.rb +7 -0
  32. data/app/models/pageflow/image_file_url_templates.rb +2 -2
  33. data/app/models/pageflow/permalink.rb +39 -0
  34. data/app/models/pageflow/permalink_directory.rb +10 -0
  35. data/app/models/pageflow/published_entry.rb +17 -0
  36. data/app/models/pageflow/revision.rb +1 -1
  37. data/app/models/pageflow/theme_customization_file.rb +6 -1
  38. data/app/models/pageflow/theming.rb +1 -0
  39. data/app/views/admin/entries/_form.html.erb +9 -1
  40. data/app/views/admin/entries/_permalink_inputs.html.erb +6 -0
  41. data/app/views/admin/entries/permalink_inputs.html.erb +7 -0
  42. data/app/views/pageflow/editor/file_import/start_import_job.json.jbuilder +10 -0
  43. data/app/views/pageflow/files/_file.json.jbuilder +1 -0
  44. data/config/initializers/mime_types.rb +1 -0
  45. data/config/routes.rb +8 -5
  46. data/db/migrate/20221024100724_create_pageflow_permalink_directories.rb +10 -0
  47. data/db/migrate/20221025074049_add_permalink_attributes_to_entries.rb +5 -0
  48. data/db/migrate/20221027065022_create_pageflow_permalinks.rb +12 -0
  49. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +166 -169
  50. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +44 -2
  51. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +5 -5
  52. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +1 -1
  53. data/entry_types/paged/config/initializers/features.rb +2 -0
  54. data/entry_types/paged/config/locales/{new/help.de.yml → de.yml} +74 -65
  55. data/entry_types/paged/config/locales/{new/help.en.yml → en.yml} +66 -56
  56. data/entry_types/scrolled/app/helpers/pageflow_scrolled/favicon_helper.rb +39 -13
  57. data/entry_types/scrolled/app/helpers/pageflow_scrolled/generated_media_queries_helper.rb +55 -0
  58. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +6 -2
  59. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +2 -0
  60. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/_manifest.json.jbuilder +16 -0
  61. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +9 -3
  62. data/entry_types/scrolled/app/views/pageflow_scrolled/favicons/_entry.html.erb +16 -10
  63. data/entry_types/scrolled/config/locales/de.yml +265 -76
  64. data/entry_types/scrolled/config/locales/en.yml +266 -77
  65. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +3 -3
  66. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +14 -0
  67. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +1 -1
  68. data/entry_types/scrolled/lib/pageflow_scrolled/web_app_manifest.rb +11 -0
  69. data/entry_types/scrolled/lib/pageflow_scrolled.rb +39 -1
  70. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +3 -2
  71. data/entry_types/scrolled/package/contentElements-editor.js +124 -38
  72. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  73. data/entry_types/scrolled/package/contentElements-frontend.js +321 -27
  74. data/entry_types/scrolled/package/editor.js +1345 -739
  75. data/entry_types/scrolled/package/frontend/EditableInlineText.module-c6672f27.js +5314 -0
  76. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-9fb97827.js → PhonePlatformContext-22e65f92.js} +40 -4
  77. data/entry_types/scrolled/package/frontend/{Viewer-e2290ea0.js → Viewer-6b05522f.js} +6 -40
  78. data/entry_types/scrolled/package/frontend/arrowRight-7e3d9dd5.js +42 -0
  79. data/entry_types/scrolled/package/frontend/{components-6ab26015.js → components-487daafa.js} +546 -361
  80. data/entry_types/scrolled/package/frontend/index.css +1 -1
  81. data/entry_types/scrolled/package/frontend/index.js +197 -3674
  82. data/entry_types/scrolled/package/package.json +3 -2
  83. data/entry_types/scrolled/package/testHelpers.js +12 -2
  84. data/entry_types/scrolled/package/widgets/defaultNavigation.css +1 -1
  85. data/entry_types/scrolled/package/widgets/defaultNavigation.js +35 -32
  86. data/entry_types/scrolled/spec/fixtures/image.ico +0 -0
  87. data/lib/pageflow/entry_type.rb +6 -2
  88. data/lib/pageflow/user_mixin.rb +6 -0
  89. data/lib/pageflow/version.rb +1 -1
  90. data/package/editor.js +122 -149
  91. data/package/frontend.js +19 -2
  92. data/package/testHelpers.js +39 -6
  93. data/spec/factories/entries.rb +17 -0
  94. data/spec/factories/permalink_directory.rb +6 -0
  95. data/spec/factories/permalinks.rb +4 -0
  96. data/spec/factories/published_entries.rb +2 -0
  97. metadata +30 -47
  98. data/entry_types/paged/config/locales/new/video_contain.de.yml +0 -7
  99. data/entry_types/paged/config/locales/new/video_contain.en.yml +0 -7
  100. data/entry_types/scrolled/config/locales/new/before_after_slider.de.yml +0 -8
  101. data/entry_types/scrolled/config/locales/new/before_after_slider.en.yml +0 -8
  102. data/entry_types/scrolled/config/locales/new/center_ragged.de.yml +0 -8
  103. data/entry_types/scrolled/config/locales/new/center_ragged.en.yml +0 -9
  104. data/entry_types/scrolled/config/locales/new/consent.de.yml +0 -25
  105. data/entry_types/scrolled/config/locales/new/consent.en.yml +0 -24
  106. data/entry_types/scrolled/config/locales/new/content_element_categories.de.yml +0 -39
  107. data/entry_types/scrolled/config/locales/new/content_element_categories.en.yml +0 -39
  108. data/entry_types/scrolled/config/locales/new/default_transition.de.yml +0 -14
  109. data/entry_types/scrolled/config/locales/new/default_transition.en.yml +0 -14
  110. data/entry_types/scrolled/config/locales/new/header_line_breaks.de.yml +0 -28
  111. data/entry_types/scrolled/config/locales/new/header_line_breaks.en.yml +0 -27
  112. data/entry_types/scrolled/config/locales/new/header_size.de.yml +0 -17
  113. data/entry_types/scrolled/config/locales/new/header_size.en.yml +0 -17
  114. data/entry_types/scrolled/config/locales/new/iframe_embed.de.yml +0 -39
  115. data/entry_types/scrolled/config/locales/new/iframe_embed.en.yml +0 -39
  116. data/entry_types/scrolled/config/locales/new/inline_loops.de.yml +0 -26
  117. data/entry_types/scrolled/config/locales/new/inline_loops.en.yml +0 -26
  118. data/entry_types/scrolled/config/locales/new/portrait_inline_image.de.yml +0 -9
  119. data/entry_types/scrolled/config/locales/new/portrait_inline_image.en.yml +0 -9
  120. data/entry_types/scrolled/config/locales/new/section_width.de.yml +0 -10
  121. data/entry_types/scrolled/config/locales/new/section_width.en.yml +0 -10
  122. data/entry_types/scrolled/config/locales/new/typography_variants.de.yml +0 -7
  123. data/entry_types/scrolled/config/locales/new/typography_variants.en.yml +0 -7
  124. data/entry_types/scrolled/config/locales/new/video_embed_poster.de.yml +0 -8
  125. data/entry_types/scrolled/config/locales/new/video_embed_poster.en.yml +0 -8
  126. data/entry_types/scrolled/config/locales/new/waveform_styles.de.yml +0 -11
  127. data/entry_types/scrolled/config/locales/new/waveform_styles.en.yml +0 -12
  128. data/entry_types/scrolled/config/locales/new/widgets.de.yml +0 -6
  129. data/entry_types/scrolled/config/locales/new/widgets.en.yml +0 -6
  130. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/browserconfig.xml +0 -9
  131. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/mstile-150x150.png +0 -0
  132. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/safari-pinned-tab.svg +0 -46
  133. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/site.webmanifest +0 -19
  134. data/entry_types/scrolled/package/frontend/EditableInlineText.module-b9923660.js +0 -993
  135. data/entry_types/scrolled/package/frontend/usePhonePlatform-2857c22b.js +0 -34
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
+ }