From 4b909e51beee3395545880a066b6c2a86396bd81 Mon Sep 17 00:00:00 2001 From: Igor Date: Mon, 24 Oct 2016 22:04:45 -0200 Subject: [PATCH 1/2] To add Array of numbers Some changes to accept a list of numbers (array) and return one whole number. --- src/ionic-numberpicker.directive.js | 59 ++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index d82c3e8..e3ed937 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -31,6 +31,7 @@ scope.decimalCharacter = scope.inputObj.decimalCharacter ? scope.inputObj.decimalCharacter : '.'; scope.setButtonType = scope.inputObj.setButtonType ? scope.inputObj.setButtonType : 'button-positive'; scope.closeButtonType = scope.inputObj.closeButtonType ? scope.inputObj.closeButtonType : 'button-stable'; + scope.numberArray = scope.inputObj.numberArray || []; scope.wholeNumber = 0; scope.decimalNumber = 0; @@ -84,6 +85,34 @@ scope.checkMin(); }; + //Increasing Array number + scope.increaseNumber = function (item) { + var number = scope.numberArray[item]; + if (number < 9) { + number++; + } + scope.numberArray[item] = number; + }; + + //Decreasing the decimal number + scope.decreaseNumber = function (item) { + var number = scope.numberArray[item]; + if (number > 0) { + number--; + } + scope.numberArray[item] = number; + }; + + function buildFinalNumber() { + var finalNumber = ''; + var len = scope.numberArray.length + + for(var i = 0 ; i < scope.numberArray.length ; i++) { + finalNumber += '' + scope.numberArray[i]; + } + return (finalNumber) + }; + function strip(number, precision) { var returnVal = (parseFloat(number).toFixed(scope.precision)); return returnVal; @@ -157,7 +186,7 @@ ] }); - } else { + } else if (scope.format == 'WHOLE') { //Get Values from Initial Number scope.wholeNumber = findWholeNumber(scope.inputValue); scope.decimalNumber = 0; @@ -187,6 +216,34 @@ } ] }); + + } else { + + $ionicPopup.show({ + templateUrl: 'ionic-numberpicker-array.html', + title: scope.titleLabel, + subTitle: '', + scope: scope, + buttons: [ + { + text: scope.closeLabel, + type: scope.closeButtonType, + onTap: function (e) { + scope.inputObj.callback(undefined); + } + }, + { + text: scope.setLabel, + type: scope.setButtonType, + onTap: function (e) { + scope.loadingContent = true; + + scope.inputObj.callback(buildFinalNumber()); + } + } + ] + }); + } } }); } From a0fbf1e001de73221a9e18a0d9837162d8643602 Mon Sep 17 00:00:00 2001 From: Igor Date: Tue, 25 Oct 2016 10:33:40 -0200 Subject: [PATCH 2/2] Use scope.inputValue variable The idea is an additional Number Input entry for long numbers such as 9999999. Adding an additional format option called "NUMBER_ARRAY" --- src/ionic-numberpicker.directive.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index e3ed937..26224ac 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -31,7 +31,10 @@ scope.decimalCharacter = scope.inputObj.decimalCharacter ? scope.inputObj.decimalCharacter : '.'; scope.setButtonType = scope.inputObj.setButtonType ? scope.inputObj.setButtonType : 'button-positive'; scope.closeButtonType = scope.inputObj.closeButtonType ? scope.inputObj.closeButtonType : 'button-stable'; - scope.numberArray = scope.inputObj.numberArray || []; + + if (scope.format === 'NUMBER_ARRAY') { + scope.numberArray = ('' + scope.inputValue).split(''); + } scope.wholeNumber = 0; scope.decimalNumber = 0; @@ -88,18 +91,14 @@ //Increasing Array number scope.increaseNumber = function (item) { var number = scope.numberArray[item]; - if (number < 9) { - number++; - } + if (number < 9) { number++; } else { number = 0; } scope.numberArray[item] = number; }; //Decreasing the decimal number scope.decreaseNumber = function (item) { var number = scope.numberArray[item]; - if (number > 0) { - number--; - } + if (number > 0) { number--; } else { number = 9; } scope.numberArray[item] = number; };