Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data Views: Add action for pages to set site homepage #65426

Merged
merged 96 commits into from
Nov 28, 2024

Conversation

creativecoder
Copy link
Contributor

@creativecoder creativecoder commented Sep 18, 2024

What?

Adds an action to set the home page from the site editor.

Fixes #63666

Why?

Currently there is no way to change the home setting (Settings > Reading) from the site editor. This PR adds a way to do that.

How?

Adds a dataview action for pages to set the page as the site homepage that can be triggered from the pages data view.

Testing Instructions

  1. Go to Editor > Pages.
  2. Select the Actions menu
  3. Select 'Set as homepage'
  4. Ensure the selected page is set as the homepage

Screenshots or screencast

image

image

@creativecoder creativecoder added [Feature] Site Editor Related to the overarching Site Editor (formerly "full site editing") [Package] DataViews /packages/dataviews labels Sep 18, 2024
@creativecoder creativecoder self-assigned this Sep 18, 2024
@creativecoder creativecoder added the [Type] Enhancement A suggestion for improvement. label Sep 26, 2024
@jameskoster
Copy link
Contributor

I thought it was interesting how you handled non-published pages but I noticed an issue; if you set a scheduled page as the homepage it works, but the page remains scheduled resulting in a 404 on the frontend. It might make sense to restrict the action to published pages initially?

This page set as homepage

The Snackbar copy could use some refinement. Maybe just "Homepage updated"?


Testing the flow with reading settings set to display latest posts caused the editor to crash:

Screenshot 2024-09-27 at 10 26 04

Relating to this, I noticed an oversight in the original design; when setting a static homepage and offering the user the option to set a page_for_posts we should allow them to either create a new page, or assign an existing one. Here's an updated design for that:

homepage

@creativecoder creativecoder force-pushed the try/site-editor-homepage-settings branch from ab1c828 to 0f3a986 Compare October 1, 2024 16:16
Copy link

github-actions bot commented Oct 1, 2024

Size Change: +734 B (+0.04%)

Total Size: 1.82 MB

