Browse Source

:art: Database table view supports paged loading https://github.com/siyuan-note/siyuan/issues/9424

Daniel 1 year ago
parent
commit
9b28daf89d
1 changed files with 21 additions and 18 deletions
  1. 21 18
      kernel/model/attribute_view.go

+ 21 - 18
kernel/model/attribute_view.go

@@ -378,6 +378,27 @@ func renderAttributeView(attrView *av.AttributeView, viewID string, page, pageSi
 	viewable.FilterRows()
 	viewable.SortRows()
 	viewable.CalcCols()
+
+	// 分页
+	switch viewable.GetType() {
+	case av.LayoutTypeTable:
+		table := viewable.(*av.Table)
+		table.RowCount = len(table.Rows)
+		if 1 > view.Table.PageSize {
+			view.Table.PageSize = 50
+		}
+		table.PageSize = view.Table.PageSize
+		if 1 > pageSize {
+			pageSize = table.PageSize
+		}
+
+		start := (page - 1) * pageSize
+		end := start + pageSize
+		if len(table.Rows) < end {
+			end = len(table.Rows)
+		}
+		table.Rows = table.Rows[start:end]
+	}
 	return
 }
 
@@ -621,24 +642,6 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View, page, p
 		}
 		return iv < jv
 	})
-
-	// 分页
-	ret.RowCount = len(ret.Rows)
-	if 1 > view.Table.PageSize {
-		view.Table.PageSize = 50
-	}
-	ret.PageSize = view.Table.PageSize
-	if 1 > pageSize {
-		pageSize = ret.PageSize
-	}
-
-	start := (page - 1) * pageSize
-	end := start + pageSize
-	if len(ret.Rows) < end {
-		end = len(ret.Rows)
-	}
-	ret.Rows = ret.Rows[start:end]
-
 	return
 }