diff --git a/API.md b/API.md index 14c548c35..45923d001 100644 --- a/API.md +++ b/API.md @@ -480,7 +480,7 @@ Move documents by `id`: ``` * `fromIDs`: Source docs' IDs - * `toID`: Target parent ID + * `toID`: Target parent doc's ID or notebook ID * Return value ```json diff --git a/API_zh_CN.md b/API_zh_CN.md index c9694fb25..561de6207 100644 --- a/API_zh_CN.md +++ b/API_zh_CN.md @@ -478,7 +478,7 @@ ``` * `fromIDs`:源文档 ID - * `toID`:目标父文档 ID + * `toID`:目标父文档 ID 或笔记本 ID * 返回值 ```json diff --git a/kernel/api/filetree.go b/kernel/api/filetree.go index 4e2fd6a6b..933c2d62b 100644 --- a/kernel/api/filetree.go +++ b/kernel/api/filetree.go @@ -541,15 +541,26 @@ func moveDocsByID(c *gin.Context) { } fromPaths = gulu.Str.RemoveDuplicatedElem(fromPaths) + var box *model.Box toTree, err := model.LoadTreeByBlockID(toID) if err != nil { - ret.Code = -1 - ret.Msg = err.Error() - ret.Data = map[string]interface{}{"closeTimeout": 7000} - return + box = model.Conf.Box(toID) + if nil == box { + ret.Code = -1 + ret.Msg = "can't found box or tree by id [" + toID + "]" + ret.Data = map[string]interface{}{"closeTimeout": 7000} + return + } + } + + var toNotebook, toPath string + if nil != toTree { + toNotebook = toTree.Box + toPath = toTree.Path + } else if nil != box { + toNotebook = box.ID + toPath = "/" } - toNotebook := toTree.Box - toPath := toTree.Path callback := arg["callback"] err = model.MoveDocs(fromPaths, toNotebook, toPath, callback) if err != nil {