pageflow 16.1.0 → 17.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -221
  3. data/README.md +6 -5
  4. data/app/assets/images/pageflow/admin/icons/published_with_noindex.svg +4 -0
  5. data/app/assets/javascripts/pageflow/dist/ui.js +1 -0
  6. data/app/assets/stylesheets/pageflow/admin/active_admin_patches.scss +1 -1
  7. data/app/assets/stylesheets/pageflow/admin/entries.scss +4 -0
  8. data/app/assets/stylesheets/pageflow/admin/publication_state_indicator.scss +4 -0
  9. data/app/assets/stylesheets/pageflow/editor/base.scss +0 -1
  10. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +55 -6
  11. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +12 -1
  12. data/app/assets/stylesheets/pageflow/ui/forms.scss +3 -3
  13. data/app/assets/stylesheets/pageflow/{editor/wysihtml5.scss → ui/input/text_area_input.scss} +13 -1
  14. data/app/assets/stylesheets/pageflow/ui.scss +1 -0
  15. data/app/controllers/pageflow/editor/entry_publications_controller.rb +5 -1
  16. data/app/controllers/pageflow/editor/file_import_controller.rb +1 -1
  17. data/app/controllers/pageflow/entries_controller.rb +2 -2
  18. data/app/helpers/pageflow/entries_helper.rb +2 -0
  19. data/app/helpers/pageflow/meta_tags_helper.rb +2 -1
  20. data/app/helpers/pageflow/page_types_helper.rb +4 -4
  21. data/app/helpers/pageflow/revision_file_helper.rb +3 -3
  22. data/app/helpers/pageflow/social_share_helper.rb +2 -2
  23. data/app/models/concerns/pageflow/entry_publication_states.rb +9 -0
  24. data/app/models/concerns/pageflow/feature_target.rb +1 -1
  25. data/app/models/concerns/pageflow/output_source.rb +1 -1
  26. data/app/models/concerns/pageflow/serialized_configuration.rb +1 -1
  27. data/app/models/concerns/pageflow/uploadable_file.rb +5 -0
  28. data/app/models/pageflow/account.rb +2 -2
  29. data/app/models/pageflow/entry.rb +7 -5
  30. data/app/models/pageflow/entry_at_revision.rb +2 -0
  31. data/app/models/pageflow/entry_template.rb +4 -1
  32. data/app/models/pageflow/image_file.rb +20 -5
  33. data/app/models/pageflow/image_file_url_templates.rb +7 -1
  34. data/app/models/pageflow/revision.rb +7 -5
  35. data/app/models/pageflow/site.rb +2 -2
  36. data/app/models/pageflow/sitemaps.rb +1 -0
  37. data/app/models/pageflow/theme_customization.rb +2 -2
  38. data/app/models/pageflow/used_file.rb +8 -0
  39. data/app/views/components/pageflow/admin/extensible_attributes_table.rb +1 -7
  40. data/app/views/components/pageflow/admin/revisions_tab.rb +8 -0
  41. data/app/views/pageflow/editor/config/_seeds.json.jbuilder +1 -0
  42. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -0
  43. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +1 -0
  44. data/app/views/pageflow/image_files/_image_file.json.jbuilder +1 -0
  45. data/app/views/pageflow/meta_tags/_entry.html.erb +1 -0
  46. data/config/initializers/features.rb +2 -0
  47. data/config/initializers/paperclip.rb +4 -0
  48. data/config/locales/de.yml +50 -0
  49. data/config/locales/en.yml +49 -0
  50. data/db/migrate/20231024062501_add_output_presences_to_image_files.rb +5 -0
  51. data/db/migrate/20231128124523_add_noindex_to_revisions.rb +5 -0
  52. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +266 -151
  53. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +8 -2
  54. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +1 -1
  55. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +1 -1
  56. data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +1 -1
  57. data/entry_types/paged/lib/pageflow_paged/engine.rb +7 -11
  58. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +9 -3
  59. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +6 -6
  60. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +21 -37
  61. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +1 -3
  62. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -6
  63. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +17 -18
  64. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +4 -0
  65. data/entry_types/scrolled/config/locales/de.yml +47 -11
  66. data/entry_types/scrolled/config/locales/en.yml +42 -10
  67. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +22 -89
  68. data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +2 -1
  69. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +8 -12
  70. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +6 -0
  71. data/entry_types/scrolled/lib/pageflow_scrolled/web_app_manifest.rb +1 -1
  72. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/dummy.rake +1 -1
  73. data/entry_types/scrolled/package/config/webpack.js +26 -0
  74. data/entry_types/scrolled/package/contentElements-editor.js +36 -23
  75. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  76. data/entry_types/scrolled/package/contentElements-frontend.js +250 -94
  77. data/entry_types/scrolled/package/editor.js +331 -147
  78. data/entry_types/scrolled/package/frontend/{EditableInlineText.module-fa9e3aff.js → EditableInlineText.module-6ee0e024.js} +463 -275
  79. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-10a1d600.js → PhonePlatformContext-b28d991a.js} +1 -1
  80. data/entry_types/scrolled/package/frontend/{ToggleFullscreenCornerButton-727cce0d.js → ToggleFullscreenCornerButton-8242f213.js} +1 -1
  81. data/entry_types/scrolled/package/frontend/{Viewer-169e14ca.js → Viewer-32cd1ac1.js} +4 -4
  82. data/entry_types/scrolled/package/frontend/{Viewer-ee1aa590.js → Viewer-6e4d14ed.js} +4 -4
  83. data/entry_types/scrolled/package/frontend/{arrowRight-92a34ccc.js → arrowRight-e42e6011.js} +2 -2
  84. data/entry_types/scrolled/package/frontend/{components-4a09bfa3.js → components-24363f97.js} +7 -6
  85. data/entry_types/scrolled/package/frontend/{i18n-ddd92820.js → i18n-71c39823.js} +84 -46
  86. data/entry_types/scrolled/package/frontend/{index-02378634.js → index-fc4b13e6.js} +3 -3
  87. data/entry_types/scrolled/package/frontend/index.css +1 -1
  88. data/entry_types/scrolled/package/frontend/index.js +90 -66
  89. data/entry_types/scrolled/package/frontend/{useContentElementEditorState-63045393.js → useContentElementEditorState-245f1986.js} +1 -1
  90. data/entry_types/scrolled/package/package.json +4 -3
  91. data/entry_types/scrolled/package/testHelpers.js +4 -2
  92. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  93. data/entry_types/scrolled/package/widgets/defaultNavigation.js +39 -4
  94. data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -0
  95. data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +49 -0
  96. data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -0
  97. data/entry_types/scrolled/package/widgets/textInlineFileRights.js +37 -0
  98. data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
  99. data/lib/generators/pageflow/resque/templates/resque.rb +1 -1
  100. data/lib/generators/pageflow/routes/routes_generator.rb +4 -3
  101. data/lib/pageflow/configuration.rb +8 -1
  102. data/lib/pageflow/engine.rb +15 -58
  103. data/lib/pageflow/page_type.rb +1 -1
  104. data/lib/pageflow/paperclip_processors/webp.rb +63 -0
  105. data/lib/pageflow/rails_version.rb +2 -2
  106. data/lib/pageflow/user_mixin.rb +1 -1
  107. data/lib/pageflow/version.rb +1 -1
  108. data/package/config/jest/index.js +3 -1
  109. data/package/editor.js +272 -154
  110. data/package/frontend.js +8 -2
  111. data/package/ui.js +1 -0
  112. data/spec/factories/entries.rb +17 -0
  113. metadata +78 -56
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9eecaf374cbaeadfc23532153d00c0a52a936c42d36ab65bbed903991ba6f0cf
4
- data.tar.gz: 5b59c6b626e32a1fd748fdfea56e96741c9dce6061ec9709b2ac905722dba6ee
3
+ metadata.gz: eafd887e08e7050d4fe88fce759807f0007060047a6d29e24ca8ebbc10a9e197
4
+ data.tar.gz: 7ebeaabab4fda81f044a35ff966134e4c412691c1072fc45c1116c174f2f403d
5
5
  SHA512:
