Refactor root navigation to generated URL
Change-Id: If969604814d3f2e859932f8a3bc26d14d22eac73
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
index 243ebf1..e905e038 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
@@ -961,9 +961,10 @@
},
_determinePageBack() {
- // Default backPage to '/' if user came to change view page
+ // Default backPage to root if user came to change view page
// via an email link, etc.
- Gerrit.Nav.navigateToRelativeUrl(this.backPage || '/');
+ Gerrit.Nav.navigateToRelativeUrl(this.backPage ||
+ Gerrit.Nav.getUrlForRoot());
},
_handleLabelRemoved(splices, path) {
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
index af87a7e..b5b8cd9 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
@@ -89,12 +89,13 @@
assert(starStub.called);
});
- test('U should navigate to / if no backPage set', () => {
+ test('U should navigate to root if no backPage set', () => {
const relativeNavStub = sandbox.stub(Gerrit.Nav,
'navigateToRelativeUrl');
MockInteractions.pressAndReleaseKeyOn(element, 85, null, 'u');
assert.isTrue(relativeNavStub.called);
- assert.isTrue(relativeNavStub.lastCall.calledWithExactly('/'));
+ assert.isTrue(relativeNavStub.lastCall.calledWithExactly(
+ Gerrit.Nav.getUrlForRoot()));
});
test('U should navigate to backPage if set', () => {
diff --git a/polygerrit-ui/app/elements/core/gr-navigation/gr-navigation.html b/polygerrit-ui/app/elements/core/gr-navigation/gr-navigation.html
index dfe5410..a700ccd 100644
--- a/polygerrit-ui/app/elements/core/gr-navigation/gr-navigation.html
+++ b/polygerrit-ui/app/elements/core/gr-navigation/gr-navigation.html
@@ -70,6 +70,9 @@
// - `repoName`, required, String: the name of the repo
// - `detail`, optional, String: the name of the repo detail view.
// Takes any value from Gerrit.Nav.RepoDetailView.
+ //
+ // - Gerrit.Nav.View.ROOT:
+ // - no possible parameters.
window.Gerrit = window.Gerrit || {};
@@ -96,6 +99,7 @@
GROUP: 'group',
PLUGIN_SCREEN: 'plugin-screen',
REPO: 'repo',
+ ROOT: 'root',
SEARCH: 'search',
SETTINGS: 'settings',
},
@@ -412,6 +416,15 @@
},
/**
+ * @return {string}
+ */
+ getUrlForRoot() {
+ return this._getUrlFor({
+ view: Gerrit.Nav.View.ROOT,
+ });
+ },
+
+ /**
* @param {string} repo The name of the repo.
* @param {!Array} sections The sections to display in the dashboard
* @return {string}
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router.js b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
index 3b4f1ec..a72feb1 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router.js
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
@@ -248,6 +248,8 @@
url = this._generateGroupUrl(params);
} else if (params.view === Views.REPO) {
url = this._generateRepoUrl(params);
+ } else if (params.view === Views.ROOT) {
+ url = '/';
} else if (params.view === Views.SETTINGS) {
url = this._generateSettingsUrl(params);
} else {