From 74174f977545842a4d92ebe514f347a583cd5519 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 16 Oct 2014 15:10:13 -0300 Subject: [PATCH] Fix backup for iOS --- css/src/main.css | 7 +++++++ js/controllers/copayers.js | 9 +++++++++ js/controllers/more.js | 9 +++++++++ js/services/backupService.js | 10 +++++++--- views/copayers.html | 8 ++++++-- views/more.html | 8 ++++++-- 6 files changed, 44 insertions(+), 7 deletions(-) diff --git a/css/src/main.css b/css/src/main.css index df285847f..381867fac 100644 --- a/css/src/main.css +++ b/css/src/main.css @@ -128,6 +128,13 @@ input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill, inpu -webkit-box-shadow: 0 0 0px 1000px white inset; } +.backup-plain-text { + font-size: 10px; + border: 1px solid #ccc; + padding: 10px; + margin: 10px 0; +} + .status { font-weight: 700; -moz-box-shadow: inset 0px -1px 1px 0px rgba(159,47,34,0.30); diff --git a/js/controllers/copayers.js b/js/controllers/copayers.js index 43721afb7..10be13a54 100644 --- a/js/controllers/copayers.js +++ b/js/controllers/copayers.js @@ -5,6 +5,15 @@ angular.module('copayApp.controllers').controller('CopayersController', $scope.isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0; $scope.hideAdv = true; + $scope.sendEmail = function(backupPlainText) { + var w = $rootScope.wallet; + var link = 'mailto:' + + '?subject=' + escape(backupService.getFilename(w)) + + '&body=' + escape(backupPlainText) + ''; + + window.location.href = link; + }; + $scope.skipBackup = function() { var w = $rootScope.wallet; w.setBackupReady(true); diff --git a/js/controllers/more.js b/js/controllers/more.js index 6b4fb4f51..a48bfc5aa 100644 --- a/js/controllers/more.js +++ b/js/controllers/more.js @@ -27,6 +27,15 @@ angular.module('copayApp.controllers').controller('MoreController', decimals: 8 }]; + $scope.sendEmail = function(backupPlainText) { + var w = $rootScope.wallet; + var link = 'mailto:' + + '?subject=' + escape(backupService.getFilename(w)) + + '&body=' + escape(backupPlainText) + ''; + + window.location.href = link; + }; + $scope.selectedAlternative = { name: w.settings.alternativeName, isoCode: w.settings.alternativeIsoCode diff --git a/js/services/backupService.js b/js/services/backupService.js index 591fc3eb9..58b033d2f 100644 --- a/js/services/backupService.js +++ b/js/services/backupService.js @@ -17,11 +17,15 @@ BackupService.prototype.getBackup = function(wallet) { return wallet.toEncryptedObj(); }; -BackupService.prototype.download = function(wallet) { - var ew = this.getBackup(wallet); +BackupService.prototype.getFilename = function(wallet) { var walletName = this.getName(wallet); var copayerName = this.getCopayer(wallet); - var filename = (copayerName ? copayerName + '-' : '') + walletName + '-keybackup.json.aes'; + return (copayerName ? copayerName + '-' : '') + walletName + '-keybackup.json.aes'; +}; + +BackupService.prototype.download = function(wallet) { + var ew = this.getBackup(wallet); + var filename = this.getFilename(wallet); this.notifications.success('Backup created', 'Encrypted backup file saved'); var blob = new Blob([ew], { diff --git a/views/copayers.html b/views/copayers.html index c24904d74..7ce91cec7 100644 --- a/views/copayers.html +++ b/views/copayers.html @@ -120,12 +120,16 @@ yet to backup the wallet.
-
+ Copy to clipboard +
Copy this text as it is in a safe place (notepad or email)
- Copy this text as it is in a safe place (notepad or email) +
{{backupPlainText}}
+ +
Warning: Chrome for iOS remove some symbols from backup, please use only Safari on iOS
+
Warning: Chrome for iOS removes some symbols from backup when opening Gmail client, please use only Safari on iOS (it open native Email application)