Răsfoiți Sursa

fix recentCreated

zahmis 5 ani în urmă
părinte
comite
3c419dbb23

+ 4 - 6
src/client/js/components/RecentCreated/RecentCreated.jsx

@@ -12,13 +12,12 @@ class RecentCreated extends React.Component {
 
   constructor(props) {
     super(props);
-    const { appContainer } = this.props;
 
     this.state = {
       pages: [],
       activePage: 1,
       totalPages: 0,
-      pagingLimit: appContainer.getConfig().pageLimitationM || 30,
+      pagingLimit: Infinity,
     };
 
     this.handlePage = this.handlePage.bind(this);
@@ -36,12 +35,11 @@ class RecentCreated extends React.Component {
   async getRecentCreatedList(selectPageNumber) {
     const { appContainer, userId } = this.props;
     // const userId = appContainer.currentUserId;
-    const limit = this.state.pagingLimit;
-    const offset = (selectPageNumber - 1) * limit;
 
     // pagesList get and pagination calculate
-    const res = await appContainer.apiv3Get(`/users/${userId}/recent`, { offset, limit });
-    const { totalCount, pages } = res.data;
+    const res = await appContainer.apiv3Get(`/users/${userId}/recent`, { selectPageNumber });
+    const { totalCount, pages, limit } = res.data;
+    console.log(res.data.limit);
 
     this.setState({
       pages,

+ 1 - 1
src/server/routes/apiv3/pages.js

@@ -100,7 +100,7 @@ module.exports = (crowi) => {
   });
 
   router.get('/list', accessTokenParser, loginRequired, validator.displayList, async(req, res) => {
-    const pageLimitationS = req.query.pageLimitationS || await crowi.configManager.getConfig('crowi', 'customize:showPageLimitationS') || 10;
+    const pageLimitationS = parseInt(req.query.pageLimitationS) || await crowi.configManager.getConfig('crowi', 'customize:showPageLimitationS') || 10;
     const { path } = req.query;
     const selectedPage = req.query.activePage;
     const offset = (selectedPage - 1) * pageLimitationS;

+ 17 - 4
src/server/routes/apiv3/users.js

@@ -105,6 +105,18 @@ module.exports = (crowi) => {
     query('page').isInt({ min: 1 }),
   ];
 
+  validator.recentCreatedByUser = [
+    query('pageLimitationM').custom((value) => {
+      if (value === undefined) {
+        return 10;
+      }
+      if (value > 100) {
+        throw new Error('You should set less than 100 or not to set pageLimitationM.');
+      }
+      return value;
+    }),
+  ];
+
   /**
    * @swagger
    *
@@ -224,7 +236,7 @@ module.exports = (crowi) => {
    *                    paginateResult:
    *                      $ref: '#/components/schemas/PaginateResult'
    */
-  router.get('/:id/recent', accessTokenParser, loginRequired, async(req, res) => {
+  router.get('/:id/recent', accessTokenParser, loginRequired, validator.recentCreatedByUser, async(req, res) => {
     const { id } = req.params;
 
     let user;
@@ -242,9 +254,10 @@ module.exports = (crowi) => {
       return res.apiv3Err(new ErrorV3('find-user-is-not-found'));
     }
 
-    const limit = parseInt(req.query.limit) || 50;
-    const offset = parseInt(req.query.offset) || 0;
-    const queryOptions = { offset, limit };
+    const pageLimitationM = parseInt(req.query.pageLimitationM) || await crowi.configManager.getConfig('crowi', 'customize:showPageLimitationM') || 30;
+    const selectPageNumber = req.query.selectPageNumber;
+    const offset = (selectPageNumber - 1) * pageLimitationM;
+    const queryOptions = { offset, limit: pageLimitationM };
 
     try {
       const result = await Page.findListByCreator(user, req.user, queryOptions);