diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 70c8ee0e0..1d2f5b51e 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -302,6 +302,37 @@ func hideAttributeViewGroup(avID, blockID, groupID string, hidden int) (err erro return } +func (tx *Transaction) doHideAttrViewAllGroups(operation *Operation) (ret *TxErr) { + if err := hideAttributeViewAllGroups(operation.AvID, operation.BlockID, int(operation.Data.(float64))); nil != err { + return &TxErr{code: TxErrHandleAttributeView, id: operation.AvID, msg: err.Error()} + } + return +} + +func hideAttributeViewAllGroups(avID, blockID string, hidden int) (err error) { + attrView, err := av.ParseAttributeView(avID) + if err != nil { + return + } + + view, err := getAttrViewViewByBlockID(attrView, blockID) + if err != nil { + return + } + + for _, group := range view.Groups { + group.GroupHidden = hidden + break + } + + err = av.SaveAttributeView(attrView) + if err != nil { + logging.LogErrorf("save attribute view [%s] failed: %s", avID, err) + return + } + return +} + func (tx *Transaction) doFoldAttrViewGroup(operation *Operation) (ret *TxErr) { if err := foldAttrViewGroup(operation.AvID, operation.BlockID, operation.ID, operation.Data.(bool)); nil != err { return &TxErr{code: TxErrHandleAttributeView, id: operation.AvID, msg: err.Error()} diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 75cb71d43..6366c679e 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -305,6 +305,8 @@ func performTx(tx *Transaction) (ret *TxErr) { ret = tx.doSetAttrViewGroup(op) case "hideAttrViewGroup": ret = tx.doHideAttrViewGroup(op) + case "hideAttrViewAllGroups": + ret = tx.doHideAttrViewAllGroups(op) case "foldAttrViewGroup": ret = tx.doFoldAttrViewGroup(op) case "syncAttrViewTableColWidth":