58 lines
1.5 KiB
JavaScript
Executable File
58 lines
1.5 KiB
JavaScript
Executable File
'use strict';
|
|
|
|
var ZeroClipboard = window.ZeroClipboard;
|
|
|
|
angular.module('insight')
|
|
.directive('whenScrolled', ['$window', function($window) {
|
|
return {
|
|
restric: 'A',
|
|
link: function(scope, elm, attr) {
|
|
var pageHeight, clientHeight, scrollPos;
|
|
$window = angular.element($window);
|
|
|
|
var handler = function() {
|
|
pageHeight = window.document.documentElement.scrollHeight;
|
|
clientHeight = window.document.documentElement.clientHeight;
|
|
scrollPos = window.pageYOffset;
|
|
|
|
if (pageHeight - (scrollPos + clientHeight) === 0) {
|
|
scope.$apply(attr.whenScrolled);
|
|
}
|
|
};
|
|
|
|
$window.on('scroll', handler);
|
|
scope.$on('$destroy', function() {
|
|
return $window.off('scroll', handler);
|
|
});
|
|
}
|
|
};
|
|
}])
|
|
.directive('clipCopy', [function() {
|
|
ZeroClipboard.config({
|
|
moviePath: '/lib/zeroclipboard/ZeroClipboard.swf',
|
|
trustedDomains: ['*'],
|
|
allowScriptAccess: 'always',
|
|
forceHandCursor: true
|
|
});
|
|
|
|
return {
|
|
restric: 'A',
|
|
scope: { clipCopy: '=clipCopy' },
|
|
link: function(scope, elm) {
|
|
var clip = new ZeroClipboard(elm);
|
|
|
|
clip.on('load', function(client) {
|
|
var onMousedown = function(client) {
|
|
client.setText(scope.clipCopy);
|
|
};
|
|
|
|
client.on('mousedown', onMousedown);
|
|
|
|
scope.$on('$destroy', function() {
|
|
client.off('mousedown', onMousedown);
|
|
});
|
|
});
|
|
}
|
|
};
|
|
}]);
|