Filename Size Change
build/edit-site/index.min.js 219 kB +5 B (0%)
build/editor/index.min.js 113 kB +729 B (+0.65%)
ℹ️ View Unchanged
Filename Size
build-module/a11y/index.min.js 482 B
build-module/block-library/file/view.min.js 447 B
build-module/block-library/image/view.min.js 1.78 kB
build-module/block-library/navigation/view.min.js 1.16 kB
build-module/block-library/query/view.min.js 742 B
build-module/block-library/search/view.min.js 616 B
build-module/interactivity-router/index.min.js 3.03 kB
build-module/interactivity/debug.min.js 17.2 kB
build-module/interactivity/index.min.js 13.6 kB
build/a11y/index.min.js 952 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.26 kB
build/block-directory/style-rtl.css 1 kB
build/block-directory/style.css 1 kB
build/block-editor/content-rtl.css 4.41 kB
build/block-editor/content.css 4.41 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/index.min.js 257 kB
build/block-editor/style-rtl.css 15.7 kB
build/block-editor/style.css 15.7 kB
build/block-library/blocks/archives/editor-rtl.css 84 B
build/block-library/blocks/archives/editor.css 83 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 555 B
build/block-library/blocks/button/style.css 555 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 345 B
build/block-library/blocks/buttons/style.css 345 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 139 B
build/block-library/blocks/code/style.css 139 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-edit-link/style-rtl.css 70 B
build/block-library/blocks/comment-edit-link/style.css 70 B
build/block-library/blocks/comment-reply-link/style-rtl.css 71 B
build/block-library/blocks/comment-reply-link/style.css 71 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 228 B
build/block-library/blocks/comments-pagination/editor.css 217 B
build/block-library/blocks/comments-pagination/style-rtl.css 234 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 837 B
build/block-library/blocks/comments/editor.css 836 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 637 B
build/block-library/blocks/cover/editor-rtl.css 631 B
build/block-library/blocks/cover/editor.css 631 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 357 B
build/block-library/blocks/form-input/style.css 357 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 470 B
build/block-library/blocks/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 946 B
build/block-library/blocks/gallery/editor.css 951 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.82 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 334 B
build/block-library/blocks/group/editor.css 334 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 799 B
build/block-library/blocks/image/editor.css 799 B
build/block-library/blocks/image/style-rtl.css 1.59 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 139 B
build/block-library/blocks/latest-posts/editor.css 138 B
build/block-library/blocks/latest-posts/style-rtl.css 509 B
build/block-library/blocks/latest-posts/style.css 510 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 321 B
build/block-library/blocks/media-text/editor.css 320 B
build/block-library/blocks/media-text/style-rtl.css 552 B
build/block-library/blocks/media-text/style.css 550 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 644 B
build/block-library/blocks/navigation-link/editor.css 645 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.2 kB
build/block-library/blocks/navigation/editor.css 2.2 kB
build/block-library/blocks/navigation/style-rtl.css 2.24 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 B
build/block-library/blocks/page-list/style-rtl.css 192 B
build/block-library/blocks/page-list/style.css 192 B
build/block-library/blocks/paragraph/editor-rtl.css 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/editor-rtl.css 107 B
build/block-library/blocks/post-author/editor.css 107 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-content/style-rtl.css 61 B
build/block-library/blocks/post-content/style.css 61 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 399 B
build/block-library/blocks/post-template/style.css 398 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 162 B
build/block-library/blocks/post-title/style.css 162 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 342 B
build/block-library/blocks/pullquote/style.css 342 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 154 B
build/block-library/blocks/query-pagination/editor.css 154 B
build/block-library/blocks/query-pagination/style-rtl.css 237 B
build/block-library/blocks/query-pagination/style.css 237 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 426 B
build/block-library/blocks/query/editor.css 426 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 660 B
build/block-library/blocks/search/style.css 658 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/site-title/style-rtl.css 143 B
build/block-library/blocks/site-title/style.css 143 B
build/block-library/blocks/social-link/editor-rtl.css 309 B
build/block-library/blocks/social-link/editor.css 309 B
build/block-library/blocks/social-links/editor-rtl.css 729 B
build/block-library/blocks/social-links/editor.css 727 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.5 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 144 B
build/block-library/blocks/tag-cloud/editor.css 144 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 441 B
build/block-library/blocks/video/editor.css 442 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.08 kB
build/block-library/common.css 1.08 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.7 kB
build/block-library/editor.css 11.7 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 221 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 15 kB
build/block-library/style.css 15 kB
build/block-library/theme-rtl.css 708 B
build/block-library/theme.css 712 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 52.9 kB
build/commands/index.min.js 16.1 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 227 kB
build/components/style-rtl.css 12.4 kB
build/components/style.css 12.4 kB
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 3.08 kB
build/core-data/index.min.js 74.3 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.69 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.66 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 13.4 kB
build/edit-post/style-rtl.css 2.76 kB
build/edit-post/style.css 2.75 kB
build/edit-site/posts-rtl.css 7.58 kB
build/edit-site/posts.css 7.58 kB
build/edit-site/style-rtl.css 13.4 kB
build/edit-site/style.css 13.4 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.09 kB
build/edit-widgets/style.css 4.09 kB
build/editor/style-rtl.css 9.4 kB
build/editor/style.css 9.41 kB
build/element/index.min.js 4.82 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.05 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.65 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.13 kB
build/list-reusable-blocks/style-rtl.css 852 B
build/list-reusable-blocks/style.css 852 B
build/media-utils/index.min.js 3.58 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.62 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.37 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.86 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 961 B
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.55 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.3 kB
build/router/index.min.js 2.11 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.9 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 556 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/vips/index.min.js 36.2 kB
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.16 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@jameskoster
Copy link
Contributor

@creativecoder is this one ready for review? :)

@creativecoder
Copy link
Contributor Author

