From ae9648bcc8b190980a8ff6fbb7cf9a1041852d4a Mon Sep 17 00:00:00 2001 From: Becky Siegel Date: Wed, 19 Jul 2017 13:43:30 -0700 Subject: [PATCH] Fix prev/next links in list-view to depend on path Since branches and tags depend on the same view, when the path was updated, the next/prev links were not. Make 'path' an explicit parameter, so it is observed by the prev/next link's calculating function. Change-Id: I79288ebe5837e7ad6bc678ffde98f313935bc1be --- .../shared/gr-list-view/gr-list-view.html | 4 ++-- .../shared/gr-list-view/gr-list-view.js | 4 ++-- .../gr-list-view/gr-list-view_test.html | 23 +++++++++++++++---- 3 files changed, 22 insertions(+), 9 deletions(-) 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); + }); });