diff --git a/package.json b/package.json index 87bf4f428e3266921aade407ee6fa12647032354..e15ca95b0eb593c06d5d4607a4079a41c6533869 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cesium", - "version": "0.1.2", + "version": "0.1.3", "description": "A webapp client for Duniter network", "dependencies": { "gulp": "^3.9.1", diff --git a/www/js/config.js b/www/js/config.js index 02c4824f2364235e5901f3c2c74b5d33095af096..ee8122747b0290c4b17b4541c49052816e17ce1e 100644 --- a/www/js/config.js +++ b/www/js/config.js @@ -14,8 +14,8 @@ angular.module("cesium.config", []) "TIMEOUT": 4000, "DEBUG": false, "NATIVE_TRANSITION": false, - "VERSION": "0.1.2", - "BUILD_DATE": "2016-05-26T22:23:02.644Z" + "VERSION": "0.1.3", + "BUILD_DATE": "2016-05-26T23:07:50.994Z" }) ; \ No newline at end of file diff --git a/www/js/controllers/app-controllers.js b/www/js/controllers/app-controllers.js index c8acf22f5e286cedb7e63b796c4632b92daa758e..a19698bea18f9a35940f7c42150e1508775fc4f3 100644 --- a/www/js/controllers/app-controllers.js +++ b/www/js/controllers/app-controllers.js @@ -52,21 +52,24 @@ function LoginModalController($scope, $rootScope, $ionicModal, Wallet, CryptoUti }; // Open login modal - $scope.login = function(callback) { + $scope.login = function(success, cancel) { if ($scope.loginModal) { UIUtils.loading.hide(); $scope.loginModal.show(); - $scope.loginData.callback = callback; + $scope.loginData.callbacks = {}; + $scope.loginData.callbacks.success = success; + $scope.loginData.callbacks.cancel = cancel; } else{ $timeout(function(){ - $scope.login(callback); + $scope.login(success, cancel); }, 2000); } }; // Login and load wallet - $scope.loadWallet = function() { + $scope.loadWallet = function(allowCancel) { + if (!allowCancel) {allowCancel = false;} return $q(function(resolve, reject){ if (!Wallet.isLogin()) { @@ -82,13 +85,22 @@ function LoginModalController($scope, $rootScope, $ionicModal, Wallet, CryptoUti .catch(UIUtils.onError('ERROR.LOAD_WALLET_DATA_ERROR', reject)); } else { - $scope.login(function() { - $rootScope.viewFirstEnter = false; - Wallet.loadData() - .then(function(walletData){ - resolve(walletData); - }) - .catch(UIUtils.onError('ERROR.LOAD_WALLET_DATA_ERROR', reject)); + $scope.login( + function() { + $rootScope.viewFirstEnter = false; + Wallet.loadData() + .then(function(walletData){ + resolve(walletData); + }) + .catch(UIUtils.onError('ERROR.LOAD_WALLET_DATA_ERROR', reject)); + }, + function() { // user cancel callback + if (allowCancel) { + resolve(); + } + else { + reject(); + } }); } }) @@ -110,9 +122,13 @@ function LoginModalController($scope, $rootScope, $ionicModal, Wallet, CryptoUti // Triggered in the login modal to close it $scope.cancelLogin = function() { + var callback = $scope.loginData.callbacks.cancel; $scope.loginData = {}; // Reset login data $scope.loginForm.$setPristine(); // Reset form $scope.loginModal.hide(); + if (!!callback) { + callback(); + } }; // Login form submit @@ -127,7 +143,7 @@ function LoginModalController($scope, $rootScope, $ionicModal, Wallet, CryptoUti // Call wallet login, then execute callback function Wallet.login($scope.loginData.username, $scope.loginData.password) .then(function(){ - var callback = $scope.loginData.callback; + var callback = $scope.loginData.callbacks.success; $scope.loginData = {}; // Reset login data $scope.loginForm.$setPristine(); // Reset form if (!!callback) { diff --git a/www/js/controllers/settings-controllers.js b/www/js/controllers/settings-controllers.js index 221bc1e5812003dd139902ad742bd51ac8df2524..0aff62acfe2bec688f5e56d26ef4f62dc6f346ba 100644 --- a/www/js/controllers/settings-controllers.js +++ b/www/js/controllers/settings-controllers.js @@ -34,15 +34,16 @@ function SettingsController($scope, $state, UIUtils, Wallet, $translate, BMA, $q $scope.loading = true; $scope.$on('$ionicView.enter', function(e, $state) { - UIUtils.loading.show(); $scope.loading = true; // to avoid the call of Wallet.store() - $scope.loadWallet() + $scope.loadWallet(true/*allowCancel*/) .then(function(walletData) { - $scope.formData.useRelative = walletData.settings.useRelative; - $scope.formData.node = walletData.settings.node; - $scope.formData.useLocalStorage = walletData.settings.useLocalStorage; - if (walletData.settings.locale && walletData.settings.locale.id) { - $scope.formData.locale = _.findWhere($scope.locales, {id: walletData.settings.locale.id}); + if (walletData) { + $scope.formData.useRelative = walletData.settings.useRelative; + $scope.formData.node = walletData.settings.node; + $scope.formData.useLocalStorage = walletData.settings.useLocalStorage; + if (walletData.settings.locale && walletData.settings.locale.id) { + $scope.formData.locale = _.findWhere($scope.locales, {id: walletData.settings.locale.id}); + } } UIUtils.loading.hide(); $scope.loading = false; diff --git a/www/js/services/utils-services.js b/www/js/services/utils-services.js index 8a0f3108be99bf08d04d9874e5848f45afd9098e..a2570fafdd9fed364271934e1d9baf2f54b2c36a 100644 --- a/www/js/services/utils-services.js +++ b/www/js/services/utils-services.js @@ -9,6 +9,10 @@ angular.module('cesium.utils.services', ['ngResource']) function alertError(err, subtitle) { return $q(function(resolve, reject) { + if (!err) { + resolve(); + return; + } $translate([err, subtitle, 'ERROR.POPUP_TITLE', 'ERROR.UNKNOWN_ERROR', 'COMMON.BTN_OK']) .then(function (translations) { var message = err.message || translations[err];