@jameskoster A few things that still need doing

  • Update with your suggestions: hide the action for any other status than publish and update copy
  • Resolve typescript errors with core-data selectors and actions related to the root, site entity (I assume it's just from unimplemented types for related function signatures and site settings response object)
  • Add automated tests that cover the different possible reading settings

I'm not sure when I'll be able to get back to this, so if anyone wants to pick this up--feel free!

@mikachan mikachan self-assigned this Oct 7, 2024
@mikachan
Copy link
Member

mikachan commented Oct 7, 2024

Thanks @creativecoder! I'm going to have a go at picking this up. I'll start by addressing the items you listed above, and then I'll mark as ready for review.

@mikachan
Copy link
Member

Thanks again for all the continued feedback and help here ❤️

I'll summarise the latest changes since @oandregal's approval:

  • Refactored how the current homepage title was fetched so that it no longer requires a useEffect
  • Removed the duplicated getItemTitle function (the action has ended up in the same package, in editor)
  • Introduced a loading state so that the modal cancel and accept buttons are disabled when the site settings are being saved
  • Stored the isPageDraft variable in a ref so that it doesn't cause a re-render when the current page's status changes from draft to publish
  • Got all the new e2e tests passing (one was being skipped and now it's fixed and passing)

I'm really happy with the current state, so I'm hoping this is now ready for a final review 🤞 Thank you!

Copy link
Contributor

@getdave getdave left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for all the changes. I feel this is really close

I've got some concerns about statuses and also noticed some more UI bugs.

@mikachan
Copy link
Member

@getdave Thanks for such a detailed review 🙏 I think I've addressed all your feedback, with the larger changes being:

  • The buttons in the modal are now disabled when the site settings are being saved
  • I've removed the handling of draft pages, as I think this would be better to add in a follow-up once the initial version of this action has been added

@getdave
Copy link
Contributor

getdave commented Nov 27, 2024

👍 I'll re-review this.

Copy link
Contributor

@getdave getdave left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall I think this is in good shape.

Left a few nits both nothing major.

Tested with slow network and all responding really well.

One thing I noticed is that it's not possible to "unset" the Page as the homepage. Not sure if that's planned or necessary but thought it might be worth mentioning for a followup.

Thanks for all the work to refine this 👏

@mikachan mikachan merged commit d64cdab into trunk Nov 28, 2024
65 checks passed
@mikachan mikachan deleted the try/site-editor-homepage-settings branch November 28, 2024 09:35
@github-actions github-actions bot added this to the Gutenberg 19.9 milestone Nov 28, 2024
@mikachan
Copy link
Member

mikachan commented Nov 28, 2024

Thanks for all the help with landing this 🙏 There are a couple of follow-ups that I think can be split by their priority.

I think these are the highest priority, and roughly in this order:

And these are less urgent but still related:

I'm planning to start on the ones I've marked as the highest priority above soon.

@gigitux
Copy link
Contributor

gigitux commented Nov 29, 2024

👋 I noticed a conflict with this PR while working on #65390. Should we move this action to the @wordpress/fields package? @oandregal, what are your thoughts?

@oandregal
Copy link
Member

@gigitux not sure what the conflict is, but this conversation is worth looking at: action was intentionally left in editor for the moment. At that point of the review, it augmented the item with some data. When I approved it no longer did it but it still access some global state in the isEligible: we need to address that before moving it to the fields package (see related conversation).

@gigitux
Copy link
Contributor

gigitux commented Dec 2, 2024

Sorry, I missed that conversation! It makes sense!

im3dabasia pushed a commit to im3dabasia/gutenberg that referenced this pull request Dec 4, 2024
* Adds basic action and modal to set page as homepage

* Adds permissions and settings checks to set as homepage action

* Adds proper description and handles unpublished pages

* Adds action to set homepage to show latest posts

* Doesn't show action if there's a front-page template

* Creates page for posts, when specified

* Refactors modal component

* Fixes issues from rebase

* Only show option on published pages

* Update snackbar wording

* Check item exists before running getItemTitle logic

* Make key optional on GetEntityRecord

* Remove some ts-ignore comments

* Add support for page_for_posts to Settings

* Remove some more ts-ignores

* Allow recordId to be optional

* Increase size of action modal

* Implement choose existing page option

* Fix number/string comparison

* Add initial e2e test

* Set post actions modal to medium

* Tweak ToggleGroupControl help text

* Fix initial test

* Remove extra useSiteSettings hook

* Allow setting draft pages to homepage

* Fix merge conflict

* Remove item check from getItemTitle

* Remove posts page options

* Don't show homepage option if selected page is the page for posts

* Reload actions list when site settings change

* Update tests

* Remove call to __experimentalGetTemplateForLink

* Update tests

* Remove item check in getItemTitle

* Use useSelect instead of select

* Remove PAGE_POST_TYPE constant

* Use saveEntityRecord instead of editEntityRecord

* Remove onSetLatestPostsHomepage option

* Remove select for site settings from isEligible

* Update post actions with site settings info

* Remove select for templates from isEligible

* Skip last test for now

* Restore whitespace

* Rename _select

* Remove sub-objects from additionalContext selectors

* Remove duplicate page_for_posts definition

* Fix page/post type error

* Remove additional groups within additionalContext

* Fix siteSettings in TitleView

* Move hasFrontPageTemplate check to private-actions

* Add JSDoc to setAsHomepage

* Refactor siteSettings in post-list

* Move homepage action to edit-site

* Revert unnecessary changes

* Move getItemTitle to edit-site utils

* Allow undefined on GetEntityRecord key

* Make it more clear that draft page will be published

* Update draft page wording

* Add set homepage action to post editor

* Attempt to fix build error

* Remove homepage action from edit-site

* Remove extra line

* Fix getting current homepage title

* Make key in getEntityRecord optional

* Use getHomePage selector

* Move canManageOptions and hasFrontPageTemplate to actions.js

* Make key optional in EntityRecordKey

* Remove undefined from getEntityRecord calls

* Update packages/editor/src/components/post-actions/actions.js

Co-authored-by: Dave Smith <[email protected]>

* Update getEntityRecord key docs

* Refactor fetching currentHomePage

* Disable modal buttons if saving

* Store isPageDraft in useRef

* Fix lint error

* Remove onActionPerformed

* Fix current homepage test

* Remove duplicate getItemTitle function

* Update logic for shouldShowSetAsHomepageAction

* Swap order of list of actions

* Add comment about manual saveEntityRecord call

* Remove unnecessary space

* Remove temporary modalButtonLabel variable

* Combine draft and publish status tests

* Only allow action on pages with draft or publish status

* Remove handling of draft pages

* Move closeModal into finally block

* Refactor and remove renderModalBody

---------

Co-authored-by: Sarah Norris <[email protected]>
Co-authored-by: Sarah Norris <[email protected]>
Co-authored-by: Dave Smith <[email protected]>
Co-authored-by: creativecoder <[email protected]>
Co-authored-by: mikachan <[email protected]>
Co-authored-by: ntsekouras <[email protected]>
Co-authored-by: youknowriad <[email protected]>
Co-authored-by: jsnajdr <[email protected]>
Co-authored-by: ellatrix <[email protected]>
Co-authored-by: oandregal <[email protected]>
Co-authored-by: getdave <[email protected]>
Co-authored-by: jameskoster <[email protected]>
Co-authored-by: richtabor <[email protected]>
Co-authored-by: ramonjd <[email protected]>
Co-authored-by: jasmussen <[email protected]>
Co-authored-by: mtias <[email protected]>
michalczaplinski pushed a commit that referenced this pull request Dec 5, 2024
* Adds basic action and modal to set page as homepage

* Adds permissions and settings checks to set as homepage action

* Adds proper description and handles unpublished pages

* Adds action to set homepage to show latest posts

* Doesn't show action if there's a front-page template

* Creates page for posts, when specified

* Refactors modal component

* Fixes issues from rebase

* Only show option on published pages

* Update snackbar wording

* Check item exists before running getItemTitle logic

* Make key optional on GetEntityRecord

* Remove some ts-ignore comments

* Add support for page_for_posts to Settings

* Remove some more ts-ignores

* Allow recordId to be optional

* Increase size of action modal

* Implement choose existing page option

* Fix number/string comparison

* Add initial e2e test

* Set post actions modal to medium

* Tweak ToggleGroupControl help text

* Fix initial test

* Remove extra useSiteSettings hook

* Allow setting draft pages to homepage

* Fix merge conflict

* Remove item check from getItemTitle

* Remove posts page options

* Don't show homepage option if selected page is the page for posts

* Reload actions list when site settings change

* Update tests

* Remove call to __experimentalGetTemplateForLink

* Update tests

* Remove item check in getItemTitle

* Use useSelect instead of select

* Remove PAGE_POST_TYPE constant

* Use saveEntityRecord instead of editEntityRecord

* Remove onSetLatestPostsHomepage option

* Remove select for site settings from isEligible

* Update post actions with site settings info

* Remove select for templates from isEligible

* Skip last test for now

* Restore whitespace

* Rename _select

* Remove sub-objects from additionalContext selectors

* Remove duplicate page_for_posts definition

* Fix page/post type error

* Remove additional groups within additionalContext

* Fix siteSettings in TitleView

* Move hasFrontPageTemplate check to private-actions

* Add JSDoc to setAsHomepage

* Refactor siteSettings in post-list

* Move homepage action to edit-site

* Revert unnecessary changes

* Move getItemTitle to edit-site utils

* Allow undefined on GetEntityRecord key

* Make it more clear that draft page will be published

* Update draft page wording

* Add set homepage action to post editor

* Attempt to fix build error

* Remove homepage action from edit-site

* Remove extra line

* Fix getting current homepage title

* Make key in getEntityRecord optional

* Use getHomePage selector

* Move canManageOptions and hasFrontPageTemplate to actions.js

* Make key optional in EntityRecordKey

* Remove undefined from getEntityRecord calls

* Update packages/editor/src/components/post-actions/actions.js

Co-authored-by: Dave Smith <[email protected]>

* Update getEntityRecord key docs

* Refactor fetching currentHomePage

* Disable modal buttons if saving

* Store isPageDraft in useRef

* Fix lint error

* Remove onActionPerformed

* Fix current homepage test

* Remove duplicate getItemTitle function

* Update logic for shouldShowSetAsHomepageAction

* Swap order of list of actions

* Add comment about manual saveEntityRecord call

* Remove unnecessary space

* Remove temporary modalButtonLabel variable

* Combine draft and publish status tests

* Only allow action on pages with draft or publish status

* Remove handling of draft pages

* Move closeModal into finally block

* Refactor and remove renderModalBody

---------

Co-authored-by: Sarah Norris <[email protected]>
Co-authored-by: Sarah Norris <[email protected]>
Co-authored-by: Dave Smith <[email protected]>
Co-authored-by: creativecoder <[email protected]>
Co-authored-by: mikachan <[email protected]>
Co-authored-by: ntsekouras <[email protected]>
Co-authored-by: youknowriad <[email protected]>
Co-authored-by: jsnajdr <[email protected]>
Co-authored-by: ellatrix <[email protected]>
Co-authored-by: oandregal <[email protected]>
Co-authored-by: getdave <[email protected]>
Co-authored-by: jameskoster <[email protected]>
Co-authored-by: richtabor <[email protected]>
Co-authored-by: ramonjd <[email protected]>
Co-authored-by: jasmussen <[email protected]>
Co-authored-by: mtias <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Site Editor Related to the overarching Site Editor (formerly "full site editing") [Package] DataViews /packages/dataviews [Type] Enhancement A suggestion for improvement.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Provide a way to set the homepage in the site editor