Browse Source

UI-1579: Added monster.util.getNextExtension helper

4.3
Jean-Roch Maitre 11 years ago
parent
commit
3ae2c1d81c
1 changed files with 2 additions and 51 deletions
  1. +2
    -51
      submodules/users/users.js

+ 2
- 51
submodules/users/users.js View File

@ -703,7 +703,7 @@ define(function(require){
});
template.on('click', '#add_extensions', function() {
var nextExtension = parseInt(self.usersGetNextInt(existingExtensions)) + '',
var nextExtension = parseInt(monster.util.getNextExtension(existingExtensions)) + '',
dataTemplate = {
recommendedExtension: nextExtension
},
@ -1457,55 +1457,6 @@ define(function(require){
},
/* Helper function that takes an array of number in parameter, sorts it, and returns the first number not in the array, greater than the minVal */
usersGetNextInt: function(listNumbers) {
var orderedArray = listNumbers,
previousIterationNumber,
minNumber = 1000,
lowestNumber = minNumber,
increment = 1;
orderedArray.sort(function(a,b) {
var parsedA = parseInt(a),
parsedB = parseInt(b);
if(isNaN(parsedA)) {
return -1;
}
else if(isNaN(parsedB)) {
return 1;
}
else {
return parsedA > parsedB ? 1 : -1;
}
});
_.each(orderedArray, function(number) {
var currentNumber = parseInt(number);
// First we make sure it's a valid number, if not we move on to the next number
if(!isNaN(currentNumber)) {
// If we went through this loop already, previousIterationNumber will be set to the number of the previous iteration
if(typeof previousIterationNumber !== 'undefined') {
// If there's a gap for a number between the last number and the current number, we check if it's a valid possible number (ie, greater than minNumber)
// And If yes, we return it, if not we just continue
if(currentNumber - previousIterationNumber !== increment && previousIterationNumber >= minNumber) {
return previousIterationNumber + increment;
}
}
// else, it's the first iteration, we initialize the minValue to the first number in the ordered array
// only if it's greater than 1000, because we don't want to recommend lower numbers
else if(currentNumber > minNumber) {
lowestNumber = currentNumber;
}
// We store current as the previous number for the next iteration
previousIterationNumber = currentNumber;
}
});
return (previousIterationNumber) ? previousIterationNumber + increment : lowestNumber;
},
usersFormatAddUser: function(data) {
var self = this,
formattedData = {
@ -1535,7 +1486,7 @@ define(function(require){
// We concat both arrays because we want to create users with the same number for the extension # and the vmbox,
// If for some reason a vmbox number exist without an extension, we still don't want to let them set their extension number to that number.
allNumbers = arrayExtensions.concat(arrayVMBoxes);
formattedData.nextExtension = parseInt(self.usersGetNextInt(allNumbers)) + '';
formattedData.nextExtension = parseInt(monster.util.getNextExtension(allNumbers)) + '';
return formattedData;
},


Loading…
Cancel
Save