Просмотр исходного кода

Merge pull request #1784 from weseek/imprv/notify-reset

Set state notifyComment = ' ' in resetAllChanges() in AdminUserConati…
itizawa 6 лет назад
Родитель
Сommit
cd7c289992

+ 1 - 0
resource/locales/en-US/admin/admin.json

@@ -221,6 +221,7 @@
   },
   },
   "user_management": {
   "user_management": {
     "invite_users": "Invite New Users",
     "invite_users": "Invite New Users",
+    "click_twice_same_checkbox": "You should check at least one checkbox.",
     "invite_modal": {
     "invite_modal": {
       "emails": "Emails",
       "emails": "Emails",
       "invite_thru_email": "Send Invitation Email",
       "invite_thru_email": "Send Invitation Email",

+ 1 - 0
resource/locales/ja/admin/admin.json

@@ -221,6 +221,7 @@
   },
   },
   "user_management": {
   "user_management": {
     "invite_users": "新規ユーザーの招待",
     "invite_users": "新規ユーザーの招待",
+    "click_twice_same_checkbox": "少なくとも一つはチェックしてください。",
     "invite_modal": {
     "invite_modal": {
       "emails": "メールアドレス (複数行入力で複数人招待可能)",
       "emails": "メールアドレス (複数行入力で複数人招待可能)",
       "invite_thru_email": "招待をメールで送信",
       "invite_thru_email": "招待をメールで送信",

+ 13 - 8
src/client/js/components/Admin/UserManagement.jsx

@@ -19,6 +19,11 @@ class UserManagement extends React.Component {
 
 
   constructor(props) {
   constructor(props) {
     super();
     super();
+
+    this.state = {
+      isNotifyCommentShow: false,
+    };
+
     this.handlePage = this.handlePage.bind(this);
     this.handlePage = this.handlePage.bind(this);
     this.handleChangeSearchText = this.handleChangeSearchText.bind(this);
     this.handleChangeSearchText = this.handleChangeSearchText.bind(this);
   }
   }
@@ -40,15 +45,14 @@ class UserManagement extends React.Component {
    * For checking same check box twice
    * For checking same check box twice
    * @param {string} statusType
    * @param {string} statusType
    */
    */
-  handleClick(statusType) {
+  async handleClick(statusType) {
     const { adminUsersContainer } = this.props;
     const { adminUsersContainer } = this.props;
     if (!this.validateToggleStatus(statusType)) {
     if (!this.validateToggleStatus(statusType)) {
-      adminUsersContainer.setNotifyComment('You should check at least one checkbox.');
-      return;
+      return this.setState({ isNotifyCommentShow: true });
     }
     }
 
 
-    if (adminUsersContainer.state.notifyComment.length > 0) {
-      adminUsersContainer.setNotifyComment('');
+    if (this.state.isNotifyCommentShow) {
+      await this.setState({ isNotifyCommentShow: false });
     }
     }
     adminUsersContainer.handleClick(statusType);
     adminUsersContainer.handleClick(statusType);
   }
   }
@@ -72,6 +76,7 @@ class UserManagement extends React.Component {
     try {
     try {
       adminUsersContainer.resetAllChanges();
       adminUsersContainer.resetAllChanges();
       this.searchUserElement.value = '';
       this.searchUserElement.value = '';
+      this.state.isNotifyCommentShow = false;
     }
     }
     catch (err) {
     catch (err) {
       toastError(err);
       toastError(err);
@@ -100,8 +105,6 @@ class UserManagement extends React.Component {
       </div>
       </div>
     );
     );
 
 
-    const notifyComment = (adminUsersContainer.state.notifyComment && <span className="text-warning">{ adminUsersContainer.state.notifyComment }</span>);
-
     const clearButton = (
     const clearButton = (
       adminUsersContainer.state.searchText.length > 0
       adminUsersContainer.state.searchText.length > 0
         ? (
         ? (
@@ -220,7 +223,9 @@ class UserManagement extends React.Component {
               </button>
               </button>
             </div>
             </div>
 
 
-            <div className="ml-5">{ notifyComment }</div>
+            <div className="ml-5">
+              {this.state.isNotifyCommentShow && <span className="text-warning">{t('admin:user_management.click_twice_same_checkbox')}</span>}
+            </div>
 
 
           </div>
           </div>
         </div>
         </div>

+ 4 - 6
src/client/js/services/AdminUsersContainer.js

@@ -28,7 +28,6 @@ export default class AdminUsersContainer extends Container {
       pagingLimit: Infinity,
       pagingLimit: Infinity,
       selectedStatusList: new Set(['all']),
       selectedStatusList: new Set(['all']),
       searchText: '',
       searchText: '',
-      notifyComment: '',
     };
     };
 
 
     this.showPasswordResetModal = this.showPasswordResetModal.bind(this);
     this.showPasswordResetModal = this.showPasswordResetModal.bind(this);
@@ -45,10 +44,6 @@ export default class AdminUsersContainer extends Container {
     return 'AdminUsersContainer';
     return 'AdminUsersContainer';
   }
   }
 
 
-  setNotifyComment(notifyComment) {
-    this.setState({ notifyComment });
-  }
-
   /**
   /**
    * Workaround for status list
    * Workaround for status list
    */
    */
@@ -116,7 +111,10 @@ export default class AdminUsersContainer extends Container {
 
 
   async resetAllChanges() {
   async resetAllChanges() {
     await this.setState({
     await this.setState({
-      sort: 'id', sortOrder: 'asc', searchText: '', selectedStatusList: new Set(['all']),
+      sort: 'id',
+      sortOrder: 'asc',
+      searchText: '',
+      selectedStatusList: new Set(['all']),
     });
     });
     this.retrieveUsersByPagingNum(1);
     this.retrieveUsersByPagingNum(1);
   }
   }