🎨 Supports multiple views for the database https://github.com/siyuan-note/siyuan/issues/9751

This commit is contained in:
Daniel 2023-12-01 09:00:14 +08:00
parent ee9844c379
commit f9edbe0041
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 26 additions and 0 deletions

View file

@ -683,6 +683,30 @@ func (tx *Transaction) doAddAttrViewView(operation *Operation) (ret *TxErr) {
return
}
func (tx *Transaction) doSetAttrViewViewName(operation *Operation) (ret *TxErr) {
var err error
avID := operation.AvID
attrView, err := av.ParseAttributeView(avID)
if nil != err {
logging.LogErrorf("parse attribute view [%s] failed: %s", avID, err)
return &TxErr{code: TxErrWriteAttributeView, id: avID}
}
viewID := operation.ID
view := attrView.GetView(viewID)
if nil == view {
logging.LogErrorf("get view [%s] failed: %s", viewID, err)
return &TxErr{code: TxErrWriteAttributeView, id: viewID}
}
view.Name = operation.Data.(string)
if err = av.SaveAttributeView(attrView); nil != err {
logging.LogErrorf("save attribute view [%s] failed: %s", avID, err)
return &TxErr{code: TxErrWriteAttributeView, msg: err.Error(), id: avID}
}
return
}
func (tx *Transaction) doSetAttrViewName(operation *Operation) (ret *TxErr) {
err := setAttributeViewName(operation)
if nil != err {

View file

@ -246,6 +246,8 @@ func performTx(tx *Transaction) (ret *TxErr) {
ret = tx.doAddAttrViewView(op)
case "removeAttrViewView":
ret = tx.doRemoveAttrViewView(op)
case "setAttrViewViewName":
ret = tx.doSetAttrViewViewName(op)
}
if nil != ret {