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
This commit is contained in:
@@ -71,10 +71,10 @@ limitations under the License.
|
||||
<content></content>
|
||||
<nav>
|
||||
<a id="prevArrow"
|
||||
href$="[[_computeNavLink(offset, -1, itemsPerPage, filter)]]"
|
||||
href$="[[_computeNavLink(offset, -1, itemsPerPage, filter, path)]]"
|
||||
hidden$="[[_hidePrevArrow(offset)]]" hidden>← Prev</a>
|
||||
<a id="nextArrow"
|
||||
href$="[[_computeNavLink(offset, 1, itemsPerPage, filter)]]"
|
||||
href$="[[_computeNavLink(offset, 1, itemsPerPage, filter, path)]]"
|
||||
hidden$="[[_hideNextArrow(loading, items)]]" hidden>
|
||||
Next →</a>
|
||||
</nav>
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
Reference in New Issue
Block a user