From 5c3ae7c188aa8e61882148c026db0cc5507131ae Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 4 Nov 2022 19:25:25 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=96=87=E6=A1=A3=E6=A0=91=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20`Ctrl+Click`=20=E5=92=8C=20`Shift+=E2=86=91/?= =?UTF-8?q?=E2=86=93`=20=E8=BF=9B=E8=A1=8C=E5=A4=9A=E9=80=89=20https://git?= =?UTF-8?q?hub.com/siyuan-note/siyuan/issues/1359?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/api/filetree.go | 3 ++- kernel/model/file.go | 18 ++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/kernel/api/filetree.go b/kernel/api/filetree.go index 7fbf21c9b..522969ee4 100644 --- a/kernel/api/filetree.go +++ b/kernel/api/filetree.go @@ -282,8 +282,9 @@ func moveDocs(c *gin.Context) { fromPaths = append(fromPaths, fromPath.(string)) } toPath := arg["toPath"].(string) + toNotebook := arg["toNotebook"].(string) - err := model.MoveDocs(fromPaths, toPath) + err := model.MoveDocs(fromPaths, toNotebook, toPath) if nil != err { ret.Code = -1 ret.Msg = err.Error() diff --git a/kernel/model/file.go b/kernel/model/file.go index ee90f0a02..679bcc284 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -1027,21 +1027,19 @@ func MoveDoc(fromBoxID, fromPath, toBoxID, toPath string) (newPath string, err e return } -func MoveDocs(fromPaths []string, toPath string) (err error) { - toID := strings.TrimSuffix(path.Base(toPath), ".sy") - toBlock := treenode.GetBlockTree(toID) - if nil == toBlock { - err = ErrBlockNotFound - return - } - - toBox := Conf.Box(toBlock.BoxID) +func MoveDocs(fromPaths []string, toBoxID, toPath string) (err error) { + toBox := Conf.Box(toBoxID) if nil == toBox { err = errors.New(Conf.Language(0)) return } - fromPaths = util.FilterMoveDocFromPaths(fromPaths, toPath) + if "/" == toPath { + // 移动到根目录下时不需要根据目标路径去重,所以这里传入一个不可能存在的随机笔记本名称 + fromPaths = util.FilterMoveDocFromPaths(fromPaths, ast.NewNodeID()) + } else { + fromPaths = util.FilterMoveDocFromPaths(fromPaths, toPath) + } pathsBoxes := getBoxesByPaths(fromPaths) needShowProgress := 32 < len(fromPaths) if needShowProgress {