From 443345bbed04e4250d6c41236bf3371ee6deec80 Mon Sep 17 00:00:00 2001 From: Gaurav Saini Date: Tue, 5 Aug 2014 15:55:51 +0530 Subject: [PATCH] Minor decimal point issue solved. --- ...ocale_zh-cn.js => angular-locale_zh_cn.js} | 0 .../directives/NumberFormatDirective.js | 77 +++++++++++-------- app/scripts/models/Langs.js | 2 +- 3 files changed, 46 insertions(+), 33 deletions(-) rename app/angular/i18n/{angular-locale_zh-cn.js => angular-locale_zh_cn.js} (100%) diff --git a/app/angular/i18n/angular-locale_zh-cn.js b/app/angular/i18n/angular-locale_zh_cn.js similarity index 100% rename from app/angular/i18n/angular-locale_zh-cn.js rename to app/angular/i18n/angular-locale_zh_cn.js diff --git a/app/scripts/directives/NumberFormatDirective.js b/app/scripts/directives/NumberFormatDirective.js index 2bb378f0..0a90b258 100644 --- a/app/scripts/directives/NumberFormatDirective.js +++ b/app/scripts/directives/NumberFormatDirective.js @@ -1,55 +1,68 @@ (function (module) { mifosX.directives = _.extend(module, { - NumberFormatDirective: function ($filter) { + NumberFormatDirective: function ($filter, $locale) { return { replace: false, - //restrict: "A", require: 'ngModel', link: function (scope, element, attrs, modelCtrl) { - var filter = $filter('number'); + var filter = $filter('number'); function number(value, fractionLength) { - return filter(value, fractionLength); + return filter(value, fractionLength); } - modelCtrl.$formatters.push(number); + + function initialNumber(value) { + var stringValue = modelCtrl.$modelValue + ''; + var index = stringValue.indexOf($locale.NUMBER_FORMATS.DECIMAL_SEP); + var fraction = stringValue.substring(index + 1); + var fractionLength = fraction.length; + var initialnumber = $filter('number')(modelCtrl.$modelValue,fractionLength); + return initialnumber; + } + + modelCtrl.$formatters.push(initialNumber); + modelCtrl.$parsers.push(function (stringValue) { - var index = stringValue.indexOf($locale.NUMBER_FORMATS.DECIMAL_SEP), - decimal, - fraction, - fractionLength; - if (index >= 0) { - decimal = stringValue.substring(0, index); - fraction = stringValue.substring(index + 1); - if(index!=stringValue.length-1) - fractionLength = fraction.length; - else - fractionLength = 0; - } else { - decimal = stringValue; - fraction = ''; - } - decimal = decimal.replace(/[^0-9]/g, ''); - fraction = fraction.replace(/[^0-9]/g, ''); - var result = +(decimal + '.' + fraction); - if (result !== modelCtrl.$modelValue) { - scope.$evalAsync(function () { - modelCtrl.$viewValue = number(modelCtrl.$modelValue, fractionLength); - modelCtrl.$render(); - }); - } - return result; + if(stringValue){ + var index = stringValue.indexOf($locale.NUMBER_FORMATS.DECIMAL_SEP), + decimal, + fraction, + fractionLength; + if (index >= 0) { + decimal = stringValue.substring(0, index); + fraction = stringValue.substring(index + 1); + if(index!=stringValue.length-1) + fractionLength = fraction.length; + else + fractionLength = 0; + } else { + decimal = stringValue; + fraction = ''; + } + decimal = decimal.replace(/[^0-9]/g, ''); + fraction = fraction.replace(/[^0-9]/g, ''); + var result = +(decimal + '.' + fraction); + if (result !== modelCtrl.$modelValue) { + scope.$evalAsync(function () { + modelCtrl.$viewValue = number(modelCtrl.$modelValue, fractionLength); + modelCtrl.$render(); + }); + } + return result; + } }); + scope.$on('$localeChangeSuccess', function (event, localeId) { modelCtrl.$viewValue = $filter('number')(modelCtrl.$modelValue); modelCtrl.$render(); }); - } + } }; } }); }(mifosX.directives || {})); -mifosX.ng.application.directive("numberFormat", ['$filter', mifosX.directives.NumberFormatDirective]).run(function ($log) { +mifosX.ng.application.directive("numberFormat", ['$filter', '$locale', mifosX.directives.NumberFormatDirective]).run(function ($log) { $log.info("NumberFormatDirective initialized"); }); diff --git a/app/scripts/models/Langs.js b/app/scripts/models/Langs.js index 50204936..2e7bd723 100644 --- a/app/scripts/models/Langs.js +++ b/app/scripts/models/Langs.js @@ -5,7 +5,7 @@ {"name": "Français", "code": "fr"}, {"name": "Español", "code": "es"}, {"name": "Português", "code": "pt"}, - {"name": "中文", "code": "zh_cn"}, + {"name": "中文", "code": "zh_CN"}, {"name": "हिंदी", "code": "hi"}, {"name": "ქართული", "code": "ka"} ]