Merge "Fix groups to prevent javascript errors with url"
diff --git a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html
index c1ac650..2991a09 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html
+++ b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html
@@ -148,10 +148,15 @@
<template is="dom-repeat" items="[[_includedGroups]]">
<tr>
<td class="nameColumn">
- <a href$="[[_computeGroupUrl(item.url)]]"
- rel="noopener">
+ <template is="dom-if" if="[[item.url]]">
+ <a href$="[[_computeGroupUrl(item.url)]]"
+ rel="noopener">
+ [[item.name]]
+ </a>
+ </template>
+ <template is="dom-if" if="[[!item.url]]">
[[item.name]]
- </a>
+ </template>
</td>
<td>[[item.description]]</td>
<td class="deleteColumn">
diff --git a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js
index 553856a..8b6ce7a 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js
+++ b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js
@@ -122,6 +122,8 @@
},
_computeGroupUrl(url) {
+ if (!url) { return; }
+
const r = new RegExp(URL_REGEX, 'i');
if (r.test(url)) {
return url;
diff --git a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members_test.html b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members_test.html
index ca854c0..29a3cca 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members_test.html
+++ b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members_test.html
@@ -261,6 +261,21 @@
assert.equal(element._computeLoadingClass(false), '');
});
+ test('_computeGroupUrl', () => {
+ assert.isUndefined(element._computeGroupUrl(undefined));
+
+ assert.isUndefined(element._computeGroupUrl(false));
+
+ let url = '#/admin/groups/uuid-529b3c2605bb1029c8146f9de4a91c776fe64498';
+ assert.equal(element._computeGroupUrl(url),
+ 'https://test/site/admin/groups/' +
+ 'uuid-529b3c2605bb1029c8146f9de4a91c776fe64498');
+
+ url = 'https://gerrit.local/admin/groups/' +
+ 'uuid-529b3c2605bb1029c8146f9de4a91c776fe64498';
+ assert.equal(element._computeGroupUrl(url), url);
+ });
+
test('fires page-error', done => {
groupStub.restore();