6
- metadata.gz: 331856460e25d862e8dd49b835ae55fb838bea2db00de10a59d45a1ae5d501ccdb9e671b81714d832cc5dfe741d3e6dc96e261bb3732bae2b60827ece4766f27
7
- data.tar.gz: 9b9119cd2f1ac7db1daeaf3273210b6b02a2d2e00633ae432213a6c828a4798ac8db6926fb608116dbdf653326385e8adfb312eeeb664d40c7ecad2fef82ba46
6
+ metadata.gz: 844b212ce8539256bdbc4736cbf3b8941020f0f984ab011d31b1c1d39dafd00f468e0ff221fef5c081852c392dcaa5540b74f08f51bc467d41585e4c4259f229
7
+ data.tar.gz: 8e4c04f9da3347d71a0adbca49129e9c07fa9b8f56b16a22e316e5ba10036b26396b1da8fa039875f50886018f10143e28cec0f785adec79d4de7c348aab5c50
data/CHANGELOG.md CHANGED
@@ -1,232 +1,18 @@
1
1
  # CHANGELOG
2
2
 
3
- ### Version 16.1.0
4
3
 
5
- 2023-10-25
6
4
 
7
- [Compare changes](https://github.com/codevise/pageflow/compare/16-0-stable...v16.1.0)
5
+ ### Version 17.0.0
8
6
 
9
- #### Core
7
+ 2024-01-12
10
8
 
11
- ##### Published Entry
9
+ [Compare changes](https://github.com/codevise/pageflow/compare/16-x-stable...v17.0.0)
12
10
 
13
- - Add feature flag to use HLS in all Desktop browsers
14
- ([#1924](https://github.com/codevise/pageflow/pull/1924))
15
- - Atom feeds
16
- ([#1941](https://github.com/codevise/pageflow/pull/1941),
17
- [#1949](https://github.com/codevise/pageflow/pull/1949))
18
- - Add XML sitemaps for sites
19
- ([#1944](https://github.com/codevise/pageflow/pull/1944),
20
- [#1945](https://github.com/codevise/pageflow/pull/1945))
21
- ([#1924](https://github.com/codevise/pageflow/pull/1924))
22
- - Allow using custom feeds urls for sites
23
- ([#1952](https://github.com/codevise/pageflow/pull/1952),
24
- [#1953](https://github.com/codevise/pageflow/pull/1953))
11
+ #### Breaking Changes
25
12
 
26
- ##### Admin
27
-
28
- - Hide permalink directory drop down with single item
29
- ([#1917](https://github.com/codevise/pageflow/pull/1917))
30
-
31
- ##### Editor
32
-
33
- - Allow turning default widgets off
34
- ([#1965](https://github.com/codevise/pageflow/pull/1965))
35
- - Use short label for editor help button
36
- ([#1970](https://github.com/codevise/pageflow/pull/1970))
37
- - Filter out widgets of unknown widget types
38
- ([#1961](https://github.com/codevise/pageflow/pull/1961))
39
- - Bug fix: Prevent normalizing color input too early
40
- ([#1992](https://github.com/codevise/pageflow/pull/1992))
41
- - Bug fix: Do not scale images up when creating panorama styles
42
- ([#1920](https://github.com/codevise/pageflow/pull/1920))
43
-
44
- ##### Rails Engine
45
-
46
- - Add public_entry_cache_control_header config option
47
- ([#1999](https://github.com/codevise/pageflow/pull/1999))
48
- - Make default published until duration configurable
49
- ([#1955](https://github.com/codevise/pageflow/pull/1955))
50
- - Exclude react-rails 2.7 from supported versions
51
- ([#1963](https://github.com/codevise/pageflow/pull/1963))
52
- - Allow any 2.6 version of react-rails
53
- ([#1964](https://github.com/codevise/pageflow/pull/1964))
54
-
55
- ##### JavaScript API
56
-
57
- - Add throttled media events
58
- ([#1939](https://github.com/codevise/pageflow/pull/1939))
59
-
60
- ##### Documentation
61
-
62
- - Make CORS config json
63
- ([#1956](https://github.com/codevise/pageflow/pull/1956))
64
-
65
- ##### Internal
66
-
67
- - Run core specs agains Rails 6.1/Ruby 3.2
68
- ([#1998](https://github.com/codevise/pageflow/pull/1998))
69
- - Fix Zeitwerk compatibility
70
- ([#2013](https://github.com/codevise/pageflow/pull/2013))
71
- - Run plugin specs in reusable workflow against Rails 6.1
72
- ([#2012](https://github.com/codevise/pageflow/pull/2012))
73
- - Move RailsVersion helper from support to core gem
74
- ([#2006](https://github.com/codevise/pageflow/pull/2006))
75
- - Fix paged specs for Rails 6
76
- ([#2004](https://github.com/codevise/pageflow/pull/2004))
77
- - Fix scrolled specs for Rails 6
78
- ([#2003](https://github.com/codevise/pageflow/pull/2003))
79
- - Fix core specs for Rails 6
80
- ([#2000](https://github.com/codevise/pageflow/pull/2000))
81
- - Fix Active Record errors deprecation warning
82
- ([#2015](https://github.com/codevise/pageflow/pull/2015))
83
- - Fix SSR webpack-dev-server client code removal for Webpack 5
84
- ([#2018](https://github.com/codevise/pageflow/pull/2018))
85
- - Support both Webpacker and Shakapacker
86
- ([#2017](https://github.com/codevise/pageflow/pull/2017))
87
- - Remove Coveralls integration
88
- ([#2016](https://github.com/codevise/pageflow/pull/2016))
89
- - Fix webdrivers for Chrome 115
90
- ([#1983](https://github.com/codevise/pageflow/pull/1983))
91
-
92
- #### Paged Entry Type
93
-
94
- ##### Published Entry
95
-
96
- - Bug fix: Fix scrolling classic page content on Windows 10 with touch screen
97
- ([#1916](https://github.com/codevise/pageflow/pull/1916))
98
-
99
- ##### Internal
100
-
101
- - Allow seeding text to paged entries
102
- ([#1929](https://github.com/codevise/pageflow/pull/1929))
103
-
104
- #### Scrolled Entry Type
105
-
106
- ##### Published Entry
107
-
108
- - Support portrait backdrop videos
109
- ([#1930](https://github.com/codevise/pageflow/pull/1930))
110
- - Clear inlined float
111
- ([#1995](https://github.com/codevise/pageflow/pull/1995))
112
- - Allow placing floated elements side by side
113
- ([#1979](https://github.com/codevise/pageflow/pull/1979))
114
- - Improve blessing media elements for iOS
115
- ([#1928](https://github.com/codevise/pageflow/pull/1928))
116
- - Make feature flag to enforce FullHD videos available for scrolled
117
- ([#1927](https://github.com/codevise/pageflow/pull/1927))
118
- - Upgrade to video.js 7.21 and http-streaming 2.16
119
- ([#1925](https://github.com/codevise/pageflow/pull/1925))- Decrease external link font size on mobile
120
- ([#1926](https://github.com/codevise/pageflow/pull/1926))
121
- - Reduce spacing between list items
122
- ([#1938](https://github.com/codevise/pageflow/pull/1938))
123
- - Make text block spacing more consistent between editor and published entry
124
- ([#1997](https://github.com/codevise/pageflow/pull/1997))
125
- - Improve onVisible/onInvisible callbacks
126
- ([#1947](https://github.com/codevise/pageflow/pull/1947),
127
- [#1950](https://github.com/codevise/pageflow/pull/1950))
128
- - Set text direction attribute for scrolled entries
129
- ([#1975](https://github.com/codevise/pageflow/pull/1975))
130
- - Use Rails fragment cache for scrolled entries
131
- ([#2001](https://github.com/codevise/pageflow/pull/2001))
132
- - Fix two column motif area content measuring
133
- ([#1990](https://github.com/codevise/pageflow/pull/1990))
134
- - Bug fix: Ignore volume setting in Scrolled
135
- ([#1921](https://github.com/codevise/pageflow/pull/1921))
136
- - Bug fix: Prevent line artifact between sections on Chrome
137
- ([#1935](https://github.com/codevise/pageflow/pull/1935))
138
- - Bug fix: Remove legacy clip for revealed sections
139
- ([#1993](https://github.com/codevise/pageflow/pull/1993))
140
-
141
- ##### Content Elements
142
-
143
- - Enable full screen view for inline images
144
- ([#1902](https://github.com/codevise/pageflow/pull/1902))
145
- - Add stand-alone quote element
146
- ([#1931](https://github.com/codevise/pageflow/pull/1931),
147
- [#1932](https://github.com/codevise/pageflow/pull/1932),
148
- [#1958](https://github.com/codevise/pageflow/pull/1958),
149
- [#1982](https://github.com/codevise/pageflow/pull/1982))
150
- - Add counter content element
151
- ([#1934](https://github.com/codevise/pageflow/pull/1934),
152
- [#1940](https://github.com/codevise/pageflow/pull/1940),
153
- [#1943](https://github.com/codevise/pageflow/pull/1943),
154
- [#1984](https://github.com/codevise/pageflow/pull/1984),
155
- [#2007](https://github.com/codevise/pageflow/pull/2007))
156
- - Add image gallery content element
157
- ([#1966](https://github.com/codevise/pageflow/pull/1966),
158
- [#1980](https://github.com/codevise/pageflow/pull/1980),
159
- [#1968](https://github.com/codevise/pageflow/pull/1968),
160
- [#1969](https://github.com/codevise/pageflow/pull/1969),
161
- [#1978](https://github.com/codevise/pageflow/pull/1978))
162
- - Custom margin for image galleries
163
- ([#1971](https://github.com/codevise/pageflow/pull/1971),
164
- [#1972](https://github.com/codevise/pageflow/pull/1972),
165
- [#1973](https://github.com/codevise/pageflow/pull/1973))
166
- - Content element widths
167
- ([#1989](https://github.com/codevise/pageflow/pull/1989))
168
- - Consent opt-in for iframe embed element
169
- ([#2005](https://github.com/codevise/pageflow/pull/2005))
170
- - Bug fix: Prevent white lines around external link image
171
- ([#1994](https://github.com/codevise/pageflow/pull/1994))
172
- - Allow setting portrait version for inline videos
173
- ([#2019](https://github.com/codevise/pageflow/pull/2019))
174
-
175
- ##### Widgets
176
-
177
- - Display rights of all files in credits box
178
- ([#1959](https://github.com/codevise/pageflow/pull/1959))
179
- - Extract scrolled consent bar into widget
180
- ([#1976](https://github.com/codevise/pageflow/pull/1976))
181
-
182
- ##### Editor
183
-
184
- - Display and edit section transitions via outline
185
- ([#2009](https://github.com/codevise/pageflow/pull/2009),
186
- [#2010](https://github.com/codevise/pageflow/pull/2010),
187
- [#2011](https://github.com/codevise/pageflow/pull/2011))
188
- - Duplicating sections
189
- ([#2008](https://github.com/codevise/pageflow/pull/2008))
190
- - Add file type drop down to link dialog
191
- ([#1919](https://github.com/codevise/pageflow/pull/1919))
192
- - File links
193
- ([#1918](https://github.com/codevise/pageflow/pull/1918))
194
- - Introduce palettes
195
- ([#1936](https://github.com/codevise/pageflow/pull/1936),
196
- [#1946](https://github.com/codevise/pageflow/pull/1946))
197
- - Introduce file type priorities to fix text track upload in scrolled
198
- ([#1962](https://github.com/codevise/pageflow/pull/1962))
199
- - Do not display single item position drop down
200
- ([#1996](https://github.com/codevise/pageflow/pull/1996))
201
-
202
- ##### Theme API
203
-
204
- - Improve content color properties
205
- ([#1923](https://github.com/codevise/pageflow/pull/1923))
206
- - Make content text color available in custom property
207
- ([#1937](https://github.com/codevise/pageflow/pull/1937))
208
- - Add theme properties for quote mark font family and color
209
- ([#1977](https://github.com/codevise/pageflow/pull/1977))
210
- - Add list related theme properties
211
- ([#1981](https://github.com/codevise/pageflow/pull/1981))
212
- - Add theme property for marker color of unordered list items
213
- ([#1985](https://github.com/codevise/pageflow/pull/1985))
214
- - Allow changing light and dark text color of headings
215
- ([#1987](https://github.com/codevise/pageflow/pull/1987))
216
- - Allow using SVG data URLs as quote marks
217
- ([#1988](https://github.com/codevise/pageflow/pull/1988))
218
- - Allow coloring SVG quote mark symbol with palette colors
219
- ([#2002](https://github.com/codevise/pageflow/pull/2002))
220
- - Let themes use quote variant with centered quote mark
221
- ([#2014](https://github.com/codevise/pageflow/pull/2014))
222
-
223
- ##### Internal
224
-
225
- - Support scopes in storybook theme properties
226
- ([#1986](https://github.com/codevise/pageflow/pull/1986))
227
- - Use different widths in appearance stories
228
- ([#1991](https://github.com/codevise/pageflow/pull/1991))
13
+ - Require Rails 7
14
+ ([#2051](https://github.com/codevise/pageflow/pull/2051))
229
15
 
230
16
  See
231
- [16-0-stable branch](https://github.com/codevise/pageflow/blob/16-0-stable/CHANGELOG.md)
17
+ [16-x-stable branch](https://github.com/codevise/pageflow/blob/16-x-stable/CHANGELOG.md)
232
18
  for previous changes.
data/README.md CHANGED
@@ -49,12 +49,13 @@ Pageflow assumes the following choice of libraries:
49
49
 
50
50
  Pageflow runs in environments with:
51
51
 
52
- * Ruby >= 2.1 (see `.travis.yml` for supported versions)
53
- * Node >= 10.18
54
- * Rails 4.2
52
+ * Ruby >= 3.2
53
+ * Node >= 18
54
+ * Rails 7.1
55
55
  * Redis server (for Resque)
56
56
  * A database server supported by Active Record (tested with MySQL)
57
57
  * ImageMagick
58
+ * [libvips](https://github.com/libvips/ruby-vips)
58
59
  * [Audio Waveform Image Generator](https://github.com/bbc/audiowaveform#installation)
59
60
 
60
61
  Accounts of the following cloud services have to be registered:
@@ -94,8 +95,8 @@ for details.
94
95
 
95
96
  # The install generator sets up Resque as Active Job backend
96
97
  gem 'resque', '~> 1.25'
97
- gem 'resque-scheduler', '~> 2.5'
98
- gem 'ar_after_transaction', '~> 0.5.0'
98
+ gem 'resque-scheduler', '~> 4.10'
99
+ gem 'ar_after_transaction', '~> 0.8.0'
99
100
  gem 'redis', '~> 3.0'
100
101
  gem 'redis-namespace', '~> 1.5'
101
102
 
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="#5d5d5d">
3
+ <path stroke-linecap="round" stroke-linejoin="round" d="M3.98 8.223A10.477 10.477 0 001.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.45 10.45 0 0112 4.5c4.756 0 8.773 3.162 10.065 7.498a10.523 10.523 0 01-4.293 5.774M6.228 6.228L3 3m3.228 3.228l3.65 3.65m7.894 7.894L21 21m-3.228-3.228l-3.65-3.65m0 0a3 3 0 10-4.243-4.243m4.242 4.242L9.88 9.88" />
4
+ </svg>
@@ -2306,6 +2306,7 @@ this.pageflow._uiGlobalInterop = (function (exports, Marionette, _, $, I18n$1, B
2306
2306
  var TextAreaInputView = Marionette.ItemView.extend({
2307
2307
  mixins: [inputView, inputWithPlaceholderText],
2308
2308
  template: template$8,
2309
+ className: 'text_area_input',
2309
2310
  ui: {
2310
2311
  input: 'textarea',
2311
2312
  toolbar: '.toolbar',
@@ -10,7 +10,7 @@
10
10
  display: inline;
11
11
  }
12
12
 
13
- input[type="submit"] {
13
+ [type="submit"] {
14
14
  @include light-button;
15
15
  padding: 12px 17px 10px;
16
16
  margin: 0;
@@ -22,6 +22,10 @@ $pageflow-published-revision-background-color: #beebb8 !default;
22
22
  .publication_state_indicator {
23
23
  height: 17px;
24
24
  }
25
+
26
+ .tooltip_clue {
27
+ display: inline-block;
28
+ }
25
29
  }
26
30
 
27
31
  .legend {
@@ -22,4 +22,8 @@ $pageflow-publication-state-indicator-size: 25px !default;
22
22
  &.published_with_password_protection {
23
23
  background-image: image-url("#{$dir}/published_with_password.svg");
24
24
  }
25
+
26
+ &.published_with_noindex {
27
+ background-image: image-url("#{$dir}/published_with_noindex.svg");
28
+ }
25
29
  }
@@ -77,7 +77,6 @@
77
77
  @import "./info_box";
78
78
  @import "./text_tracks";
79
79
  @import "./static_thumbnails";
80
- @import "./wysihtml5";
81
80
  @import "./notifications";
82
81
  @import "./publish_entry";
83
82
  @import "./other_entry_item";
@@ -50,7 +50,8 @@
50
50
  .drop_down_button_item {
51
51
  a,
52
52
  .label {
53
- padding: 7px 15px;
53
+ padding: 5px 15px;
54
+ line-height: 1.75;
54
55
  }
55
56
 
56
57
  a {
@@ -64,6 +65,11 @@
64
65
 
65
66
  .label {
66
67
  cursor: default;
68
+ font-weight: 500;
69
+ }
70
+
71
+ &.is_hidden {
72
+ display: none;
67
73
  }
68
74
 
69
75
  &.is_selectable {
@@ -84,13 +90,56 @@
84
90
  }
85
91
  }
86
92
 
87
- &.is_checked a {
88
- @include background-icon-left($left: 15px, $font-size: 15px);
89
- @include fa-check-icon;
93
+ &.separated {
94
+ border-top: solid 1px var(--ui-on-surface-color-lighter);
95
+ margin-top: 1px;
96
+ padding-top: 1px;
97
+ }
98
+
99
+ &.has_radio,
100
+ &.has_check_box {
101
+ a {
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: space-between;
105
+ gap: space(2);
106
+
107
+ &:after {
108
+ content: "";
109
+ flex-shrink: 0;
110
+ display: block;
111
+ box-sizing: border-box;
112
+ border: solid 1px var(--ui-on-surface-color-light);
113
+ width: 1rem;
114
+ height: 1rem;
115
+ }
116
+ }
117
+
118
+ &.is_checked a:after {
119
+ background-color: var(--ui-primary-color);
120
+ background-size: 100% 100%;
121
+ background-position: center;
122
+ }
90
123
  }
91
124
 
92
- .drop_down_button_item a {
93
- padding-left: 39px;
125
+ &.has_check_box {
126
+ a:after {
127
+ border-radius: size(1);
128
+ }
129
+
130
+ &.is_checked a:after {
131
+ background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
132
+ }
133
+ }
134
+
135
+ &.has_radio {
136
+ a:after {
137
+ border-radius: 100%;
138
+ }
139
+
140
+ &.is_checked a:after {
141
+ background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
142
+ }
94
143
  }
95
144
 
96
145
  ul {
@@ -22,13 +22,24 @@
22
22
  }
23
23
 
24
24
  td {
25
- padding: 5px 5px 5px 0;
25
+ padding: 5px 0;
26
+ max-width: 0;
26
27
  }
27
28
 
28
29
  a {
29
30
  text-decoration: underline;
30
31
  }
31
32
 
33
+ .value_wrapper {
34
+ display: flex;
35
+ }
36
+
37
+ .value {
38
+ flex: 1;
39
+ overflow: hidden;
40
+ text-overflow: ellipsis;
41
+ }
42
+
32
43
  .edit {
33
44
  @include background-icon-center($font-size: 15px,
34
45
  $color: var(--ui-primary-color-light));
@@ -14,7 +14,7 @@ label {
14
14
 
15
15
  /** Make sure the label is on top when an inline help text is displayed */
16
16
  label:hover span.name {
17
- z-index: 4;
17
+ z-index: 5;
18
18
  position: relative;
19
19
  }
20
20
 
@@ -91,7 +91,7 @@ textarea.short {
91
91
 
92
92
  // Make sure the input is on top when an inline help text is displayed
93
93
  &:hover input {
94
- z-index: 4;
94
+ z-index: 5;
95
95
  position: relative;
96
96
  }
97
97
 
@@ -207,7 +207,7 @@ textarea.short {
207
207
  border-radius: rounded(sm);
208
208
  width: 100%;
209
209
  height: auto;
210
- z-index: 3;
210
+ z-index: 4;
211
211
  }
212
212
 
213
213
  font-weight: normal;
@@ -1,4 +1,4 @@
1
- .toolbar {
1
+ .text_area_input .toolbar {
2
2
  margin-left: -2px;
3
3
  margin-top: 3px;
4
4
  position: relative;
@@ -174,4 +174,16 @@
174
174
  border-bottom: solid 9px var(--ui-surface-color);
175
175
  border-left: solid 9px transparent;
176
176
  }
177
+
178
+ // Hide inline help text that only makes sense when editing a
179
+ // Pageflow entry outside the editor
180
+ .open_in_new_tab_section .inline_help {
181
+ display: none;
182
+ }
183
+ }
184
+
185
+ .editor .text_area_input {
186
+ .open_in_new_tab_section .inline_help {
187
+ display: block;
188
+ }
177
189
  }
@@ -19,3 +19,4 @@
19
19
 
20
20
  @import "./ui/input/extended_select_input";
21
21
  @import "./ui/input/check_box_group_input";
22
+ @import "./ui/input/text_area_input";
@@ -39,7 +39,11 @@ module Pageflow
39
39
  end
40
40
 
41
41
  def entry_publication_params
42
- params.fetch(:entry_publication, {}).permit(:published_until, :password, :password_protected)
42
+ params
43
+ .fetch(:entry_publication, {})
44
+ .permit(:published_until,
45
+ :password, :password_protected,
46
+ :noindex)
43
47
  end
44
48
 
45
49
  def published_entries_quota(entry)
@@ -59,7 +59,7 @@ module Pageflow
59
59
  :content_type,
60
60
  :file_size,
61
61
  :url,
62
- configuration: :alt])
62
+ configuration: [:alt, :source_url]])
63
63
  .require(:files)
64
64
  end
65
65
 
@@ -8,7 +8,7 @@ module Pageflow
8
8
  def index
9
9
  site = Site.for_request(request).with_home_url.first!
10
10
 
11
- redirect_to(site.home_url)
11
+ redirect_to(site.home_url, allow_other_host: true)
12
12
  end
13
13
 
14
14
  def show
@@ -73,7 +73,7 @@ module Pageflow
73
73
  def redirect_according_to_entry_redirect(entry)
74
74
  return unless (redirect_location = entry_redirect(entry))
75
75
 
76
- redirect_to(redirect_location, status: :moved_permanently)
76
+ redirect_to(redirect_location, status: :moved_permanently, allow_other_host: true)
77
77
  end
78
78
 
79
79
  def entry_redirect(entry)
@@ -1,6 +1,8 @@
1
1
  module Pageflow
2
2
  module EntriesHelper
3
3
  def pretty_entry_title(entry)
4
+ return entry.title if entry.site.title == ' '
5
+
4
6
  [entry.title,
5
7
  entry.site.title.presence || entry.site.cname_domain.presence].compact.join(' - ')
6
8
  end
@@ -9,7 +9,8 @@ module Pageflow
9
9
  {
10
10
  keywords: entry.keywords,
11
11
  author: entry.author,
12
- publisher: entry.publisher
12
+ publisher: entry.publisher,
13
+ noindex: entry.noindex?
13
14
  }
14
15
  end
15
16
  end
@@ -15,16 +15,16 @@ module Pageflow
15
15
  end
16
16
 
17
17
  def page_type_templates(entry)
18
+ # Required by RevisionFileHelper#find_file_in_entry
19
+ @entry = entry
20
+
18
21
  safe_join(Pageflow.config.page_types.map do |page_type|
19
22
  content_tag(:script,
20
23
  render(template: page_type.template_path,
21
24
  locals: {
22
25
  configuration: {},
23
26
  page: Page.new,
24
- entry: entry,
25
-
26
- # Required by RevisionFileHelper#find_file_in_entry
27
- :@entry => entry
27
+ entry: entry
28
28
  },
29
29
  layout: false).to_str,
30
30
  type: 'text/html', data: {template: "#{page_type.name}_page"})
@@ -19,9 +19,9 @@ module Pageflow
19
19
  #
20
20
  # @since 15.0
21
21
  # @returns UsedFile
22
- def find_file_in_entry(file_type, file_perma_id)
23
- raise 'No entry of type PublishedEntry or DraftEntry set.' unless @entry.present?
24
- @entry.find_file_by_perma_id(file_type, file_perma_id)
22
+ def find_file_in_entry(file_type, file_perma_id, entry = @entry)
23
+ raise 'No entry of type PublishedEntry or DraftEntry set.' unless entry.present?
24
+ entry.find_file_by_perma_id(file_type, file_perma_id)
25
25
  end
26
26
  end
27
27
  end
@@ -8,7 +8,7 @@ module Pageflow
8
8
  if target.is_a?(Page)
9
9
  render('pageflow/social_share/page_meta_tags', entry: @entry, page: @entry.share_target)
10
10
  else
11
- render('pageflow/social_share/entry_meta_tags', entry: @entry)
11
+ render('pageflow/social_share/entry_meta_tags', entry: target)
12
12
  end
13
13
  end
14
14
 
@@ -55,7 +55,7 @@ module Pageflow
55
55
 
56
56
  def social_share_entry_image_tags(entry)
57
57
  share_images = []
58
- image_file = find_file_in_entry(ImageFile, entry.share_image_id)
58
+ image_file = find_file_in_entry(ImageFile, entry.share_image_id, entry)
59
59
 
60
60
  if image_file
61
61
  image_url = image_file.thumbnail_url(:medium)
@@ -11,6 +11,9 @@ module Pageflow
11
11
  scope(:published_with_password_protection,
12
12
  -> { published.merge(Revision.with_password_protection) })
13
13
 
14
+ scope(:published_without_noindex,
15
+ -> { published.merge(Revision.without_noindex) })
16
+
14
17
  scope(:not_published,
15
18
  lambda do
16
19
  includes(:published_revision)
@@ -22,6 +25,8 @@ module Pageflow
22
25
  def publication_state
23
26
  if published_with_password_protection?
24
27
  'published_with_password_protection'
28
+ elsif published? && published_revision.noindex?
29
+ 'published_with_noindex'
25
30
  elsif published?
26
31
  'published_without_password_protection'
27
32
  else
@@ -45,6 +50,10 @@ module Pageflow
45
50
  published? ? published_revision.published_until : nil
46
51
  end
47
52
 
53
+ def last_published_with_noindex?
54
+ !!revisions.publications.first&.noindex
55
+ end
56
+
48
57
  module ClassMethods
49
58
  def with_publication_state(state)
50
59
  case state
@@ -10,7 +10,7 @@ module Pageflow
10
10
  extend ActiveSupport::Concern
11
11
 
12
12
  included do
13
- serialize :features_configuration, JSON
13
+ serialize :features_configuration, coder: JSON
14
14
  end
15
15
 
16
16
  def enabled_feature_names(config = Pageflow.config_for(self))