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>
 | 
			
		||||
              <span class="value">
 | 
			
		||||
                <gr-autocomplete
 | 
			
		||||
                    id="groupOwnerInput"
 | 
			
		||||
                    text="{{_groupConfig.owner}}"
 | 
			
		||||
                    value="{{_groupConfigOwner}}"
 | 
			
		||||
                    query="[[_query]]"
 | 
			
		||||
                    disabled="[[_computeGroupDisabled(_groupOwner, _isAdmin)]]">
 | 
			
		||||
                </gr-autocomplete>
 | 
			
		||||
 
 | 
			
		||||
@@ -58,6 +58,7 @@
 | 
			
		||||
      },
 | 
			
		||||
      /** @type {?} */
 | 
			
		||||
      _groupConfig: Object,
 | 
			
		||||
      _groupConfigOwner: String,
 | 
			
		||||
      _groupName: Object,
 | 
			
		||||
      _groupOwner: {
 | 
			
		||||
        type: Boolean,
 | 
			
		||||
@@ -83,7 +84,7 @@
 | 
			
		||||
 | 
			
		||||
    observers: [
 | 
			
		||||
      '_handleConfigName(_groupConfig.name)',
 | 
			
		||||
      '_handleConfigOwner(_groupConfig.owner)',
 | 
			
		||||
      '_handleConfigOwner(_groupConfig.owner, _groupConfigOwner)',
 | 
			
		||||
      '_handleConfigDescription(_groupConfig.description)',
 | 
			
		||||
      '_handleConfigOptions(_groupConfig.options.visible_to_all)',
 | 
			
		||||
    ],
 | 
			
		||||
@@ -143,8 +144,12 @@
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _handleSaveOwner() {
 | 
			
		||||
      let owner = this._groupConfig.owner;
 | 
			
		||||
      if (this._groupConfigOwner) {
 | 
			
		||||
        owner = decodeURIComponent(this._groupConfigOwner);
 | 
			
		||||
      }
 | 
			
		||||
      return this.$.restAPI.saveGroupOwner(this.groupId,
 | 
			
		||||
          this._groupConfig.owner).then(config => {
 | 
			
		||||
          owner).then(config => {
 | 
			
		||||
            this._owner = false;
 | 
			
		||||
          });
 | 
			
		||||
    },
 | 
			
		||||
@@ -202,7 +207,7 @@
 | 
			
		||||
              if (!response.hasOwnProperty(key)) { continue; }
 | 
			
		||||
              groups.push({
 | 
			
		||||
                name: key,
 | 
			
		||||
                value: response[key],
 | 
			
		||||
                value: decodeURIComponent(response[key].id),
 | 
			
		||||
              });
 | 
			
		||||
            }
 | 
			
		||||
            return groups;
 | 
			
		||||
 
 | 
			
		||||
@@ -86,6 +86,7 @@ limitations under the License.
 | 
			
		||||
      element._groupConfig = {
 | 
			
		||||
        name: groupName,
 | 
			
		||||
      };
 | 
			
		||||
      element._groupConfigOwner = 'testId';
 | 
			
		||||
      element._groupName = groupName;
 | 
			
		||||
      element._groupOwner = true;
 | 
			
		||||
 | 
			
		||||
@@ -105,6 +106,8 @@ limitations under the License.
 | 
			
		||||
 | 
			
		||||
        element.$.groupNameInput.text = groupName2;
 | 
			
		||||
 | 
			
		||||
        element.$.groupOwnerInput.text = 'testId2';
 | 
			
		||||
 | 
			
		||||
        assert.isFalse(button.hasAttribute('disabled'));
 | 
			
		||||
        assert.isTrue(element.$.groupName.classList.contains('edited'));
 | 
			
		||||
 | 
			
		||||
@@ -114,6 +117,13 @@ limitations under the License.
 | 
			
		||||
          assert.equal(element._groupName, groupName2);
 | 
			
		||||
          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