itizawa 6 лет назад
Родитель
Сommit
818650e794

+ 3 - 3
src/client/js/app.jsx

@@ -53,7 +53,7 @@ import CommentContainer from './services/CommentContainer';
 import EditorContainer from './services/EditorContainer';
 import TagContainer from './services/TagContainer';
 import UserGroupDetailContainer from './services/UserGroupDetailContainer';
-import UsersContainer from './services/UsersContainer';
+import AdminUsersContainer from './services/AdminUsersContainer';
 import WebsocketContainer from './services/WebsocketContainer';
 import MarkDownSettingContainer from './services/MarkDownSettingContainer';
 
@@ -161,9 +161,9 @@ Object.keys(componentMappings).forEach((key) => {
 // render for admin
 const adminUsersElem = document.getElementById('admin-user-page');
 if (adminUsersElem != null) {
-  const usersContainer = new UsersContainer(appContainer);
+  const adminUsersContainer = new AdminUsersContainer(appContainer);
   ReactDOM.render(
-    <Provider inject={[injectableContainers, usersContainer]}>
+    <Provider inject={[injectableContainers, adminUsersContainer]}>
       <I18nextProvider i18n={i18n}>
         <Users />
       </I18nextProvider>

+ 5 - 5
src/client/js/components/Admin/Users/InviteUserControl.jsx

@@ -4,17 +4,17 @@ import { withTranslation } from 'react-i18next';
 
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
-import UsersContainer from '../../../services/UsersContainer';
+import AdminUsersContainer from '../../../services/AdminUsersContainer';
 import UserInviteModal from './UserInviteModal';
 
 class InviteUserControl extends React.Component {
 
   render() {
-    const { t, usersContainer } = this.props;
+    const { t, adminUsersContainer } = this.props;
 
     return (
       <Fragment>
-        <button type="button" className="btn btn-default" onClick={usersContainer.toggleUserInviteModal}>
+        <button type="button" className="btn btn-default" onClick={adminUsersContainer.toggleUserInviteModal}>
           { t('user_management.invite_users') }
         </button>
         <UserInviteModal />
@@ -25,13 +25,13 @@ class InviteUserControl extends React.Component {
 }
 
 const InviteUserControlWrapper = (props) => {
-  return createSubscribedElement(InviteUserControl, props, [AppContainer, UsersContainer]);
+  return createSubscribedElement(InviteUserControl, props, [AppContainer, AdminUsersContainer]);
 };
 
 InviteUserControl.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
-  usersContainer: PropTypes.instanceOf(UsersContainer).isRequired,
+  adminUsersContainer: PropTypes.instanceOf(AdminUsersContainer).isRequired,
 };
 
 export default withTranslation()(InviteUserControlWrapper);

+ 12 - 12
src/client/js/components/Admin/Users/PasswordResetModal.jsx

@@ -7,7 +7,7 @@ import Modal from 'react-bootstrap/es/Modal';
 import { toastError } from '../../../util/apiNotification';
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
-import UsersContainer from '../../../services/UsersContainer';
+import AdminUsersContainer from '../../../services/AdminUsersContainer';
 
 class PasswordResetModal extends React.Component {
 
@@ -23,8 +23,8 @@ class PasswordResetModal extends React.Component {
   }
 
   async resetPassword() {
-    const { appContainer, usersContainer } = this.props;
-    const user = usersContainer.state.userForPasswordResetModal;
+    const { appContainer, adminUsersContainer } = this.props;
+    const user = adminUsersContainer.state.userForPasswordResetModal;
 
     const res = await appContainer.apiPost('/admin/users.resetPassword', { user_id: user._id });
     if (res.ok) {
@@ -36,8 +36,8 @@ class PasswordResetModal extends React.Component {
   }
 
   renderModalBodyBeforeReset() {
-    const { t, usersContainer } = this.props;
-    const user = usersContainer.state.userForPasswordResetModal;
+    const { t, adminUsersContainer } = this.props;
+    const user = adminUsersContainer.state.userForPasswordResetModal;
 
     return (
       <div>
@@ -53,8 +53,8 @@ class PasswordResetModal extends React.Component {
   }
 
   returnModalBodyAfterReset() {
-    const { t, usersContainer } = this.props;
-    const user = usersContainer.state.userForPasswordResetModal;
+    const { t, adminUsersContainer } = this.props;
+    const user = adminUsersContainer.state.userForPasswordResetModal;
 
     return (
       <div>
@@ -75,17 +75,17 @@ class PasswordResetModal extends React.Component {
   returnModalFooter() {
     return (
       <div>
-        <button type="submit" className="btn btn-primary" onClick={this.props.usersContainer.hidePasswordResetModal}>OK</button>
+        <button type="submit" className="btn btn-primary" onClick={this.props.adminUsersContainer.hidePasswordResetModal}>OK</button>
       </div>
     );
   }
 
 
   render() {
-    const { t, usersContainer } = this.props;
+    const { t, adminUsersContainer } = this.props;
 
     return (
-      <Modal show={usersContainer.state.isPasswordResetModalShown} onHide={usersContainer.hidePasswordResetModal}>
+      <Modal show={adminUsersContainer.state.isPasswordResetModalShown} onHide={adminUsersContainer.hidePasswordResetModal}>
         <Modal.Header className="modal-header" closeButton>
           <Modal.Title>
             { t('user_management.reset_password') }
@@ -107,13 +107,13 @@ class PasswordResetModal extends React.Component {
  * Wrapper component for using unstated
  */
 const PasswordResetModalWrapper = (props) => {
-  return createSubscribedElement(PasswordResetModal, props, [AppContainer, UsersContainer]);
+  return createSubscribedElement(PasswordResetModal, props, [AppContainer, AdminUsersContainer]);
 };
 
 PasswordResetModal.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
-  usersContainer: PropTypes.instanceOf(UsersContainer).isRequired,
+  adminUsersContainer: PropTypes.instanceOf(AdminUsersContainer).isRequired,
 };
 
 export default withTranslation()(PasswordResetModalWrapper);

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

@@ -11,7 +11,7 @@ import { toastSuccess, toastError } from '../../../util/apiNotification';
 
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
-import UsersContainer from '../../../services/UsersContainer';
+import AdminUsersContainer from '../../../services/AdminUsersContainer';
 
 class UserInviteModal extends React.Component {
 
@@ -31,7 +31,7 @@ class UserInviteModal extends React.Component {
   }
 
   onToggleModal() {
-    this.props.usersContainer.toggleUserInviteModal();
+    this.props.adminUsersContainer.toggleUserInviteModal();
     this.setState({ invitedEmailList: null });
   }
 
@@ -186,11 +186,11 @@ class UserInviteModal extends React.Component {
   }
 
   render() {
-    const { t, usersContainer } = this.props;
+    const { t, adminUsersContainer } = this.props;
     const { invitedEmailList } = this.state;
 
     return (
-      <Modal show={usersContainer.state.isUserInviteModalShown} onHide={this.onToggleModal}>
+      <Modal show={adminUsersContainer.state.isUserInviteModalShown} onHide={this.onToggleModal}>
         <Modal.Header className="modal-header" closeButton>
           <Modal.Title>
             { t('user_management.invite_users') }
@@ -214,14 +214,14 @@ class UserInviteModal extends React.Component {
  * Wrapper component for using unstated
  */
 const UserInviteModalWrapper = (props) => {
-  return createSubscribedElement(UserInviteModal, props, [AppContainer, UsersContainer]);
+  return createSubscribedElement(UserInviteModal, props, [AppContainer, AdminUsersContainer]);
 };
 
 
 UserInviteModal.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
-  usersContainer: PropTypes.instanceOf(UsersContainer).isRequired,
+  adminUsersContainer: PropTypes.instanceOf(AdminUsersContainer).isRequired,
 };
 
 export default withTranslation()(UserInviteModalWrapper);

+ 4 - 4
src/client/js/components/Admin/Users/UserMenu.jsx

@@ -10,7 +10,7 @@ import GiveAdminForm from './GiveAdminForm';
 
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
-import UsersContainer from '../../../services/UsersContainer';
+import AdminUsersContainer from '../../../services/AdminUsersContainer';
 
 class UserMenu extends React.Component {
 
@@ -25,7 +25,7 @@ class UserMenu extends React.Component {
   }
 
   onPasswordResetClicked() {
-    this.props.usersContainer.showPasswordResetModal(this.props.user);
+    this.props.adminUsersContainer.showPasswordResetModal(this.props.user);
   }
 
   render() {
@@ -66,13 +66,13 @@ class UserMenu extends React.Component {
 }
 
 const UserMenuWrapper = (props) => {
-  return createSubscribedElement(UserMenu, props, [AppContainer, UsersContainer]);
+  return createSubscribedElement(UserMenu, props, [AppContainer, AdminUsersContainer]);
 };
 
 UserMenu.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
-  usersContainer: PropTypes.instanceOf(UsersContainer).isRequired,
+  adminUsersContainer: PropTypes.instanceOf(AdminUsersContainer).isRequired,
 
   user: PropTypes.object.isRequired,
 };

+ 4 - 4
src/client/js/components/Admin/Users/UserRemoveButton.jsx

@@ -4,7 +4,7 @@ import { withTranslation } from 'react-i18next';
 
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
-import UsersContainer from '../../../services/UsersContainer';
+import AdminUsersContainer from '../../../services/AdminUsersContainer';
 import { toastSuccess, toastError } from '../../../util/apiNotification';
 
 class UserRemoveButton extends React.Component {
@@ -17,7 +17,7 @@ class UserRemoveButton extends React.Component {
 
   async onClickDeleteBtn() {
     try {
-      const username = await this.props.usersContainer.removeUser(this.props.user._id);
+      const username = await this.props.adminUsersContainer.removeUser(this.props.user._id);
       toastSuccess(`Delete ${username} success`);
     }
     catch (err) {
@@ -41,13 +41,13 @@ class UserRemoveButton extends React.Component {
  * Wrapper component for using unstated
  */
 const UserRemoveButtonWrapper = (props) => {
-  return createSubscribedElement(UserRemoveButton, props, [AppContainer, UsersContainer]);
+  return createSubscribedElement(UserRemoveButton, props, [AppContainer, AdminUsersContainer]);
 };
 
 UserRemoveButton.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
-  usersContainer: PropTypes.instanceOf(UsersContainer).isRequired,
+  adminUsersContainer: PropTypes.instanceOf(AdminUsersContainer).isRequired,
 
   user: PropTypes.object.isRequired,
 };

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

@@ -8,7 +8,7 @@ import UserMenu from './UserMenu';
 
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
-import UsersContainer from '../../../services/UsersContainer';
+import AdminUsersContainer from '../../../services/AdminUsersContainer';
 
 class UserTable extends React.Component {
 
@@ -62,7 +62,7 @@ class UserTable extends React.Component {
   }
 
   render() {
-    const { t, usersContainer } = this.props;
+    const { t, adminUsersContainer } = this.props;
 
     return (
       <Fragment>
@@ -82,7 +82,7 @@ class UserTable extends React.Component {
             </tr>
           </thead>
           <tbody>
-            {usersContainer.state.users.map((user) => {
+            {adminUsersContainer.state.users.map((user) => {
               return (
                 <tr key={user._id}>
                   <td>
@@ -114,13 +114,13 @@ class UserTable extends React.Component {
 }
 
 const UserTableWrapper = (props) => {
-  return createSubscribedElement(UserTable, props, [AppContainer, UsersContainer]);
+  return createSubscribedElement(UserTable, props, [AppContainer, AdminUsersContainer]);
 };
 
 UserTable.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
-  usersContainer: PropTypes.instanceOf(UsersContainer).isRequired,
+  adminUsersContainer: PropTypes.instanceOf(AdminUsersContainer).isRequired,
 
 };
 

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

@@ -9,7 +9,7 @@ import UserTable from './UserTable';
 
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
-import UsersContainer from '../../../services/UsersContainer';
+import AdminUsersContainer from '../../../services/AdminUsersContainer';
 
 class UserPage extends React.Component {
 
@@ -24,11 +24,11 @@ class UserPage extends React.Component {
   }
 
   render() {
-    const { t, usersContainer } = this.props;
+    const { t, adminUsersContainer } = this.props;
 
     return (
       <Fragment>
-        {usersContainer.state.userForPasswordResetModal && <PasswordResetModal />}
+        {adminUsersContainer.state.userForPasswordResetModal && <PasswordResetModal />}
         <p>
           <InviteUserControl />
           <a className="btn btn-default btn-outline ml-2" href="/admin/users/external-accounts">
@@ -40,7 +40,7 @@ class UserPage extends React.Component {
         <PaginationWrapper
           activePage={this.state.activePage}
           changePage={this.handlePage} // / TODO GW-314 create function
-          totalItemsCount={usersContainer.state.users.length}
+          totalItemsCount={adminUsersContainer.state.users.length}
           pagingLimit={this.state.pagingLimit}
         />
       </Fragment>
@@ -50,13 +50,13 @@ class UserPage extends React.Component {
 }
 
 const UserPageWrapper = (props) => {
-  return createSubscribedElement(UserPage, props, [AppContainer, UsersContainer]);
+  return createSubscribedElement(UserPage, props, [AppContainer, AdminUsersContainer]);
 };
 
 UserPage.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
-  usersContainer: PropTypes.instanceOf(UsersContainer).isRequired,
+  adminUsersContainer: PropTypes.instanceOf(AdminUsersContainer).isRequired,
 
 };
 

+ 6 - 6
src/client/js/services/UsersContainer.js → src/client/js/services/AdminUsersContainer.js

@@ -9,7 +9,7 @@ const logger = loggerFactory('growi:services:UserGroupDetailContainer');
  * Service container for admin users page (Users.jsx)
  * @extends {Container} unstated Container
  */
-export default class UsersContainer extends Container {
+export default class AdminUsersContainer extends Container {
 
   constructor(appContainer) {
     super();
@@ -32,12 +32,12 @@ export default class UsersContainer extends Container {
    * Workaround for the mangling in production build to break constructor.name
    */
   static getClassName() {
-    return 'UsersContainer';
+    return 'AdminUsersContainer';
   }
 
   /**
    * open reset password modal, and props user
-   * @memberOf UsersContainer
+   * @memberOf AdminUsersContainer
    * @param {object} user
    */
   async showPasswordResetModal(user) {
@@ -49,7 +49,7 @@ export default class UsersContainer extends Container {
 
   /**
    * close reset password modal
-   * @memberOf UsersContainer
+   * @memberOf AdminUsersContainer
    */
   async hidePasswordResetModal() {
     await this.setState({ isPasswordResetModalShown: false });
@@ -57,7 +57,7 @@ export default class UsersContainer extends Container {
 
   /**
    * toggle user invite modal
-   * @memberOf UsersContainer
+   * @memberOf AdminUsersContainer
    */
   async toggleUserInviteModal() {
     await this.setState({ isUserInviteModalShown: !this.state.isUserInviteModalShown });
@@ -65,7 +65,7 @@ export default class UsersContainer extends Container {
 
   /**
    * remove user
-   * @memberOf UsersContainer
+   * @memberOf AdminUsersContainer
    * @param {string} userId
    * @return {string} username
    */