🎨 Supports searching database view content https://github.com/siyuan-note/siyuan/issues/9419

This commit is contained in:
Daniel 2023-10-13 22:50:11 +08:00
parent a11ea9c347
commit c3d1c04af4
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -21,6 +21,7 @@ import (
"errors"
"fmt"
"path/filepath"
"strconv"
"strings"
"sync"
"time"
@ -190,6 +191,8 @@ func performTx(tx *Transaction) (ret *TxErr) {
ret = tx.doUnfoldHeading(op)
case "setAttrs":
ret = tx.doSetAttrs(op)
case "doUpdateUpdated":
ret = tx.doUpdateUpdated(op)
case "addFlashcards":
ret = tx.doAddFlashcards(op)
case "removeFlashcards":
@ -987,6 +990,35 @@ func (tx *Transaction) doUpdate(operation *Operation) (ret *TxErr) {
return
}
func (tx *Transaction) doUpdateUpdated(operation *Operation) (ret *TxErr) {
id := operation.ID
tree, err := tx.loadTree(id)
if nil != err {
if errors.Is(err, ErrBlockNotFound) {
logging.LogWarnf("not found block [%s]", id)
return
}
logging.LogErrorf("load tree [%s] failed: %s", id, err)
return &TxErr{code: TxErrCodeBlockNotFound, id: id}
}
node := treenode.GetNodeInTree(tree, id)
if nil == node {
logging.LogErrorf("get node [%s] in tree [%s] failed", id, tree.Root.ID)
return &TxErr{msg: ErrBlockNotFound.Error(), id: id}
}
updated := int64(operation.Data.(float64))
node.SetIALAttr("updated", strconv.FormatInt(updated, 10))
createdUpdated(node)
tx.nodes[node.ID] = node
if err = tx.writeTree(tree); nil != err {
return &TxErr{code: TxErrCodeWriteTree, msg: err.Error(), id: id}
}
return
}
func (tx *Transaction) doCreate(operation *Operation) (ret *TxErr) {
tree := operation.Data.(*parse.Tree)
tx.writeTree(tree)