diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index ddaf92d42..6ea9933d7 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -73,7 +73,23 @@ func (tx *Transaction) doRemoveAttrViewBlock(operation *Operation) (ret *TxErr) return } -func AddAttributeViewColumn(name string, typ string, columnIndex int, avID string) (err error) { +func (tx *Transaction) doAddAttrViewColumn(operation *Operation) (ret *TxErr) { + err := addAttributeViewColumn(operation.Name, operation.Typ, 1024, operation.ParentID) + if nil != err { + return &TxErr{code: TxErrWriteAttributeView, id: operation.ParentID, msg: err.Error()} + } + return +} + +func (tx *Transaction) doRemoveAttrViewColumn(operation *Operation) (ret *TxErr) { + err := removeAttributeViewColumn(operation.ID, operation.ParentID) + if nil != err { + return &TxErr{code: TxErrWriteAttributeView, id: operation.ParentID, msg: err.Error()} + } + return +} + +func addAttributeViewColumn(name string, typ string, columnIndex int, avID string) (err error) { attrView, err := av.ParseAttributeView(avID) if nil != err { return @@ -93,7 +109,7 @@ func AddAttributeViewColumn(name string, typ string, columnIndex int, avID strin return } -func RemoveAttributeViewColumn(columnID string, avID string) (err error) { +func removeAttributeViewColumn(columnID string, avID string) (err error) { attrView, err := av.ParseAttributeView(avID) if nil != err { return diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 1711ec7c7..4cc293200 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -218,6 +218,10 @@ func performTx(tx *Transaction) (ret *TxErr) { ret = tx.doInsertAttrViewBlock(op) case "removeAttrViewBlock": ret = tx.doRemoveAttrViewBlock(op) + case "addAttrViewCol": + ret = tx.doAddAttrViewColumn(op) + case "removeAttrViewCol": + ret = tx.doRemoveAttrViewColumn(op) } if nil != ret { @@ -1026,9 +1030,12 @@ type Operation struct { ParentID string `json:"parentID"` PreviousID string `json:"previousID"` NextID string `json:"nextID"` - SrcIDs []string `json:"srcIDs"` // 用于将块拖拽到属性视图中 RetData interface{} `json:"retData"` + SrcIDs []string `json:"srcIDs"` // 用于将块拖拽到属性视图中 + Name string `json:"name"` // 用于属性视图列名 + Typ string `json:"type"` // 用于属性视图列类型 + discard bool // 用于标识是否在事务合并中丢弃 }