Просмотр исходного кода

InfiniteScroll fix pagination

- Remove page options
- separate function based on offset option
I Komang Mudana 4 лет назад
Родитель
Сommit
6fd275f65e
1 измененных файлов с 14 добавлено и 4 удалено
  1. 14 4
      packages/app/src/server/models/obsolete-page.js

+ 14 - 4
packages/app/src/server/models/obsolete-page.js

@@ -500,11 +500,21 @@ export const getPageSchema = (crowi) => {
 
 
     builder.populateDataToList(User.USER_FIELDS_EXCEPT_CONFIDENTIAL);
+
+    if (!opt.offset) {
     // count
-    const totalCount = await builder.query.exec('count');
+      const totalCount = await builder.query.exec('count');
+
+      // find
+      builder.addConditionToPagenate(opt.offset, opt.limit, sortOpt);
+      const pages = await builder.query.lean().clone().exec('find');
+      const result = {
+        pages, totalCount, offset: opt.offset, limit: opt.limit,
+      };
+      return result;
+    }
 
-    // find
-    builder.addConditionToPagenate(opt.offset, opt.limit, sortOpt);
+    // Pagination for infinite scroll
     const paginationOptions = {
       lean: true,
       limit: opt.limit,
@@ -513,7 +523,7 @@ export const getPageSchema = (crowi) => {
     };
     const paginatedPages = await Page.paginate(builder.query.clone(), paginationOptions);
     const result = {
-      pages: paginatedPages.docs, totalCount, offset: opt.offset, limit: opt.limit,
+      pages: paginatedPages.docs, totalCount: paginatedPages.totalDocs, offset: opt.offset, limit: opt.limit,
     };
 
     return result;