var FGDAT = {};
function initFormGenerator(id, name, fields) {
var formEle = jQuery("#" + id);
FGDAT[id] = {};
FGDAT[id]["ele"] = formEle;
FGDAT[id]["name"] = name;
if(formEle.length == 0) {
console.log("formgenerator useless integration. '#" + id + "' not found!");
}
FGDAT[id]["fieldCounter"] = 0;
var newButton = '';
var newButton = '';
FGDAT[id]["ele"].append(newButton);
var headHtml = "";
headHtml += " | ";
headHtml += "Name of $env['value'][..] Variable | ";
headHtml += "Label | ";
headHtml += "Inputtype | ";
headHtml += "Configuration | ";
headHtml += "
";
FGDAT[id]["ele"].append("
");
if(typeof fields != "undefined" && fields !== null) {
jQuery.each(fields, function(index, value) {
addInputField(id, value, true);
});
}
createTemplateFields('body');
}
function getDefaultInput(id, currentFieldNumber, newType, value) {
var configInput = jQuery('#fieldtemplate_' + newType.toLowerCase()).html();
configInput = configInput.replace(/##FIELDNAME##/g, 'field_' + currentFieldNumber);
return configInput;
}
function changeType(id, currentFieldNumber, newType) {
var defaultEle = jQuery('#task_' + FGDAT[id]["name"] + '_field_' + currentFieldNumber + '_default_container');
var defaultValue = jQuery('#task_' + FGDAT[id]["name"] + '_field_' + currentFieldNumber + '_default').val();
var newInput = '' + getDefaultInput(id, currentFieldNumber, newType, defaultValue) + "
";
defaultEle.replaceWith(newInput);
createTemplateFields('#task_' + FGDAT[id]["name"] + '_field_' + currentFieldNumber + '_default_container');
jQuery('.MakeSelect2', FGDAT[id]["ele"]).removeClass('MakeSelect2').select2();
jQuery('body').trigger('InitComponents');
}
function addInputField(id, fieldData, initialize) {
var currentFieldNumber = FGDAT[id]["fieldCounter"];
if(typeof fieldData == "undefined" || fieldData == false) {
fieldData = {
"name" : "field_" + (Number(currentFieldNumber) + 1),
"type" : "text",
'config': {},
"label" : "Value " + (Number(currentFieldNumber) + 1)
}
}
if(typeof fieldData.config == 'undefined') {
fieldData.config = {};
}
var html = '';
html += '';
html += " | ";
html += ' | ';
html += ' | ';
html += ' | ';
html += '' + getDefaultInput(id, currentFieldNumber, fieldData["type"], fieldData["default"]) + ' | ';
html += '
';
jQuery('.formContainer', FGDAT[id]["ele"]).append(html);
FGDAT[id]["fieldCounter"] = Number(FGDAT[id]["fieldCounter"]) + 1;
jQuery.each(fieldData.config, function(index, value) {
var configField = jQuery('.configField[data-id="task_' + FGDAT[id]["name"] + '_field_' + currentFieldNumber + '_config_' + index + '"]');
// console.log(configField, '.configField[data-id="task_' + fieldData.name + '_config_' + index + '"');
//console.log(index, configField);
switch(configField.data('type')) {
case 'checkbox':
if(value == configField.val()) {
configField.prop('checked', true);
}
break;
case 'templatefield':
case 'templatearea':
configField.html(value);
break;
case 'hidden':
case 'picklist':
configField.val(value);
break;
}
if(value != '' && configField.data('nomodify') == '1') {
configField.attr('readonly', 'readonly');
}
});
if(typeof initialize === 'undefined' || initialize != true) {
createTemplateFields('#task_' + FGDAT[id]["name"] + '_field_' + currentFieldNumber + '_default_container');
}
jQuery('.MakeSelect2', FGDAT[id]["ele"]).removeClass('MakeSelect2').select2();
jQuery('body').trigger('InitComponents');
};