1
0
Fork
You've already forked cms
0

Add hierarchical child node support to collections #26

Merged
ernstla merged 8 commits from child-nodes into main 2026年03月12日 18:17:07 +01:00
ernstla commented 2026年03月02日 15:18:59 +01:00 (Migrated from github.com)
Copy link

Summary

  • add #[Children(...)] schema metadata and runtime wiring for parent persistence, finder hierarchy primitives, and Node::children() filtering
  • extend collection hierarchy API with showChildren, lazy parent queries, and row metadata (hasChildren, childBlueprints, parent)
  • implement panel tree UX with lazy expand/collapse and child-create dropdown that routes to create with ?parent=<uid> while preserving list query state

Testing

  • ./vendor/bin/phpunit
  • ./vendor/bin/phpunit --testdox --colors=always tests/Integration/FinderTest.php tests/End2End/NodeCrudTest.php tests/End2End/CollectionHierarchyTest.php
  • composer mdlint
  • cd ui && bun run format
  • cd ui && bun run test
  • cd ui && bun run check (fails with existing unrelated baseline type errors in this repo)
## Summary - add `#[Children(...)]` schema metadata and runtime wiring for parent persistence, finder hierarchy primitives, and `Node::children()` filtering - extend collection hierarchy API with `showChildren`, lazy `parent` queries, and row metadata (`hasChildren`, `childBlueprints`, `parent`) - implement panel tree UX with lazy expand/collapse and child-create dropdown that routes to create with `?parent=<uid>` while preserving list query state ## Testing - `./vendor/bin/phpunit` - `./vendor/bin/phpunit --testdox --colors=always tests/Integration/FinderTest.php tests/End2End/NodeCrudTest.php tests/End2End/CollectionHierarchyTest.php` - `composer mdlint` - `cd ui && bun run format` - `cd ui && bun run test` - `cd ui && bun run check` *(fails with existing unrelated baseline type errors in this repo)*
codacy-production[bot] commented 2026年03月02日 15:19:43 +01:00 (Migrated from github.com)
Copy link

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.82% (target: -1.00%) 91.20%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (ebd4946f04) 4390 2861 65.17%
Head commit (8809569ca2) 4508 (+118) 2975 (+114) 65.99% (+0.82%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#26) 125 114 91.20%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings Change summary preferences

## Coverage summary from Codacy ### [See diff coverage on Codacy](https://app.codacy.com/gh/duonrun/cms/pull-requests/26/coverage?utm_source=github.com&utm_medium=coverageSummary&utm_campaign=coverageSummaryPullRequest) | Coverage variation | Diff coverage | | ------------- | ------------- | | :white_check_mark: **+0.82%** (target: -1.00%) | :white_check_mark: **91.20%** | <details> <summary>Coverage variation details</summary> | | Coverable lines | Covered lines | Coverage | | ------------- | ------------- | ------------- | ------------- | | Common ancestor commit (ebd4946f0493e53885d16841b9b1d3e9d4b649a3) | 4390 | 2861 | 65.17% | | | Head commit (8809569ca28c90c30b3b7583c4fbb8f289a923ac) | 4508 (+118) | 2975 (+114) | 65.99% (**+0.82%**) | **Coverage variation** is the difference between the coverage for the head and common ancestor commits of the pull request branch: `<coverage of head commit> - <coverage of common ancestor commit>` </details> <details> <summary>Diff coverage details</summary> | | Coverable lines | Covered lines | Diff coverage | | ------------- | ------------- | ------------- | ------------- | | Pull request (#26) | 125 | 114 | **91.20%** | **Diff coverage** is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: `<covered lines added or modified>/<coverable lines added or modified> * 100%` </details> #### [See your quality gate settings](https://app.codacy.com/gh/duonrun/cms/settings/quality?utm_source=github.com&utm_medium=coverageSummary&utm_campaign=coverageSummaryGates)&nbsp;&nbsp;&nbsp;&nbsp;[Change summary preferences](https://app.codacy.com/gh/duonrun/cms/settings/integrations?utm_source=github.com&utm_medium=coverageSummary&utm_campaign=coverageSummarySettings) <!-- 108f945d-e553-4918-8ccf-027c6d4acc2c -->
Sign in to join this conversation.
No reviewers
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cosray/cms!26
Reference in a new issue
cosray/cms
No description provided.
Delete branch "child-nodes"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?