mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-07 01:08:49 +01:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
21acf690e7
1 changed files with 66 additions and 18 deletions
|
|
@ -1539,6 +1539,13 @@ func renderAttributeView(attrView *av.AttributeView, blockID, viewID, query stri
|
|||
// 如果存在分组的话渲染分组视图
|
||||
var groups []av.Viewable
|
||||
for _, groupView := range view.Groups {
|
||||
switch groupView.LayoutType {
|
||||
case av.LayoutTypeTable:
|
||||
groupView.Table.Columns = view.Table.Columns
|
||||
case av.LayoutTypeGallery:
|
||||
groupView.Gallery.CardFields = view.Gallery.CardFields
|
||||
}
|
||||
|
||||
groupView.Filters = view.Filters
|
||||
groupView.Sorts = view.Sorts
|
||||
|
||||
|
|
@ -1548,6 +1555,14 @@ func renderAttributeView(attrView *av.AttributeView, blockID, viewID, query stri
|
|||
return
|
||||
}
|
||||
groups = append(groups, groupViewable)
|
||||
|
||||
// 将分组视图的分组字段清空,减少冗余(字段信息可以在总的视图 view 对象上获取到)
|
||||
switch groupView.LayoutType {
|
||||
case av.LayoutTypeTable:
|
||||
groupView.Table.Columns = nil
|
||||
case av.LayoutTypeGallery:
|
||||
groupView.Gallery.CardFields = nil
|
||||
}
|
||||
}
|
||||
viewable.SetGroups(groups)
|
||||
return
|
||||
|
|
@ -3146,6 +3161,12 @@ func removeAttributeViewBlock(srcIDs []string, avID string, tx *Transaction) (er
|
|||
for _, blockID := range srcIDs {
|
||||
view.ItemIDs = gulu.Str.RemoveElem(view.ItemIDs, blockID)
|
||||
}
|
||||
|
||||
for _, groupView := range view.Groups {
|
||||
for _, blockID := range srcIDs {
|
||||
groupView.ItemIDs = gulu.Str.RemoveElem(groupView.ItemIDs, blockID)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
relatedAvIDs := av.GetSrcAvIDs(avID)
|
||||
|
|
@ -3533,27 +3554,54 @@ func sortAttributeViewRow(operation *Operation) (err error) {
|
|||
|
||||
var itemID string
|
||||
var idx, previousIndex int
|
||||
for i, id := range view.ItemIDs {
|
||||
if id == operation.ID {
|
||||
itemID = id
|
||||
idx = i
|
||||
break
|
||||
}
|
||||
}
|
||||
if "" == itemID {
|
||||
itemID = operation.ID
|
||||
view.ItemIDs = append(view.ItemIDs, itemID)
|
||||
idx = len(view.ItemIDs) - 1
|
||||
}
|
||||
|
||||
view.ItemIDs = append(view.ItemIDs[:idx], view.ItemIDs[idx+1:]...)
|
||||
for i, r := range view.ItemIDs {
|
||||
if r == operation.PreviousID {
|
||||
previousIndex = i + 1
|
||||
break
|
||||
if nil != view.Group && "" != operation.GroupID {
|
||||
if groupView := view.GetGroup(operation.GroupID); nil != groupView {
|
||||
for i, id := range groupView.GroupItemIDs {
|
||||
if id == operation.ID {
|
||||
itemID = id
|
||||
idx = i
|
||||
break
|
||||
}
|
||||
}
|
||||
if "" == itemID {
|
||||
itemID = operation.ID
|
||||
groupView.GroupItemIDs = append(groupView.GroupItemIDs, itemID)
|
||||
idx = len(groupView.GroupItemIDs) - 1
|
||||
}
|
||||
|
||||
groupView.GroupItemIDs = append(groupView.GroupItemIDs[:idx], groupView.GroupItemIDs[idx+1:]...)
|
||||
for i, r := range groupView.GroupItemIDs {
|
||||
if r == operation.PreviousID {
|
||||
previousIndex = i + 1
|
||||
break
|
||||
}
|
||||
}
|
||||
groupView.GroupItemIDs = util.InsertElem(view.ItemIDs, previousIndex, itemID)
|
||||
}
|
||||
} else {
|
||||
for i, id := range view.ItemIDs {
|
||||
if id == operation.ID {
|
||||
itemID = id
|
||||
idx = i
|
||||
break
|
||||
}
|
||||
}
|
||||
if "" == itemID {
|
||||
itemID = operation.ID
|
||||
view.ItemIDs = append(view.ItemIDs, itemID)
|
||||
idx = len(view.ItemIDs) - 1
|
||||
}
|
||||
|
||||
view.ItemIDs = append(view.ItemIDs[:idx], view.ItemIDs[idx+1:]...)
|
||||
for i, r := range view.ItemIDs {
|
||||
if r == operation.PreviousID {
|
||||
previousIndex = i + 1
|
||||
break
|
||||
}
|
||||
}
|
||||
view.ItemIDs = util.InsertElem(view.ItemIDs, previousIndex, itemID)
|
||||
}
|
||||
view.ItemIDs = util.InsertElem(view.ItemIDs, previousIndex, itemID)
|
||||
|
||||
err = av.SaveAttributeView(attrView)
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue