diff --git a/www/js/services/wallet-services.js b/www/js/services/wallet-services.js index 4b1d0481952eef08b18b38670ec1a0b4ed265a1d..3af70632ee1075493518d7369900219117aa2feb 100644 --- a/www/js/services/wallet-services.js +++ b/www/js/services/wallet-services.js @@ -136,11 +136,22 @@ angular.module('cesium.wallet.services', ['ngApi', 'ngFileSaver', 'cesium.bma.se }; } - // Call extend api if (needLogin) { - return api.data.raisePromise.login(data); + // extend API to check login validity + return api.data.raisePromise.loginCheck(data) + .catch(function (err) { + resetData(); // Reset data if not valid, then exit process + throw err; + }) + // Call extend api + .then(function() { + if (needLogin) { + return api.data.raisePromise.login(data); + } + }); } }) + .then(function() { // store wallet if need if (csSettings.data.useLocalStorage) { @@ -1609,7 +1620,8 @@ angular.module('cesium.wallet.services', ['ngApi', 'ngFileSaver', 'cesium.bma.se // Register extension points api.registerEvent('data', 'init'); - api.registerEvent('data', 'login'); + api.registerEvent('data', 'loginCheck'); // allow to stop the login process + api.registerEvent('data', 'login'); // executed after login check (cannot stop the login process) api.registerEvent('data', 'auth'); api.registerEvent('data', 'unauth'); api.registerEvent('data', 'load'); diff --git a/www/lib/ionic/js/angular/angular-api.js b/www/lib/ionic/js/angular/angular-api.js index bac12860f3f7ba634f7e1288649a44fbd99bf93a..ce7526eae9f798ab9ea2e9b9e49f42e3743d81f8 100644 --- a/www/lib/ionic/js/angular/angular-api.js +++ b/www/lib/ionic/js/angular/angular-api.js @@ -118,11 +118,19 @@ }; deferred.checkFinish = function() { if (deferred.count < listenerCount) return; + deferred.count = 0; if (deferred.errors.length) { - deferred.raw.reject(deferred.errors); + if (deferred.errors.length == 1) { + deferred.raw.reject(deferred.errors[0]); + } + else { + deferred.raw.reject(deferred.errors); + } + deferred.errors = []; } else { deferred.raw.resolve(deferred.results); + deferred.results = []; } }; deferred.resolve = function(result) { diff --git a/www/plugins/es/js/controllers/wot-controllers.js b/www/plugins/es/js/controllers/wot-controllers.js index 749705f4f2dec9defa449dff714999af09290d25..0c959ff8bbddb67adfd1ffc640621059cd4676af 100644 --- a/www/plugins/es/js/controllers/wot-controllers.js +++ b/www/plugins/es/js/controllers/wot-controllers.js @@ -76,6 +76,9 @@ function ESWotIdentityViewController($scope, $ionicPopover, $q, UIUtils, Modals, return esModals.showMessageCompose({ destPub: $scope.formData.pubkey, destUid: $scope.formData.name||$scope.formData.uid + }) + .then(function(send) { + if (send) UIUtils.toast.show('MESSAGE.INFO.MESSAGE_SENT'); }); }); };