41 lines
1.5 KiB
JavaScript
41 lines
1.5 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('myitsmApp')
|
|
.directive('showMoreLess', ['events', function (events) {
|
|
return {
|
|
restrict: 'EA',
|
|
scope: {
|
|
limit: '=',
|
|
size: '@',
|
|
getMore: '&',
|
|
totalSize: '@',
|
|
chunkSize: '='
|
|
},
|
|
templateUrl: 'views/common/show-more-less.html',
|
|
link: function (scope) {
|
|
scope.initialSize = scope.limit;
|
|
var pageSize = 4;
|
|
if (scope.chunkSize) {
|
|
pageSize = parseInt(scope.chunkSize);
|
|
}
|
|
scope.showMore = function () {
|
|
scope.size = parseInt(scope.size);
|
|
if (!scope.initialSize) {
|
|
scope.initialSize = scope.limit;
|
|
}
|
|
scope.limit = scope.limit + pageSize > scope.size ? scope.size : scope.limit + pageSize;
|
|
if (scope.limit === scope.size && scope.totalSize > scope.size) {
|
|
scope.getMore();
|
|
}
|
|
scope.$emit(events.SHOW_MORE_RECORDS);
|
|
};
|
|
scope.showLess = function () {
|
|
scope.limit = scope.initialSize;
|
|
scope.$emit(events.SHOW_LESS_RECORDS);
|
|
};
|
|
}
|
|
};
|
|
}]);
|
|
}());
|