Skip to content

Org Tree Visual Editor with Drag-and-Drop#282

Draft
etiennechabert wants to merge 1 commit into
mainfrom
auto-claude/027-org-tree-visual-editor-with-drag-and-drop
Draft

Org Tree Visual Editor with Drag-and-Drop#282
etiennechabert wants to merge 1 commit into
mainfrom
auto-claude/027-org-tree-visual-editor-with-drag-and-drop

Conversation

@etiennechabert

@etiennechabert etiennechabert commented May 10, 2026

Copy link
Copy Markdown
Owner

Summary

Replace the YAML-only org tree editing with a visual editor inside the Data Management view.

  • Add / rename / delete nodes (virtual folders or leaf entities)
  • Drag-and-drop between any parents — drop on a virtual folder to nest, drop between siblings to reorder
  • Owner-tag values not present in the tree show in an "Unassigned" panel and can be dragged onto the tree
  • Inline rename with Enter / Escape; trash icon appears on hover
  • useUnsavedChanges integration so navigating away with a dirty tree prompts before discarding

Tree mutations live in core/models/org-tree-edit.ts as pure helpers (insert / remove / move / append / paths equality), unit-tested without React.

@etiennechabert etiennechabert force-pushed the auto-claude/027-org-tree-visual-editor-with-drag-and-drop branch from f14e79c to 1e6bf72 Compare May 10, 2026 02:53
Replace the YAML-only org tree editing with a visual editor inside the
Data Management view. Nodes can be added, renamed, deleted, and dragged
between parents (drop on a virtual folder to nest, drop between siblings
to reorder). Unassigned owner-tag values appear in a side panel and can
be dragged onto the tree.

Tree mutations live in core/models/org-tree-edit.ts as pure helpers
(insert / remove / move / append / paths) so they can be unit-tested
without React.

Wire-up:
- New org-tree:save IPC handler that validates + writes the YAML and
  invalidates the cached tree. Reads reuse the existing config:org-tree
  channel.
- saveOrgTree(tree) added to CostApi; the existing getOrgTree() returns
  the current tree.
- Click-outside dismiss extracted to a shared hook (was duplicated in
  dimensions.tsx).
@etiennechabert etiennechabert force-pushed the auto-claude/027-org-tree-visual-editor-with-drag-and-drop branch from 1e6bf72 to 2ff9561 Compare May 18, 2026 22:20
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