Add Group names and links to gr-rule-editor Instead of just printing the group Id, display the name as a link to the group page. Change-Id: Id7abe3b82aed0962fdd1ac137ebd962a2e722ced
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html index c2b28d5..529e14c 100644 --- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html +++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html
@@ -109,7 +109,8 @@ permission="{{permission}}" labels="[[labels]]" section="[[section.id]]" - editing="[[editing]]"> + editing="[[editing]]" + groups="[[groups]]"> </gr-permission> </template> <div id="addPermission">
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js index 16e6207..07a7a62 100644 --- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js +++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
@@ -33,6 +33,7 @@ notify: true, observer: '_sectionChanged', }, + groups: Object, labels: Object, editing: { type: Boolean,
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.html b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.html index 1dfb06c..31171f7 100644 --- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.html +++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.html
@@ -92,7 +92,8 @@ <gr-rule-editor label="[[_label]]" editing="[[editing]]" - group="[[rule.id]]" + group-id="[[rule.id]]" + group-name="[[_computeGroupName(groups, rule.id)]]" permission="[[permission.id]]" rule="{{rule}}" section="[[section]]"></gr-rule-editor>
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js index 97d4fe5..b99327c 100644 --- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js +++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js
@@ -28,6 +28,7 @@ observer: '_sortPermission', notify: true, }, + groups: Object, section: String, editing: { type: Boolean, @@ -129,6 +130,11 @@ return groups; }, + _computeGroupName(groups, groupId) { + return groups && groups[groupId] && groups[groupId].name ? + groups[groupId].name : groupId; + }, + _getGroupSuggestions() { return this.$.restAPI.getSuggestedGroups( this._groupFilter,
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html index 3c229d1..73eac54 100644 --- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html +++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html
@@ -158,6 +158,14 @@ 'editing deleted'); }); + test('_computeGroupName', () => { + const groups = { + abc123: {name: 'test group'}, + bcd234: {}, + }; + assert.equal(element._computeGroupName(groups, 'abc123'), 'test group'); + assert.equal(element._computeGroupName(groups, 'bcd234'), 'bcd234'); + }); test('_computeGroupsWithRules', () => { const rules = [
diff --git a/polygerrit-ui/app/elements/admin/gr-project-access/gr-project-access.html b/polygerrit-ui/app/elements/admin/gr-project-access/gr-project-access.html index d776763..686aa10 100644 --- a/polygerrit-ui/app/elements/admin/gr-project-access/gr-project-access.html +++ b/polygerrit-ui/app/elements/admin/gr-project-access/gr-project-access.html
@@ -40,7 +40,8 @@ capabilities="[[_capabilities]]" section="{{section}}" labels="[[_labels]]" - editing="[[_editing]]"></gr-access-section> + editing="[[_editing]]" + groups="[[_groups]]"></gr-access-section> </template> <template is="dom-if" if="[[_inheritsFrom]]"> <h3 id="inheritsFrom">Rights Inherit From
diff --git a/polygerrit-ui/app/elements/admin/gr-project-access/gr-project-access.js b/polygerrit-ui/app/elements/admin/gr-project-access/gr-project-access.js index 6f04a11..8e1b1f5 100644 --- a/polygerrit-ui/app/elements/admin/gr-project-access/gr-project-access.js +++ b/polygerrit-ui/app/elements/admin/gr-project-access/gr-project-access.js
@@ -24,6 +24,7 @@ }, _capabilities: Object, + _groups: Object, /** @type {?} */ _inheritsFrom: Object, _labels: Object, @@ -54,6 +55,7 @@ promises.push(this.$.restAPI.getProjectAccessRights(project).then(res => { this._inheritsFrom = res.inherits_from; this._local = res.local; + this._groups = res.groups; return this.toSortedArray(this._local); }));
diff --git a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.html b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.html index 0a8f382..18612c8 100644 --- a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.html +++ b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.html
@@ -16,7 +16,9 @@ <link rel="import" href="../../../bower_components/polymer/polymer.html"> +<link rel="import" href="../../../behaviors/base-url-behavior/base-url-behavior.html"> <link rel="import" href="../../../behaviors/gr-access-behavior/gr-access-behavior.html"> +<link rel="import" href="../../../behaviors/gr-url-encoding-behavior.html"> <link rel="import" href="../../../styles/gr-form-styles.html"> <link rel="import" href="../../../styles/shared-styles.html"> <link rel="import" href="../../shared/gr-button/gr-button.html"> @@ -64,6 +66,9 @@ #deletedContainer.deleted { display: block; } + .groupPath { + color: #666; + } </style> <style include="gr-form-styles"></style> <div id="mainContainer" @@ -100,7 +105,9 @@ </select> </gr-select> </template> - <span>[[group]]</span> + <a class="groupPath" href$="[[_computeGroupPath(groupId)]]"> + [[groupName]] + </a> <gr-select id="force" class$="[[_computeForceClass(permission)]]" @@ -126,7 +133,7 @@ <div id="deletedContainer" class$="gr-form-styles [[_computeSectionClass(editing, _deleted)]]"> - [[group]] was deleted + [[groupName]] was deleted <gr-button id="undoRemoveBtn" on-tap="_handleUndoRemove">Undo</gr-button> </div> <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
diff --git a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.js b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.js index 6f404bf..7f1a245 100644 --- a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.js +++ b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor.js
@@ -57,7 +57,8 @@ type: Boolean, value: false, }, - group: String, + groupId: String, + groupName: String, permission: String, /** @type {?} */ rule: { @@ -78,6 +79,8 @@ behaviors: [ Gerrit.AccessBehavior, + Gerrit.BaseUrlBehavior, + Gerrit.URLEncodingBehavior, ], observers: [ @@ -107,6 +110,10 @@ return this._computeForce(permission) ? 'force' : ''; }, + _computeGroupPath(group) { + return `${this.getBaseUrl()}/admin/groups/${this.encodeURL(group, true)}`; + }, + _computeSectionClass(editing, deleted) { const classList = []; if (editing) {
diff --git a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor_test.html b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor_test.html index 2b02419..3594e4b 100644 --- a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor_test.html +++ b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor_test.html
@@ -240,6 +240,12 @@ MockInteractions.tap(element.$.undoRemoveBtn); assert.isNotOk(element.rule.value.deleted); }); + + test('_computeGroupPath', () => { + const group = '123'; + assert.equal(element._computeGroupPath(group), + `/admin/groups/123`); + }); }); suite('new edit rule', () => {