mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 15:10:12 +01:00
🎨 Database table view supports paged loading https://github.com/siyuan-note/siyuan/issues/9424
This commit is contained in:
parent
533f4eb9dc
commit
3aa32f7f8d
4 changed files with 34 additions and 13 deletions
|
|
@ -123,7 +123,19 @@ func renderAttributeView(c *gin.Context) {
|
||||||
if nil != viewIDArg {
|
if nil != viewIDArg {
|
||||||
viewID = viewIDArg.(string)
|
viewID = viewIDArg.(string)
|
||||||
}
|
}
|
||||||
view, attrView, err := model.RenderAttributeView(id, viewID)
|
page := 1
|
||||||
|
pageArg := arg["page"]
|
||||||
|
if nil != pageArg {
|
||||||
|
page = int(pageArg.(float64))
|
||||||
|
}
|
||||||
|
|
||||||
|
pageSize := -1
|
||||||
|
pageSizeArg := arg["pageSize"]
|
||||||
|
if nil != pageSizeArg {
|
||||||
|
pageSize = int(pageSizeArg.(float64))
|
||||||
|
}
|
||||||
|
|
||||||
|
view, attrView, err := model.RenderAttributeView(id, viewID, page, pageSize)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
ret.Code = -1
|
ret.Code = -1
|
||||||
ret.Msg = err.Error()
|
ret.Msg = err.Error()
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ func RenderRepoSnapshotAttributeView(indexID, avID string) (viewable av.Viewable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewable, err = renderAttributeView(attrView, "")
|
viewable, err = renderAttributeView(attrView, "", 1, -1)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -267,11 +267,11 @@ func RenderHistoryAttributeView(avID, created string) (viewable av.Viewable, att
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewable, err = renderAttributeView(attrView, "")
|
viewable, err = renderAttributeView(attrView, "", 1, -1)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func RenderAttributeView(avID, viewID string) (viewable av.Viewable, attrView *av.AttributeView, err error) {
|
func RenderAttributeView(avID, viewID string, page, pageSize int) (viewable av.Viewable, attrView *av.AttributeView, err error) {
|
||||||
waitForSyncingStorages()
|
waitForSyncingStorages()
|
||||||
|
|
||||||
if avJSONPath := av.GetAttributeViewDataPath(avID); !filelock.IsExist(avJSONPath) {
|
if avJSONPath := av.GetAttributeViewDataPath(avID); !filelock.IsExist(avJSONPath) {
|
||||||
|
|
@ -288,11 +288,11 @@ func RenderAttributeView(avID, viewID string) (viewable av.Viewable, attrView *a
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
viewable, err = renderAttributeView(attrView, viewID)
|
viewable, err = renderAttributeView(attrView, viewID, page, pageSize)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func renderAttributeView(attrView *av.AttributeView, viewID string) (viewable av.Viewable, err error) {
|
func renderAttributeView(attrView *av.AttributeView, viewID string, page, pageSize int) (viewable av.Viewable, err error) {
|
||||||
if 1 > len(attrView.Views) {
|
if 1 > len(attrView.Views) {
|
||||||
view, _ := av.NewTableViewWithBlockKey(ast.NewNodeID())
|
view, _ := av.NewTableViewWithBlockKey(ast.NewNodeID())
|
||||||
attrView.Views = append(attrView.Views, view)
|
attrView.Views = append(attrView.Views, view)
|
||||||
|
|
@ -372,7 +372,7 @@ func renderAttributeView(attrView *av.AttributeView, viewID string) (viewable av
|
||||||
}
|
}
|
||||||
view.Table.Sorts = tmpSorts
|
view.Table.Sorts = tmpSorts
|
||||||
|
|
||||||
viewable, err = renderAttributeViewTable(attrView, view)
|
viewable, err = renderAttributeViewTable(attrView, view, page, pageSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
viewable.FilterRows()
|
viewable.FilterRows()
|
||||||
|
|
@ -440,7 +440,7 @@ func renderTemplateCol(ial map[string]string, tplContent string, rowValues []*av
|
||||||
return buf.String()
|
return buf.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *av.Table, err error) {
|
func renderAttributeViewTable(attrView *av.AttributeView, view *av.View, page, pageSize int) (ret *av.Table, err error) {
|
||||||
ret = &av.Table{
|
ret = &av.Table{
|
||||||
ID: view.ID,
|
ID: view.ID,
|
||||||
Icon: view.Icon,
|
Icon: view.Icon,
|
||||||
|
|
@ -621,6 +621,15 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a
|
||||||
}
|
}
|
||||||
return iv < jv
|
return iv < jv
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if 0 < pageSize {
|
||||||
|
start := (page - 1) * pageSize
|
||||||
|
end := start + pageSize
|
||||||
|
if len(ret.Rows) < end {
|
||||||
|
end = len(ret.Rows)
|
||||||
|
}
|
||||||
|
ret.Rows = ret.Rows[start:end]
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1916,7 +1916,7 @@ func exportTree(tree *parse.Tree, wysiwyg, expandKaTexMacros, keepFold bool,
|
||||||
return ast.WalkContinue
|
return ast.WalkContinue
|
||||||
}
|
}
|
||||||
|
|
||||||
table, err := renderAttributeViewTable(attrView, view)
|
table, err := renderAttributeViewTable(attrView, view, 1, -1)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
logging.LogErrorf("render attribute view [%s] table failed: %s", avID, err)
|
logging.LogErrorf("render attribute view [%s] table failed: %s", avID, err)
|
||||||
return ast.WalkContinue
|
return ast.WalkContinue
|
||||||
|
|
|
||||||
|
|
@ -47,10 +47,10 @@ func RenderGoTemplate(templateContent string) (ret string, err error) {
|
||||||
tmpl := template.New("")
|
tmpl := template.New("")
|
||||||
tmpl = tmpl.Funcs(sprig.TxtFuncMap())
|
tmpl = tmpl.Funcs(sprig.TxtFuncMap())
|
||||||
tmpl = tmpl.Funcs(template.FuncMap{
|
tmpl = tmpl.Funcs(template.FuncMap{
|
||||||
"Weekday": util.Weekday,
|
"Weekday": util.Weekday,
|
||||||
"WeekdayCN": util.WeekdayCN,
|
"WeekdayCN": util.WeekdayCN,
|
||||||
"WeekdayCN2": util.WeekdayCN2,
|
"WeekdayCN2": util.WeekdayCN2,
|
||||||
"ISOWeek": util.ISOWeek,
|
"ISOWeek": util.ISOWeek,
|
||||||
})
|
})
|
||||||
tpl, err := tmpl.Parse(templateContent)
|
tpl, err := tmpl.Parse(templateContent)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
|
|
@ -333,7 +333,7 @@ func renderTemplate(p, id string, preview bool) (string, error) {
|
||||||
return ast.WalkContinue
|
return ast.WalkContinue
|
||||||
}
|
}
|
||||||
|
|
||||||
table, renderErr := renderAttributeViewTable(attrView, view)
|
table, renderErr := renderAttributeViewTable(attrView, view, 1, -1)
|
||||||
if nil != renderErr {
|
if nil != renderErr {
|
||||||
logging.LogErrorf("render attribute view [%s] table failed: %s", n.AttributeViewID, renderErr)
|
logging.LogErrorf("render attribute view [%s] table failed: %s", n.AttributeViewID, renderErr)
|
||||||
return ast.WalkContinue
|
return ast.WalkContinue
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue