diff --git a/kernel/api/transaction.go b/kernel/api/transaction.go index f8e68c57f..faea807bc 100644 --- a/kernel/api/transaction.go +++ b/kernel/api/transaction.go @@ -70,11 +70,16 @@ func performTransactions(c *gin.Context) { app := arg["app"].(string) session := arg["session"].(string) - if model.IsFoldHeading(&transactions) || model.IsUnfoldHeading(&transactions) { - model.WaitForWritingFiles() - } pushTransactions(app, session, transactions) + if model.IsFoldHeading(&transactions) || model.IsUnfoldHeading(&transactions) || model.IsMoveOutlineHeading(&transactions) { + if model.IsMoveOutlineHeading(&transactions) { + if retData := transactions[0].DoOperations[0].RetData; nil != retData { + util.PushReloadDoc(retData.(string)) + } + } + } + elapsed := time.Now().Sub(start).Milliseconds() c.Header("Server-Timing", fmt.Sprintf("total;dur=%d", elapsed)) } diff --git a/kernel/model/outline.go b/kernel/model/outline.go index 63b2c6a01..28e73a47b 100644 --- a/kernel/model/outline.go +++ b/kernel/model/outline.go @@ -154,7 +154,7 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { return } - util.PushReloadDoc(tree.Root.ID) + operation.RetData = tree.Root.ID return } diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 5d2e07f16..67882b680 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -66,6 +66,17 @@ func IsUnfoldHeading(transactions *[]*Transaction) bool { return false } +func IsMoveOutlineHeading(transactions *[]*Transaction) bool { + for _, tx := range *transactions { + for _, op := range tx.DoOperations { + if "moveOutlineHeading" == op.Action { + return true + } + } + } + return false +} + func WaitForWritingFiles() { var printLog bool var lastPrintLog bool