mirror of
https://github.com/ansible/awx.git
synced 2024-11-01 16:51:11 +03:00
Adding wanted js libraries
This commit is contained in:
parent
239e01cb16
commit
f64ae5afdb
45
awx/ui/static/lib/lrInfiniteScroll/lrInfiniteScroll.js
Normal file
45
awx/ui/static/lib/lrInfiniteScroll/lrInfiniteScroll.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
(function (ng) {
|
||||||
|
'use strict';
|
||||||
|
var module = ng.module('lrInfiniteScroll', []);
|
||||||
|
|
||||||
|
module.directive('lrInfiniteScroll', ['$timeout', function (timeout) {
|
||||||
|
return{
|
||||||
|
link: function (scope, element, attr) {
|
||||||
|
var
|
||||||
|
lengthThreshold = attr.scrollThreshold || 50,
|
||||||
|
timeThreshold = attr.timeThreshold || 400,
|
||||||
|
direction = attr.direction || 'down',
|
||||||
|
handler = scope.$eval(attr.lrInfiniteScroll),
|
||||||
|
promise = null,
|
||||||
|
lastRemaining = 9999;
|
||||||
|
|
||||||
|
lengthThreshold = parseInt(lengthThreshold, 10);
|
||||||
|
timeThreshold = parseInt(timeThreshold, 10);
|
||||||
|
|
||||||
|
if (!handler || !ng.isFunction(handler)) {
|
||||||
|
handler = ng.noop;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.bind('scroll', function () {
|
||||||
|
var remaining =
|
||||||
|
(direction === 'down') ? element[0].scrollHeight - (element[0].clientHeight + element[0].scrollTop) : element[0].scrollTop;
|
||||||
|
|
||||||
|
//if we have reached the threshold and we scroll down
|
||||||
|
if ((direction === 'down' && remaining < lengthThreshold && (remaining - lastRemaining) < 0) ||
|
||||||
|
direction === 'up' && remaining < lengthThreshold) {
|
||||||
|
//if there is already a timer running which has not expired yet we have to cancel it and restart the timer
|
||||||
|
if (promise !== null) {
|
||||||
|
timeout.cancel(promise);
|
||||||
|
}
|
||||||
|
promise = timeout(function () {
|
||||||
|
handler();
|
||||||
|
promise = null;
|
||||||
|
}, timeThreshold);
|
||||||
|
}
|
||||||
|
lastRemaining = remaining;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
}]);
|
||||||
|
})(angular);
|
Loading…
Reference in New Issue
Block a user