Skip to content

[6.x] Give nested sets and rows new ids when duplicating - #15190

Open
duncanmcclean wants to merge 1 commit into
6.xfrom
duplicate-nested-set-ids
Open

[6.x] Give nested sets and rows new ids when duplicating#15190
duncanmcclean wants to merge 1 commit into
6.xfrom
duplicate-nested-set-ids

Conversation

@duncanmcclean

@duncanmcclean duncanmcclean commented Aug 13, 2026

Copy link
Copy Markdown
Member

This pull request fixes an issue where duplicating a Replicator set, Grid row or Bard set didn't give any of the sets or rows nested inside it new ids, resulting in duplicate ids in the saved content.

This was happening because the duplicate methods deep copied the values verbatim, so anything nested inside kept its original _id (or attrs.id, in Bard's case). The nested field meta was copied across unchanged too, leaving it keyed by the old ids.

This PR fixes it by adding a duplicateValues() method to the ManagesRowMeta mixin, which deep copies a row's values, regenerates the ids of anything nested within it, and rekeys its meta to match. The Replicator, Grid and Bard fieldtypes all use it when duplicating, as does Bard when pasting a set.

Fixes #8438

`duplicateValues()` deep copies a row's values, regenerating `_id` on nested
Replicator sets and Grid rows, and `attrs.id` on nested Bard sets, then rekeys
the meta to match.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.

Nested IDs don't get regenerated when parent set is duplicated, resulting in duplicate IDs

1 participant