From c136b71e67d199cc18e43d1d97c822d0915816e4 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 3 Aug 2023 23:38:45 +0800 Subject: [PATCH] :art: Attribute View number column format https://github.com/siyuan-note/siyuan/issues/8764 --- kernel/model/attribute_view.go | 30 +++++++++++++++++++++++++++++- kernel/model/transaction.go | 2 ++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index c2b3db758..bba17c2e6 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -754,6 +754,35 @@ func addAttributeViewColumn(operation *Operation) (err error) { return } +func (tx *Transaction) doUpdateAttrViewColNumberFormat(operation *Operation) (ret *TxErr) { + err := updateAttributeViewColNumberFormat(operation) + if nil != err { + return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()} + } + return +} + +func updateAttributeViewColNumberFormat(operation *Operation) (err error) { + attrView, err := av.ParseAttributeView(operation.AvID) + if nil != err { + return + } + + colType := av.KeyType(operation.Typ) + switch colType { + case av.KeyTypeNumber: + for _, keyValues := range attrView.KeyValues { + if keyValues.Key.ID == operation.ID && av.KeyTypeNumber == keyValues.Key.Type { + keyValues.Key.NumberFormat = av.NumberFormat(operation.Format) + break + } + } + } + + err = av.SaveAttributeView(attrView) + return +} + func (tx *Transaction) doUpdateAttrViewColumn(operation *Operation) (ret *TxErr) { err := updateAttributeViewColumn(operation) if nil != err { @@ -775,7 +804,6 @@ func updateAttributeViewColumn(operation *Operation) (err error) { if keyValues.Key.ID == operation.ID { keyValues.Key.Name = operation.Name keyValues.Key.Type = colType - keyValues.Key.NumberFormat = av.NumberFormat(operation.Format) break } } diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 041325f83..1a6f64913 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -253,6 +253,8 @@ func performTx(tx *Transaction) (ret *TxErr) { ret = tx.doUpdateAttrViewColOption(op) case "setAttrViewColCalc": ret = tx.doSetAttrViewColCalc(op) + case "updateAttrViewColNumberFormat": + ret = tx.doUpdateAttrViewColNumberFormat(op) } if nil != ret {