⬆️ Upgrade database table view

This commit is contained in:
Daniel 2023-12-14 11:23:34 +08:00
parent 8daa98be52
commit 5a59b4c4d6
No known key found for this signature in database
GPG Key ID: 86211BA83DF03017

View File

@ -1089,11 +1089,6 @@ func addAttributeViewBlock(blockID string, operation *Operation, tree *parse.Tre
return
}
view, err := attrView.GetCurrentView()
if nil != err {
return
}
// 不允许重复添加相同的块到属性视图中
blockValues := attrView.GetBlockKeyValues()
for _, blockValue := range blockValues.Values {
@ -1127,17 +1122,24 @@ func addAttributeViewBlock(blockID string, operation *Operation, tree *parse.Tre
}
}
switch view.LayoutType {
case av.LayoutTypeTable:
if "" != operation.PreviousID {
for i, id := range view.Table.RowIDs {
if id == operation.PreviousID {
view.Table.RowIDs = append(view.Table.RowIDs[:i+1], append([]string{blockID}, view.Table.RowIDs[i+1:]...)...)
break
for _, view := range attrView.Views {
switch view.LayoutType {
case av.LayoutTypeTable:
if "" != operation.PreviousID {
changed := false
for i, id := range view.Table.RowIDs {
if id == operation.PreviousID {
view.Table.RowIDs = append(view.Table.RowIDs[:i+1], append([]string{blockID}, view.Table.RowIDs[i+1:]...)...)
changed = true
break
}
}
if !changed {
view.Table.RowIDs = append(view.Table.RowIDs, blockID)
}
} else {
view.Table.RowIDs = append([]string{blockID}, view.Table.RowIDs...)
}
} else {
view.Table.RowIDs = append([]string{blockID}, view.Table.RowIDs...)
}
}
@ -1159,11 +1161,6 @@ func (tx *Transaction) removeAttributeViewBlock(operation *Operation) (err error
return
}
view, err := attrView.GetCurrentView()
if nil != err {
return
}
trees := map[string]*parse.Tree{}
for _, keyValues := range attrView.KeyValues {
tmp := keyValues.Values[:0]
@ -1210,8 +1207,10 @@ func (tx *Transaction) removeAttributeViewBlock(operation *Operation) (err error
keyValues.Values = tmp
}
for _, blockID := range operation.SrcIDs {
view.Table.RowIDs = gulu.Str.RemoveElem(view.Table.RowIDs, blockID)
for _, view := range attrView.Views {
for _, blockID := range operation.SrcIDs {
view.Table.RowIDs = gulu.Str.RemoveElem(view.Table.RowIDs, blockID)
}
}
err = av.SaveAttributeView(attrView)