gui: sidebar tree model fix — only container nodes, improved DnD + context menu
- Backend: ListWorkspaceTree/ListWorkspaceChildren filter to container types only (case, client, project, folder, document, recipe) - TreeNode: full-row context menu (removed label stopPropagation), double-click toggles expand, icon-click toggles expand, DnD auto-expand on 500ms hover, auto-scroll near edges, drag-over highlight via classList - App.svelte: toggleExpand uses ListWorkspaceChildren, submitCreateNode uses ListWorkspaceChildren for child tree population - Note/file nodes no longer appear in the sidebar workspace tree
This commit is contained in:
@@ -19,7 +19,26 @@ func (a *App) ListWorkspaceTree() ([]NodeDTO, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return toNodeDTOs(list), nil
|
||||
return filterContainers(toNodeDTOs(list)), nil
|
||||
}
|
||||
|
||||
func (a *App) ListWorkspaceChildren(parentID string) ([]NodeDTO, error) {
|
||||
list, err := a.nodes.ListChildren(parentID, false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return filterContainers(toNodeDTOs(list)), nil
|
||||
}
|
||||
|
||||
func filterContainers(dtos []NodeDTO) []NodeDTO {
|
||||
out := make([]NodeDTO, 0, len(dtos))
|
||||
for _, d := range dtos {
|
||||
switch d.Type {
|
||||
case "case", "client", "project", "folder", "document", "recipe":
|
||||
out = append(out, d)
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func (a *App) ListChildren(parentID string) ([]NodeDTO, error) {
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -16,8 +16,8 @@
|
||||
background: #13131f;
|
||||
}
|
||||
</style>
|
||||
<script type="module" crossorigin src="/assets/main-CBFn_7kC.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/main-C49DuBq6.css">
|
||||
<script type="module" crossorigin src="/assets/main-Dt9BLCiY.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/main-CHi9sCXv.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
Reference in New Issue
Block a user