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

+ 32 - 0
resource/locales/en-US/admin/user_group_management.json

@@ -0,0 +1,32 @@
+{
+  "create_group": "Create New Group",
+  "deny_create_group": "You can't create a new group with the current settings",
+  "group_name": "Group Name",
+  "group_example": "e.g. : Group1",
+  "add_modal": {
+    "add_user": "Add a User to the Created Group",
+    "search_option": "Search Option",
+    "enable_option": "Enable {{option}}",
+    "forward_match": "forword match",
+    "partial_match": "partial match",
+    "backward_match": "backward match"
+  },
+  "group_list": "Group List",
+  "back_to_list": "Go Back to Group List",
+  "basic_info": "Basic Info",
+  "user_list": "User List",
+  "created_group": "Group was created",
+  "is_loading_data": "fetch data...",
+  "no_pages": "There are no pages the group has view permission",
+  "remove_from_group": "Remove this user",
+  "delete_modal": {
+    "header": "Delete Group",
+    "desc": "Once deleted, the deleted group and its private pages cannot be retrieved",
+    "dropdown_desc": "Choose an action for private pages",
+    "select_group": "Select a group",
+    "no_groups": "No groups to select",
+    "publish_pages": "Publish All",
+    "delete_pages": "Delete All",
+    "transfer_pages": "Transfer to another group"
+  }
+}

+ 0 - 27
resource/locales/en-US/translation.json

@@ -579,33 +579,6 @@
       "ifttt_link": "Create a new IFTTT applet with Email trigger"
     }
   },
-  "user_group_management": {
-    "search_option": "Search Option",
-    "enable_option": "Enable {{option}}",
-    "forward_match": "forword match",
-    "partial_match": "partial match",
-    "backward_match": "backward match",
-    "group_list": "Group List",
-    "back_to_list": "Go Back to Group List",
-    "basic_info": "Basic Info",
-    "user_list": "User List",
-    "create_group": "Create New Group",
-    "group_example": "e.g. : Group1",
-    "created_group": "Group was created",
-    "add_user": "Add a User to the Created Group",
-    "deny_create_group": "You can't create a new group with the current settings",
-    "choose_action": "Choose an action for private pages",
-    "delete_group": "Delete Group",
-    "group_name": "Group Name",
-    "group_and_pages_not_retrievable": "Once deleted, the deleted group and its private pages cannot be retrieved",
-    "publish_pages": "Publish All",
-    "delete_pages": "Delete All",
-    "transfer_pages": "Transfer to another group",
-    "select_group": "Select a group",
-    "no_groups": "No groups to select",
-    "no_pages": "There are no pages the group has view permission",
-    "remove_from_group": "Remove this user"
-  },
   "importer_management": {
     "beta_warning": "This function is Beta.",
     "import_from": "Import from {{from}}",

+ 32 - 0
resource/locales/ja/admin/user_group_management.json

@@ -0,0 +1,32 @@
+{
+  "create_group": "新規グループの作成",
+  "deny_create_group": "新規グループの作成はできません。",
+  "group_name": "グループ名",
+  "group_example": "例: Group1",
+  "add_modal": {
+    "add_user": "グループへのユーザー追加",
+    "search_option": "検索オプション",
+    "enable_option": "{{option}}を有効にする",
+    "forward_match": "前方一致",
+    "partial_match": "部分一致",
+    "backward_match": "後方一致"
+  },
+  "group_list": "グループ一覧",
+  "back_to_list": "グループ一覧に戻る",
+  "basic_info": "基本情報",
+  "user_list": "ユーザー一覧",
+  "created_group": "グループを作成しました",
+  "is_loading_data": "データを取得中です...",
+  "no_pages": "グループが閲覧権限を保有するページはありません",
+  "remove_from_group": "グループから外す",
+  "delete_modal": {
+    "header": "グループの削除",
+    "desc": "グループ及び限定公開のページの削除を行うと元に戻すことはできませんのでご注意ください。",
+    "dropdown_desc": "削除するグループの限定公開ページの処理を選択してください",
+    "select_group": "グループを選択してください",
+    "no_groups": "グループがありません",
+    "publish_pages": "全て公開する",
+    "delete_pages": "全て削除する",
+    "transfer_pages": "全て他のグループに移譲する"
+  }
+}

+ 0 - 28
resource/locales/ja/translation.json

@@ -562,34 +562,6 @@
       "ifttt_link": "IFTTT でメールトリガの新しいアプレットを作る"
     }
   },
