Skip to content

[6.x] Multisite - configuration improvements - #15277

Open
jaygeorge wants to merge 76 commits into
multisite-globals-selectionfrom
multisite-configuration-improvements
Open

[6.x] Multisite - configuration improvements#15277
jaygeorge wants to merge 76 commits into
multisite-globals-selectionfrom
multisite-configuration-improvements

Conversation

@jaygeorge

Copy link
Copy Markdown
Contributor

Description of the Problem

We have different interfaces for the global configuration and collections/taxonomies configuration. While we have a different mechanism for deciding the origin for globals, it would be better if they more closely aligned.

What this PR Does

Before

2026-08-26 at 14 12 06@2x

After

2026-08-26 at 14 10 05@2x

How to Reproduce

  1. Edit a collection or taxonomy config

Delete-group meta
Removing a group now copies each row’s grid meta into Other (same path as drag) and drops the old drop zone.

Slug-key collisions
Named groups store a stable group_handle in sites.yaml. Reload uses that id instead of re-slugging the title, so “New York” / “new york”, “Café” / “Cafe”, and a group titled “Other” stay separate from the pinned Other section. New groups also refuse the reserved other key.

Empty-sites errors
If every site is removed, the required error is attached to the group grids that were actually submitted, not always group_other_sites.
…ew Group.

Saving the title still keeps the group. Leaving edit mode (Discard/Cancel) does not try to delete it again, since that path already restores or remounts the form.
Reuse the shared Combobox for type-to-filter, and disable virtualization
when options have variable-height group headers.
Update the trigger immediately on select and keep an Other prefix so the
chevron layout does not jump while the localization loads.
…how many items there is to choose from when scrollbars disappear like on macOS
When a second localization in a group is created, the origin switches to the first localization in the group. If the group has none yet, keep the current active/root behaviour.
Otherwise a remaining in-group localization gets the Origin badge and becomes the default, which is misleading.
Group labels come from sites.yaml config, not translation keys. Keep __() only for the fixed "Other" bucket.
It was only covered by unit tests and never called from the CP.
Walk origin chains with a visit set so ancestors() cannot hang, and block saving entries that form a loop.
Cover HasOrigin value/root resolution and Entry save/ancestors behavior when origins loop.
English uses the string key via __(); other locales can come from contributors.
Avoid a new Localization string; Localizable is already translated across locales.
Align merge bases so the PR diff against entry-grouping no longer includes unrelated 6.x files.
Reintroduced by merging multisite-entry-grouping; keep it out of this branch.
Group labels come from sites.yaml config, not translation keys. Keep __() only for the fixed Other bucket.
Bring over the group-label translation fix so it lives on the base branch.
PHPStan could not resolve root \Log aliases, and the trans-import check
required use function Statamic\trans as __ in Entry.
Cycle tracking now falls back to spl_object_id so origin stubs without
id() keep working. Also satisfy Pint spacing for the Statamic\trans import.
Reuse enable switches and site groups without origin chains, and keep storing a flat list of site handles.
…mies

GlobalSetSites with origins disabled now processes both UI rows and the old flat handle list so existing payloads keep working.
Select was incorrectly falling back to the active localization like active does; restore root as the default when no same-group origin exists.
Map the old { sites: [...] } payload to group_other_sites so existing API clients keep working alongside the grouped form shape.
@jaygeorge
jaygeorge marked this pull request as draft August 26, 2026 13:23
@jaygeorge
jaygeorge changed the base branch from 6.x to multisite-globals-selection August 26, 2026 13:24
…on-improvements

Keep dynamic columnCount for origins-off configure, and sticky group headers.
@jaygeorge
jaygeorge marked this pull request as ready for review August 26, 2026 13:27
@jasonvarga
jasonvarga force-pushed the multisite-globals-selection branch from 5abfa85 to 64fb428 Compare August 28, 2026 00:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant