浏览代码

:art: Attribute View number column format https://github.com/siyuan-note/siyuan/issues/8764

Daniel 2 年之前
父节点
当前提交
c136b71e67
共有 2 个文件被更改,包括 31 次插入1 次删除
  1. 29 1
      kernel/model/attribute_view.go
  2. 2 0
      kernel/model/transaction.go

+ 29 - 1
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
 			}
 		}

+ 2 - 0
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 {