diff --git a/public/views/backup.html b/public/views/backup.html index 9896a8511..27859642c 100644 --- a/public/views/backup.html +++ b/public/views/backup.html @@ -75,7 +75,7 @@
- {{word}}  + {{word}} 
diff --git a/src/js/controllers/backup.js b/src/js/controllers/backup.js index eef4c5057..b186a4582 100644 --- a/src/js/controllers/backup.js +++ b/src/js/controllers/backup.js @@ -7,12 +7,12 @@ angular.module('copayApp.controllers').controller('wordsController', var successMsg = gettext('Backup words deleted'); this.done = function() { - $rootScope.$emit('Local/BackupDone'); + $rootScope.$emit('Local/BackupDone'); }; this.delete = function() { var fc = profileService.focusedClient; - confirmDialog.show(msg,function(ok){ + confirmDialog.show(msg, function(ok) { if (ok) { fc.clearMnemonic(); profileService.updateCredentialsFC(function() { @@ -26,8 +26,10 @@ angular.module('copayApp.controllers').controller('wordsController', var fc = profileService.focusedClient; var words = fc.getMnemonic(); - if (words) + if (words) { this.mnemonicWords = words.split(/[\u3000\s]+/); + this.mnemonicHasPassphrase = fc.mnemonicHasPassphrase(); + this.useIdeograms = words.indexOf("\u3000") >= 0; + } - this.mnemonicHasPassphrase = fc.mnemonicHasPassphrase(); }); diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 16d5292bc..b77de1450 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -953,11 +953,13 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi }); }; - this.setFromPayPro = function(uri) { + this.setFromPayPro = function(uri, cb) { + if (!cb) cb = function() {}; + var fc = profileService.focusedClient; if (isChromeApp) { this.error = gettext('Payment Protocol not supported on Chrome App'); - return; + return cb(true); } var satToUnit = 1 / this.unitToSatoshi; @@ -973,23 +975,25 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi self.setOngoingProcess(); if (err) { - $log.warn(err); + $log.warn('Could not fetch payment request:', err); self.resetForm(); var msg = err.toString(); if (msg.match('HTTP')) { msg = gettext('Could not fetch payment information'); } self.error = msg; - } else { - self._paypro = paypro; - self.setForm(paypro.toAddress, (paypro.amount * satToUnit).toFixed(self.unitDecimals), - paypro.memo); + return cb(true); } + + self._paypro = paypro; + self.setForm(paypro.toAddress, (paypro.amount * satToUnit).toFixed(self.unitDecimals), paypro.memo); + return cb(); }); }, 1); }; this.setFromUri = function(uri) { + var self = this; function sanitizeUri(uri) { // Fixes when a region uses comma to separate decimals var regex = /[\?\&]amount=(\d+([\,\.]\d+)?)/i; @@ -1010,16 +1014,26 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi return uri; } var parsed = new bitcore.URI(uri); - var addr = parsed.address.toString(); + + var addr = parsed.address ? parsed.address.toString() : ''; var message = parsed.message; - if (parsed.r) - return this.setFromPayPro(parsed.r); var amount = parsed.amount ? (parsed.amount.toFixed(0) * satToUnit).toFixed(this.unitDecimals) : 0; - this.setForm(addr, amount, message); - return addr; + + if (parsed.r) { + this.setFromPayPro(parsed.r, function(err) { + if (err && addr && amount) { + self.setForm(addr, amount, message); + return addr; + } + }); + } else { + this.setForm(addr, amount, message); + return addr; + } + }; this.onAddressChange = function(value) { diff --git a/src/js/services/uxLanguage.js b/src/js/services/uxLanguage.js index e0cb59ac0..a61a2974e 100644 --- a/src/js/services/uxLanguage.js +++ b/src/js/services/uxLanguage.js @@ -27,6 +27,7 @@ angular.module('copayApp.services') }, { name: '日本語', isoCode: 'ja', + useIdeograms: true, }, { name: 'Pусский', isoCode: 'ru', @@ -64,6 +65,12 @@ angular.module('copayApp.services') return root.getName(root.currentLanguage); }; + root.getCurrentLanguageInfo = function() { + return lodash.find(root.availableLanguages, { + 'isoCode': root.currentLanguage + }); + }; + root.getLanguages = function() { return root.availableLanguages; };