diff --git a/cit-portal-web/src/main/webapp/assets/js/angular/custom/directive/LabelInputDecimalDirective.js b/cit-portal-web/src/main/webapp/assets/js/angular/custom/directive/LabelInputDecimalDirective.js index 04216e5..6ed5f5e 100644 --- a/cit-portal-web/src/main/webapp/assets/js/angular/custom/directive/LabelInputDecimalDirective.js +++ b/cit-portal-web/src/main/webapp/assets/js/angular/custom/directive/LabelInputDecimalDirective.js @@ -13,7 +13,7 @@ citApp.directive("labelInputDecimal", ["$translate", function($translate) { model : "=ngModel", form : "=form", eventoChange : "&ngEventoChange", - precisao : "=ngPrecisao", + precisao : "@ngPrecisao", labelAlertTooltip: '@', labelInfoTooltip: '@', labelQuestionTooltip: '@', @@ -23,8 +23,9 @@ citApp.directive("labelInputDecimal", ["$translate", function($translate) { restrict : 'E', template : "
" + " "+ - " " + + " " + "
", + controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) { if($scope.id === undefined){ $scope.id = $attrs['ngModel']; diff --git a/cit-portal-web/src/main/webapp/assets/js/angular/custom/directive/MasksDirective.js b/cit-portal-web/src/main/webapp/assets/js/angular/custom/directive/MasksDirective.js index d5ffa7b..0e5d4da 100644 --- a/cit-portal-web/src/main/webapp/assets/js/angular/custom/directive/MasksDirective.js +++ b/cit-portal-web/src/main/webapp/assets/js/angular/custom/directive/MasksDirective.js @@ -13,7 +13,7 @@ var StringMask = (function() { '9': {pattern: /\d/, optional: true}, '#': {pattern: /\d/, optional: true, recursive: true}, 'S': {pattern: /[a-zA-Z]/}, - '$': {escape: true} + '$': {escape: true} }; var isEscaped = function(pattern, pos) { var count = 0; @@ -24,7 +24,7 @@ var StringMask = (function() { count += token && token.escape ? 1 : 0; i--; } - return count > 0 && count%2 === 1; + return count > 0 && count%2 === 1; }; var calcOptionalNumbersToUse = function(pattern, value) { var numbersInP = pattern.replace(/[^0]/g,'').length; @@ -189,7 +189,7 @@ var objectTypes = { }; if (objectTypes[typeof module]) { - module.exports = StringMask; + module.exports = StringMask; } /** @@ -827,7 +827,7 @@ var objectTypes = { 'object': true }; if (objectTypes[typeof module]) { - module.exports = BrV; + module.exports = BrV; } else { root.BrV = BrV; } @@ -1562,32 +1562,61 @@ angular.module('ui.utils.masks.number', []) modelMask = NumberMasks.modelMask(decimals); function parse(value) { + if(!value) { return value; } - var valueToFormat = PreFormatters.clearDelimitersAndLeadingZeros(value) || '0'; - var formatedValue = viewMask.apply(valueToFormat); - var actualNumber = parseFloat(modelMask.apply(valueToFormat)); + if(attrs.uiNumberMask == 'decimal'){ + + var pos = value.indexOf(","); + var result; + if (pos !== -1) { + var part1 = value.substr(0, pos > 6 ? 6 : pos); + var part2 = value.substr(pos > 6 ? 6 : pos + 1); + //2 casas decimais...... + part2 = part2.substr(0,2); + result = cleanForDecimal(part1) + "," + cleanForDecimal(part2); + } else { + result = cleanForDecimal(value).substr(0,6); + } - if(angular.isDefined(attrs.uiNegativeNumber)){ - var isNegative = (value[0] === '-'), - needsToInvertSign = (value.slice(-1) === '-'); + result = result ==',' ? '' : result; - //only apply the minus sign if it is negative or(exclusive) - //needs to be negative and the number is different from zero - if(needsToInvertSign ^ isNegative && !!actualNumber) { - actualNumber *= -1; - formatedValue = '-' + formatedValue; + if (ctrl.$viewValue !== result) { + ctrl.$setViewValue(result); + ctrl.$render(); } - } - if (ctrl.$viewValue !== formatedValue) { - ctrl.$setViewValue(formatedValue); - ctrl.$render(); + return result.length > 0 ? parseFloat(result.replace(',','.')) : 0; + }else{ + var valueToFormat = PreFormatters.clearDelimitersAndLeadingZeros(value) || '0'; + var formatedValue = viewMask.apply(valueToFormat); + var actualNumber = parseFloat(modelMask.apply(valueToFormat)); + + if(angular.isDefined(attrs.uiNegativeNumber)){ + var isNegative = (value[0] === '-'), + needsToInvertSign = (value.slice(-1) === '-'); + + //only apply the minus sign if it is negative or(exclusive) + //needs to be negative and the number is different from zero + if(needsToInvertSign ^ isNegative && !!actualNumber) { + actualNumber *= -1; + formatedValue = '-' + formatedValue; + } + } + + if (ctrl.$viewValue !== formatedValue) { + ctrl.$setViewValue(formatedValue); + ctrl.$render(); + } + + return actualNumber; } + } - return actualNumber; + function cleanForDecimal(string) { + return string.replace(/[^0-9]/g, ""); } ctrl.$formatters.push(function(value) { -- libgit2 0.21.2