diff --git a/www/js/controllers/settings-controllers.js b/www/js/controllers/settings-controllers.js index 245a393e5dc5e467328e9ba4fdae0ef46d1254ef..0f880533181ef6eab160691c4d44614c5c3b0adf 100644 --- a/www/js/controllers/settings-controllers.js +++ b/www/js/controllers/settings-controllers.js @@ -84,10 +84,18 @@ function SettingsController($scope, $q, $ionicHistory, $ionicPopup, $timeout, $t $q.all([ csSettings.ready(), csCurrency.parameters() + .then(function(parameters) { + return parameters && parameters.avgGenTime; + }) + // Make sure to continue even if node is down - Fix #788 + .catch(function(err) { + console.error("[settings] Could not not currency parameters. Using default 'avgGenTime' (300)", err); + return {avgGenTime: 300}; + }) .then(function(parameters) { _.each($scope.blockValidityWindows, function(blockCount) { if (blockCount > 0) { - $scope.blockValidityWindowLabels[blockCount].labelParams.time=parameters.avgGenTime * blockCount; + $scope.blockValidityWindowLabels[blockCount].labelParams.time= parameters.avgGenTime * blockCount; } }); }) @@ -153,7 +161,7 @@ function SettingsController($scope, $q, $ionicHistory, $ionicPopup, $timeout, $t .then(function(newNode) { if (newNode.host === $scope.formData.node.host && newNode.port === $scope.formData.node.port && - newNode.useSsl === $scope.formData.node.useSsl) { + newNode.useSsl === $scope.formData.node.useSsl && !$scope.formData.node.temporary) { return; // same node = nothing to do } UIUtils.loading.show(); @@ -169,8 +177,8 @@ function SettingsController($scope, $q, $ionicHistory, $ionicPopup, $timeout, $t }); } UIUtils.loading.hide(); - $scope.formData.node = newNode; - delete $scope.formData.temporary; + angular.merge($scope.formData.node, newNode); + delete $scope.formData.node.temporary; BMA.copy(nodeBMA); $scope.bma = BMA; diff --git a/www/js/services/settings-services.js b/www/js/services/settings-services.js index d6e9003508a9fd6f56f308d474fe6216fb902d8b..ae153061d2a8465a7319d181dc746e5258a1912d 100644 --- a/www/js/services/settings-services.js +++ b/www/js/services/settings-services.js @@ -199,7 +199,7 @@ angular.module('cesium.settings.services', ['ngApi', 'cesium.config']) angular.merge(data, newData); // Delete temporary properties, if false - if (!data.node.temporary) delete data.node.temporary; + if (!newData.node.temporary || !data.node.temporary) delete data.node.temporary; // Always force the usage of default settings // This is a workaround for DEV (TODO: implement edition in settings ?)