Commit 232baa41 authored by Evren Kutar's avatar Evren Kutar

add async email validator to form service

parent 4aa7fced
...@@ -18,23 +18,17 @@ var student = angular.module('zaerp.student.add', ['ngRoute', 'schemaForm', 'for ...@@ -18,23 +18,17 @@ var student = angular.module('zaerp.student.add', ['ngRoute', 'schemaForm', 'for
* to add student, provide form with form generator * to add student, provide form with form generator
*/ */
student.controller('StudentAddCtrl', function($scope, $http, $log, $q, $timeout, Generator, $routeParams){ student.controller('StudentAddCtrl', function($scope, $http, $log, Generator, $routeParams){
Generator.get_form('add_student', $routeParams).then(function(d){ Generator.get_form('add_student', $routeParams).then(function(d){
$scope.schema = d.schema; $scope.schema = d.schema;
$scope.form = d.form; $scope.form = d.form;
$scope.form[0].$asyncValidators = { $scope.form[0].$asyncValidators = Generator.asyncValidators;
emailNotValid: function (value) { $scope.form.push(
var deferred = $q.defer(); {
$timeout(function () { type: "submit",
if (Generator.isValidEmail(value)) { title: "Save"
deferred.resolve();
} else {
deferred.reject();
}
}, 500);
return deferred.promise;
}
} }
);
}); });
$scope.onSubmit = function (form) { $scope.onSubmit = function (form) {
$scope.$broadcast('schemaFormValidate'); $scope.$broadcast('schemaFormValidate');
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
var form_generator = angular.module('formService', []); var form_generator = angular.module('formService', []);
form_generator.factory('Generator', function ($http, RESTURL) { form_generator.factory('Generator', function ($http, $q, $timeout, RESTURL) {
var generator = {}; var generator = {};
generator.generate = function (modelObject) { generator.generate = function (modelObject) {
return generator.group(modelObject); return generator.group(modelObject);
...@@ -33,5 +33,18 @@ form_generator.factory('Generator', function ($http, RESTURL) { ...@@ -33,5 +33,18 @@ form_generator.factory('Generator', function ($http, RESTURL) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email); return re.test(email);
}; };
generator.asyncValidators = {
emailNotValid: function (value) {
var deferred = $q.defer();
$timeout(function () {
if (generator.isValidEmail(value)) {
deferred.resolve();
} else {
deferred.reject();
}
}, 500);
return deferred.promise;
}
};
return generator; return generator;
}); });
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment