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("

" + headHtml + "
"); 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'); };