UNPKG

sails-inverse-model

Version:

Sails Inverse Model helps you build models, controllers and views JS Sails from any database. In addition, you can quickly and individually generate each model, view, controller or all three at the same time.

158 lines (142 loc) 4.39 kB
var Handlebars = require('handlebars'); var components = require('./components'); //Generic function function op(title, author, model) { return new Promise(function (resolve, reject) { var data_create = { title: title, author: author, name: model.model_name, elements: [] }; model .view_content .map((item) => { var element = JSON.parse(item); //element => '{"required":true,"name":"descripcion","type":"text"}', data_create .elements .push(element) }); return resolve(data_create); }); }; //Create "create" html from handlebars create = function (title, author, model) { return new Promise(function (resolve, reject) { var data_create = { title: title, author: author, name: model.model_name, elements: [] }; model .view_content .map((item) => { var element = JSON.parse(item); // element => '{"required":true,"name":"descripcion","type":"text"}', data_create .elements .push(element) }); components.create(function (hbs) { var template = Handlebars.compile(hbs); var html = template(data_create); //console.log(html); resolve(html); }); }); }; //Create "edit" html from handlebars edit = function (title, author, model) { return new Promise(function (resolve, reject) { var data_create = { title: title, author: author, name: model.model_name, elements: [] }; model .view_content .map((item) => { var element = JSON.parse(item); //element => '{"required":true,"name":"descripcion","type":"text"}', data_create .elements .push(element) }); components.edit(function (hbs) { var template = Handlebars.compile(hbs); var html = template(data_create); //console.log(html); resolve(html); }); }); }; //Create "index" html from handlebars index = function (title, author, model) { return new Promise(function (resolve, reject) { var data_list = { title: title, author: author, name: model.model_name, elements: [] }; model .view_content .map((item) => { var element = JSON.parse(item); //element => '{"required":true,"name":"descripcion","type":"text"}', data_list .elements .push(element) }); components.index(function (hbs) { var template = Handlebars.compile(hbs); var html = template(data_list); //console.log(html); resolve(html); }); }); }; //Create "show" html from handlebars show = function (title, author, model) { return new Promise(function (resolve, reject) { var data_list = { title: title, author: author, name: model.model_name, elements: [] }; model .view_content .map((item) => { var element = JSON.parse(item); //element => '{"required":true,"name":"descripcion","type":"text"}', data_list .elements .push(element) }); components.show(function (hbs) { var template = Handlebars.compile(hbs); var html = template(data_list); //console.log(html); resolve(html); }); }); }; /* EXAMPLE: { model_name: 'tareasNoRealizadas', content: 'attributes: { id_tarea: {type: \'integer\',required: true}, descripcion: {type: \'string\',required: true}, fecha_registro: {type: \'datetime\',required: true}, fecha_realizado: {type: \'datetime\',required: true}, realizado: {type: \'boolean\',required: true}, fk_persona_empleado: {type: \'integer\',required: true}, categoria: {type: \'string\',required: true} }', view_content: ['{"required":true,"name":"id_tarea","type":"number"}', '{"required":true,"name":"descripcion","type":"text"}', '{"required":true,"name":"fecha_registro","type":"datetime"}', '{"required":true,"name":"fecha_realizado","type":"datetime"}', '{"required":true,"name":"realizado","type":"boolean"}', '{"required":true,"name":"fk_persona_empleado","type":"number"}', '{"required":true,"name":"categoria","type":"text"}' ] } */