diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 51308eed0..956eaddbc 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1461,6 +1461,7 @@ "236": "[%d/%d] is updating the marketplace package [%s]...", "237": "[%d] marketplace packages have all been updated successfully", "238": "Marketplace package [%s] update failed, please try again later", - "239": "Related operations are being processed, please try again later" + "239": "Related operations are being processed, please try again later", + "240": "The heading under the container block in the doc does not support dragging" } } diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index bcc880e05..08430e32f 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1461,6 +1461,7 @@ "236": "[%d/%d] está actualizando el paquete del mercado [%s]...", "237": "[%d] todos los paquetes del mercado se han actualizado correctamente", "238": "Error en la actualización del paquete Marketplace [%s], inténtalo de nuevo más tarde", - "239": "Las operaciones relacionadas se están procesando, inténtalo de nuevo más tarde" + "239": "Las operaciones relacionadas se están procesando, inténtalo de nuevo más tarde", + "240": "El encabezado debajo del bloque contenedor en el documento no admite el arrastre" } } diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index e22cc14e8..fd4ff6191 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1461,6 +1461,7 @@ "236": "[%d/%d] met à jour le package Marketplace [%s]...", "237": "[%d] packages Marketplace ont tous été mis à jour avec succès", "238": "La mise à jour du package Marketplace [%s] a échoué, veuillez réessayer plus tard", - "239": "Les opérations associées sont en cours de traitement, veuillez réessayer plus tard" + "239": "Les opérations associées sont en cours de traitement, veuillez réessayer plus tard", + "240": "Le titre sous le bloc conteneur dans la doc ne prend pas en charge le glisser" } } diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 1a11d5862..b680e40af 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1461,6 +1461,7 @@ "236": "[%d/%d] 正在更新市集包 [%s]...", "237": "[%d] 個市集包已經全部更新成功", "238": "市集包 [%s] 更新失敗,請稍後再試", - "239": "相關操作正在處理中,請稍後再試" + "239": "相關操作正在處理中,請稍後再試", + "240": "文件中容器區塊下的標題不支援拖曳" } } diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 7a346ecd1..314bc3e41 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1461,6 +1461,7 @@ "236": "[%d/%d] 正在更新集市包 [%s]...", "237": "[%d] 个集市包已经全部更新成功", "238": "集市包 [%s] 更新失败,请稍后再试", - "239": "相关操作正在处理中,请稍后再试" + "239": "相关操作正在处理中,请稍后再试", + "240": "文档中容器块下的标题不支持拖拽" } } diff --git a/kernel/model/outline.go b/kernel/model/outline.go index 28e73a47b..e89fe70bf 100644 --- a/kernel/model/outline.go +++ b/kernel/model/outline.go @@ -40,11 +40,19 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { return &TxErr{code: TxErrCodeBlockNotFound, id: headingID} } + operation.RetData = tree.Root.ID + heading := treenode.GetNodeInTree(tree, headingID) if nil == heading { return &TxErr{code: TxErrCodeBlockNotFound, id: headingID} } + if ast.NodeDocument != heading.Parent.Type { + // 仅支持文档根节点下第一层标题,不支持容器块内标题 + util.PushMsg(Conf.language(240), 5000) + return + } + headings := []*ast.Node{} ast.Walk(tree.Root, func(n *ast.Node, entering bool) ast.WalkStatus { if entering && ast.NodeHeading == n.Type && !n.ParentIs(ast.NodeBlockquote) { @@ -71,6 +79,12 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { return &TxErr{code: TxErrCodeBlockNotFound, id: previousID} } + if ast.NodeDocument != previousHeading.Parent.Type { + // 仅支持文档根节点下第一层标题,不支持容器块内标题 + util.PushMsg(Conf.language(240), 5000) + return + } + targetNode := previousHeading previousHeadingChildren := treenode.HeadingChildren(previousHeading) if 0 < len(previousHeadingChildren) { @@ -102,6 +116,12 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { return &TxErr{code: TxErrCodeBlockNotFound, id: parentID} } + if ast.NodeDocument != parentHeading.Parent.Type { + // 仅支持文档根节点下第一层标题,不支持容器块内标题 + util.PushMsg(Conf.language(240), 5000) + return + } + targetNode := parentHeading parentHeadingChildren := treenode.HeadingChildren(parentHeading) @@ -153,8 +173,6 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { if err = tx.writeTree(tree); nil != err { return } - - operation.RetData = tree.Root.ID return }