-  "user_group_management": {
-    "search_option": "検索オプション",
-    "enable_option": "{{option}}を有効にする",
-    "forward_match": "前方一致",
-    "partial_match": "部分一致",
-    "backward_match": "後方一致",
-    "group_list": "グループ一覧",
-    "back_to_list": "グループ一覧に戻る",
-    "basic_info": "基本情報",
-    "user_list": "ユーザー一覧",
-    "create_group": "新規グループの作成",
-    "group_example": "例: Group1",
-    "created_group": "グループを作成しました",
-    "add_user": "グループへのユーザー追加",
-    "deny_create_group": "新規グループの作成はできません。",
-    "is_loading_data": "データを取得中です...",
-    "choose_action": "削除するグループの限定公開ページの処理を選択してください",
-    "delete_group": "グループの削除",
-    "group_name": "グループ名",
-    "group_and_pages_not_retrievable": "グループ及び限定公開のページの削除を行うと元に戻すことはできませんのでご注意ください。",
-    "publish_pages": "全て公開する",
-    "delete_pages": "全て削除する",
-    "transfer_pages": "全て他のグループに移譲する",
-    "select_group": "グループを選択してください",
-    "no_groups": "グループがありません",
-    "no_pages": "グループが閲覧権限を保有するページはありません",
-    "remove_from_group": "グループから外す"
-  },
   "importer_management": {
     "beta_warning": "この機能はベータ版です",
     "import_from": "{{from}} からインポート",

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

@@ -71,29 +71,29 @@ class UserGroupCreateForm extends React.Component {
           {this.props.isAclEnabled
             ? (
               <button type="button" data-toggle="collapse" className="btn btn-default" href="#createGroupForm">
-                { t('user_group_management.create_group') }
+                {t('user_group_management:create_group')}
               </button>
             )
             : (
-              t('user_group_management.deny_create_group')
+              t('user_group_management:deny_create_group')
             )
           }
         </p>
         <form onSubmit={this.handleSubmit}>
           <div id="createGroupForm" className="collapse">
             <div className="form-group">
-              <label htmlFor="name">{ t('user_group_management.group_name') }</label>
+              <label htmlFor="name">{t('user_group_management:group_name')}</label>
               <textarea
                 id="name"
                 name="name"
                 className="form-control"
-                placeholder={t('user_group_management.group_example')}
+                placeholder={t('user_group_management:group_example')}
                 value={this.state.name}
                 onChange={this.handleChange}
               >
               </textarea>
             </div>
-            <button type="submit" className="btn btn-primary" disabled={!this.validateForm()}>{ t('Create') }</button>
+            <button type="submit" className="btn btn-primary" disabled={!this.validateForm()}>{t('Create')}</button>
           </div>
         </form>
       </div>

+ 20 - 8
src/client/js/components/Admin/UserGroup/UserGroupDeleteModal.jsx

@@ -30,13 +30,25 @@ class UserGroupDeleteModal extends React.Component {
 
     this.availableOptions = [
       {
-        id: 1, actionForPages: this.actionForPages.public, iconClass: 'icon-people', styleClass: '', label: t('user_group_management.publish_pages'),
+        id: 1,
+        actionForPages: this.actionForPages.public, 
+        iconClass: 'icon-people', 
+        styleClass: '', 
+        label: t('user_group_management:delete_modal.publish_pages'),
       },
       {
-        id: 2, actionForPages: this.actionForPages.delete, iconClass: 'icon-trash', styleClass: 'text-danger', label: t('user_group_management.delete_pages'),
+        id: 2, 
+        actionForPages: this.actionForPages.delete, 
+        iconClass: 'icon-trash', 
+        styleClass: 'text-danger', 
+        label: t('user_group_management:delete_modal.delete_pages'),
       },
       {
-        id: 3, actionForPages: this.actionForPages.transfer, iconClass: 'icon-options', styleClass: '', label: t('user_group_management.transfer_pages'),
+        id: 3, 
+        actionForPages: this.actionForPages.transfer, 
+        iconClass: 'icon-options', 
+        styleClass: '', 
+        label: t('user_group_management:delete_modal.transfer_pages'),
       },
     ];
 
@@ -99,7 +111,7 @@ class UserGroupDeleteModal extends React.Component {
         value={this.state.actionName}
         onChange={this.handleActionChange}
       >
-        <option value="" disabled>{t('user_group_management.choose_action')}</option>
+        <option value="" disabled>{t('user_group_management:delete_modal.dropdown_desc')}</option>
         {optoins}
       </select>
     );
@@ -117,7 +129,7 @@ class UserGroupDeleteModal extends React.Component {
       return <option key={group._id} value={group._id} data-content={dataContent}>{this.xss.process(group.name)}</option>;
     });
 
-    const defaultOptionText = groups.length === 0 ? t('user_group_management.no_groups') : t('user_group_management.select_group');
+    const defaultOptionText = groups.length === 0 ? t('user_group_management:delete_modal.no_groups') : t('user_group_management:delete_modal.select_group');
 
     return (
       <select
@@ -152,15 +164,15 @@ class UserGroupDeleteModal extends React.Component {
       <Modal show={this.props.isShow} onHide={this.onHide}>
         <Modal.Header className="modal-header bg-danger" closeButton>
           <Modal.Title>
-            <i className="icon icon-fire"></i> {t('user_group_management.delete_group')}
+            <i className="icon icon-fire"></i> {t('user_group_management:delete_modal.header')}
           </Modal.Title>
         </Modal.Header>
         <Modal.Body>
           <div>
-            <span className="font-weight-bold">{t('user_group_management.group_name')}</span> : &quot;{this.props.deleteUserGroup.name}&quot;
+            <span className="font-weight-bold">{t('user_group_management:group_name')}</span> : &quot;{this.props.deleteUserGroup.name}&quot;
           </div>
           <div className="text-danger mt-5">
-            {t('user_group_management.group_and_pages_not_retrievable')}
+            {t('user_group_management:delete_modal.desc')}
           </div>
         </Modal.Body>
         <Modal.Footer>

+ 6 - 6
src/client/js/components/Admin/UserGroup/UserGroupTable.jsx

@@ -43,14 +43,14 @@ class UserGroupTable extends React.Component {
 
     return (
       <Fragment>
-        <h2>{t('user_group_management.group_list')}</h2>
+        <h2>{t('user_group_management:group_list')}</h2>
 
         <table className="table table-bordered table-user-list">
           <thead>
             <tr>
-              <th>{ t('Name') }</th>
-              <th>{ t('User') }</th>
-              <th width="100px">{ t('Created') }</th>
+              <th>{t('Name')}</th>
+              <th>{t('User')}</th>
+              <th width="100px">{t('Created')}</th>
               <th width="70px"></th>
             </tr>
           </thead>
@@ -84,13 +84,13 @@ class UserGroupTable extends React.Component {
                           <ul className="dropdown-menu" role="menu">
                             <li>
                               <a href={`/admin/user-group-detail/${group._id}`}>
-                                <i className="icon-fw icon-note"></i> { t('Edit') }
+                                <i className="icon-fw icon-note"></i> {t('Edit')}
                               </a>
                             </li>
 
                             <li>
                               <a href="#" onClick={this.onDelete} data-user-group-id={group._id}>
-                                <i className="icon-fw icon-fire text-danger"></i> { t('Delete') }
+                                <i className="icon-fw icon-fire text-danger"></i> {t('Delete')}
                               </a>
                             </li>
 

+ 1 - 1
src/client/js/components/Admin/UserGroupDetail/CheckBoxForSerchUserOption.jsx

@@ -17,7 +17,7 @@ class CheckBoxForSerchUserOption extends React.Component {
           onChange={this.props.onChange}
         />
         <label className="text-capitalize form-check-label ml-3" htmlFor={`isAlso${option}Searched`}>
-          {t('user_group_management.enable_option', { option })}
+          {t('user_group_management:add_modal.enable_option', { option })}
         </label>
       </div>
     );

+ 1 - 1
src/client/js/components/Admin/UserGroupDetail/RadioButtonForSerchUserOption.jsx

@@ -17,7 +17,7 @@ class RadioButtonForSerchUserOption extends React.Component {
           onChange={this.props.onChange}
         />
         <label className="text-capitalize form-check-label ml-3" htmlFor={`${searchType}Match`}>
-          {t(`user_group_management.${searchType}_match`)}
+          {t(`user_group_management:add_modal.${searchType}_match`)}
         </label>
       </div>
     );

+ 3 - 3
src/client/js/components/Admin/UserGroupDetail/UserGroupDetailPage.jsx

@@ -18,15 +18,15 @@ class UserGroupDetailPage extends React.Component {
       <div>
         <a href="/admin/user-groups" className="btn btn-default">
           <i className="icon-fw ti-arrow-left" aria-hidden="true"></i>
-          {t('user_group_management.back_to_list')}
+          {t('user_group_management:back_to_list')}
         </a>
         <div className="m-t-20 form-box">
           <UserGroupEditForm />
         </div>
-        <legend className="m-t-20">{ t('user_group_management.user_list') }</legend>
+        <legend className="m-t-20">{t('user_group_management:user_list')}</legend>
         <UserGroupUserTable />
         <UserGroupUserModal />
-        <legend className="m-t-20">{ t('Page') }</legend>
+        <legend className="m-t-20">{t('Page')}</legend>
         <div className="page-list">
           <UserGroupPageList />
         </div>

+ 4 - 4
src/client/js/components/Admin/UserGroupDetail/UserGroupEditForm.jsx

@@ -60,15 +60,15 @@ class UserGroupEditForm extends React.Component {
     return (
       <form className="form-horizontal" onSubmit={this.handleSubmit}>
         <fieldset>
-          <legend>{ t('user_group_management.basic_info') }</legend>
+          <legend>{t('user_group_management:basic_info')}</legend>
           <div className="form-group">
-            <label htmlFor="name" className="col-sm-2 control-label">{ t('Name') }</label>
+            <label htmlFor="name" className="col-sm-2 control-label">{t('Name')}</label>
             <div className="col-sm-4">
               <input className="form-control" type="text" name="name" value={this.state.name} onChange={this.changeUserGroupName} />
             </div>
           </div>
           <div className="form-group">
-            <label className="col-sm-2 control-label">{ t('Created') }</label>
+            <label className="col-sm-2 control-label">{t('Created')}</label>
             <div className="col-sm-4">
               <input
                 type="text"
@@ -80,7 +80,7 @@ class UserGroupEditForm extends React.Component {
           </div>
           <div className="form-group">
             <div className="col-sm-offset-2 col-sm-10">
-              <button type="submit" className="btn btn-primary" disabled={!this.validateForm()}>{ t('Update') }</button>
+              <button type="submit" className="btn btn-primary" disabled={!this.validateForm()}>{t('Update')}</button>
             </div>
           </div>
         </fieldset>

+ 1 - 1
src/client/js/components/Admin/UserGroupDetail/UserGroupPageList.jsx

@@ -58,7 +58,7 @@ class UserGroupPageList extends React.Component {
         <ul className="page-list-ul page-list-ul-flat">
           {this.state.currentPages.map((page) => { return <Page key={page._id} page={page} /> })}
         </ul>
-        {userGroupDetailContainer.state.relatedPages.length === 0 ? <p>{ t('user_group_management.no_pages') }</p> : null}
+        {userGroupDetailContainer.state.relatedPages.length === 0 ? <p>{t('user_group_management:no_pages')}</p> : null}
         <PaginationWrapper
           activePage={this.state.activePage}
           changePage={this.handlePageChange}

+ 2 - 2
src/client/js/components/Admin/UserGroupDetail/UserGroupUserModal.jsx

@@ -18,13 +18,13 @@ class UserGroupUserModal extends React.Component {
     return (
       <Modal show={userGroupDetailContainer.state.isUserGroupUserModalOpen} onHide={userGroupDetailContainer.closeUserGroupUserModal}>
         <Modal.Header closeButton>
-          <Modal.Title>{t('user_group_management.add_user')}</Modal.Title>
+          <Modal.Title>{t('user_group_management:add_modal.add_user')}</Modal.Title>
         </Modal.Header>
         <Modal.Body>
           <div className="p-3">
             <UserGroupUserFormByInput />
           </div>
-          <h2 className="border-bottom">{t('user_group_management.search_option')}</h2>
+          <h2 className="border-bottom">{t('user_group_management:add_modal.search_option')}</h2>
           <div className="row mt-4">
             <div className="col-xs-6">
               <div className="mb-5">

+ 33 - 33
src/client/js/components/Admin/UserGroupDetail/UserGroupUserTable.jsx

@@ -39,46 +39,46 @@ class UserGroupUserTable extends React.Component {
           <tr>
             <th width="100px">#</th>
             <th>
-              { t('username') }
+              {t('username')}
             </th>
-            <th>{ t('Name') }</th>
-            <th width="100px">{ t('Created') }</th>
-            <th width="160px">{ t('Last_Login')}</th>
+            <th>{t('Name')}</th>
+            <th width="100px">{t('Created')}</th>
+            <th width="160px">{t('Last_Login')}</th>
             <th width="70px"></th>
           </tr>
         </thead>
         <tbody>
           {userGroupDetailContainer.state.userGroupRelations.map((sRelation) => {
-              const { relatedUser } = sRelation;
+            const { relatedUser } = sRelation;
 
-              return (
-                <tr key={sRelation._id}>
-                  <td>
-                    <UserPicture user={relatedUser} className="picture img-circle" />
-                  </td>
-                  <td>
-                    <strong>{relatedUser.username}</strong>
-                  </td>
-                  <td>{relatedUser.name}</td>
-                  <td>{relatedUser.createdAt ? dateFnsFormat(new Date(relatedUser.createdAt), 'yyyy-MM-dd') : ''}</td>
-                  <td>{relatedUser.lastLoginAt ? dateFnsFormat(new Date(relatedUser.lastLoginAt), 'yyyy-MM-dd HH:mm:ss') : ''}</td>
-                  <td>
-                    <div className="btn-group admin-user-menu">
-                      <button type="button" className="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
-                        <i className="icon-settings"></i> <span className="caret"></span>
-                      </button>
-                      <ul className="dropdown-menu" role="menu">
-                        <li>
-                          <a onClick={() => { return this.removeUser(relatedUser.username) }}>
-                            <i className="icon-fw icon-user-unfollow"></i> { t('user_group_management.remove_from_group')}
-                          </a>
-                        </li>
-                      </ul>
-                    </div>
-                  </td>
-                </tr>
-              );
-            })}
+            return (
+              <tr key={sRelation._id}>
+                <td>
+                  <UserPicture user={relatedUser} className="picture img-circle" />
+                </td>
+                <td>
+                  <strong>{relatedUser.username}</strong>
+                </td>
+                <td>{relatedUser.name}</td>
+                <td>{relatedUser.createdAt ? dateFnsFormat(new Date(relatedUser.createdAt), 'yyyy-MM-dd') : ''}</td>
+                <td>{relatedUser.lastLoginAt ? dateFnsFormat(new Date(relatedUser.lastLoginAt), 'yyyy-MM-dd HH:mm:ss') : ''}</td>
+                <td>
+                  <div className="btn-group admin-user-menu">
+                    <button type="button" className="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
+                      <i className="icon-settings"></i> <span className="caret"></span>
+                    </button>
+                    <ul className="dropdown-menu" role="menu">
+                      <li>
+                        <a onClick={() => { return this.removeUser(relatedUser.username) }}>
+                          <i className="icon-fw icon-user-unfollow"></i> {t('user_group_management:remove_from_group')}
+                        </a>
+                      </li>
+                    </ul>
+                  </div>
+                </td>
+              </tr>
+            );
+          })}
 
           <tr>
             <td></td>