WESEEK Kaito 6 éve
szülő
commit
52e64ca710

+ 3 - 7
src/client/js/components/Admin/ManageExternalAccount.jsx

@@ -16,14 +16,10 @@ class ManageExternalAccount extends React.Component {
   constructor(props) {
     super(props);
     this.xss = window.xss;
-    this.handlePage = this.handlePage.bind(this);
+    this.handleExternalAccountPage = this.handleExternalAccountPage.bind(this);
   }
 
-  componentWillMount() {
-    this.handlePage(1);
-  }
-
-  async handlePage(selectedPage) {
+  async handleExternalAccountPage(selectedPage) {
     try {
       await this.props.adminExternalAccountsContainer.retrieveExternalAccountsByPagingNum(selectedPage);
     }
@@ -39,7 +35,7 @@ class ManageExternalAccount extends React.Component {
       <div className="pull-right">
         <PaginationWrapper
           activePage={adminExternalAccountsContainer.state.activePage}
-          changePage={this.handlePage}
+          changePage={this.handleExternalAccountPage}
           totalItemsCount={adminExternalAccountsContainer.state.totalAccounts}
           pagingLimit={adminExternalAccountsContainer.state.pagingLimit}
         />

+ 8 - 48
src/client/js/components/Admin/Users/ExternalAccountTable.jsx

@@ -17,8 +17,7 @@ class ExternalAccountTable extends React.Component {
     this.state = {
 
     };
-
-    this.getUserStatusLabel = this.getUserStatusLabel.bind(this);
+    this.xss = window.xss;
     this.removeExtenalAccount = this.removeExtenalAccount.bind(this);
   }
 
@@ -33,44 +32,6 @@ class ExternalAccountTable extends React.Component {
     }
   }
 
-  /**
-   * user.statusをみてステータスのラベルを返す
-   * @param {string} userStatus
-   * @return ステータスラベル
-   */
-  getUserStatusLabel(userStatus) {
-    let additionalClassName;
-    let text;
-
-    switch (userStatus) {
-      case 1:
-        additionalClassName = 'label-info';
-        text = 'Approval Pending';
-        break;
-      case 2:
-        additionalClassName = 'label-success';
-        text = 'Active';
-        break;
-      case 3:
-        additionalClassName = 'label-warning';
-        text = 'Suspended';
-        break;
-      case 4:
-        additionalClassName = 'label-danger';
-        text = 'Deleted';
-        break;
-      case 5:
-        additionalClassName = 'label-info';
-        text = 'Invited';
-        break;
-    }
-
-    return (
-      <span className={`label ${additionalClassName}`}>
-        {text}
-      </span>
-    );
-  }
 
   render() {
     const { t, adminExternalAccountsContainer } = this.props;
@@ -106,19 +67,18 @@ class ExternalAccountTable extends React.Component {
             </tr>
           </thead>
           <tbody>
-            {adminExternalAccountsContainer.state.exteranalAccounts.map((ea) => {
-              const { externalAccount } = ea;
+            {adminExternalAccountsContainer.state.externalAccounts.map((ea) => {
               return (
                 <tr>
-                  <td>{externalAccount.providerType}</td>
+                  <td>{ea.providerType}</td>
                   <td>
-                    <strong>{externalAccount.accountId}</strong>
+                    <strong>{ea.accountId}</strong>
                   </td>
                   <td>
-                    <strong>{externalAccount.user.username}</strong>
+                    <strong>{ ea.user.username }</strong>
                   </td>
                   <td>
-                    { externalAccount.password
+                    { ea.password
                       ? (
                         <span className="label label-info">
                           { t('user_management.set') }
@@ -131,7 +91,7 @@ class ExternalAccountTable extends React.Component {
                       )
                     }
                   </td>
-                  <td>{dateFnsFormat(new Date(externalAccount.createdAt), 'yyyy-MM-dd')}</td>
+                  <td>{dateFnsFormat(new Date(ea.createdAt), 'yyyy-MM-dd')}</td>
                   <td>
                     <div className="btn-group admin-user-menu">
                       <button type="button" className="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
@@ -140,7 +100,7 @@ class ExternalAccountTable extends React.Component {
                       <ul className="dropdown-menu" role="menu">
                         <li className="dropdown-header">{ t('user_management.edit_menu') }</li>
                         <li>
-                          <a onClick={() => { return this.removeExtenalAccount(externalAccount.accountId) }}>
+                          <a onClick={() => { return this.removeExtenalAccount(ea.accountId) }}>
                             <i className="icon-fw icon-fire text-danger"></i> { t('Delete') }
                           </a>
                         </li>

+ 3 - 5
src/client/js/services/AdminExternalAccountsContainer.js

@@ -18,8 +18,7 @@ export default class AdminExternalAccountsContainer extends Container {
     this.appContainer = appContainer;
 
     this.state = {
-      users: JSON.parse(document.getElementById('admin-external-account-setting').getAttribute('external-accounts')) || [],
-      exteranalAccounts: [],
+      externalAccounts: [],
       totalAccounts: 0,
       activePage: 1,
       pagingLimit: Infinity,
@@ -60,13 +59,12 @@ export default class AdminExternalAccountsContainer extends Container {
     const params = { page: selectedPage };
     const { data } = await this.appContainer.apiv3.get('/users/external-accounts', params);
 
-
     if (data.paginateResult == null) {
       throw new Error('data must conclude \'paginateResult\' property.');
     }
-    const { docs: exteranalAccounts, totalDocs: totalAccounts, limit: pagingLimit } = data.paginateResult;
+    const { docs: externalAccounts, totalDocs: totalAccounts, limit: pagingLimit } = data.paginateResult;
     this.setState({
-      exteranalAccounts,
+      externalAccounts,
       totalAccounts,
       pagingLimit,
       activePage: selectedPage,

+ 2 - 2
src/server/routes/admin.js

@@ -488,10 +488,10 @@ module.exports = function(crowi, app) {
   actions.externalAccount.index = function(req, res) {
     const page = parseInt(req.query.page) || 1;
 
-    ExternalAccount.findALLWithPagination({ page })
+    ExternalAccount.findAllWithPagination({ page })
       .then((result) => {
         const pager = createPager(result.total, result.limit, result.page, MAX_PAGE_LIST);
-        return res.render('admin/users/external-accounts', {
+        return res.render('admin/external-accounts', {
           accounts: result.docs,
           pager,
         });

+ 2 - 8
src/server/routes/apiv3/users.js

@@ -354,14 +354,8 @@ module.exports = (crowi) => {
   router.get('/external-accounts/', loginRequiredStrictly, adminRequired, async(req, res) => {
     const page = parseInt(req.query.page) || 1;
     try {
-      const paginateResult = await ExternalAccount.paginate(
-        { status: { $ne: ExternalAccount.STATUS_DELETED } },
-        {
-          sort: { status: 1, username: 1, createdAt: 1 },
-          page,
-          limit: PAGE_ITEMS,
-        },
-      );
+      const paginateResult = await ExternalAccount.findAllWithPagination({ page });
+      // const { docs: userGroups, total: totalUserGroups, limit: pagingLimit } = result;
       return res.apiv3({ paginateResult });
     }
     catch (err) {