Move generating of group URLs into group.ts
Release-Notes: skip
Google-Bug-Id: b/244279450
Change-Id: If0948fcae14c80edd8a6b5a380ee5b303e48de88
diff --git a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.ts b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.ts
index 02b4d31..5d32d32 100644
--- a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.ts
+++ b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.ts
@@ -7,7 +7,6 @@
import '../../shared/gr-list-view/gr-list-view';
import '../../shared/gr-overlay/gr-overlay';
import '../gr-create-group-dialog/gr-create-group-dialog';
-import {GerritNav} from '../../core/gr-navigation/gr-navigation';
import {GrOverlay} from '../../shared/gr-overlay/gr-overlay';
import {GroupId, GroupInfo, GroupName} from '../../../types/common';
import {GrCreateGroupDialog} from '../gr-create-group-dialog/gr-create-group-dialog';
@@ -20,6 +19,7 @@
import {customElement, query, property, state} from 'lit/decorators.js';
import {assertIsDefined} from '../../../utils/common-util';
import {AdminViewState} from '../../../models/views/admin';
+import {createGroupUrl} from '../../../models/views/group';
declare global {
interface HTMLElementTagNameMap {
@@ -178,8 +178,9 @@
*
* private but used in test
*/
- computeGroupUrl(id: string) {
- return GerritNav.getUrlForGroup(decodeURIComponent(id) as GroupId);
+ computeGroupUrl(encodedId: string) {
+ const groupId = decodeURIComponent(encodedId) as GroupId;
+ return createGroupUrl({groupId});
}
private getCreateGroupCapability() {
diff --git a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list_test.ts b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list_test.ts
index 6e9b802..e484489 100644
--- a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list_test.ts
+++ b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list_test.ts
@@ -6,7 +6,6 @@
import '../../../test/common-test-setup';
import './gr-admin-group-list';
import {GrAdminGroupList} from './gr-admin-group-list';
-import {GerritNav} from '../../core/gr-navigation/gr-navigation';
import {queryAndAssert, stubRestApi} from '../../../test/test-utils';
import {
GroupId,
@@ -110,31 +109,6 @@
);
});
- test('computeGroupUrl', () => {
- let urlStub = sinon
- .stub(GerritNav, 'getUrlForGroup')
- .callsFake(
- () => '/admin/groups/e2cd66f88a2db4d391ac068a92d987effbe872f5'
- );
-
- let group = 'e2cd66f88a2db4d391ac068a92d987effbe872f5';
- assert.equal(
- element.computeGroupUrl(group),
- '/admin/groups/e2cd66f88a2db4d391ac068a92d987effbe872f5'
- );
-
- urlStub.restore();
-
- urlStub = sinon
- .stub(GerritNav, 'getUrlForGroup')
- .callsFake(() => '/admin/groups/user/test');
-
- group = 'user%2Ftest';
- assert.equal(element.computeGroupUrl(group), '/admin/groups/user/test');
-
- urlStub.restore();
- });
-
suite('list with groups', () => {
setup(async () => {
groups = createGroupObjectList('test', 26);
diff --git a/polygerrit-ui/app/elements/admin/gr-group-audit-log/gr-group-audit-log.ts b/polygerrit-ui/app/elements/admin/gr-group-audit-log/gr-group-audit-log.ts
index dc07025..e0c0d30 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-audit-log/gr-group-audit-log.ts
+++ b/polygerrit-ui/app/elements/admin/gr-group-audit-log/gr-group-audit-log.ts
@@ -4,7 +4,6 @@
* SPDX-License-Identifier: Apache-2.0
*/
import '../../shared/gr-account-label/gr-account-label';
-import {GerritNav} from '../../core/gr-navigation/gr-navigation';
import {
GroupInfo,
AccountInfo,
@@ -20,6 +19,7 @@
import {tableStyles} from '../../../styles/gr-table-styles';
import {LitElement, PropertyValues, css, html} from 'lit';
import {customElement, property, state} from 'lit/decorators.js';
+import {createGroupUrl} from '../../../models/views/group';
declare global {
interface HTMLElementTagNameMap {
@@ -168,12 +168,9 @@
return isGroupAuditGroupEventInfo(event);
}
- private computeGroupUrl(group: GroupInfo) {
- if (group && group.url && group.id) {
- return GerritNav.getUrlForGroup(group.id);
- }
-
- return '';
+ private computeGroupUrl(group?: GroupInfo) {
+ if (!group?.id) return '';
+ return createGroupUrl({groupId: group.id});
}
// private but used in test
diff --git a/polygerrit-ui/app/elements/core/gr-navigation/gr-navigation.ts b/polygerrit-ui/app/elements/core/gr-navigation/gr-navigation.ts
index e638d28..e9490a9 100644
--- a/polygerrit-ui/app/elements/core/gr-navigation/gr-navigation.ts
+++ b/polygerrit-ui/app/elements/core/gr-navigation/gr-navigation.ts
@@ -10,7 +10,6 @@
CommentLinks,
CommitId,
DashboardId,
- GroupId,
NumericChangeId,
PARENT,
PatchSetNum,
@@ -26,7 +25,6 @@
GenerateUrlParameters,
} from '../../../utils/router-util';
import {createRepoUrl} from '../../../models/views/repo';
-import {GroupDetailView} from '../../../models/views/group';
import {createSearchUrl} from '../../../models/views/search';
import {createDiffUrl} from '../../../models/views/diff';
@@ -457,29 +455,6 @@
this._navigate(createRepoUrl({repo}));
},
- getUrlForGroup(groupId: GroupId) {
- return this._getUrlFor({
- view: GerritView.GROUP,
- groupId,
- });
- },
-
- getUrlForGroupLog(groupId: GroupId) {
- return this._getUrlFor({
- view: GerritView.GROUP,
- groupId,
- detail: GroupDetailView.LOG,
- });
- },
-
- getUrlForGroupMembers(groupId: GroupId) {
- return this._getUrlFor({
- view: GerritView.GROUP,
- groupId,
- detail: GroupDetailView.MEMBERS,
- });
- },
-
getEditWebLinks(
repo: RepoName,
commit: CommitId,
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router.ts b/polygerrit-ui/app/elements/core/gr-router/gr-router.ts
index a1ae858..c27776a 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router.ts
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.ts
@@ -20,10 +20,7 @@
WeblinkType,
} from '../gr-navigation/gr-navigation';
import {getAppContext} from '../../../services/app-context';
-import {
- convertToPatchSetNum,
- PatchRangeParams,
-} from '../../../utils/patch-set-util';
+import {convertToPatchSetNum} from '../../../utils/patch-set-util';
import {assertIsDefined, assertNever} from '../../../utils/common-util';
import {
BasePatchSetNum,
@@ -43,6 +40,7 @@
import {windowLocationReload} from '../../../utils/dom-util';
import {
getBaseUrl,
+ PatchRangeParams,
toPath,
toPathname,
toSearchParams,
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
index 81b5a37..136ae2e 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
@@ -42,7 +42,7 @@
import {GroupDetailView} from '../../../models/views/group';
import {EditViewState} from '../../../models/views/edit';
import {ChangeViewState} from '../../../models/views/change';
-import {PatchRangeParams} from '../../../utils/patch-set-util';
+import {PatchRangeParams} from '../../../utils/url-util';
suite('gr-router tests', () => {
let router: GrRouter;
diff --git a/polygerrit-ui/app/elements/settings/gr-group-list/gr-group-list.ts b/polygerrit-ui/app/elements/settings/gr-group-list/gr-group-list.ts
index bbd0ef5..68a2293 100644
--- a/polygerrit-ui/app/elements/settings/gr-group-list/gr-group-list.ts
+++ b/polygerrit-ui/app/elements/settings/gr-group-list/gr-group-list.ts
@@ -3,13 +3,13 @@
* Copyright 2016 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
-import {GerritNav} from '../../core/gr-navigation/gr-navigation';
import {GroupInfo, GroupId} from '../../../types/common';
import {getAppContext} from '../../../services/app-context';
import {formStyles} from '../../../styles/gr-form-styles';
import {sharedStyles} from '../../../styles/shared-styles';
import {LitElement, css, html} from 'lit';
import {customElement, state} from 'lit/decorators.js';
+import {createGroupUrl} from '../../../models/views/group';
declare global {
interface HTMLElementTagNameMap {
@@ -64,7 +64,7 @@
</thead>
<tbody>
${(this._groups ?? []).map(group => {
- const href = this._computeGroupPath(group);
+ const href = this._computeGroupPath(group) ?? '';
return html`
<tr>
<td class="nameColumn">
@@ -82,13 +82,12 @@
</div>`;
}
- _computeGroupPath(group: GroupInfo) {
- if (!group || !group.id) {
- return;
- }
+ _computeGroupPath(group?: GroupInfo) {
+ if (!group?.id) return;
// Group ID is already encoded from the API
// Decode it here to match with our router encoding behavior
- return GerritNav.getUrlForGroup(decodeURIComponent(group.id) as GroupId);
+ const decodedGroupId = decodeURIComponent(group.id) as GroupId;
+ return createGroupUrl({groupId: decodedGroupId});
}
}
diff --git a/polygerrit-ui/app/elements/settings/gr-group-list/gr-group-list_test.ts b/polygerrit-ui/app/elements/settings/gr-group-list/gr-group-list_test.ts
index 8fa9f3e..08ce11c 100644
--- a/polygerrit-ui/app/elements/settings/gr-group-list/gr-group-list_test.ts
+++ b/polygerrit-ui/app/elements/settings/gr-group-list/gr-group-list_test.ts
@@ -6,7 +6,6 @@
import '../../../test/common-test-setup';
import './gr-group-list';
import {GrGroupList} from './gr-group-list';
-import {GerritNav} from '../../core/gr-navigation/gr-navigation';
import {GroupId, GroupInfo, GroupName} from '../../../types/common';
import {stubRestApi, waitEventLoop} from '../../../test/test-utils';
import {fixture, html, assert} from '@open-wc/testing';
@@ -65,21 +64,21 @@
<tbody>
<tr>
<td class="nameColumn">
- <a href=""> Group 1 </a>
+ <a href="/admin/groups/abc"> Group 1 </a>
</td>
<td>Group 1 description</td>
<td class="visibleCell">No</td>
</tr>
<tr>
<td class="nameColumn">
- <a href=""> Group 2 </a>
+ <a href="/admin/groups/456"> Group 2 </a>
</td>
<td></td>
<td class="visibleCell">Yes</td>
</tr>
<tr>
<td class="nameColumn">
- <a href=""> Group 3 </a>
+ <a href="/admin/groups/789"> Group 3 </a>
</td>
<td></td>
<td class="visibleCell">No</td>
@@ -90,31 +89,4 @@
`
);
});
-
- test('_computeGroupPath', () => {
- let urlStub = sinon
- .stub(GerritNav, 'getUrlForGroup')
- .callsFake(
- () => '/admin/groups/e2cd66f88a2db4d391ac068a92d987effbe872f5'
- );
-
- let group = {
- id: 'e2cd66f88a2db4d391ac068a92d987effbe872f5' as GroupId,
- };
- assert.equal(
- element._computeGroupPath(group),
- '/admin/groups/e2cd66f88a2db4d391ac068a92d987effbe872f5'
- );
-
- urlStub.restore();
-
- urlStub = sinon
- .stub(GerritNav, 'getUrlForGroup')
- .callsFake(() => '/admin/groups/user/test');
-
- group = {
- id: 'user%2Ftest' as GroupId,
- };
- assert.equal(element._computeGroupPath(group), '/admin/groups/user/test');
- });
});