pageflow 16.1.0 → 17.0.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 (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))