🎨 The database-bound block is automatically added to the database after being copied as a replica https://github.com/siyuan-note/siyuan/issues/11959
This commit is contained in:
parent
74c6b9ba00
commit
9cc334698b
4 changed files with 23 additions and 6 deletions
|
@ -1093,9 +1093,24 @@ func DuplicateDoc(tree *parse.Tree) {
|
|||
msgId := util.PushMsg(Conf.Language(116), 30000)
|
||||
defer util.PushClearMsg(msgId)
|
||||
|
||||
resetTree(tree, "Duplicated")
|
||||
previousID := tree.Root.ID
|
||||
resetTree(tree, "Duplicated", false)
|
||||
createTreeTx(tree)
|
||||
WaitForWritingFiles()
|
||||
|
||||
// 复制为副本时将该副本块插入到数据库中 https://github.com/siyuan-note/siyuan/issues/11959
|
||||
avs := tree.Root.IALAttr(av.NodeAttrNameAvs)
|
||||
for _, avID := range strings.Split(avs, ",") {
|
||||
if !ast.IsNodeIDPattern(avID) {
|
||||
continue
|
||||
}
|
||||
|
||||
AddAttributeViewBlock(nil, []map[string]interface{}{{
|
||||
"id": tree.Root.ID,
|
||||
"isDetached": false,
|
||||
}}, avID, "", previousID, false)
|
||||
util.PushReloadAttrView(avID)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -268,7 +268,7 @@ func recreateTree(tree *parse.Tree, absPath string) {
|
|||
treenode.RemoveBlockTreesByPathPrefix(strings.TrimSuffix(tree.Path, ".sy"))
|
||||
treenode.RemoveBlockTreesByRootID(tree.ID)
|
||||
|
||||
resetTree(tree, "")
|
||||
resetTree(tree, "", true)
|
||||
if err := filesys.WriteTree(tree); nil != err {
|
||||
logging.LogWarnf("write tree [%s] failed: %s", tree.Path, err)
|
||||
return
|
||||
|
|
|
@ -1380,7 +1380,7 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult,
|
|||
tree.Box = boxID
|
||||
tree.Path = strings.TrimPrefix(file.Path, "/"+boxID)
|
||||
|
||||
resetTree(tree, "Conflicted")
|
||||
resetTree(tree, "Conflicted", true)
|
||||
createTreeTx(tree)
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ import (
|
|||
"golang.org/x/time/rate"
|
||||
)
|
||||
|
||||
func resetTree(tree *parse.Tree, titleSuffix string) {
|
||||
func resetTree(tree *parse.Tree, titleSuffix string, removeAvBinding bool) {
|
||||
tree.ID = ast.NewNodeID()
|
||||
tree.Root.ID = tree.ID
|
||||
|
||||
|
@ -121,8 +121,10 @@ func resetTree(tree *parse.Tree, titleSuffix string) {
|
|||
return ast.WalkContinue
|
||||
})
|
||||
|
||||
// 清空文档绑定的数据库
|
||||
tree.Root.RemoveIALAttr(av.NodeAttrNameAvs)
|
||||
if removeAvBinding {
|
||||
// 清空文档绑定的数据库
|
||||
tree.Root.RemoveIALAttr(av.NodeAttrNameAvs)
|
||||
}
|
||||
}
|
||||
|
||||
func pagedPaths(localPath string, pageSize int) (ret map[int][]string) {
|
||||
|
|
Loading…
Add table
Reference in a new issue