diff --git a/public/views/modals/customized-amount.html b/public/views/modals/customized-amount.html
index d37f32dd5..a50eb0764 100644
--- a/public/views/modals/customized-amount.html
+++ b/public/views/modals/customized-amount.html
@@ -53,9 +53,9 @@
Amount
@@ -63,9 +63,9 @@
diff --git a/public/views/walletHome.html b/public/views/walletHome.html
index a68d4fa86..69df80a74 100644
--- a/public/views/walletHome.html
+++ b/public/views/walletHome.html
@@ -373,7 +373,7 @@
Not valid
-
+
@@ -382,8 +382,11 @@
Amount
@@ -391,8 +394,11 @@
diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js
index 37b14ea88..db32b9769 100644
--- a/src/js/controllers/walletHome.js
+++ b/src/js/controllers/walletHome.js
@@ -475,6 +475,8 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
$scope.customAlternative = newValue;
if (typeof(newValue) === 'number' && $scope.isRateAvailable) {
$scope.customAmount = parseFloat((rateService.fromFiat(newValue, $scope.alternativeIsoCode) * satToUnit).toFixed($scope.unitDecimals), 10);
+ } else {
+ $scope.customAmount = null;
}
},
enumerable: true,
@@ -491,7 +493,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
if (typeof(newValue) === 'number' && $scope.isRateAvailable) {
$scope.customAlternative = parseFloat((rateService.toFiat(newValue * $scope.unitToSatoshi, $scope.alternativeIsoCode)).toFixed(2), 10);
} else {
- $scope.customAlternative = 0;
+ $scope.customAlternative = null;
}
$scope.alternativeAmount = $scope.customAlternative;
},
@@ -625,6 +627,8 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
$scope.__alternative = newValue;
if (typeof(newValue) === 'number' && self.isRateAvailable) {
$scope._amount = parseFloat((rateService.fromFiat(newValue, self.alternativeIsoCode) * satToUnit).toFixed(self.unitDecimals), 10);
+ } else {
+ $scope.__amount = null;
}
},
enumerable: true,
@@ -640,7 +644,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
if (typeof(newValue) === 'number' && self.isRateAvailable) {
$scope.__alternative = parseFloat((rateService.toFiat(newValue * self.unitToSatoshi, self.alternativeIsoCode)).toFixed(2), 10);
} else {
- $scope.__alternative = 0;
+ $scope.__alternative = null;
}
self.alternativeAmount = $scope.__alternative;
self.resetError();
diff --git a/src/js/directives/directives.js b/src/js/directives/directives.js
index 5696fd116..6ca44a772 100644
--- a/src/js/directives/directives.js
+++ b/src/js/directives/directives.js
@@ -85,24 +85,24 @@ angular.module('copayApp.directives')
};
}
])
- .directive('validAmount', ['configService', '$locale',
- function(configService, locale) {
- var formats = locale.NUMBER_FORMATS;
+ .directive('validAmount', ['configService',
+ function(configService) {
return {
require: 'ngModel',
link: function(scope, element, attrs, ctrl) {
var val = function(value) {
+ if (value) value = Number(String(value).replace(/,/g, '.'));
var settings = configService.getSync().wallet.settings;
var vNum = Number((value * settings.unitToSatoshi).toFixed(0));
- if (typeof value == 'undefined') {
+ if (typeof value == 'undefined' || value == 0) {
ctrl.$pristine = true;
}
if (typeof vNum == "number" && vNum > 0) {
var decimals = Number(settings.unitDecimals);
- var sep_index = ('' + value).indexOf(formats.DECIMAL_SEP);
+ var sep_index = ('' + value).indexOf('.');
var str_value = ('' + value).substring(sep_index + 1);
if (sep_index > 0 && str_value.length > decimals) {
ctrl.$setValidity('validAmount', false);
@@ -120,6 +120,33 @@ angular.module('copayApp.directives')
};
}
])
+ .directive('validAlternative', [
+ function() {
+
+ return {
+ require: 'ngModel',
+ link: function(scope, element, attrs, ctrl) {
+ var val = function(value) {
+ if (value) value = Number(String(value).replace(/,/g, '.'));
+ var vNum = Number(value);
+
+ if (typeof value == 'undefined' || value == 0) {
+ ctrl.$pristine = true;
+ }
+
+ if (typeof vNum == "number" && vNum > 0) {
+ ctrl.$setValidity('validAlternative', true);
+ } else {
+ ctrl.$setValidity('validAlternative', false);
+ }
+ return value;
+ }
+ ctrl.$parsers.unshift(val);
+ ctrl.$formatters.unshift(val);
+ }
+ };
+ }
+ ])
.directive('walletSecret', function(bitcore) {
return {
require: 'ngModel',