SmartIT_Extensions/BMC/smart-it-full-helix/scripts/app/common/show-more-less-directive.js

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);
};
}
};
}]);
}());