From e8a592e4e7f2d3d34c6ef08b8843ffdf6f36fab2 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 13 Jun 2025 11:09:28 +0800 Subject: [PATCH] :art: Database gallery view https://github.com/siyuan-note/siyuan/issues/10414 --- kernel/model/attribute_view.go | 13 ++----------- kernel/sql/av.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 1a7263a3c..bdaf76fd2 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -1180,8 +1180,6 @@ func renderAttributeView(attrView *av.AttributeView, viewID, query string, page, } } view.Table.Sorts = tmpSorts - - viewable = sql.RenderAttributeViewTable(attrView, view, query) case av.LayoutTypeGallery: // 字段删除以后需要删除设置的过滤和排序 tmpFilters := []*av.ViewFilter{} @@ -1199,10 +1197,9 @@ func renderAttributeView(attrView *av.AttributeView, viewID, query string, page, } } view.Gallery.Sorts = tmpSorts - - viewable = sql.RenderAttributeViewGallery(attrView, view, query) } + viewable = sql.RenderView(view, attrView, query) if nil == viewable { err = av.ErrViewNotFound logging.LogErrorf("render attribute view [%s] failed", attrView.ID) @@ -2424,13 +2421,7 @@ func addAttributeViewBlock(now int64, avID, blockID, previousBlockID, addingBloc } if nil != view && 0 < len(filters) && !ignoreFillFilter { - var viewable av.Viewable - switch view.LayoutType { - case av.LayoutTypeTable: - viewable = sql.RenderAttributeViewTable(attrView, view, "") - case av.LayoutTypeGallery: - viewable = sql.RenderAttributeViewGallery(attrView, view, "") - } + viewable := sql.RenderView(view, attrView, "") viewable.Filter(attrView) viewable.Sort(attrView) diff --git a/kernel/sql/av.go b/kernel/sql/av.go index 6d66488d7..919605647 100644 --- a/kernel/sql/av.go +++ b/kernel/sql/av.go @@ -32,6 +32,16 @@ import ( "github.com/siyuan-note/siyuan/kernel/util" ) +func RenderView(view *av.View, attrView *av.AttributeView, query string) (ret av.Viewable) { + switch view.LayoutType { + case av.LayoutTypeTable: + ret = RenderAttributeViewTable(attrView, view, query) + case av.LayoutTypeGallery: + ret = RenderAttributeViewGallery(attrView, view, query) + } + return +} + func RenderTemplateField(ial map[string]string, keyValues []*av.KeyValues, tplContent string) (ret string, err error) { if "" == ial["id"] { block := getBlockValue(keyValues)