From b1851c658e80bfabf34742c39e9aacec62e6b55e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Thu, 5 Nov 2015 17:48:56 -0300 Subject: [PATCH 01/10] incluiding address book and transaction history cache in export file --- src/js/controllers/export.js | 128 ++++++++++++++++++++++-------- src/js/services/profileService.js | 61 ++++++++------ 2 files changed, 132 insertions(+), 57 deletions(-) diff --git a/src/js/controllers/export.js b/src/js/controllers/export.js index 185ee2505..f42ca34c7 100644 --- a/src/js/controllers/export.js +++ b/src/js/controllers/export.js @@ -1,44 +1,106 @@ 'use strict'; angular.module('copayApp.controllers').controller('backupController', - function($rootScope, $scope, $timeout, backupService, profileService, isMobile, notification, go, gettext, gettextCatalog) { - this.error = null; - this.success = null; + function($rootScope, $scope, $timeout, $log, backupService, storageService, profileService, isMobile, notification, go, gettext, gettextCatalog) { + var self = this; + + self.error = null; + self.success = null; var fc = profileService.focusedClient; - this.isEncrypted = fc.isPrivKeyEncrypted(); + self.isEncrypted = fc.isPrivKeyEncrypted(); - this.downloadWalletBackup = function() { - var self = this; - var opts = { - noSign: $scope.noSign, - }; - backupService.walletDownload(this.password, opts, function(err) { + self.downloadWalletBackup = function() { + self.getMetaData(function(err, txsFromLocal, localAddressBook) { if (err) { self.error = true; - return ; + return; } - $rootScope.$emit('Local/BackupDone'); - notification.success(gettext('Success'), gettext('Encrypted export file saved')); - go.walletHome(); + var opts = { + noSign: $scope.noSign, + historyCache: txsFromLocal, + addressBook: localAddressBook + }; + + backupService.walletDownload(self.password, opts, function(err) { + if (err) { + self.error = true; + return; + } + + $rootScope.$emit('Local/BackupDone'); + notification.success(gettext('Success'), gettext('Encrypted export file saved')); + go.walletHome(); + }); }); }; - this.getBackup = function() { - var opts = { - noSign: $scope.noSign, - }; + self.getMetaData = function() { + self.getHistoryCache(function(err, txsFromLocal) { + if (err) { + return cb(err); + } + self.getAddressbook(function(err, localAddressBook) { + if (err) { + return cb(err); + } + return cb(null, txsFromLocal, localAddressBook) + }); + }); + } - var ew = backupService.walletExport(this.password, opts); - if (!ew) { - this.error = true; - } else { - this.error = false; - } - return ew; - }; + self.getHistoryCache = function(cb) { + storageService.getTxHistory(fc.credentials.walletId, function(err, txs) { + if (err) return cb(err); - this.viewWalletBackup = function() { + var localTxs = []; + + try { + localTxs = JSON.parse(txs); + } catch (ex) { + $log.warn(ex); + } + return cb(null, localTxs); + }); + } + + self.getAddressbook = function(cb) { + storageService.getAddressbook(fc.credentials.network, function(err, addressBook) { + if (err) return cb(err); + + var localAddressBook = []; + try { + localAddressBook = JSON.parse(addressBook); + } catch (ex) { + $log.warn(ex); + } + return cb(null, localAddressBook); + }); + } + + self.getBackup = function() { + self.getMetaData(function(err, txsFromLocal, localAddressBook) { + if (err) { + self.error = true; + return; + } + var opts = { + noSign: $scope.noSign, + historyCache: txsFromLocal, + addressBook: localAddressBook + }; + + var ew = backupService.walletExport(self.password, opts); + if (!ew) { + self.error = true; + } else { + self.error = false; + } + return ew; + }); + } + + self.viewWalletBackup = function() { var self = this; $timeout(function() { var ew = self.getBackup(); @@ -48,15 +110,15 @@ angular.module('copayApp.controllers').controller('backupController', }, 100); }; - this.copyWalletBackup = function() { - var ew = this.getBackup(); + self.copyWalletBackup = function() { + var ew = self.getBackup(); if (!ew) return; window.cordova.plugins.clipboard.copy(ew); window.plugins.toast.showShortCenter(gettextCatalog.getString('Copied to clipboard')); $rootScope.$emit('Local/BackupDone'); }; - this.sendWalletBackup = function() { + self.sendWalletBackup = function() { var fc = profileService.focusedClient; if (isMobile.Android() || isMobile.Windows()) { window.ignoreMobilePause = true; @@ -66,10 +128,10 @@ angular.module('copayApp.controllers').controller('backupController', if (fc.alias) { name = fc.alias + ' [' + name + ']'; } - var ew = this.getBackup(); + var ew = self.getBackup(); if (!ew) return; - if( $scope.noSign) + if ($scope.noSign) name = name + '(No Private Key)'; var properties = { @@ -81,4 +143,4 @@ angular.module('copayApp.controllers').controller('backupController', window.plugin.email.open(properties); }; - }); + }); \ No newline at end of file diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index e81b3e633..172dcfccc 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -11,7 +11,7 @@ angular.module('copayApp.services') root.focusedClient = null; root.walletClients = {}; - root.Utils = bwcService.getUtils(); + root.Utils = bwcService.getUtils(); root.formatAmount = function(amount) { var config = configService.getSync().wallet.settings; if (config.unitCode == 'sat') return amount; @@ -276,8 +276,8 @@ angular.module('copayApp.services') // check if exist if (lodash.find(root.profile.credentials, { - 'walletId': walletData.walletId - })) { + 'walletId': walletData.walletId + })) { return cb(gettext('Cannot join the same wallet more that once')); } } catch (ex) { @@ -337,32 +337,45 @@ angular.module('copayApp.services') }); }; + root.setMetaData = function(walletClient, cb) { + storageService.setAddressbook(walletClient.credentials.network, walletClient.credentials.historyCache, function(err) { + if (err) return cb(err); + storageService.setTxHistory(walletClient.credentials.historyCache, walletClient.credentials.walletId, function(err) { + if (err) return cb(err); + return cb(null); + }); + }); + } + root._addWalletClient = function(walletClient, opts, cb) { var walletId = walletClient.credentials.walletId; - - // check if exist - var w = lodash.find(root.profile.credentials, { - 'walletId': walletId - }); - if (w) { - return cb(gettext('Wallet already in Copay' + ": ") + w.walletName); - } - - var defaults = configService.getDefaults(); - var bwsFor = {}; - bwsFor[walletId] = opts.bwsurl || defaults.bws.url; - - configService.set({ - bwsFor: bwsFor, - }, function(err) { + root.setMetaData(walletClient, function(err) { if (err) console.log(err); - root.profile.credentials.push(JSON.parse(walletClient.export())); - root.setWalletClients(); + // check if exist + var w = lodash.find(root.profile.credentials, { + 'walletId': walletId + }); + if (w) { + return cb(gettext('Wallet already in Copay' + ": ") + w.walletName); + } - root.setAndStoreFocus(walletId, function() { - storageService.storeProfile(root.profile, function(err) { - return cb(err, walletId); + var defaults = configService.getDefaults(); + var bwsFor = {}; + bwsFor[walletId] = opts.bwsurl || defaults.bws.url; + + configService.set({ + bwsFor: bwsFor, + }, function(err) { + if (err) console.log(err); + + root.profile.credentials.push(JSON.parse(walletClient.export())); + root.setWalletClients(); + + root.setAndStoreFocus(walletId, function() { + storageService.storeProfile(root.profile, function(err) { + return cb(err, walletId); + }); }); }); }); From 66392d51f4a539d9ff92c62a155e04b8eb6b7fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Fri, 6 Nov 2015 11:26:50 -0300 Subject: [PATCH 02/10] taking metadata from file --- src/js/controllers/export.js | 2 +- src/js/services/profileService.js | 59 ++++++++++++++++--------------- 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/src/js/controllers/export.js b/src/js/controllers/export.js index f42ca34c7..ad050d5b5 100644 --- a/src/js/controllers/export.js +++ b/src/js/controllers/export.js @@ -35,7 +35,7 @@ angular.module('copayApp.controllers').controller('backupController', }); }; - self.getMetaData = function() { + self.getMetaData = function(cb) { self.getHistoryCache(function(err, txsFromLocal) { if (err) { return cb(err); diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 172dcfccc..db48ae83e 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -337,10 +337,10 @@ angular.module('copayApp.services') }); }; - root.setMetaData = function(walletClient, cb) { - storageService.setAddressbook(walletClient.credentials.network, walletClient.credentials.historyCache, function(err) { + root.setMetaData = function(walletClient, addressBook, historyCache, cb) { + storageService.setAddressbook(walletClient.credentials.network, addressBook, function(err) { if (err) return cb(err); - storageService.setTxHistory(walletClient.credentials.historyCache, walletClient.credentials.walletId, function(err) { + storageService.setTxHistory(historyCache, walletClient.credentials.walletId, function(err) { if (err) return cb(err); return cb(null); }); @@ -349,33 +349,30 @@ angular.module('copayApp.services') root._addWalletClient = function(walletClient, opts, cb) { var walletId = walletClient.credentials.walletId; - root.setMetaData(walletClient, function(err) { + + // check if exist + var w = lodash.find(root.profile.credentials, { + 'walletId': walletId + }); + if (w) { + return cb(gettext('Wallet already in Copay' + ": ") + w.walletName); + } + + var defaults = configService.getDefaults(); + var bwsFor = {}; + bwsFor[walletId] = opts.bwsurl || defaults.bws.url; + + configService.set({ + bwsFor: bwsFor, + }, function(err) { if (err) console.log(err); - // check if exist - var w = lodash.find(root.profile.credentials, { - 'walletId': walletId - }); - if (w) { - return cb(gettext('Wallet already in Copay' + ": ") + w.walletName); - } + root.profile.credentials.push(JSON.parse(walletClient.export())); + root.setWalletClients(); - var defaults = configService.getDefaults(); - var bwsFor = {}; - bwsFor[walletId] = opts.bwsurl || defaults.bws.url; - - configService.set({ - bwsFor: bwsFor, - }, function(err) { - if (err) console.log(err); - - root.profile.credentials.push(JSON.parse(walletClient.export())); - root.setWalletClients(); - - root.setAndStoreFocus(walletId, function() { - storageService.storeProfile(root.profile, function(err) { - return cb(err, walletId); - }); + root.setAndStoreFocus(walletId, function() { + storageService.storeProfile(root.profile, function(err) { + return cb(err, walletId); }); }); }); @@ -384,7 +381,7 @@ angular.module('copayApp.services') root.importWallet = function(str, opts, cb) { if (opts.bwsurl) bwcService.setBaseUrl(opts.bwsurl); - + console.log(str); var walletClient = bwcService.getClient(); $log.debug('Importing Wallet:', opts); @@ -396,7 +393,11 @@ angular.module('copayApp.services') } catch (err) { return cb(gettext('Could not import. Check input file and password')); } - root._addWalletClient(walletClient, opts, cb); + root.setMetaData(walletClient, str.addressBook, str.historyCache, function(err) { + if (err) console.log(err); + + root._addWalletClient(walletClient, opts, cb); + }); }; root.importExtendedPrivateKey = function(xPrivKey, opts, cb) { From d669f86c7db31d787fb484810f961fa2bbe1e50d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Fri, 6 Nov 2015 16:04:35 -0300 Subject: [PATCH 03/10] solve empty addrbook and histCache bug --- src/js/services/profileService.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index db48ae83e..a99fe69ef 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -381,7 +381,7 @@ angular.module('copayApp.services') root.importWallet = function(str, opts, cb) { if (opts.bwsurl) bwcService.setBaseUrl(opts.bwsurl); - console.log(str); + var walletClient = bwcService.getClient(); $log.debug('Importing Wallet:', opts); @@ -393,7 +393,10 @@ angular.module('copayApp.services') } catch (err) { return cb(gettext('Could not import. Check input file and password')); } - root.setMetaData(walletClient, str.addressBook, str.historyCache, function(err) { + var addressBook = str.addressBook || []; + var historyCache = str.historyCache ||  []; + + root.setMetaData(walletClient, addressBook, historyCache, function(err) { if (err) console.log(err); root._addWalletClient(walletClient, opts, cb); From 0d81cf8e9cc15ce0eb22bbccbbacd0916a9c8545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Fri, 6 Nov 2015 17:45:23 -0300 Subject: [PATCH 04/10] fix --- src/js/services/backupService.js | 12 +++++++++++- src/js/services/profileService.js | 8 ++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/js/services/backupService.js b/src/js/services/backupService.js index de47cf5a2..041015053 100644 --- a/src/js/services/backupService.js +++ b/src/js/services/backupService.js @@ -53,6 +53,14 @@ angular.module('copayApp.services') return cb(); }; + root.addMetadata = function(b, opts) { + + b = JSON.parse(b); + if (opts.historyCache) b.historyCache = opts.historyCache; + if (opts.addressBook) b.addressBook = opts.addressBook; + return JSON.stringify(b); + } + root.walletExport = function(password, opts) { if (!password) { return null; @@ -61,6 +69,8 @@ angular.module('copayApp.services') try { opts = opts || {}; var b = fc.export(opts); + if (opts.historyCache || opts.addressBook) b = root.addMetadata(b, opts); + var e = sjcl.encrypt(password, b, { iter: 10000 }); @@ -82,4 +92,4 @@ angular.module('copayApp.services') _download(ew, filename, cb) }; return root; - }); + }); \ No newline at end of file diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index a99fe69ef..d54d045b3 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -338,9 +338,10 @@ angular.module('copayApp.services') }; root.setMetaData = function(walletClient, addressBook, historyCache, cb) { - storageService.setAddressbook(walletClient.credentials.network, addressBook, function(err) { + + storageService.setAddressbook(walletClient.credentials.network, JSON.stringify(addressBook), function(err) { if (err) return cb(err); - storageService.setTxHistory(historyCache, walletClient.credentials.walletId, function(err) { + storageService.setTxHistory(JSON.stringify(historyCache), walletClient.credentials.walletId, function(err) { if (err) return cb(err); return cb(null); }); @@ -393,6 +394,9 @@ angular.module('copayApp.services') } catch (err) { return cb(gettext('Could not import. Check input file and password')); } + + str = JSON.parse(str); + var addressBook = str.addressBook || []; var historyCache = str.historyCache ||  []; From 1d3d0ff5ed13f6b54750326e130628f20d9e9445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Mon, 9 Nov 2015 10:58:10 -0300 Subject: [PATCH 05/10] fix set global address book --- src/js/services/profileService.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index d54d045b3..9e85e5c6f 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -338,12 +338,16 @@ angular.module('copayApp.services') }; root.setMetaData = function(walletClient, addressBook, historyCache, cb) { - - storageService.setAddressbook(walletClient.credentials.network, JSON.stringify(addressBook), function(err) { - if (err) return cb(err); - storageService.setTxHistory(JSON.stringify(historyCache), walletClient.credentials.walletId, function(err) { + storageService.getAddressbook(walletClient.credentials.network, function(err, localAddressBook) { + localAddressBook = JSON.parse(localAddressBook); + if (!localAddressBook) localAddressBook = {}; + addressBook = lodash.merge(addressBook, localAddressBook); + storageService.setAddressbook(walletClient.credentials.network, JSON.stringify(addressBook), function(err) { if (err) return cb(err); - return cb(null); + storageService.setTxHistory(JSON.stringify(historyCache), walletClient.credentials.walletId, function(err) { + if (err) return cb(err); + return cb(null); + }); }); }); } @@ -397,12 +401,11 @@ angular.module('copayApp.services') str = JSON.parse(str); - var addressBook = str.addressBook || []; + var addressBook = str.addressBook || {}; var historyCache = str.historyCache ||  []; root.setMetaData(walletClient, addressBook, historyCache, function(err) { if (err) console.log(err); - root._addWalletClient(walletClient, opts, cb); }); }; From 5eea2869a3f69bad7ef4af68f16f3db3c954a75a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Tue, 10 Nov 2015 12:34:03 -0300 Subject: [PATCH 06/10] fix phone backup --- src/js/controllers/export.js | 54 ++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/js/controllers/export.js b/src/js/controllers/export.js index ad050d5b5..2bdf21337 100644 --- a/src/js/controllers/export.js +++ b/src/js/controllers/export.js @@ -78,11 +78,11 @@ angular.module('copayApp.controllers').controller('backupController', }); } - self.getBackup = function() { + self.getBackup = function(cb) { self.getMetaData(function(err, txsFromLocal, localAddressBook) { if (err) { self.error = true; - return; + return cb(null); } var opts = { noSign: $scope.noSign, @@ -96,26 +96,30 @@ angular.module('copayApp.controllers').controller('backupController', } else { self.error = false; } - return ew; + return cb(ew); }); } self.viewWalletBackup = function() { var self = this; $timeout(function() { - var ew = self.getBackup(); - if (!ew) return; - self.backupWalletPlainText = ew; - $rootScope.$emit('Local/BackupDone'); + self.getBackup(function(backup) { + var ew = backup; + if (!ew) return; + self.backupWalletPlainText = ew; + $rootScope.$emit('Local/BackupDone'); + }); }, 100); }; self.copyWalletBackup = function() { - var ew = self.getBackup(); - if (!ew) return; - window.cordova.plugins.clipboard.copy(ew); - window.plugins.toast.showShortCenter(gettextCatalog.getString('Copied to clipboard')); - $rootScope.$emit('Local/BackupDone'); + self.getBackup(function(backup) { + var ew = backup; + if (!ew) return; + window.cordova.plugins.clipboard.copy(ew); + window.plugins.toast.showShortCenter(gettextCatalog.getString('Copied to clipboard')); + $rootScope.$emit('Local/BackupDone'); + }); }; self.sendWalletBackup = function() { @@ -128,19 +132,21 @@ angular.module('copayApp.controllers').controller('backupController', if (fc.alias) { name = fc.alias + ' [' + name + ']'; } - var ew = self.getBackup(); - if (!ew) return; + self.getBackup(function(backup) { + var ew = backup; + if (!ew) return; - if ($scope.noSign) - name = name + '(No Private Key)'; + if ($scope.noSign) + name = name + '(No Private Key)'; - var properties = { - subject: 'Copay Wallet Backup: ' + name, - body: 'Here is the encrypted backup of the wallet ' + name + ': \n\n' + ew + '\n\n To import this backup, copy all text between {...}, including the symbols {}', - isHtml: false - }; - $rootScope.$emit('Local/BackupDone'); - window.plugin.email.open(properties); + var properties = { + subject: 'Copay Wallet Backup: ' + name, + body: 'Here is the encrypted backup of the wallet ' + name + ': \n\n' + ew + '\n\n To import this backup, copy all text between {...}, including the symbols {}', + isHtml: false + }; + $rootScope.$emit('Local/BackupDone'); + window.plugin.email.open(properties); + }); }; - }); \ No newline at end of file + }); From 934a42f2bd93bf0497d1a3b1de86bb3690eb9472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Tue, 10 Nov 2015 12:49:12 -0300 Subject: [PATCH 07/10] refactor --- src/js/controllers/export.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/js/controllers/export.js b/src/js/controllers/export.js index 2bdf21337..c64e2d5ea 100644 --- a/src/js/controllers/export.js +++ b/src/js/controllers/export.js @@ -37,13 +37,11 @@ angular.module('copayApp.controllers').controller('backupController', self.getMetaData = function(cb) { self.getHistoryCache(function(err, txsFromLocal) { - if (err) { - return cb(err); - } + if (err) return cb(err); + self.getAddressbook(function(err, localAddressBook) { - if (err) { - return cb(err); - } + if (err) return cb(err); + return cb(null, txsFromLocal, localAddressBook) }); }); @@ -60,6 +58,8 @@ angular.module('copayApp.controllers').controller('backupController', } catch (ex) { $log.warn(ex); } + if (!localTxs[0]) return cb(null, null); + return cb(null, localTxs); }); } @@ -74,6 +74,7 @@ angular.module('copayApp.controllers').controller('backupController', } catch (ex) { $log.warn(ex); } + return cb(null, localAddressBook); }); } From 3ce8806286cd69855ad5adc6669c8620d9fb32ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Wed, 11 Nov 2015 10:37:07 -0300 Subject: [PATCH 08/10] fix android import bug --- src/js/services/profileService.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 9e85e5c6f..223443458 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -339,9 +339,13 @@ angular.module('copayApp.services') root.setMetaData = function(walletClient, addressBook, historyCache, cb) { storageService.getAddressbook(walletClient.credentials.network, function(err, localAddressBook) { - localAddressBook = JSON.parse(localAddressBook); - if (!localAddressBook) localAddressBook = {}; - addressBook = lodash.merge(addressBook, localAddressBook); + var localAddressBook1 = {}; + try { + localAddressBook1 = JSON.parse(localAddressBook); + } catch (ex) { + $log.warn(ex); + } + var mergeAddressBook = lodash.merge(addressBook, localAddressBook1); storageService.setAddressbook(walletClient.credentials.network, JSON.stringify(addressBook), function(err) { if (err) return cb(err); storageService.setTxHistory(JSON.stringify(historyCache), walletClient.credentials.walletId, function(err) { From f3251a50572fd802b874f8133384226443a06a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Wed, 11 Nov 2015 11:25:03 -0300 Subject: [PATCH 09/10] do not import address book if wallet already in Copay --- src/js/services/profileService.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 223443458..f159deeaf 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -408,9 +408,12 @@ angular.module('copayApp.services') var addressBook = str.addressBook || {}; var historyCache = str.historyCache ||  []; - root.setMetaData(walletClient, addressBook, historyCache, function(err) { - if (err) console.log(err); - root._addWalletClient(walletClient, opts, cb); + root._addWalletClient(walletClient, opts, function(err, walletId) { + if (err) return cb(err); + root.setMetaData(walletClient, addressBook, historyCache, function(error) { + if (error) console.log(error); + return cb(err, walletId); + }); }); }; From 3ae7b314d576562d43d7d7720c2460b1b5785be3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Wed, 11 Nov 2015 18:54:41 -0300 Subject: [PATCH 10/10] fix rebase problem --- public/views/export.html | 8 ++++++++ src/js/controllers/export.js | 11 ++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/public/views/export.html b/public/views/export.html index 756ea1e0a..2d5a2a558 100644 --- a/public/views/export.html +++ b/public/views/export.html @@ -45,6 +45,14 @@

+ +
    +
  • + + Include address book and history cache +
  • +
+
  • diff --git a/src/js/controllers/export.js b/src/js/controllers/export.js index c64e2d5ea..502d9e37d 100644 --- a/src/js/controllers/export.js +++ b/src/js/controllers/export.js @@ -6,12 +6,12 @@ angular.module('copayApp.controllers').controller('backupController', self.error = null; self.success = null; - + $scope.metaData = true; var fc = profileService.focusedClient; self.isEncrypted = fc.isPrivKeyEncrypted(); self.downloadWalletBackup = function() { - self.getMetaData(function(err, txsFromLocal, localAddressBook) { + self.getMetaData($scope.metaData, function(err, txsFromLocal, localAddressBook) { if (err) { self.error = true; return; @@ -28,14 +28,14 @@ angular.module('copayApp.controllers').controller('backupController', return; } - $rootScope.$emit('Local/BackupDone'); notification.success(gettext('Success'), gettext('Encrypted export file saved')); go.walletHome(); }); }); }; - self.getMetaData = function(cb) { + self.getMetaData = function(metaData, cb) { + if (metaData == false) return cb(); self.getHistoryCache(function(err, txsFromLocal) { if (err) return cb(err); @@ -108,7 +108,6 @@ angular.module('copayApp.controllers').controller('backupController', var ew = backup; if (!ew) return; self.backupWalletPlainText = ew; - $rootScope.$emit('Local/BackupDone'); }); }, 100); }; @@ -119,7 +118,6 @@ angular.module('copayApp.controllers').controller('backupController', if (!ew) return; window.cordova.plugins.clipboard.copy(ew); window.plugins.toast.showShortCenter(gettextCatalog.getString('Copied to clipboard')); - $rootScope.$emit('Local/BackupDone'); }); }; @@ -145,7 +143,6 @@ angular.module('copayApp.controllers').controller('backupController', body: 'Here is the encrypted backup of the wallet ' + name + ': \n\n' + ew + '\n\n To import this backup, copy all text between {...}, including the symbols {}', isHtml: false }; - $rootScope.$emit('Local/BackupDone'); window.plugin.email.open(properties); }); };