diff --git a/polygerrit-ui/app/elements/admin/gr-group/gr-group.html b/polygerrit-ui/app/elements/admin/gr-group/gr-group.html index 33866d3328..c2743b716e 100644 --- a/polygerrit-ui/app/elements/admin/gr-group/gr-group.html +++ b/polygerrit-ui/app/elements/admin/gr-group/gr-group.html @@ -87,7 +87,9 @@ limitations under the License.
diff --git a/polygerrit-ui/app/elements/admin/gr-group/gr-group.js b/polygerrit-ui/app/elements/admin/gr-group/gr-group.js index d975675920..a5f875735e 100644 --- a/polygerrit-ui/app/elements/admin/gr-group/gr-group.js +++ b/polygerrit-ui/app/elements/admin/gr-group/gr-group.js @@ -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; diff --git a/polygerrit-ui/app/elements/admin/gr-group/gr-group_test.html b/polygerrit-ui/app/elements/admin/gr-group/gr-group_test.html index 16a62617a0..7789cd59ba 100644 --- a/polygerrit-ui/app/elements/admin/gr-group/gr-group_test.html +++ b/polygerrit-ui/app/elements/admin/gr-group/gr-group_test.html @@ -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(); + }); }); });