From 8006af279b8ba65aee9908ec567c43c298c0955c Mon Sep 17 00:00:00 2001 From: Sebastiaan Pasma Date: Thu, 28 Jun 2018 10:52:06 +0200 Subject: [PATCH] clipboard service --- src/js/directives/copyToClipboard.js | 21 ++------------------- src/js/services/clipboardService.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 src/js/services/clipboardService.js diff --git a/src/js/directives/copyToClipboard.js b/src/js/directives/copyToClipboard.js index 5de40f23e..35802b598 100644 --- a/src/js/directives/copyToClipboard.js +++ b/src/js/directives/copyToClipboard.js @@ -1,38 +1,21 @@ 'use strict'; angular.module('copayApp.directives') - .directive('copyToClipboard', function(platformInfo, nodeWebkitService, gettextCatalog, ionicToast, clipboard) { + .directive('copyToClipboard', function(clipboardService) { 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); - }); + clipboardService.copyToClipboard(data, scope); }); } } diff --git a/src/js/services/clipboardService.js b/src/js/services/clipboardService.js new file mode 100644 index 000000000..ab8110b0a --- /dev/null +++ b/src/js/services/clipboardService.js @@ -0,0 +1,28 @@ +'use strict'; + +angular.module('copayApp.services').factory('clipboardService', function ($http, $log, platformInfo, nodeWebkitService, gettextCatalog, ionicToast, clipboard) { + var root = {}; + + root.copyToClipboard = function (data, scope) { + var msg = gettextCatalog.getString('Copied to clipboard'); + + if (!data) return; + + if (platformInfo.isCordova) { + cordova.plugins.clipboard.copy(data); + } else if (platformInfo.isNW) { + nodeWebkitService.writeToClipboard(data); + } else if (clipboard.supported) { + clipboard.copyText(data); + } else { + // No supported + return; + } + + scope.$apply(function () { + ionicToast.show(msg, 'bottom', false, 1000); + }); + }; + + return root; +}); \ No newline at end of file