diff --git a/app-template/copay/appConfig.json b/app-template/copay/appConfig.json index 60afe4b6b..4bc581559 100644 --- a/app-template/copay/appConfig.json +++ b/app-template/copay/appConfig.json @@ -5,6 +5,8 @@ "nameCase": "Copay", "nameCaseNoSpace": "Copay", "bundleName": "copay", + "gitHubRepoName": "copay", + "disclaimerUrl": "https://copay.io/disclaimer", "url": "https://copay.io", "appDescription": "Copay Bitcoin Wallet", "winAppName": "CopayWallet", @@ -18,5 +20,5 @@ "coinbase": true, "glidera": true, "amazon": true - } + } } diff --git a/public/views/onboarding/terms.html b/public/views/onboarding/terms.html index 775c14fdb..c2b380fad 100644 --- a/public/views/onboarding/terms.html +++ b/public/views/onboarding/terms.html @@ -10,7 +10,7 @@
- Official English Disclaimer + Official English Disclaimer
I have read, understood, and agree with the Terms of Use diff --git a/public/views/preferencesAbout.html b/public/views/preferencesAbout.html index 550cd2d9b..1604fe98e 100644 --- a/public/views/preferencesAbout.html +++ b/public/views/preferencesAbout.html @@ -7,36 +7,41 @@ -
- Release information -
-
- - Version - - v{{version}} - -
-
- - Commit hash - - #{{commitHash}} - -
-
-
-
- - Terms of Use -
-
- - Translators -
-
- - Session log +
+
+ Release information +
+
+ + Version + + v{{version}} + +
+
+ + Commit hash + + #{{commitHash}} + +
+
+
+
+ + Terms of Use + +
+
+ + Translators + +
+
+ + Session log + +
diff --git a/public/views/preferencesLanguage.html b/public/views/preferencesLanguage.html index 3adb8a34a..df04e0160 100644 --- a/public/views/preferencesLanguage.html +++ b/public/views/preferencesLanguage.html @@ -8,10 +8,12 @@ {{lang.name}} - All contributions to Copay's translation are welcome. Sign up at crowdin.com and join the Copay project at - https://crowdin.com/project/copay. - - Don't see your language on Crowdin? Contact the Owner on Crowdin! We'd love to support your language. - +
+ All contributions to Copay's translation are welcome. Sign up at crowdin.com and join the Copay project at + https://crowdin.com/project/copay. + + Don't see your language on Crowdin? Contact the Owner on Crowdin! We'd love to support your language. + +
diff --git a/public/views/preferencesLogs.html b/public/views/preferencesLogs.html index dcd0add3e..8d2d1311b 100644 --- a/public/views/preferencesLogs.html +++ b/public/views/preferencesLogs.html @@ -4,16 +4,25 @@ - - + -
    -
  • - - {{l.msg}} - -
  • -
diff --git a/public/views/tab-settings.html b/public/views/tab-settings.html index d0f99acc0..3f0ec2605 100644 --- a/public/views/tab-settings.html +++ b/public/views/tab-settings.html @@ -6,7 +6,6 @@
-
Address Book @@ -14,36 +13,40 @@
Preferences
-
+
Language {{currentLanguageName|translate}} +
-
+
Unit {{unitName}} +
-
+
Alternative Currency {{selectedAlternative.name}} +
-
- +
+ Bitcoin Network Fee Policy {{feeOpts[currentFeeLevel]|translate}} +
@@ -81,7 +84,7 @@
Wallets Settings
-
@@ -92,14 +95,15 @@ Incomplete +
-
- - About Bitpay Wallet +
+ + About {{appName}} +
-
diff --git a/public/views/termsOfUse.html b/public/views/termsOfUse.html index 788b1b4b0..7fd05725a 100644 --- a/public/views/termsOfUse.html +++ b/public/views/termsOfUse.html @@ -5,14 +5,14 @@ - -

-

-

- + +
+
+
+
diff --git a/public/views/translators.html b/public/views/translators.html index 7163e1e45..cb865e3eb 100644 --- a/public/views/translators.html +++ b/public/views/translators.html @@ -5,29 +5,29 @@ - -

