From c516e83bb7cbbacd36ac23903d41321af02a839b Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 5 Oct 2023 11:12:57 +0800 Subject: [PATCH] :art: Database column icon https://github.com/siyuan-note/siyuan/issues/9304 --- kernel/model/attribute_view.go | 25 +++++++++++++++++++++++++ kernel/model/transaction.go | 2 ++ 2 files changed, 27 insertions(+) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index be2ad78d5..86ceb02f1 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -758,6 +758,31 @@ func setAttributeViewColHidden(operation *Operation) (err error) { return } +func (tx *Transaction) doSetAttrViewColumnIcon(operation *Operation) (ret *TxErr) { + err := setAttributeViewColIcon(operation) + if nil != err { + return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()} + } + return +} + +func setAttributeViewColIcon(operation *Operation) (err error) { + attrView, err := av.ParseAttributeView(operation.AvID) + if nil != err { + return + } + + for _, keyValues := range attrView.KeyValues { + if keyValues.Key.ID == operation.ID { + keyValues.Key.Icon = operation.Data.(string) + break + } + } + + err = av.SaveAttributeView(attrView) + return +} + func (tx *Transaction) doSortAttrViewRow(operation *Operation) (ret *TxErr) { err := sortAttributeViewRow(operation) if nil != err { diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 51917baaf..32adc9453 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -206,6 +206,8 @@ func performTx(tx *Transaction) (ret *TxErr) { ret = tx.doSetAttrViewColumnWrap(op) case "setAttrViewColHidden": ret = tx.doSetAttrViewColumnHidden(op) + case "setAttrViewColIcon": + ret = tx.doSetAttrViewColumnIcon(op) case "insertAttrViewBlock": ret = tx.doInsertAttrViewBlock(op) case "removeAttrViewBlock":