Fix support for setting owner of group to a single user
Bug: Issue 9655
Change-Id: I3c9a7443e1fc1a4d70479c2f26c6a794612d03c7
(cherry picked from commit e74925fa8b)
			
			
This commit is contained in:
		@@ -87,7 +87,9 @@ limitations under the License.
 | 
				
			|||||||
            <fieldset>
 | 
					            <fieldset>
 | 
				
			||||||
              <span class="value">
 | 
					              <span class="value">
 | 
				
			||||||
                <gr-autocomplete
 | 
					                <gr-autocomplete
 | 
				
			||||||
 | 
					                    id="groupOwnerInput"
 | 
				
			||||||
                    text="{{_groupConfig.owner}}"
 | 
					                    text="{{_groupConfig.owner}}"
 | 
				
			||||||
 | 
					                    value="{{_groupConfigOwner}}"
 | 
				
			||||||
                    query="[[_query]]"
 | 
					                    query="[[_query]]"
 | 
				
			||||||
                    disabled="[[_computeGroupDisabled(_groupOwner, _isAdmin)]]">
 | 
					                    disabled="[[_computeGroupDisabled(_groupOwner, _isAdmin)]]">
 | 
				
			||||||
                </gr-autocomplete>
 | 
					                </gr-autocomplete>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,6 +58,7 @@
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
      /** @type {?} */
 | 
					      /** @type {?} */
 | 
				
			||||||
      _groupConfig: Object,
 | 
					      _groupConfig: Object,
 | 
				
			||||||
 | 
					      _groupConfigOwner: String,
 | 
				
			||||||
      _groupName: Object,
 | 
					      _groupName: Object,
 | 
				
			||||||
      _groupOwner: {
 | 
					      _groupOwner: {
 | 
				
			||||||
        type: Boolean,
 | 
					        type: Boolean,
 | 
				
			||||||
@@ -83,7 +84,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    observers: [
 | 
					    observers: [
 | 
				
			||||||
      '_handleConfigName(_groupConfig.name)',
 | 
					      '_handleConfigName(_groupConfig.name)',
 | 
				
			||||||
      '_handleConfigOwner(_groupConfig.owner)',
 | 
					      '_handleConfigOwner(_groupConfig.owner, _groupConfigOwner)',
 | 
				
			||||||
      '_handleConfigDescription(_groupConfig.description)',
 | 
					      '_handleConfigDescription(_groupConfig.description)',
 | 
				
			||||||
      '_handleConfigOptions(_groupConfig.options.visible_to_all)',
 | 
					      '_handleConfigOptions(_groupConfig.options.visible_to_all)',
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
@@ -143,8 +144,12 @@
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _handleSaveOwner() {
 | 
					    _handleSaveOwner() {
 | 
				
			||||||
 | 
					      let owner = this._groupConfig.owner;
 | 
				
			||||||
 | 
					      if (this._groupConfigOwner) {
 | 
				
			||||||
 | 
					        owner = decodeURIComponent(this._groupConfigOwner);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      return this.$.restAPI.saveGroupOwner(this.groupId,
 | 
					      return this.$.restAPI.saveGroupOwner(this.groupId,
 | 
				
			||||||
          this._groupConfig.owner).then(config => {
 | 
					          owner).then(config => {
 | 
				
			||||||
            this._owner = false;
 | 
					            this._owner = false;
 | 
				
			||||||
          });
 | 
					          });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -202,7 +207,7 @@
 | 
				
			|||||||
              if (!response.hasOwnProperty(key)) { continue; }
 | 
					              if (!response.hasOwnProperty(key)) { continue; }
 | 
				
			||||||
              groups.push({
 | 
					              groups.push({
 | 
				
			||||||
                name: key,
 | 
					                name: key,
 | 
				
			||||||
                value: response[key],
 | 
					                value: decodeURIComponent(response[key].id),
 | 
				
			||||||
              });
 | 
					              });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            return groups;
 | 
					            return groups;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -86,6 +86,7 @@ limitations under the License.
 | 
				
			|||||||
      element._groupConfig = {
 | 
					      element._groupConfig = {
 | 
				
			||||||
        name: groupName,
 | 
					        name: groupName,
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					      element._groupConfigOwner = 'testId';
 | 
				
			||||||
      element._groupName = groupName;
 | 
					      element._groupName = groupName;
 | 
				
			||||||
      element._groupOwner = true;
 | 
					      element._groupOwner = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -105,6 +106,8 @@ limitations under the License.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        element.$.groupNameInput.text = groupName2;
 | 
					        element.$.groupNameInput.text = groupName2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        element.$.groupOwnerInput.text = 'testId2';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assert.isFalse(button.hasAttribute('disabled'));
 | 
					        assert.isFalse(button.hasAttribute('disabled'));
 | 
				
			||||||
        assert.isTrue(element.$.groupName.classList.contains('edited'));
 | 
					        assert.isTrue(element.$.groupName.classList.contains('edited'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -114,6 +117,13 @@ limitations under the License.
 | 
				
			|||||||
          assert.equal(element._groupName, groupName2);
 | 
					          assert.equal(element._groupName, groupName2);
 | 
				
			||||||
          done();
 | 
					          done();
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        element._handleSaveOwner().then(() => {
 | 
				
			||||||
 | 
					          assert.isTrue(button.hasAttribute('disabled'));
 | 
				
			||||||
 | 
					          assert.isFalse(element.$.Title.classList.contains('edited'));
 | 
				
			||||||
 | 
					          assert.equal(element._groupConfigOwner, 'testId2');
 | 
				
			||||||
 | 
					          done();
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user