diff --git a/js/connection.js b/js/connection.js index 590606c..a876ee6 100644 --- a/js/connection.js +++ b/js/connection.js @@ -17,6 +17,7 @@ weechat.factory('connection', // Takes care of the connection and websocket hooks var connect = function (host, port, passwd, ssl, noCompression, successCallback, failCallback) { + $rootScope.passwordError = false; connectionData = [host, port, passwd, ssl, noCompression]; var proto = ssl ? 'wss' : 'ws'; // If host is an IPv6 literal wrap it in brackets @@ -98,11 +99,8 @@ weechat.factory('connection', $log.info("Connected to relay"); $rootScope.connected = true; }, - function() { - // Connection got closed, lets check if we ever was connected successfully - if (!$rootScope.waseverconnected) { - $rootScope.passwordError = true; - } + function(e) { + handleWrongPassword(); } ); @@ -121,12 +119,14 @@ weechat.factory('connection', * Handles websocket disconnection */ $log.info("Disconnected from relay"); + $rootScope.$emit('relayDisconnect'); if ($rootScope.userdisconnect || !$rootScope.waseverconnected) { handleClose(evt); $rootScope.userdisconnect = false; } else { reconnect(evt); } + handleWrongPassword(); }; var handleClose = function (evt) { @@ -140,6 +140,14 @@ weechat.factory('connection', } }; + var handleWrongPassword = function() { + // Connection got closed, lets check if we ever was connected successfully + if (!$rootScope.waseverconnected && !$rootScope.errorMessage) { + $rootScope.passwordError = true; + $rootScope.$apply(); + } + }; + var onerror = function (evt) { /* * Handles cases when connection issues come from