🎨 Improve duplicating for a doc with databases https://github.com/siyuan-note/siyuan/issues/11602

This commit is contained in:
Daniel 2024-06-16 11:08:21 +08:00
parent 2589b009eb
commit 2a47791b4d
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 27 additions and 3 deletions

View file

@ -1640,13 +1640,19 @@ func removeDoc(box *Box, p string, luteEngine *lute.Lute) {
}
indexHistoryDir(filepath.Base(historyDir), util.NewLute())
// 刷新文档关联的数据库 https://github.com/siyuan-note/siyuan/issues/11731
allRemoveRootIDs := []string{tree.ID}
allRemoveRootIDs = append(allRemoveRootIDs, removeIDs...)
for _, rootID := range allRemoveRootIDs {
if removeTree, _ := LoadTreeByBlockID(rootID); nil != removeTree {
syncDelete2AttributeView(removeTree.Root)
removeTree, _ := LoadTreeByBlockID(rootID)
if nil == removeTree {
continue
}
// 刷新文档关联的数据库 https://github.com/siyuan-note/siyuan/issues/11731
syncDelete2AttributeView(removeTree.Root)
// 解绑数据库关联
removeAvBlockRel(removeTree.Root)
}
if existChildren {

View file

@ -30,6 +30,7 @@ import (
"github.com/88250/lute/parse"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/av"
"github.com/siyuan-note/siyuan/kernel/filesys"
"github.com/siyuan-note/siyuan/kernel/sql"
"github.com/siyuan-note/siyuan/kernel/task"
@ -105,6 +106,23 @@ func resetTree(tree *parse.Tree, titleSuffix string) {
}
return ast.WalkContinue
})
var attrViewIDs []string
// 绑定镜像数据库
ast.Walk(tree.Root, func(n *ast.Node, entering bool) ast.WalkStatus {
if !entering {
return ast.WalkContinue
}
if ast.NodeAttributeView == n.Type {
av.UpsertBlockRel(n.AttributeViewID, n.ID)
attrViewIDs = append(attrViewIDs, n.AttributeViewID)
}
return ast.WalkContinue
})
// 清空文档绑定的数据库
tree.Root.RemoveIALAttr(av.NodeAttrNameAvs)
}
func pagedPaths(localPath string, pageSize int) (ret map[int][]string) {