diff --git a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html
index 8fc1915f40..016932ff8a 100644
--- a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html
+++ b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html
@@ -71,10 +71,10 @@ limitations under the License.
diff --git a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.js b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.js
index 4726a1f3ff..a4f4c3f280 100644
--- a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.js
+++ b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.js
@@ -60,11 +60,11 @@
this.fire('create-clicked');
},
- _computeNavLink(offset, direction, itemsPerPage, filter) {
+ _computeNavLink(offset, direction, itemsPerPage, filter, path) {
// Offset could be a string when passed from the router.
offset = +(offset || 0);
const newOffset = Math.max(0, offset + (itemsPerPage * direction));
- let href = this.getBaseUrl() + this.path;
+ let href = this.getBaseUrl() + path;
if (filter) {
href += '/q/filter:' + filter;
}
diff --git a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view_test.html b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view_test.html
index 06a3065187..f9d2ea9343 100644
--- a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view_test.html
@@ -50,24 +50,24 @@ limitations under the License.
const offset = 25;
const projectsPerPage = 25;
const filter = 'test';
- element.path = '/admin/projects';
+ const path = '/admin/projects';
sandbox.stub(element, 'getBaseUrl', () => '');
assert.equal(
- element._computeNavLink(offset, 1, projectsPerPage, filter),
+ element._computeNavLink(offset, 1, projectsPerPage, filter, path),
'/admin/projects/q/filter:test,50');
assert.equal(
- element._computeNavLink(offset, -1, projectsPerPage, filter),
+ element._computeNavLink(offset, -1, projectsPerPage, filter, path),
'/admin/projects/q/filter:test');
assert.equal(
- element._computeNavLink(offset, 1, projectsPerPage, null),
+ element._computeNavLink(offset, 1, projectsPerPage, null, path),
'/admin/projects,50');
assert.equal(
- element._computeNavLink(offset, -1, projectsPerPage, null),
+ element._computeNavLink(offset, -1, projectsPerPage, null, path),
'/admin/projects');
});
@@ -125,5 +125,18 @@ limitations under the License.
MockInteractions.tap(element.$$('#createNew'));
assert.isTrue(clickHandler.called);
});
+
+ test('next/prev links change when path changes', () => {
+ const BRANCHES_PATH = '/path/to/branches';
+ const TAGS_PATH = '/path/to/tags';
+ sandbox.stub(element, '_computeNavLink');
+ element.offset = 0;
+ element.itemsPerPage = 25;
+ element.filter = '';
+ element.path = BRANCHES_PATH;
+ assert.equal(element._computeNavLink.lastCall.args[4], BRANCHES_PATH);
+ element.path = TAGS_PATH;
+ assert.equal(element._computeNavLink.lastCall.args[4], TAGS_PATH);
+ });
});