Skip to content

Commit 79513cd

Browse files
Release 0.8.4
Fix tracking bug in pagination controls.
1 parent 8e1d96c commit 79513cd

File tree

5 files changed

+18
-6
lines changed

5 files changed

+18
-6
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angularUtils-pagination",
3-
"version": "0.8.3",
3+
"version": "0.8.4",
44
"homepage": "https://github.com/michaelbromley/angularUtils/tree/master/src/directives/pagination",
55
"authors": [
66
"Michael Bromley <[email protected]>"

dirPagination.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@
210210
}
211211

212212
function dirPaginationControlsTemplateInstaller($templateCache) {
213-
$templateCache.put('angularUtils.directives.dirPagination.template', '<ul class="pagination" ng-if="1 < pages.length || !autoHide"><li ng-if="boundaryLinks" ng-class="{ disabled : pagination.current == 1 }"><a href="" ng-click="setCurrent(1)">&laquo;</a></li><li ng-if="directionLinks" ng-class="{ disabled : pagination.current == 1 }"><a href="" ng-click="setCurrent(pagination.current - 1)">&lsaquo;</a></li><li ng-repeat="pageNumber in pages track by $index" ng-class="{ active : pagination.current == pageNumber, disabled : pageNumber == \'...\' || ( ! autoHide && pages.length === 1 ) }"><a href="" ng-click="setCurrent(pageNumber)">{{ pageNumber }}</a></li><li ng-if="directionLinks" ng-class="{ disabled : pagination.current == pagination.last }"><a href="" ng-click="setCurrent(pagination.current + 1)">&rsaquo;</a></li><li ng-if="boundaryLinks" ng-class="{ disabled : pagination.current == pagination.last }"><a href="" ng-click="setCurrent(pagination.last)">&raquo;</a></li></ul>');
213+
$templateCache.put('angularUtils.directives.dirPagination.template', '<ul class="pagination" ng-if="1 < pages.length || !autoHide"><li ng-if="boundaryLinks" ng-class="{ disabled : pagination.current == 1 }"><a href="" ng-click="setCurrent(1)">&laquo;</a></li><li ng-if="directionLinks" ng-class="{ disabled : pagination.current == 1 }"><a href="" ng-click="setCurrent(pagination.current - 1)">&lsaquo;</a></li><li ng-repeat="pageNumber in pages track by tracker(pageNumber, $index)" ng-class="{ active : pagination.current == pageNumber, disabled : pageNumber == \'...\' || ( ! autoHide && pages.length === 1 ) }"><a href="" ng-click="setCurrent(pageNumber)">{{ pageNumber }}</a></li><li ng-if="directionLinks" ng-class="{ disabled : pagination.current == pagination.last }"><a href="" ng-click="setCurrent(pagination.current + 1)">&rsaquo;</a></li><li ng-if="boundaryLinks" ng-class="{ disabled : pagination.current == pagination.last }"><a href="" ng-click="setCurrent(pagination.last)">&raquo;</a></li></ul>');
214214
}
215215

216216
function dirPaginationControlsDirective(paginationService, paginationTemplate) {
@@ -298,6 +298,18 @@
298298
}
299299
};
300300

301+
/**
302+
* Custom "track by" function which allows for duplicate "..." entries on long lists,
303+
* yet fixes the problem of wrongly-highlighted links which happens when using
304+
* "track by $index" - see https://github.com/michaelbromley/angularUtils/issues/153
305+
* @param id
306+
* @param index
307+
* @returns {string}
308+
*/
309+
scope.tracker = function(id, index) {
310+
return id + '_' + index;
311+
};
312+
301313
function goToPage(num) {
302314
if (paginationService.isRegistered(paginationId) && isValidPageNumber(num)) {
303315
scope.pages = generatePagesArray(num, paginationService.getCollectionLength(paginationId), paginationService.getItemsPerPage(paginationId), paginationRange);

dirPagination.tpl.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
<ul class="pagination" ng-if="1 < pages.length">
1+
<ul class="pagination" ng-if="1 < pages.length || !autoHide">
22
<li ng-if="boundaryLinks" ng-class="{ disabled : pagination.current == 1 }">
33
<a href="" ng-click="setCurrent(1)">&laquo;</a>
44
</li>
55
<li ng-if="directionLinks" ng-class="{ disabled : pagination.current == 1 }">
66
<a href="" ng-click="setCurrent(pagination.current - 1)">&lsaquo;</a>
77
</li>
8-
<li ng-repeat="pageNumber in pages track by $index" ng-class="{ active : pagination.current == pageNumber, disabled : pageNumber == '...' }">
8+
<li ng-repeat="pageNumber in pages track by tracker(pageNumber, $index)" ng-class="{ active : pagination.current == pageNumber, disabled : pageNumber == '...' }">
99
<a href="" ng-click="setCurrent(pageNumber)">{{ pageNumber }}</a>
1010
</li>
1111

package.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Package.describe({
22
name: 'angularutils:pagination',
33
summary: 'Magical automatic pagination for anything in AngularJS',
4-
version: '0.8.3',
4+
version: '0.8.4',
55
git: 'https://github.com/Urigo/angularUtils-pagination'
66
});
77

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-utils-pagination",
3-
"version": "0.8.3",
3+
"version": "0.8.4",
44
"description": "Magical automatic pagination for anything in AngularJS",
55
"main": "index.js",
66
"scripts": {

0 commit comments

Comments
 (0)