Browse Source

some fixes

shinoka7 6 years ago
parent
commit
3f7e7c5cfb

+ 5 - 0
src/client/js/components/Admin/UserGroup/UserGroupPage.jsx

@@ -22,6 +22,7 @@ class UserGroupPage extends React.Component {
       isDeleteModalShow: false,
       activePage: 1,
       totalUserGroups: 0,
+      pagingLimit: Infinity,
     };
 
     this.xss = window.xss;
@@ -109,6 +110,7 @@ class UserGroupPage extends React.Component {
     let userGroups = [];
     let userGroupRelations = {};
     let totalUserGroups = 0;
+    let pagingLimit = Infinity;
 
     try {
       const params = { page: this.state.activePage };
@@ -120,12 +122,14 @@ class UserGroupPage extends React.Component {
       const [userGroupsRes, userGroupRelationsRes] = responses;
       userGroups = userGroupsRes.data.userGroups;
       totalUserGroups = userGroupsRes.data.totalUserGroups;
+      pagingLimit = userGroupsRes.data.pagingLimit;
       userGroupRelations = userGroupRelationsRes.data.userGroupRelations;
 
       this.setState({
         userGroups,
         userGroupRelations,
         totalUserGroups,
+        pagingLimit,
       });
     }
     catch (err) {
@@ -144,6 +148,7 @@ class UserGroupPage extends React.Component {
           activePage={this.state.activePage}
           changePage={this.handlePage}
           totalItemsCount={this.state.totalUserGroups}
+          pagingLimit={this.state.pagingLimit}
         >
           <UserGroupTable
             userGroups={this.state.userGroups}

+ 4 - 2
src/client/js/components/PaginationWrapper.jsx

@@ -16,20 +16,21 @@ class PaginationWrapper extends React.Component {
       totalItemsCount: 0,
       activePage: 1,
       paginationNumbers: {},
+      limit: Infinity,
     };
 
     this.calculatePagination = this.calculatePagination.bind(this);
   }
 
   componentWillReceiveProps(nextProps) {
-    const limit = this.props.appContainer.getConfig().recentCreatedLimit;
-
     this.setState({
       activePage: nextProps.activePage,
       totalItemsCount: nextProps.totalItemsCount,
+      limit: nextProps.pagingLimit,
     }, () => {
       const activePage = this.state.activePage;
       const totalCount = this.state.totalItemsCount;
+      const limit = this.state.limit;
       const paginationNumbers = this.calculatePagination(limit, totalCount, activePage);
       this.setState({ paginationNumbers });
     });
@@ -172,6 +173,7 @@ PaginationWrapper.propTypes = {
   activePage: PropTypes.number.isRequired,
   changePage: PropTypes.func.isRequired,
   totalItemsCount: PropTypes.number.isRequired,
+  pagingLimit: PropTypes.number.isRequired,
 };
 
 export default withTranslation()(PaginationWrappered);

+ 2 - 3
src/server/routes/apiv3/user-group.js

@@ -51,10 +51,9 @@ module.exports = (crowi) => {
     // TODO: filter with querystring
     try {
       const page = parseInt(req.query.page) || 1;
-      const totalUserGroups = await UserGroup.countUserGroups();
       const result = await UserGroup.findUserGroupsWithPagination({ page });
-      const userGroups = result.docs;
-      return res.apiv3({ userGroups, totalUserGroups });
+      const { docs: userGroups, total: totalUserGroups, limit: pagingLimit } = result;
+      return res.apiv3({ userGroups, totalUserGroups, pagingLimit });
     }
     catch (err) {
       const msg = 'Error occurred in fetching user group list';