diff --git a/public/js/admin.js b/public/js/admin.js index 4225d2a32..d1c1aaf73 100644 --- a/public/js/admin.js +++ b/public/js/admin.js @@ -26,7 +26,7 @@ ravadaApp.directive("solShowMachine", swMach) return { require: 'ngModel', link: function(scope, elm, attrs, ctrl) { - ctrl.$parsers.unshift(function(inputText) { + function validateIP(inputText, isParser) { var ipformat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/([0-9]|[0-1][0-9]|2[0-4])$/; if(ipformat.test(inputText)) { @@ -38,10 +38,17 @@ ravadaApp.directive("solShowMachine", swMach) //alert("You have entered an invalid IP address!"); //document.form1.text1.focus(); ctrl.$setValidity('ipformat', false); - return undefined; + return isParser ? undefined : inputText; } + } + + ctrl.$parsers.unshift(function(value) { + return validateIP(value, true); }); + ctrl.$formatters.unshift(function(value) { + return validateIP(value, false); + }); } }; }); diff --git a/templates/main/admin_group.html.ep b/templates/main/admin_group.html.ep index 2e29edc3d..1c6c485fd 100644 --- a/templates/main/admin_group.html.ep +++ b/templates/main/admin_group.html.ep @@ -11,6 +11,8 @@