This commit is contained in:
Daniel 2023-07-15 21:36:35 +08:00
parent eb69659faa
commit 3a7e0cd014
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 46 additions and 0 deletions

View file

@ -258,6 +258,50 @@ func setAttributeViewSorts(operation *Operation) (err error) {
return
}
func (tx *Transaction) doSetAttrViewColCalc(operation *Operation) (ret *TxErr) {
err := setAttributeViewColumnCalc(operation)
if nil != err {
return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()}
}
return
}
func setAttributeViewColumnCalc(operation *Operation) (err error) {
attrView, err := av.ParseAttributeView(operation.AvID)
if nil != err {
return
}
view, err := attrView.GetView()
if nil != err {
return
}
operationData := operation.Data.([]interface{})
data, err := gulu.JSON.MarshalJSON(operationData)
if nil != err {
return
}
calc := &av.ColumnCalc{}
switch view.LayoutType {
case av.LayoutTypeTable:
if err = gulu.JSON.UnmarshalJSON(data, calc); nil != err {
return
}
for _, column := range view.Table.Columns {
if column.ID == operation.ID {
column.Calc = calc
break
}
}
}
err = av.SaveAttributeView(attrView)
return
}
func (tx *Transaction) doInsertAttrViewBlock(operation *Operation) (ret *TxErr) {
firstSrcID := operation.SrcIDs[0]
tree, err := tx.loadTree(firstSrcID)

View file

@ -251,6 +251,8 @@ func performTx(tx *Transaction) (ret *TxErr) {
ret = tx.doRemoveAttrViewColOption(op)
case "updateAttrViewColOption":
ret = tx.doUpdateAttrViewColOption(op)
case "setAttrViewColCalc":
ret = tx.doSetAttrViewColCalc(op)
}
if nil != ret {