Browse Source

Merge pull request #2803 from weseek/imprv/gw3839-change-grant-selector

Imprv/gw3839 change grant selector
Yuki Takei 5 years ago
parent
commit
1d4a42f974

+ 2 - 1
src/client/js/components/PageEditor.jsx

@@ -131,7 +131,7 @@ class PageEditor extends React.Component {
    * @param {any} file
    * @param {any} file
    */
    */
   async onUpload(file) {
   async onUpload(file) {
-    const { appContainer, pageContainer } = this.props;
+    const { appContainer, pageContainer, editorContainer } = this.props;
 
 
     try {
     try {
       let res = await appContainer.apiGet('/attachments.limit', {
       let res = await appContainer.apiGet('/attachments.limit', {
@@ -167,6 +167,7 @@ class PageEditor extends React.Component {
       if (res.pageCreated) {
       if (res.pageCreated) {
         logger.info('Page is created', res.page._id);
         logger.info('Page is created', res.page._id);
         pageContainer.updateStateAfterSave(res.page);
         pageContainer.updateStateAfterSave(res.page);
+        editorContainer.setState({ grant: res.page.grant });
       }
       }
     }
     }
     catch (e) {
     catch (e) {

+ 4 - 26
src/client/js/components/SavePageControls/GrantSelector.jsx

@@ -47,24 +47,11 @@ class GrantSelector extends React.Component {
     this.state = {
     this.state = {
       userRelatedGroups: [],
       userRelatedGroups: [],
       isSelectGroupModalShown: false,
       isSelectGroupModalShown: false,
-      grant: this.props.grant,
-      grantGroup: null,
     };
     };
-    if (this.props.grantGroupId != null) {
-      this.state.grantGroup = {
-        _id: this.props.grantGroupId,
-        name: this.props.grantGroupName,
-      };
-    }
-
-    // retrieve xss library from window
-    this.xss = window.xss;
 
 
     this.showSelectGroupModal = this.showSelectGroupModal.bind(this);
     this.showSelectGroupModal = this.showSelectGroupModal.bind(this);
     this.hideSelectGroupModal = this.hideSelectGroupModal.bind(this);
     this.hideSelectGroupModal = this.hideSelectGroupModal.bind(this);
 
 
-    this.getGroupName = this.getGroupName.bind(this);
-
     this.changeGrantHandler = this.changeGrantHandler.bind(this);
     this.changeGrantHandler = this.changeGrantHandler.bind(this);
     this.groupListItemClickHandler = this.groupListItemClickHandler.bind(this);
     this.groupListItemClickHandler = this.groupListItemClickHandler.bind(this);
   }
   }
@@ -78,11 +65,6 @@ class GrantSelector extends React.Component {
     this.setState({ isSelectGroupModalShown: false });
     this.setState({ isSelectGroupModalShown: false });
   }
   }
 
 
-  getGroupName() {
-    const grantGroup = this.state.grantGroup;
-    return grantGroup ? this.xss.process(grantGroup.name) : '';
-  }
-
   /**
   /**
    * Retrieve user-group-relations data from backend
    * Retrieve user-group-relations data from backend
    */
    */
@@ -109,16 +91,12 @@ class GrantSelector extends React.Component {
       return;
       return;
     }
     }
 
 
-    this.setState({ grant, grantGroup: null });
-
     if (this.props.onUpdateGrant != null) {
     if (this.props.onUpdateGrant != null) {
       this.props.onUpdateGrant({ grant, grantGroupId: null, grantGroupName: null });
       this.props.onUpdateGrant({ grant, grantGroupId: null, grantGroupName: null });
     }
     }
   }
   }
 
 
   groupListItemClickHandler(grantGroup) {
   groupListItemClickHandler(grantGroup) {
-    this.setState({ grant: 5, grantGroup });
-
     if (this.props.onUpdateGrant != null) {
     if (this.props.onUpdateGrant != null) {
       this.props.onUpdateGrant({ grant: 5, grantGroupId: grantGroup._id, grantGroupName: grantGroup.name });
       this.props.onUpdateGrant({ grant: 5, grantGroupId: grantGroup._id, grantGroupName: grantGroup.name });
     }
     }
@@ -134,13 +112,13 @@ class GrantSelector extends React.Component {
    */
    */
   renderGrantSelector() {
   renderGrantSelector() {
     const { t } = this.props;
     const { t } = this.props;
-    const { grant: currentGrant, grantGroup } = this.state;
+    const { grant: currentGrant, grantGroupId } = this.props;
 
 
     let dropdownToggleBtnColor = null;
     let dropdownToggleBtnColor = null;
     let dropdownToggleLabelElm = null;
     let dropdownToggleLabelElm = null;
 
 
     const dropdownMenuElems = this.availableGrants.map((opt) => {
     const dropdownMenuElems = this.availableGrants.map((opt) => {
-      const label = (opt.grant === 5 && grantGroup != null)
+      const label = (opt.grant === 5 && grantGroupId != null)
         ? opt.reselectLabel // when grantGroup is selected
         ? opt.reselectLabel // when grantGroup is selected
         : opt.label;
         : opt.label;
 
 
@@ -161,11 +139,11 @@ class GrantSelector extends React.Component {
     });
     });
 
 
     // add specified group option
     // add specified group option
-    if (grantGroup != null) {
+    if (grantGroupId != null) {
       const labelElm = (
       const labelElm = (
         <span>
         <span>
           <i className="icon icon-fw icon-organization"></i>
           <i className="icon icon-fw icon-organization"></i>
-          <span className="label">{this.getGroupName()}</span>
+          <span className="label">{this.props.grantGroupName}</span>
         </span>
         </span>
       );
       );