Created
September 16, 2016 13:39
-
-
Save jkomyno/8e965f376b0f385cbd416b1156f81481 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
String.prototype.replaceAll = function(search, replacement) { | |
return this.split(search).join(replacement) | |
}; | |
export function doesNetworkAlreadyExist(singleNetwork, globalNetworksRange) { | |
let arr = globalNetworksRange.map(network => network.ip); | |
let str = arr.join(","); | |
return str.indexOf(singleNetwork) !== -1 | |
} | |
export function isNetwork(value) { | |
return (/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}(\/[1-9][1-9])$/.test(value)); | |
} | |
export function isIp(value) { | |
return (/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(value)); | |
} | |
function isEmail(value) { | |
return (/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/.test(value)); | |
} | |
// minimum 1 numbers, 8 chars | |
function isPassword(value) { | |
return (/^(?=.*\d)(?=.*\d).{8,}$/.test(value)) | |
} | |
function isNetworksList(value) { | |
let list = value.toString().split(','); | |
let newList = deleteDuplicatesFromArray(list).slice(); | |
let errors = []; | |
if (!arraysEqual(list, newList)) { | |
errors.push("Please delete the duplicated elements"); | |
} | |
list.map((item, i) => { | |
if (!isNetwork(item)) { | |
errors.push("Error on element #" + ++i); | |
} | |
}); | |
if (errors.length) { | |
return { | |
result: false, | |
errors: errors | |
} | |
} else { | |
return { | |
result: true | |
} | |
} | |
} | |
function hasSpaces(value) { | |
return value.indexOf(" ") !== -1; | |
} | |
function isEmpty(value) { | |
return value == ""; | |
} | |
function isNumber(value) { | |
return !isNaN(value) && !isEmpty(value) | |
} | |
function isPort(value) { | |
return (!isNaN(value) && parseInt(value)>0) && (parseInt(value)<65536) | |
} | |
export function isTheOnlyFieldFilled(value, fieldList) { | |
let check = true; | |
fieldList.map((field, i) => { | |
if(isEmpty(field)) { | |
check = false; | |
} | |
}) | |
return check; | |
} | |
export function areEmpty(propsList) { | |
let res = true; | |
propsList.map((item,i) => { | |
res = isEmpty(item) && res; | |
}); | |
return res; | |
} | |
export function isThereAnEmptyValue(propsList) { | |
let res = false; | |
for (let value of propsList) { | |
if (isEmpty(value)) { | |
res = true; | |
break; | |
} else { | |
res = false; | |
} | |
} | |
return res; | |
} | |
function isSnmpVersion(version) { | |
return ["1","2c","3"].indexOf(version) !== -1; | |
} | |
export function deleteDuplicatesFromArray(a) { | |
var seen = {}; | |
return a.filter(function(item) { | |
return seen.hasOwnProperty(item) ? false : (seen[item] = true); | |
}); | |
} | |
function arraysEqual(arr1, arr2) { | |
if(arr1.length !== arr2.length) | |
return false; | |
for(var i = arr1.length; i--;) { | |
if(arr1[i] !== arr2[i]) | |
return false; | |
} | |
return true; | |
} | |
export function areValid(fieldList, nameList, test) { | |
let res = true; | |
let errs = []; | |
let indexErrs = []; | |
fieldList.some((item, i) => { | |
console.log("item", item); | |
console.log("i", i); | |
let _test = test[i]; | |
let _name = nameList[i]; | |
if (_test === "number") { | |
console.log("number"); | |
res = isNumber(item) && res; | |
if (!isNumber(item)) { | |
errs.push(_name + " is invalid"); | |
indexErrs.push(i); | |
} | |
} else if (_test === "networksList") { | |
console.log("networksList"); | |
res = isNetworksList(item).result && res; | |
if (!isNetworksList(item).result) { | |
errs.push(isNetworksList(item).errors); | |
indexErrs.push(i); | |
} | |
} else if (_test === "text") { | |
console.log("text"); | |
res = !isEmpty(item) && !hasSpaces(item) && res; | |
if (isEmpty(item) || hasSpaces(item) && !areEmpty(fieldList)) { | |
errs.push(_name + " is invalid"); | |
indexErrs.push(i); | |
} | |
} else if (_test === "port") { | |
console.log("port"); | |
console.log("PORT: " + fieldList[i]); | |
res = isPort(item) && res; | |
if (!isPort(item)) { | |
errs.push(_name + " is invalid"); | |
indexErrs.push(i); | |
} | |
} else if (_test === "password") { | |
console.log("password"); | |
res = isPassword(item) && res; | |
if (!isPassword(item)) { | |
errs.push(_name + " is invalid"); | |
indexErrs.push(i); | |
} | |
} else if (_test === "email") { | |
console.log("email"); | |
res = isEmail(item) && res; | |
if (!isEmail(item)) { | |
errs.push(_name + " is invalid"); | |
indexErrs.push(i); | |
} | |
} else if (_test === "snmpVersion") { | |
console.log("snmpVersion"); | |
res = isSnmpVersion(item) && res; | |
if (!isSnmpVersion(item)) { | |
errs.push(_name + " is invalid"); | |
indexErrs.push(i); | |
} | |
} else if (_test === "ip") { | |
console.log("ip"); | |
res = isIp(item) && res; | |
if (!isIp(item)) { | |
errs.push(_name + " is invalid"); | |
indexErrs.push(i); | |
} | |
} | |
}); | |
return { | |
result: res, | |
errors: errs, | |
indexErrors: indexErrs | |
}; | |
} | |
export function getNetworksFromOrderedList(a) { | |
return a.map(function(item) { | |
return item.network | |
}) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment