From 7f208c193cb036df3325d8bc8c9bd91914d7ac81 Mon Sep 17 00:00:00 2001 From: blavenie <benoit.lavenier@e-is.pro> Date: Fri, 4 Aug 2017 16:35:51 +0200 Subject: [PATCH] [enh] Login: allow plugin to stop the process (add extension point 'loginCheck') [fix] Wot identity: add toast when message sent --- www/js/services/wallet-services.js | 18 +++++++++++++++--- www/lib/ionic/js/angular/angular-api.js | 10 +++++++++- .../es/js/controllers/wot-controllers.js | 3 +++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/www/js/services/wallet-services.js b/www/js/services/wallet-services.js index 4b1d04819..3af70632e 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 bac12860f..ce7526eae 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 749705f4f..0c959ff8b 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'); }); }); }; -- GitLab