39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
angular.module('copayApp.directives')
|
|
.directive('copyToClipboard', function(platformInfo, nodeWebkitService, gettextCatalog, ionicToast, clipboard) {
|
|
return {
|
|
restrict: 'A',
|
|
scope: {
|
|
copyToClipboard: '=copyToClipboard'
|
|
},
|
|
link: function(scope, elem, attrs, ctrl) {
|
|
var isCordova = platformInfo.isCordova;
|
|
var isChromeApp = platformInfo.isChromeApp;
|
|
var isNW = platformInfo.isNW;
|
|
elem.bind('mouseover', function() {
|
|
elem.css('cursor', 'pointer');
|
|
});
|
|
|
|
var msg = gettextCatalog.getString('Copied to clipboard');
|
|
elem.bind('click', function() {
|
|
var data = scope.copyToClipboard;
|
|
if (!data) return;
|
|
|
|
if (isCordova) {
|
|
cordova.plugins.clipboard.copy(data);
|
|
} else if (isNW) {
|
|
nodeWebkitService.writeToClipboard(data);
|
|
} else if (clipboard.supported) {
|
|
clipboard.copyText(data);
|
|
} else {
|
|
// No supported
|
|
return;
|
|
}
|
|
scope.$apply(function() {
|
|
ionicToast.show(msg, 'bottom', false, 1000);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
});
|