Commit 4aa7fced authored by Evren Kutar's avatar Evren Kutar

get form from form service

parent 09a0905c
<div ng-app="zaerp.student.add">
<div class="col-md-6">
<h1>{{ form }}</h1>
<form name="{{ form.formname }}" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit()"></form>
<h1>{{ schema.title }}</h1>
<form name="formgenerated" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(formgenerated)"></form>
</div>
</div>
\ No newline at end of file
......@@ -18,7 +18,31 @@ var student = angular.module('zaerp.student.add', ['ngRoute', 'schemaForm', 'for
* to add student, provide form with form generator
*/
student.controller('StudentAddCtrl', function($scope, $http, $timeout, $log, $routeParams, Generator){
$scope.schema = Generator.get_form('add_student', $routeParams);
$log.info($scope.schema);
student.controller('StudentAddCtrl', function($scope, $http, $log, $q, $timeout, Generator, $routeParams){
Generator.get_form('add_student', $routeParams).then(function(d){
$scope.schema = d.schema;
$scope.form = d.form;
$scope.form[0].$asyncValidators = {
emailNotValid: function (value) {
var deferred = $q.defer();
$timeout(function () {
if (Generator.isValidEmail(value)) {
deferred.resolve();
} else {
deferred.reject();
}
}, 500);
return deferred.promise;
}
}
});
$scope.onSubmit = function (form) {
$scope.$broadcast('schemaFormValidate');
if (form.$valid) {
$log.info(form);
}
else {
$log.info("not valid");
}
}
});
\ No newline at end of file
......@@ -16,13 +16,22 @@ form_generator.factory('Generator', function ($http, RESTURL) {
return form_items;
};
generator.get_form = function (url, getParams) {
var params;
for (var k in getParams) {
params += k + "=" + getParams[k] + "&";
}
return $http
.get(RESTURL.url + url + getParams)
.get(RESTURL.url + url + '?' + params)
.then(function (res) {
if (res.data) {
return res.data;
if (res.status == 200) {
// todo: remove 0 index with real api
return generator.generate(res.data[0]);
}
});
};
generator.isValidEmail = function(email){
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
};
return generator;
});
\ No newline at end of file
<div ng-app="FormGenerator">
<div class="col-md-6" ng-controller="">
<h1>{{ form.name }}</h1>
<form name="{{ form.formname }}" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit()"></form>
<div ng-controller="FormController">
<form name="formgenerated" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(formgenerated)"></form>
</div>
</div>
\ No newline at end of file
......@@ -12,11 +12,31 @@ var login = new fake.Resource("login")
var form = new fake.Resource("add_student")
.add({
id: 1,
user: {
id: 12,
role: 'admin'
}
schema: {
title: "Add Student",
type: "object",
properties: {
name: {
type: "string",
title: "Name"
},
email: {
type: "email",
title: "Email"
}
},
required: ["email", "name"]
},
form: [
{
key: "email",
type: "email",
validationMessages: {
'emailNotValid': 'Email is not valid!'
}
},
"name"
]
});
var server = new fake.Server()
......
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