diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index fb973766a..91a1d40a3 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -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 { diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 3405146d9..f94f01a09 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -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 {