diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 9bed6d199..9b5a24028 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1006,7 +1006,7 @@ "104": "The update installation package failed to download, please check the network connection", "105": "Corrupted data repo have been automatically reset", "106": "Maximum length is limited to 512 characters", - "107": "Moving document [%s]", + "107": "Moved document [%s]", "108": "Data sync found conflicts, you can view the generated conflict content in [Data History]", "109": "Remove reminder completed [%s]", "110": "Renaming...", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index d0e11f424..5a9ae0f2c 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1006,7 +1006,7 @@ "104": "El paquete de instalación de la actualización no se pudo descargar, verifique la conexión de red", "105": "El repositorio de datos corruptos se ha restablecido automáticamente", "106": "La longitud máxima está limitada a 512 caracteres", - "107": "Moviendo documento [%s]", + "107": "Documento movido [%s]", "108": "La sincronizaci\u00f3n de datos encontr\u00f3 en conflictos, puede ver el contenido del conflicto generado en [Historial de datos]", "109": "Eliminación de recordatorios completada [%s]", "110": "Renombrar...", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 766d5b756..66e1a7dc9 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1006,7 +1006,7 @@ "104": "Le package d'installation de la mise à jour n'a pas pu être téléchargé, veuillez vérifier la connexion réseau", "105": "Le référentiel de données corrompu a été automatiquement réinitialisé", "106": "La longueur maximale est limitée à 512 caractères", - "107": "Déplacement du document [%s]", + "107": "Document déplacé [%s]", "108": "La synchronisation des données a trouvé des conflits, vous pouvez afficher le contenu du conflit généré dans [Historique des données]", "109": "Supprimer le rappel terminé [%s]", "110": "Renommer...", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 08ac93573..4039da67c 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1006,7 +1006,7 @@ "104": "更新安裝包下載失敗,請檢查網絡連接", "105": "已經自動重置損壞的數據倉庫", "106": "最大長度限制為 512 字元", - "107": "正在移動文檔 [%s]", + "107": "已經移動文檔 [%s]", "108": "數據同步發現衝突,可在 [數據歷史] 中查看生成的衝突內容", "109": "移除提醒完畢 [%s]", "110": "正在重命名...", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 45374b71e..1a94f9406 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1006,7 +1006,7 @@ "104": "更新安装包下载失败,请检查网络连接", "105": "已经自动重置损坏的数据仓库", "106": "最大长度限制为 512 字符", - "107": "正在移动文档 [%s]", + "107": "已经移动文档 [%s]", "108": "数据同步发现冲突,可在 [数据历史] 中查看生成的冲突内容", "109": "移除提醒完毕 [%s]", "110": "正在重命名...", diff --git a/kernel/model/box.go b/kernel/model/box.go index e96560460..b16ec6e73 100644 --- a/kernel/model/box.go +++ b/kernel/model/box.go @@ -397,7 +397,7 @@ func (box *Box) moveTrees0(files []*FileInfo) { } treenode.SetBlockTreePath(subTree) - sql.UpsertTreeQueue(subTree) + sql.RenameTreeQueue(subTree) msg := fmt.Sprintf(Conf.Language(107), subTree.HPath) util.PushStatusBar(msg) } diff --git a/kernel/model/file.go b/kernel/model/file.go index 7bddac1c5..925e5581c 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -882,11 +882,11 @@ func indexWriteJSONQueueWithoutChangeTime(tree *parse.Tree) (err error) { return writeJSONQueueWithoutChangeTime(tree) } -func renameWriteJSONQueue(tree *parse.Tree, oldHPath string) (err error) { +func renameWriteJSONQueue(tree *parse.Tree) (err error) { if err = filesys.WriteTree(tree); nil != err { return } - sql.RenameTreeQueue(tree, oldHPath) + sql.RenameTreeQueue(tree) treenode.IndexBlockTree(tree) return } @@ -1288,12 +1288,10 @@ func RenameDoc(boxID, p, title string) (err error) { } title = strings.ReplaceAll(title, "/", "") - oldHPath := tree.HPath tree.HPath = path.Join(path.Dir(tree.HPath), title) tree.Root.SetIALAttr("title", title) tree.Root.SetIALAttr("updated", util.CurrentTimeSecondsStr()) - - if err = renameWriteJSONQueue(tree, oldHPath); nil != err { + if err = renameWriteJSONQueue(tree); nil != err { return } diff --git a/kernel/sql/database.go b/kernel/sql/database.go index e152f790c..e019a8b74 100644 --- a/kernel/sql/database.go +++ b/kernel/sql/database.go @@ -1097,18 +1097,18 @@ func batchDeleteByPathPrefix(tx *sql.Tx, boxID, pathPrefix string) (err error) { return } -func batchUpdateHPath(tx *sql.Tx, boxID, rootID, oldHPath, newHPath string) (err error) { - stmt := "UPDATE blocks SET hpath = ? WHERE box = ? AND root_id = ? AND hpath = ?" - if err = execStmtTx(tx, stmt, newHPath, boxID, rootID, oldHPath); nil != err { +func batchUpdateHPath(tx *sql.Tx, boxID, rootID, newHPath string) (err error) { + stmt := "UPDATE blocks SET hpath = ? WHERE box = ? AND root_id = ?" + if err = execStmtTx(tx, stmt, newHPath, boxID, rootID); nil != err { return } - stmt = "UPDATE blocks_fts SET hpath = ? WHERE box = ? AND root_id = ? AND hpath = ?" - if err = execStmtTx(tx, stmt, newHPath, boxID, rootID, oldHPath); nil != err { + stmt = "UPDATE blocks_fts SET hpath = ? WHERE box = ? AND root_id = ?" + if err = execStmtTx(tx, stmt, newHPath, boxID, rootID); nil != err { return } if !caseSensitive { - stmt = "UPDATE blocks_fts_case_insensitive SET hpath = ? WHERE box = ? AND root_id = ? AND hpath = ?" - if err = execStmtTx(tx, stmt, newHPath, boxID, rootID, oldHPath); nil != err { + stmt = "UPDATE blocks_fts_case_insensitive SET hpath = ? WHERE box = ? AND root_id = ?" + if err = execStmtTx(tx, stmt, newHPath, boxID, rootID); nil != err { return } } diff --git a/kernel/sql/queue.go b/kernel/sql/queue.go index cfc61215e..8d41fe330 100644 --- a/kernel/sql/queue.go +++ b/kernel/sql/queue.go @@ -50,7 +50,6 @@ type dbQueueOperation struct { removeTreeIDs []string // delete_ids box string // delete_box/delete_box_refs/index renameTree *parse.Tree // rename - renameTreeOldHPath string // rename block *Block // update_block_content removeAssetHashes []string // delete_assets } @@ -168,7 +167,7 @@ func execOp(op *dbQueueOperation, tx *sql.Tx, context map[string]interface{}) (e case "delete_ids": err = batchDeleteByRootIDs(tx, op.removeTreeIDs, context) case "rename": - err = batchUpdateHPath(tx, op.renameTree.Box, op.renameTree.ID, op.renameTreeOldHPath, op.renameTree.HPath) + err = batchUpdateHPath(tx, op.renameTree.Box, op.renameTree.ID, op.renameTree.HPath) if nil != err { break } @@ -303,15 +302,15 @@ func UpsertTreeQueue(tree *parse.Tree) { operationQueue = append(operationQueue, newOp) } -func RenameTreeQueue(tree *parse.Tree, oldHPath string) { +func RenameTreeQueue(tree *parse.Tree) { dbQueueLock.Lock() defer dbQueueLock.Unlock() newOp := &dbQueueOperation{ - renameTree: tree, - renameTreeOldHPath: oldHPath, - inQueueTime: time.Now(), - action: "rename"} + renameTree: tree, + inQueueTime: time.Now(), + action: "rename", + } for i, op := range operationQueue { if "rename" == op.action && op.renameTree.ID == tree.ID { // 相同树则覆盖 operationQueue[i] = newOp