Merge pull request #438 from yemel/fix/join-completed-wallet

Fix/join completed wallet
This commit is contained in:
Mario Colque 2014-05-20 12:22:48 -03:00
commit 164b40406a
4 changed files with 11 additions and 2 deletions

View file

@ -67,6 +67,8 @@ angular.module('copay.signin').controller('SigninController',
if (err || !w) { if (err || !w) {
if (err === 'joinError') if (err === 'joinError')
$rootScope.flashMessage = { message: 'Can not find peer'}; $rootScope.flashMessage = { message: 'Can not find peer'};
else if (err === 'walletFull')
$rootScope.flashMessage = { message: 'The wallet is full'};
else if (err === 'badSecret') else if (err === 'badSecret')
$rootScope.flashMessage = { message: 'Bad secret secret string', type: 'error'}; $rootScope.flashMessage = { message: 'Bad secret secret string', type: 'error'};
else else

View file

@ -200,8 +200,14 @@ WalletFactory.prototype.joinCreateSession = function(secret, nickname, passphras
self.network.cleanUp(); self.network.cleanUp();
self.network.start(opts, function() { self.network.start(opts, function() {
self.network.connectTo(s.pubKey); self.network.connectTo(s.pubKey);
// This is a hack to reconize if the connection was rejected or the peer wasn't there.
var connectedOnce = false;
self.network.on('connected', function(sender, data) {
connectedOnce = true;
});
self.network.on('onlyYou', function(sender, data) { self.network.on('onlyYou', function(sender, data) {
return cb('joinError'); return cb(connectedOnce ? 'walletFull' : 'joinError');
}); });
self.network.on('data', function(sender, data) { self.network.on('data', function(sender, data) {
if (data.type ==='walletId') { if (data.type ==='walletId') {

View file

@ -223,6 +223,7 @@ Network.prototype._setupConnectionHandlers = function(dataConn, toCopayerId) {
// The connecting peer send hello // The connecting peer send hello
if(toCopayerId) { if(toCopayerId) {
self.emit('connected');
self._sendHello(toCopayerId); self._sendHello(toCopayerId);
self._addConnectedCopayer(toCopayerId); self._addConnectedCopayer(toCopayerId);
} }

View file

@ -19,7 +19,7 @@ angular.module('copay.controllerUtils')
video.close(); video.close();
// Clear rootScope // Clear rootScope
for (var i in $rootScope) { for (var i in $rootScope) {
if (i.charAt(0) != '$') { if (i.charAt(0) != '$' && i != 'flashMessage') {
delete $rootScope[i]; delete $rootScope[i];
} }
} }