Merge pull request #4585 from JDonadio/fix/filter-decimals

Fix filter decimals
This commit is contained in:
Gustavo Maximiliano Cortez 2016-07-14 12:10:30 -03:00 committed by GitHub
commit 0c0651014a
4 changed files with 44 additions and 54 deletions

View File

@ -634,9 +634,9 @@ angular.module('copayApp.controllers').controller('indexController', function($r
var lockedBalanceAlternative = rateService.toFiat(self.lockedBalanceSat, self.alternativeIsoCode);
var alternativeConversionRate = rateService.toFiat(100000000, self.alternativeIsoCode);
self.totalBalanceAlternative = $filter('noFractionNumber')(totalBalanceAlternative, 2);
self.lockedBalanceAlternative = $filter('noFractionNumber')(lockedBalanceAlternative, 2);
self.alternativeConversionRate = $filter('noFractionNumber')(alternativeConversionRate, 2);
self.totalBalanceAlternative = $filter('formatFiatAmount')(totalBalanceAlternative);
self.lockedBalanceAlternative = $filter('formatFiatAmount')(lockedBalanceAlternative);
self.alternativeConversionRate = $filter('formatFiatAmount')(alternativeConversionRate);
self.alternativeBalanceAvailable = true;

View File

@ -55,7 +55,7 @@ angular.module('copayApp.controllers').controller('customAmountController', func
var amountSat = parseInt((amount * $scope.unitToSatoshi).toFixed(0));
$timeout(function() {
$scope.customizedAmountUnit = amount + ' ' + $scope.unitName;
$scope.customizedAlternativeUnit = $filter('noFractionNumber')(form.alternative.$modelValue, 2) + ' ' + $scope.alternativeIsoCode;
$scope.customizedAlternativeUnit = $filter('formatFiatAmount')(form.alternative.$modelValue) + ' ' + $scope.alternativeIsoCode;
if ($scope.unitName == 'bits') {
amount = (amountSat * satToBtc).toFixed(8);
}

View File

@ -74,7 +74,7 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio
var alternativeAmountBtc = ($scope.btx.amount * satToBtc).toFixed(8);
$scope.rateDate = res.fetchedOn;
$scope.rateStr = res.rate + ' ' + $scope.alternativeIsoCode;
$scope.alternativeAmountStr = $filter('noFractionNumber')(alternativeAmountBtc * res.rate, 2) + ' ' + $scope.alternativeIsoCode;
$scope.alternativeAmountStr = $filter('formatFiatAmount')(alternativeAmountBtc * res.rate) + ' ' + $scope.alternativeIsoCode;
$scope.$apply();
}
});

View File

@ -26,59 +26,49 @@ angular.module('copayApp.filters', [])
});
}
})
.filter('formatFiatAmount', ['$filter', '$locale', 'configService',
function(filter, locale, configService) {
var numberFilter = filter('number');
var formats = locale.NUMBER_FORMATS;
var config = configService.getSync().wallet.settings;
return function(amount) {
if (!config) return amount;
.filter('noFractionNumber', ['$filter', '$locale', 'configService',
function(filter, locale, configService) {
var numberFilter = filter('number');
var formats = locale.NUMBER_FORMATS;
var config = configService.getSync().wallet.settings;
return function(amount, n) {
if (typeof(n) === 'undefined' && !config) return amount;
var fractionSize = 2;
var value = numberFilter(amount, fractionSize);
var sep = value.indexOf(formats.DECIMAL_SEP);
var group = value.indexOf(formats.GROUP_SEP);
var fractionSize = (typeof(n) !== 'undefined') ?
n : config.unitToSatoshi.toString().length - 1;
var value = numberFilter(amount, fractionSize);
var sep = value.indexOf(formats.DECIMAL_SEP);
var group = value.indexOf(formats.GROUP_SEP);
if (amount >= 0) {
if (group > 0) {
if (sep < 0) {
return value;
}
var intValue = value.substring(0, sep);
var floatValue = parseFloat(value.substring(sep));
if (floatValue === 0) {
floatValue = '';
} else {
if (floatValue % 1 === 0) {
floatValue = floatValue.toFixed(0);
if (amount >= 0) {
if (group > 0) {
if (sep < 0) {
return value;
}
var intValue = value.substring(0, sep);
var floatValue = parseFloat(value.substring(sep));
floatValue = floatValue.toFixed(2);
floatValue = floatValue.toString().substring(1);
var finalValue = intValue + floatValue;
return finalValue;
} else {
value = parseFloat(value);
return value.toFixed(2);
}
var finalValue = intValue + floatValue;
return finalValue;
} else {
value = parseFloat(value);
if (value % 1 === 0) {
value = value.toFixed(0);
}
return value;
}
}
return 0;
return 0;
};
}
])
.filter('orderObjectBy', function() {
return function(items, field, reverse) {
var filtered = [];
angular.forEach(items, function(item) {
filtered.push(item);
});
filtered.sort(function(a, b) {
return (a[field] > b[field] ? 1 : -1);
});
if (reverse) filtered.reverse();
return filtered;
};
}
])
.filter('orderObjectBy', function() {
return function(items, field, reverse) {
var filtered = [];
angular.forEach(items, function(item) {
filtered.push(item);
});
filtered.sort(function (a, b) {
return (a[field] > b[field] ? 1 : -1);
});
if(reverse) filtered.reverse();
return filtered;
};
});
});