From af721f697e870d1203820efe5849fa98bf873559 Mon Sep 17 00:00:00 2001 From: Ivan Socolsky Date: Thu, 4 Dec 2014 15:55:50 -0300 Subject: [PATCH 1/2] added notification for wallet storage error --- js/models/Identity.js | 6 ++++++ js/services/identityService.js | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/js/models/Identity.js b/js/models/Identity.js index 33f267337..a2b6efff4 100644 --- a/js/models/Identity.js +++ b/js/models/Identity.js @@ -248,6 +248,12 @@ Identity.prototype.storeWallet = function(wallet, cb) { if (err) { log.error('Wallet:' + wallet.getName() + ' couldnt be stored:', err); log.error('Wallet:' + wallet.getName() + ' Size:', JSON.stringify(wallet.sizes())); + + if (err.match('OVERQUOTA')) { + self.emitAndKeepAlive('walletStorageError', w.getId(), 'Storage limits on remote server exceeded'); + } else { + self.emitAndKeepAlive('walletStorageError', w.getId(), err); + } } if (cb) return cb(err); diff --git a/js/services/identityService.js b/js/services/identityService.js index 584ab4615..9c2361ef5 100644 --- a/js/services/identityService.js +++ b/js/services/identityService.js @@ -307,6 +307,10 @@ angular.module('copayApp.services') // do nothing. this is handled 'on sync' on controller. }); + iden.on('walletStorageError', function (wid, message) { + notification.error('Error storing wallet', message); + }); + iden.on('closed', function() { delete $rootScope['wallet']; delete $rootScope['iden']; From 887e5ecd850268955bca79483cc2d379d3cbca0d Mon Sep 17 00:00:00 2001 From: Ivan Socolsky Date: Thu, 4 Dec 2014 17:36:31 -0300 Subject: [PATCH 2/2] emitting event --- js/models/Identity.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/js/models/Identity.js b/js/models/Identity.js index a2b6efff4..85c568508 100644 --- a/js/models/Identity.js +++ b/js/models/Identity.js @@ -237,6 +237,8 @@ Identity.prototype.retrieveWalletFromStorage = function(walletId, opts, cb) { * @param {Function} cb */ Identity.prototype.storeWallet = function(wallet, cb) { + var self = this; + preconditions.checkArgument(wallet && _.isObject(wallet)); wallet.setVersion(this.version); @@ -246,13 +248,13 @@ Identity.prototype.storeWallet = function(wallet, cb) { this.storage.setItem(key, val, function(err) { if (err) { - log.error('Wallet:' + wallet.getName() + ' couldnt be stored:', err); + log.error('Wallet:' + wallet.getName() + ' could not be stored:', err); log.error('Wallet:' + wallet.getName() + ' Size:', JSON.stringify(wallet.sizes())); if (err.match('OVERQUOTA')) { - self.emitAndKeepAlive('walletStorageError', w.getId(), 'Storage limits on remote server exceeded'); + self.emitAndKeepAlive('walletStorageError', wallet.getId(), 'Storage limits on remote server exceeded'); } else { - self.emitAndKeepAlive('walletStorageError', w.getId(), err); + self.emitAndKeepAlive('walletStorageError', wallet.getId(), err); } } if (cb) @@ -582,12 +584,9 @@ Identity.prototype.createWallet = function(opts, cb) { var self = this; var w = new walletClass(opts); - console.log(_.keys(self.wallets)); - console.log(w.getId()); - if (_.contains(_.keys(self.wallets), w.getId())) { + if (self.wallets[w.getId()]) { return cb('walletAlreadyExists'); } - self.wallets[w.getId()] = w; self.updateFocusedTimestamp(w.getId()); self.bindWallet(w);