Translation Credits

-
    -
  • kinoshitajonaJapanese
  • -
  • KirvxFrench
  • -
  • saschadGerman
  • -
  • cmgustavo83Spanish
  • -
  • RussianNeuroMancerRussian
  • -
  • HostFatItalian
  • -
  • xm2hiChinese
  • -
  • Pirx1618Polish
  • -
  • mareksipCzech
  • -
-
-
-

- All contributions to Copay's translation are welcome. Sign up at crowdin.com and join the Copay project at - https://crowdin.com/project/copay. -

- - Don't see your language on Crowdin? Contact the Owner on Crowdin! We'd love to support your language. - -
+ +
+
+ Translation Credits
+
kinoshitajonaJapanese
+
KirvxFrench
+
saschadGerman
+
cmgustavo83Spanish
+
RussianNeuroMancerRussian
+
HostFatItalian
+
xm2hiChinese
+
Pirx1618Polish
+
mareksipCzech
+
+
+

+ All contributions to Copay's translation are welcome. Sign up at crowdin.com and join the Copay project at + https://crowdin.com/project/copay. +

+ + Don't see your language on Crowdin? Contact the Owner on Crowdin! We'd love to support your language. + +
diff --git a/public/views/walletDetails.html b/public/views/walletDetails.html index 6e586caee..78cd5ce10 100644 --- a/public/views/walletDetails.html +++ b/public/views/walletDetails.html @@ -94,7 +94,7 @@
-
+
{{newRelease}}
diff --git a/src/js/controllers/amazon.js b/src/js/controllers/amazon.js index 353c73600..302bd2a24 100644 --- a/src/js/controllers/amazon.js +++ b/src/js/controllers/amazon.js @@ -1,15 +1,10 @@ 'use strict'; angular.module('copayApp.controllers').controller('amazonController', - function($scope, $timeout, $ionicModal, $log, lodash, bwcError, amazonService, platformInfo, nodeWebkit, popupService) { + function($scope, $timeout, $ionicModal, $log, lodash, bwcError, amazonService, platformInfo, externalLinkService, popupService) { $scope.openExternalLink = function(url, target) { - if (platformInfo.isNW) { - nodeWebkit.openExternalLink(url); - } else { - target = target || '_blank'; - var ref = window.open(url, target, 'location=no'); - } + externalLinkService.open(url, target); }; this.init = function() { diff --git a/src/js/controllers/buyAmazon.js b/src/js/controllers/buyAmazon.js index 61409d6ef..b0b2d948d 100644 --- a/src/js/controllers/buyAmazon.js +++ b/src/js/controllers/buyAmazon.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('buyAmazonController', - function($scope, $log, $timeout, $state, lodash, profileService, bwcError, gettextCatalog, configService, walletService, amazonService, ongoingProcess, platformInfo, nodeWebkit, popupService) { + function($scope, $log, $timeout, $state, lodash, profileService, bwcError, gettextCatalog, configService, walletService, amazonService, ongoingProcess, platformInfo, externalLinkService, popupService) { var self = this; var wallet; @@ -16,12 +16,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController', }); $scope.openExternalLink = function(url, target) { - if (platformInfo.isNW) { - nodeWebkit.openExternalLink(url); - } else { - target = target || '_blank'; - var ref = window.open(url, target, 'location=no'); - } + externalLinkService.open(url, target); }; this.init = function() { diff --git a/src/js/controllers/glidera.js b/src/js/controllers/glidera.js index 8eaac6558..e1703411a 100644 --- a/src/js/controllers/glidera.js +++ b/src/js/controllers/glidera.js @@ -1,15 +1,10 @@ 'use strict'; angular.module('copayApp.controllers').controller('glideraController', - function($scope, $timeout, $ionicModal, $log, storageService, glideraService, ongoingProcess, platformInfo, nodeWebkit, popupService, gettextCatalog) { + function($scope, $timeout, $ionicModal, $log, storageService, glideraService, ongoingProcess, platformInfo, externalLinkService, popupService, gettextCatalog) { $scope.openExternalLink = function(url, target) { - if (platformInfo.isNW) { - nodeWebkit.openExternalLink(url); - } else { - target = target || '_blank'; - var ref = window.open(url, target, 'location=no'); - } + externalLinkService.open(url, target); }; $scope.init = function(accessToken) { diff --git a/src/js/controllers/modals/txDetails.js b/src/js/controllers/modals/txDetails.js index 2db8bb8b1..3de9cda31 100644 --- a/src/js/controllers/modals/txDetails.js +++ b/src/js/controllers/modals/txDetails.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('txDetailsController', function($rootScope, $log, $scope, $filter, $stateParams, $ionicPopup, gettextCatalog, profileService, configService, lodash, txFormatService, platformInfo) { +angular.module('copayApp.controllers').controller('txDetailsController', function($rootScope, $log, $scope, $filter, $stateParams, $ionicPopup, gettextCatalog, profileService, configService, lodash, txFormatService, platformInfo, externalLinkService) { var self = $scope.self; var wallet = profileService.getWallet($stateParams.walletId); @@ -81,12 +81,7 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio }; $scope.openExternalLink = function(url, target) { - if (platformInfo.isNW) { - nodeWebkit.openExternalLink(url); - } else { - target = target || '_blank'; - var ref = window.open(url, target, 'location=no'); - } + externalLinkService.open(url, target); }; $scope.getShortNetworkName = function() { diff --git a/src/js/controllers/onboarding/terms.js b/src/js/controllers/onboarding/terms.js index e3f30c321..a76d52b96 100644 --- a/src/js/controllers/onboarding/terms.js +++ b/src/js/controllers/onboarding/terms.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('termsController', function($scope, $log, $state, uxLanguage, profileService) { +angular.module('copayApp.controllers').controller('termsController', function($scope, $log, $state, uxLanguage, profileService, externalLinkService) { $scope.lang = uxLanguage.currentLanguage; $scope.confirm = function() { @@ -12,4 +12,8 @@ angular.module('copayApp.controllers').controller('termsController', function($s }); }; + $scope.openExternalLink = function(url, target) { + externalLinkService.open(url, target); + }; + }); diff --git a/src/js/controllers/preferencesAbout.js b/src/js/controllers/preferencesAbout.js index 002c399b4..55ae224d9 100644 --- a/src/js/controllers/preferencesAbout.js +++ b/src/js/controllers/preferencesAbout.js @@ -1,9 +1,14 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesAbout', - function($scope, $window, $ionicNavBarDelegate, gettextCatalog) { - $ionicNavBarDelegate.title(gettextCatalog.getString('About Copay')); + function($scope, $window, $ionicNavBarDelegate, gettextCatalog, externalLinkService) { + $ionicNavBarDelegate.title(gettextCatalog.getString('About') + ' ' + $window.appConfig.nameCase); $scope.version = $window.version; $scope.commitHash = $window.commitHash; + $scope.name = $window.appConfig.gitHubRepoName; + + $scope.openExternalLink = function(url, target) { + externalLinkService.open(url, target); + }; }); diff --git a/src/js/controllers/preferencesLanguage.js b/src/js/controllers/preferencesLanguage.js index 0406d3542..7690eb6b6 100644 --- a/src/js/controllers/preferencesLanguage.js +++ b/src/js/controllers/preferencesLanguage.js @@ -1,9 +1,13 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesLanguageController', - function($scope, $log, $ionicNavBarDelegate, $ionicHistory, gettextCatalog, configService, profileService, uxLanguage, walletService) { + function($scope, $log, $ionicNavBarDelegate, $ionicHistory, gettextCatalog, configService, profileService, uxLanguage, walletService, externalLinkService) { $ionicNavBarDelegate.title(gettextCatalog.getString('Language')); + $scope.openExternalLink = function(url, target) { + externalLinkService.open(url, target); + }; + $scope.init = function() { $scope.availableLanguages = uxLanguage.getLanguages(); $scope.currentLanguage = uxLanguage.getCurrentLanguage(); diff --git a/src/js/controllers/preferencesLogs.js b/src/js/controllers/preferencesLogs.js index 153a279aa..6c9a8c16d 100644 --- a/src/js/controllers/preferencesLogs.js +++ b/src/js/controllers/preferencesLogs.js @@ -8,13 +8,19 @@ angular.module('copayApp.controllers').controller('preferencesLogs', $scope.logs = historicLog.get(); } - $scope.sendLogs = function() { - var body = 'Copay Session Logs\n Be careful, this could contain sensitive private data\n\n'; - body += '\n\n'; - body += $scope.logs.map(function(v) { + $scope.prepare = function() { + var log = 'Copay Session Logs\n Be careful, this could contain sensitive private data\n\n'; + log += '\n\n'; + log += $scope.logs.map(function(v) { return v.msg; }).join('\n'); + return log; + }; + + $scope.sendLogs = function() { + var body = $scope.prepare(); + window.plugins.socialsharing.shareViaEmail( body, 'Copay Logs', diff --git a/src/js/controllers/tab-settings.js b/src/js/controllers/tab-settings.js index ca45e1411..e4ce0e833 100644 --- a/src/js/controllers/tab-settings.js +++ b/src/js/controllers/tab-settings.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('tabSettingsController', function($scope, $rootScope, $log, $ionicModal, lodash, configService, uxLanguage, platformInfo, pushNotificationsService, profileService, feeService) { +angular.module('copayApp.controllers').controller('tabSettingsController', function($scope, $rootScope, $log, $ionicModal, $window, lodash, configService, uxLanguage, platformInfo, pushNotificationsService, profileService, feeService) { $scope.init = function() { @@ -9,6 +9,8 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct var isWP = platformInfo.isWP; var isIOS = platformInfo.isIOS; + $scope.appName = $window.appConfig.nameCase; + $scope.unitName = config.wallet.settings.unitName; $scope.currentLanguageName = uxLanguage.getCurrentLanguageName(); $scope.selectedAlternative = { diff --git a/src/js/controllers/termOfUse.js b/src/js/controllers/termOfUse.js index c66f55b8c..7632e187a 100644 --- a/src/js/controllers/termOfUse.js +++ b/src/js/controllers/termOfUse.js @@ -1,7 +1,12 @@ 'use strict'; angular.module('copayApp.controllers').controller('termOfUseController', - function($scope, uxLanguage, $ionicNavBarDelegate, gettextCatalog) { - $ionicNavBarDelegate.title(gettextCatalog.getString('About Copay')); + function($scope, $window, uxLanguage, $ionicNavBarDelegate, gettextCatalog, externalLinkService) { + $ionicNavBarDelegate.title(gettextCatalog.getString('Terms Of Use')); $scope.lang = uxLanguage.currentLanguage; + $scope.disclaimerUrl = $window.appConfig.disclaimerUrl; + + $scope.openExternalLink = function(url, target) { + externalLinkService.open(url, target); + }; }); diff --git a/src/js/controllers/translators.js b/src/js/controllers/translators.js new file mode 100644 index 000000000..7f09f58d5 --- /dev/null +++ b/src/js/controllers/translators.js @@ -0,0 +1,8 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('translatorsController', + function($scope, externalLinkService) { + $scope.openExternalLink = function(url, target) { + externalLinkService.open(url, target); + }; + }); diff --git a/src/js/controllers/walletDetails.js b/src/js/controllers/walletDetails.js index 349e57bf2..6e8f7b078 100644 --- a/src/js/controllers/walletDetails.js +++ b/src/js/controllers/walletDetails.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('walletDetailsController', function($scope, $rootScope, $interval, $timeout, $filter, $log, $ionicModal, $ionicPopover, $ionicNavBarDelegate, $state, $stateParams, bwcError, profileService, lodash, configService, gettext, gettextCatalog, platformInfo, walletService, $ionicPopup, txpModalService) { +angular.module('copayApp.controllers').controller('walletDetailsController', function($scope, $rootScope, $interval, $timeout, $filter, $log, $ionicModal, $ionicPopover, $ionicNavBarDelegate, $state, $stateParams, bwcError, profileService, lodash, configService, gettext, gettextCatalog, platformInfo, walletService, $ionicPopup, txpModalService, externalLinkService) { var isCordova = platformInfo.isCordova; var isWP = platformInfo.isWP; @@ -12,6 +12,9 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun var HISTORY_SHOW_LIMIT = 10; $scope.txps = []; + $scope.openExternalLink = function(url, target) { + externalLinkService.open(url, target); + }; var setPendingTxps = function(txps) { if (!txps) { diff --git a/src/js/directives/copyToClipboard.js b/src/js/directives/copyToClipboard.js index 1e9cbfe92..b6523b6f1 100644 --- a/src/js/directives/copyToClipboard.js +++ b/src/js/directives/copyToClipboard.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.directives') - .directive('copyToClipboard', function(platformInfo, nodeWebkit, gettextCatalog, ionicToast, clipboard) { + .directive('copyToClipboard', function(platformInfo, nodeWebkitService, gettextCatalog, ionicToast, clipboard) { return { restrict: 'A', scope: { @@ -22,7 +22,7 @@ angular.module('copayApp.directives') window.cordova.plugins.clipboard.copy(data); window.plugins.toast.showShortCenter(msg); } else if (isNW) { - nodeWebkit.writeToClipboard(data); + nodeWebkitService.writeToClipboard(data); scope.$apply(function() { ionicToast.show(msg, 'bottom', false, 1000); }); diff --git a/src/js/services/externalLinkService.js b/src/js/services/externalLinkService.js new file mode 100644 index 000000000..aa1951fd6 --- /dev/null +++ b/src/js/services/externalLinkService.js @@ -0,0 +1,14 @@ +'use strict'; + +angular.module('copayApp.services').service('externalLinkService', function(platformInfo, nodeWebkitService) { + + this.open = function(url, target) { + if (platformInfo.isNW) { + nodeWebkitService.openExternalLink(url); + } else { + target = target || '_blank'; + var ref = window.open(url, target, 'location=no'); + } + }; + +}); diff --git a/src/js/services/nodeWebkit.js b/src/js/services/nodeWebkit.js deleted file mode 100644 index c1e13d84b..000000000 --- a/src/js/services/nodeWebkit.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -angular.module('copayApp.services').factory('nodeWebkit', function nodeWebkitFactory() { - var root = {}; - - var isNodeWebkit = function() { - var isNode = (typeof process !== "undefined" && typeof require !== "undefined"); - if(isNode) { - try { - return (typeof require('nw.gui') !== "undefined"); - } catch(e) { - return false; - } - } - }; - - root.readFromClipboard = function() { - if (!isNodeWebkit()) return; - var gui = require('nw.gui'); - var clipboard = gui.Clipboard.get(); - return clipboard.get(); - }; - - root.writeToClipboard = function(text) { - if (!isNodeWebkit()) return; - var gui = require('nw.gui'); - var clipboard = gui.Clipboard.get(); - return clipboard.set(text); - }; - - root.openExternalLink = function(url) { - if (!isNodeWebkit()) return; - var gui = require('nw.gui'); - return gui.Shell.openExternal(url); - }; - - return root; -}); diff --git a/src/js/services/nodeWebkitService.js b/src/js/services/nodeWebkitService.js new file mode 100644 index 000000000..a2b836ca5 --- /dev/null +++ b/src/js/services/nodeWebkitService.js @@ -0,0 +1,22 @@ +'use strict'; + +angular.module('copayApp.services').service('nodeWebkitService', function() { + + this.readFromClipboard = function() { + var gui = require('nw.gui'); + var clipboard = gui.Clipboard.get(); + return clipboard.get(); + }; + + this.writeToClipboard = function(text) { + var gui = require('nw.gui'); + var clipboard = gui.Clipboard.get(); + return clipboard.set(text); + }; + + this.openExternalLink = function(url) { + var gui = require('nw.gui'); + return gui.Shell.openExternal(url); + }; + +});