diff --git a/kernel/av/av.go b/kernel/av/av.go index f7f55bb2e..bd11c165b 100644 --- a/kernel/av/av.go +++ b/kernel/av/av.go @@ -138,9 +138,10 @@ type SelectOption struct { // View 描述了视图的结构。 type View struct { - ID string `json:"id"` // 视图 ID - Icon string `json:"icon"` // 视图图标 - Name string `json:"name"` // 视图名称 + ID string `json:"id"` // 视图 ID + Icon string `json:"icon"` // 视图图标 + Name string `json:"name"` // 视图名称 + HideAttrViewName bool `json:"hideAttrViewName"` // 是否隐藏属性视图名称 LayoutType LayoutType `json:"type"` // 当前布局类型 Table *LayoutTable `json:"table,omitempty"` // 表格布局 diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index d53f24b97..81b955220 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -1017,6 +1017,33 @@ func getRowBlockValue(keyValues []*av.KeyValues) (ret *av.Value) { return } +func (tx *Transaction) doHideAttrViewName(operation *Operation) (ret *TxErr) { + err := hideAttrViewName(operation) + if nil != err { + return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()} + } + return +} + +func hideAttrViewName(operation *Operation) (err error) { + attrView, err := av.ParseAttributeView(operation.AvID) + if nil != err { + logging.LogErrorf("parse attribute view [%s] failed: %s", operation.AvID, err) + return + } + + viewID := operation.ID + view := attrView.GetView(viewID) + if nil == view { + logging.LogErrorf("get view [%s] failed: %s", viewID, err) + return + } + + view.HideAttrViewName = operation.Data.(bool) + err = av.SaveAttributeView(attrView) + return +} + func (tx *Transaction) doUpdateAttrViewColRollup(operation *Operation) (ret *TxErr) { err := updateAttributeViewColRollup(operation) if nil != err { diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 7887a6870..66715aa4f 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -277,6 +277,8 @@ func performTx(tx *Transaction) (ret *TxErr) { ret = tx.doUpdateAttrViewColRelation(op) case "updateAttrViewColRollup": ret = tx.doUpdateAttrViewColRollup(op) + case "hideAttrViewName": + ret = tx.doHideAttrViewName(op) } if nil != ret {