mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 22:50:13 +01:00
🎨 Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964
This commit is contained in:
parent
75b2ccfe82
commit
400153319e
3 changed files with 22 additions and 12 deletions
|
|
@ -1541,17 +1541,7 @@ 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
|
||||
|
||||
groupViewable := sql.RenderView(attrView, groupView, query)
|
||||
groupViewable := sql.RenderGroupView(attrView, view, groupView)
|
||||
err = renderViewableInstance(groupViewable, view, attrView, page, pageSize)
|
||||
if nil != err {
|
||||
return
|
||||
|
|
@ -2940,7 +2930,13 @@ func addAttributeViewBlock(now int64, avID, blockID, groupID, previousBlockID, a
|
|||
var nearItem av.Item // 临近项
|
||||
if nil != view && ((0 < len(view.Filters) && !ignoreFillFilter) || "" != groupID) {
|
||||
// 存在过滤条件或者指定分组视图时,先获取临近项备用
|
||||
viewable := sql.RenderView(attrView, view, "")
|
||||
targetView := view
|
||||
if "" != groupID {
|
||||
if groupView := view.GetGroup(groupID); nil != groupView {
|
||||
targetView = groupView
|
||||
}
|
||||
}
|
||||
viewable := sql.RenderGroupView(attrView, view, targetView)
|
||||
av.Filter(viewable, attrView)
|
||||
av.Sort(viewable, attrView)
|
||||
items := viewable.(av.Collection).GetItems()
|
||||
|
|
|
|||
|
|
@ -1693,6 +1693,7 @@ type Operation struct {
|
|||
RemoveDest bool `json:"removeDest"` // 属性视图删除关联目标
|
||||
Layout av.LayoutType `json:"layout"` // 属性视图布局类型
|
||||
GroupID string `json:"groupID"` // 属性视图分组视图 ID
|
||||
TargetGroupID string `json:"targetGroupID"` // 属性视图目标分组视图 ID
|
||||
}
|
||||
|
||||
type Transaction struct {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,19 @@ import (
|
|||
"github.com/siyuan-note/siyuan/kernel/util"
|
||||
)
|
||||
|
||||
func RenderGroupView(attrView *av.AttributeView, view, groupView *av.View) (ret av.Viewable) {
|
||||
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
|
||||
return RenderView(attrView, groupView, "")
|
||||
}
|
||||
|
||||
func RenderView(attrView *av.AttributeView, view *av.View, query string) (ret av.Viewable) {
|
||||
switch view.LayoutType {
|
||||
case av.LayoutTypeTable:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue