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>
|
<content></content>
|
||||||
<nav>
|
<nav>
|
||||||
<a id="prevArrow"
|
<a id="prevArrow"
|
||||||
href$="[[_computeNavLink(offset, -1, itemsPerPage, filter)]]"
|
href$="[[_computeNavLink(offset, -1, itemsPerPage, filter, path)]]"
|
||||||
hidden$="[[_hidePrevArrow(offset)]]" hidden>← Prev</a>
|
hidden$="[[_hidePrevArrow(offset)]]" hidden>← Prev</a>
|
||||||
<a id="nextArrow"
|
<a id="nextArrow"
|
||||||
href$="[[_computeNavLink(offset, 1, itemsPerPage, filter)]]"
|
href$="[[_computeNavLink(offset, 1, itemsPerPage, filter, path)]]"
|
||||||
hidden$="[[_hideNextArrow(loading, items)]]" hidden>
|
hidden$="[[_hideNextArrow(loading, items)]]" hidden>
|
||||||
Next →</a>
|
Next →</a>
|
||||||
</nav>
|
</nav>
|
||||||
|
@@ -60,11 +60,11 @@
|
|||||||
this.fire('create-clicked');
|
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 could be a string when passed from the router.
|
||||||
offset = +(offset || 0);
|
offset = +(offset || 0);
|
||||||
const newOffset = Math.max(0, offset + (itemsPerPage * direction));
|
const newOffset = Math.max(0, offset + (itemsPerPage * direction));
|
||||||
let href = this.getBaseUrl() + this.path;
|
let href = this.getBaseUrl() + path;
|
||||||
if (filter) {
|
if (filter) {
|
||||||
href += '/q/filter:' + filter;
|
href += '/q/filter:' + filter;
|
||||||
}
|
}
|
||||||
|
@@ -50,24 +50,24 @@ limitations under the License.
|
|||||||
const offset = 25;
|
const offset = 25;
|
||||||
const projectsPerPage = 25;
|
const projectsPerPage = 25;
|
||||||
const filter = 'test';
|
const filter = 'test';
|
||||||
element.path = '/admin/projects';
|
const path = '/admin/projects';
|
||||||
|
|
||||||
sandbox.stub(element, 'getBaseUrl', () => '');
|
sandbox.stub(element, 'getBaseUrl', () => '');
|
||||||
|
|
||||||
assert.equal(
|
assert.equal(
|
||||||
element._computeNavLink(offset, 1, projectsPerPage, filter),
|
element._computeNavLink(offset, 1, projectsPerPage, filter, path),
|
||||||
'/admin/projects/q/filter:test,50');
|
'/admin/projects/q/filter:test,50');
|
||||||
|
|
||||||
assert.equal(
|
assert.equal(
|
||||||
element._computeNavLink(offset, -1, projectsPerPage, filter),
|
element._computeNavLink(offset, -1, projectsPerPage, filter, path),
|
||||||
'/admin/projects/q/filter:test');
|
'/admin/projects/q/filter:test');
|
||||||
|
|
||||||
assert.equal(
|
assert.equal(
|
||||||
element._computeNavLink(offset, 1, projectsPerPage, null),
|
element._computeNavLink(offset, 1, projectsPerPage, null, path),
|
||||||
'/admin/projects,50');
|
'/admin/projects,50');
|
||||||
|
|
||||||
assert.equal(
|
assert.equal(
|
||||||
element._computeNavLink(offset, -1, projectsPerPage, null),
|
element._computeNavLink(offset, -1, projectsPerPage, null, path),
|
||||||
'/admin/projects');
|
'/admin/projects');
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -125,5 +125,18 @@ limitations under the License.
|
|||||||
MockInteractions.tap(element.$$('#createNew'));
|
MockInteractions.tap(element.$$('#createNew'));
|
||||||
assert.isTrue(clickHandler.called);
|
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>
|
</script>
|
||||||
|
Reference in New Issue
Block a user