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