Procházet zdrojové kódy

Render User Information

harukatokutake před 6 roky
rodič
revize
7e42c4adee

+ 6 - 18
src/client/js/components/Admin/Users/UserTable.jsx

@@ -11,29 +11,19 @@ class UserTable extends React.Component {
     super(props);
 
     this.state = {
-      users: this.props.users,
+      users: [],
     };
-
-    this.onDelete = this.onDelete.bind(this);
   }
 
-  componentWillReceiveProps(nextProps) {
-    this.setState({
-      users: nextProps.users,
-    });
-  }
+  componentDidMount() {
+    const jsonData = document.getElementById('admin-user-page');
+    const users = JSON.parse(jsonData.getAttribute('users'));
 
-  onDelete(e) {
-    const { target } = e;
-    const userId = target.getAttribute('data-user-id');
-    const user = this.state.users.find((user) => {
-      return user._id === userId;
+    this.setState({
+      users,
     });
-
-    this.props.onDelete(user);
   }
 
-
   render() {
     const { t } = this.props;
 
@@ -83,8 +73,6 @@ UserTable.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
 
-  users: PropTypes.arrayOf(PropTypes.object).isRequired,
-  onDelete: PropTypes.func.isRequired,
 };
 
 export default withTranslation()(UserTableWrapper);

+ 1 - 34
src/client/js/components/Admin/Users/Users.jsx

@@ -8,7 +8,6 @@ import UserTable from './UserTable';
 
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
-import { toastSuccess, toastError } from '../../../util/apiNotification';
 
 class UserPage extends React.Component {
 
@@ -18,42 +17,11 @@ class UserPage extends React.Component {
     this.state = {
       users: [],
       activePage: 1,
-      totalUsers: 0,
       pagingLimit: Infinity,
     };
 
   }
 
-  async syncUsersAndRelations() {
-    let users = [];
-    let userRelations = {};
-    let totalUsers = 0;
-    let pagingLimit = Infinity;
-
-    try {
-      const params = { page: this.state.activePage };
-      const responses = await Promise.all([
-        this.props.appContainer.apiv3.get('/user-groups', params),
-        this.props.appContainer.apiv3.get('/user-group-relations', params),
-      ]);
-
-      const [usersRes, userRelationsRes] = responses;
-      users = usersRes.data.users;
-      totalUsers = usersRes.data.totalUsers;
-      pagingLimit = usersRes.data.pagingLimit;
-      userRelations = userRelationsRes.data.userRelations;
-
-      this.setState({
-        users,
-        userRelations,
-        totalUsers,
-        pagingLimit,
-      });
-    }
-    catch (err) {
-      toastError(err);
-    }
-  }
 
   render() {
     const { t } = this.props;
@@ -69,8 +37,6 @@ class UserPage extends React.Component {
         </p>
         <UserTable
           users={this.state.users}
-          onDelete={this.showDeleteModal}
-          userRelations={this.state.userRelations}
         />
         <PaginationWrapper
           activePage={this.state.activePage}
@@ -92,6 +58,7 @@ const UserPageWrapper = (props) => {
 UserPage.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
+
 };
 
 export default withTranslation()(UserPageWrapper);

+ 1 - 0
src/server/views/admin/users.html

@@ -18,6 +18,7 @@
   <div
   class="col-md-9"
   id ="admin-user-page"
+  users= "{{ users | json }}"
   >
   </div>
 </div>