From 3607056d64f51f0355f9b5088c285354678413c0 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 15 Dec 2014 09:45:31 -0300 Subject: [PATCH 1/7] fix import a plain text backup --- js/controllers/importProfile.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/js/controllers/importProfile.js b/js/controllers/importProfile.js index 3382673da..15d76cd4e 100644 --- a/js/controllers/importProfile.js +++ b/js/controllers/importProfile.js @@ -18,7 +18,6 @@ angular.module('copayApp.controllers').controller('ImportProfileController', var updateStatus = function(status) { $scope.importStatus = status; - $scope.$digest(); } var _importBackup = function(str) { @@ -66,10 +65,12 @@ angular.module('copayApp.controllers').controller('ImportProfileController', } $scope.loading = true; - if (backupFile) { - reader.readAsBinaryString(backupFile); - } else { - _importBackup(backupText); - } + $timeout(function() { + if (backupFile) { + reader.readAsBinaryString(backupFile); + } else { + _importBackup(backupText); + } + }, 1); }; }); From e5f4844ca5c01fcda9e46166a91b2a32a362dfc2 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 15 Dec 2014 10:48:41 -0300 Subject: [PATCH 2/7] fix import wallet --- js/controllers/import.js | 30 +++++++++++++++--------------- js/controllers/importProfile.js | 4 +++- js/models/Compatibility.js | 1 + views/import.html | 10 +++++++--- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/js/controllers/import.js b/js/controllers/import.js index f1fcc7e0f..7089a1ccc 100644 --- a/js/controllers/import.js +++ b/js/controllers/import.js @@ -22,7 +22,6 @@ angular.module('copayApp.controllers').controller('ImportController', var updateStatus = function(status) { $scope.importStatus = status; - $scope.$digest(); } @@ -80,19 +79,20 @@ angular.module('copayApp.controllers').controller('ImportController', $scope.importOpts.skipFields = skipFields; - if (backupFile) { - reader.readAsBinaryString(backupFile); - } else { - updateStatus('Importing wallet - Procesing backup...'); - identityService.importWallet(encryptedObj, $scope.password, $scope.importOpts, function(err) { - if (err) { - $scope.loading = false; - $scope.error = 'Could not read wallet. Please check your password'; - $rootScope.$digest(); - return; - } - copay.Compatibility.deleteOldWallet(backupOldWallet); - }); - } + $timeout(function() { + if (backupFile) { + reader.readAsBinaryString(backupFile); + } else { + updateStatus('Importing wallet - Procesing backup...'); + identityService.importWallet(backupText, $scope.password, $scope.importOpts, function(err) { + if (err) { + $scope.loading = false; + $scope.error = 'Could not read wallet. Please check your password'; + $rootScope.$digest(); + return; + } + }); + } + }, 1); }; }); diff --git a/js/controllers/importProfile.js b/js/controllers/importProfile.js index 15d76cd4e..4ea348626 100644 --- a/js/controllers/importProfile.js +++ b/js/controllers/importProfile.js @@ -50,8 +50,10 @@ angular.module('copayApp.controllers').controller('ImportProfileController', }; $scope.import = function(form) { + $scope.loading = true; if (form.$invalid) { + $scope.loading = false; $scope.error = 'Please enter the required fields'; return; } @@ -60,11 +62,11 @@ angular.module('copayApp.controllers').controller('ImportProfileController', var password = form.password.$modelValue; if (!backupFile && !backupText) { + $scope.loading = false; $scope.error = 'Please, select your backup file'; return; } - $scope.loading = true; $timeout(function() { if (backupFile) { reader.readAsBinaryString(backupFile); diff --git a/js/models/Compatibility.js b/js/models/Compatibility.js index bab4f5b57..94da67c59 100644 --- a/js/models/Compatibility.js +++ b/js/models/Compatibility.js @@ -247,6 +247,7 @@ Compatibility.kdf = function(password) { }; Compatibility.deleteOldWallet = function(walletObj) { +console.log('[Compatibility.js:249]',walletObj); //TODO localStorage.removeItem('wallet::' + walletObj.id + '_' + walletObj.name); log.info('Old wallet ' + walletObj.name + ' deleted: ' + walletObj.id); }; diff --git a/views/import.html b/views/import.html index 6a37a559a..703aee06c 100644 --- a/views/import.html +++ b/views/import.html @@ -13,11 +13,15 @@
-
- {{error|translate}} +
+
+ +
+ + {{error|translate}} +
-
Choose backup file from your computer From fe0c061eaac794289ed3198a64e9ae80d1c8c3db Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 15 Dec 2014 12:09:11 -0300 Subject: [PATCH 3/7] set backup done when view the plain text bakcup --- js/services/backupService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/services/backupService.js b/js/services/backupService.js index 88a272184..f8a445907 100644 --- a/js/services/backupService.js +++ b/js/services/backupService.js @@ -72,12 +72,12 @@ BackupService.prototype.walletDownload = function(wallet) { }; BackupService.prototype.profileEncrypted = function(iden) { + iden.setBackupDone(); return iden.exportEncryptedWithWalletInfo(iden.password); } BackupService.prototype.profileDownload = function(iden) { var ew = this.profileEncrypted(iden); - iden.setBackupDone(); var name = iden.fullName; var filename = name + '-profile.json'; this._download(ew, name, filename) From 34b5dc3298d3dce7f252158feb6d16691cf3b590 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 15 Dec 2014 12:09:57 -0300 Subject: [PATCH 4/7] If mobile app, import from a plain text backup --- js/controllers/import.js | 3 ++- js/controllers/importProfile.js | 3 ++- js/controllers/profile.js | 5 +++-- views/import.html | 4 ++-- views/importProfile.html | 4 ++-- views/modals/wallet-info.html | 4 ++-- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/js/controllers/import.js b/js/controllers/import.js index 7089a1ccc..f0df43bee 100644 --- a/js/controllers/import.js +++ b/js/controllers/import.js @@ -1,12 +1,13 @@ 'use strict'; angular.module('copayApp.controllers').controller('ImportController', - function($scope, $rootScope, $location, $timeout, identityService, notification, isMobile, Compatibility) { + function($scope, $rootScope, $location, $timeout, identityService, notification, isMobile, isCordova, Compatibility) { $rootScope.title = 'Import wallet'; $scope.importStatus = 'Importing wallet - Reading backup...'; $scope.hideAdv = true; $scope.is_iOS = isMobile.iOS(); + $scope.isCordova = isCordova; $scope.importOpts = {}; window.ignoreMobilePause = true; diff --git a/js/controllers/importProfile.js b/js/controllers/importProfile.js index 4ea348626..bd9dd0361 100644 --- a/js/controllers/importProfile.js +++ b/js/controllers/importProfile.js @@ -1,11 +1,12 @@ 'use strict'; angular.module('copayApp.controllers').controller('ImportProfileController', - function($scope, $rootScope, $location, $timeout, notification, isMobile, identityService) { + function($scope, $rootScope, $location, $timeout, notification, isMobile, isCordova, identityService) { $scope.title = 'Import a backup'; $scope.importStatus = 'Importing wallet - Reading backup...'; $scope.hideAdv = true; $scope.is_iOS = isMobile.iOS(); + $scope.isCordova = isCordova; window.ignoreMobilePause = true; $scope.$on('$destroy', function() { diff --git a/js/controllers/profile.js b/js/controllers/profile.js index 58828bf0d..e38d57473 100644 --- a/js/controllers/profile.js +++ b/js/controllers/profile.js @@ -1,8 +1,8 @@ 'use strict'; -angular.module('copayApp.controllers').controller('ProfileController', function($scope, $rootScope, $location, $modal, $filter, $timeout, backupService, identityService, isMobile) { +angular.module('copayApp.controllers').controller('ProfileController', function($scope, $rootScope, $location, $modal, $filter, $timeout, backupService, identityService, isMobile, isCordova) { $scope.username = $rootScope.iden.getName(); $scope.isSafari = isMobile.Safari(); - $scope.isCordova = !!window.cordova; + $scope.isCordova = isCordova; $rootScope.title = 'Profile'; $scope.hideAdv = true; @@ -62,6 +62,7 @@ angular.module('copayApp.controllers').controller('ProfileController', function( var ModalInstanceCtrl = function($scope, $modalInstance) { if (!w) return; $scope.isSafari = isMobile.Safari(); + $scope.isCordova = isCordova; $scope.item = w; $scope.error = null; $scope.success = null; diff --git a/views/import.html b/views/import.html index 703aee06c..790cb08ae 100644 --- a/views/import.html +++ b/views/import.html @@ -22,14 +22,14 @@
-
+
Choose backup file from your computer
-
+
diff --git a/views/importProfile.html b/views/importProfile.html index f301a3709..f806f72b9 100644 --- a/views/importProfile.html +++ b/views/importProfile.html @@ -22,14 +22,14 @@
-
+
-
+