![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/tech_preview/hr/ |
Upload File : |
var form_module = {}; // Hàm vẽ form default khi tạo form mới form_module.formVersion = 2; form_module.generateDefaultOutputForm = function(host, typeid, items){ var data, type, t_id; type = host.typeDict[typeid].type; if (form_module.primitiveTypeList.indexOf(type) != -1){ type = host.typeDict[typeid].type2; } switch (type) { case "string": case "phonenumber": case "website": case "gps": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "number": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id, decimalSeparator: ".", floatFixed: -1, max: Infinity, min: -Infinity, thousandsSeparator: "" }, style: { height: 30, left: 5, width: 400 } }; break; case "currency": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id, decimalSeparator: ".", floatFixed: -1, max: Infinity, min: -Infinity, thousandsSeparator: "" }, style: { height: 30, left: 5, width: 400 } }; break; case "note": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 100, left: 5, width: 400 } }; break; case "date": case "datetime": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "time": data = { tag: "TimeInput", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "hour_period": data = { tag: "TimeRange24Input", attributes: { name: items.localid ? items.localid : items.id, dayOffset: 0, duration: 0 }, style: { height: 30, left: 5, width: 400, displayHidden: false } }; break; case "boolean": data = { tag: "CheckBox", attributes: { name: items.localid ? items.localid : items.id }, style: { left: 5, height: 18, width: 18 } }; break; case "email_address": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "user": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "userlist": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "member_of_nations": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "member_of_cities": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "member_of_ethnics": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "member_of_religions": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "language": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "geopos": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "member_of_department": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "member_of_document_groups": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "member_of_document_folders": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "member_of_position": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "member_of_people": data = { tag: "Text", attributes: { name: items.localid ? items.localid : items.id }, style: { height: 30, left: 5, width: 400 } }; break; case "enum": var content = host.typeDict[items.type].content; var lists = content.details.map(function(elt){ return { text: elt.text, value: elt.localid }; }); lists.unshift({text: LanguageModule.text("txt_select_value"), value: 0}); data = { tag: "Text", attributes: { name: items.localid }, style: { height: 30, left: 5, width: 400 } }; break; case "structure": var content = items.content; data = []; for (var j = 0; j < content.details.length; j++){ var elt = content.details[j]; var type = host.typeDict[elt.type].type; var title, st; var rs; title = { tag: "Label", attributes: { text: elt.name, dataBinding: false }, style: { height: 30, width: 200, boxAlign: "leftcenter" } }; if (form_module.requireFormType.indexOf(type) != -1){ for (var i = 0; i < host.database.input_forms.items.length; i++) { if (host.database.input_forms.items[i].typeid == elt.type){ rs = host.database.input_forms.items[i]; break; } } if (!rs){ ModalElement.alert({message: "Chưa vẽ form cho kiểu dữ liệu " + host.typeDict[elt.type].name}); return false; } else { st = { tag: "LinearLayout", attributes: { name: elt.localid }, children: [ { class: rs.id + "", attributes: { name: elt.localid } } ], style: { height: 30, width: "auto", left: 5 } }; data.push({ tag: "ChainLayout", style: { height: 30, width: "auto", overflowY: "visible", left: 20, top: 10 }, children: [ title, st ] }); } } else { st = form_module.generateDefaultOutputForm(host, elt.type, elt); data.push({ tag: "ChainLayout", style: { height: 30, width: "auto", overflowY: "visible", left: 20, top: 10 }, children: [ title, st ] }); } } break; case "extends_structure": t_id = items.content.typeof; var content = { details: host.typeDict[t_id].content.details.concat(items.content.details) }; while (host.typeDict[t_id].type == "extends_structure"){ t_id = host.typeDict[t_id].content.typeof; content.details = host.typeDict[t_id].content.details.concat(content.details) } data = []; for (var j = 0; j < content.details.length; j++){ var elt = content.details[j]; var type = host.typeDict[elt.type].type; var title, st; var rs; title = { tag: "Label", attributes: { text: elt.name, dataBinding: false }, style: { height: 30, width: 200, boxAlign: "leftcenter" } }; if (form_module.requireFormType.indexOf(type) != -1){ for (var i = 0; i < host.database.input_forms.items.length; i++){ if (host.database.input_forms.items[i].typeid == elt.type){ rs = host.database.input_forms.items[i]; break; } } if (!rs){ ModalElement.alert({message: "Chưa vẽ form cho kiểu dữ liệu " + host.typeDict[elt.type].name}); return false; } else { st = { tag: "LinearLayout", attributes: { name: elt.localid }, children: [ { class: rs.id + "", attributes: { name: elt.localid } } ], style: { height: 30, width: "auto", left: 5 } }; data.push({ tag: "ChainLayout", style: { height: 30, width: "auto", overflowY: "visible", left: 20, top: 10 }, children: [ title, st ] }); } } else { st = form_module.generateDefaultOutputForm(host, elt.type, elt); data.push({ tag: "ChainLayout", style: { height: 30, width: "auto", overflowY: "visible", left: 20, top: 10 }, children: [ title, st ] }); } } break; case "extends_enum": t_id = host.typeDict[items.type].content.typeof; var content = host.typeDict[items.type].content.details; content = host.typeDict[t_id].content.details.concat(content); while (host.typeDict[t_id].type == "extends_enum"){ t_id = host.typeDict[t_id].content.typeof; content = host.typeDict[t_id].content.details.concat(content) } var lists = content.details.map(function(elt){ return { text: elt.text, value: elt.localid }; }); lists.unshift({text: LanguageModule.text("txt_select_value"), value: 0}); data = { tag: "ComboBox", attributes: { name: items.localid, list: lists, target: items.localid, value: items.default, enableSearch: true }, style: { height: 30, left: 5, width: 400 } }; break; case "array": t_id = items.content.typeof; // var dataTypeOfArray = contentModule.checkDatatypeOfArray(host.database.typelists.items, t_id); // if (dataTypeOfArray == "advanced"){ if ( host.typeDict[t_id].type == "structure" || host.typeDict[t_id].type == "extends_structure" || host.typeDict[t_id].type == "array" || host.typeDict[t_id].type2 == "structure" || host.typeDict[t_id].type2 == "array" || t_id > 0 ) { var rs; for (var i = 0; i < host.database.input_forms.items.length; i++){ if (host.database.input_forms.items[i].typeid == t_id){ rs = host.database.input_forms.items[i]; break; } } if (!rs){ ModalElement.alert({message: "Chưa vẽ form cho kiểu dữ liệu " + host.typeDict[t_id].name}); return false; } data = { tag: "EditableArrayOfFragment", attributes: { name: items.id.toString(), itemFragmentClass: "" + rs.id }, style: { height: "auto", width: "auto", } }; } else { var st = form_module.generateDefaultOutputForm(host, t_id, host.typeDict[t_id]); constructor = absol.form.makeFmFragmentConstructor({ tag: t_id + "_output", contentViewData: st }); absol.form.AssemblerInstance.addConstructor(constructor); data = { tag: "EditableArrayOfFragment", attributes: { name: items.id.toString(), itemFragmentClass: t_id + '_output' }, style: { height: "auto", width: "auto", } }; } // } // else { // data = { // tag: "TableInput", // attributes: { // name: items.id.toString(), // itemFragmentClass: "" + rs.id // }, // style: { // height: 30, // width: "auto", // left: 5 // }, // onCreated: function(){ // this.setAttribute("propertyNames", []); // this.setAttribute("propertyDescriptors", {}); // var handleCmdRemoveRow = function (event) { // event.accept(new Promise(function (resolve) { // ModalElement.question({ // title: LanguageModule.text("txt_warning"), // message: "Bạn có muốn xóa không?", // onclick: function (sel) { // if (sel == 0) { // resolve(true); // } // else { // resolve(false); // } // } // }); // })); // }; // var handleCmdInsertRow = function (event) { // event.resolve(new Promise(function (resolve) { // resolve({}); // })); // }; // this.editor.on('cmd_remove_row', handleCmdRemoveRow); // this.editor.on('cmd_insert_row', handleCmdInsertRow); // } // }; // } // break; default: } return data; }; form_module.generateDefaultLinearInputForm = function(host, typeid, items, baseFormId){ var data, type, t_id; if (typeid == "union"){ data = form_module.type2inputform[typeid](host, items); } else { type = host.typeDict[typeid].type; if (form_module.primitiveTypeList.indexOf(type) != -1){ type = host.typeDict[typeid].type2; } data = (form_module.type2inputform[type] || form_module.type2inputform.notSupport)(host, type, items, baseFormId); if(data){ data.attributes = data.attributes ||{}; data.attributes.inputType = type; data.attributes.formVersion = form_module.formVersion; } } return data; }; form_module.setAttributeOfTreeTableInput = function(t_id, t_name){ data_module.loadTypeList().then(function(typelists){ var host = { database: {} }; contentModule.makeDatabaseContent(host, {typelists: typelists}); var dict = {}; host.database.typelists.items.forEach(function (elt, index) { contentModule.makeDataTypeDecode(elt); dict[elt.id] = index; }); var getType = function(index){ var type = host.database.typelists.items[index].type; if (form_module.primitiveTypeList.indexOf(type) != -1){ type = host.database.typelists.items[index].type2; } return type; } var type = getType(dict[t_id]); var header; var self = this; form_module.makeHeaderOfTable(host, t_id).then(function(result){ header = result; if ( type != "structure" && type != "extends_structure" ) { header.descriptions[t_id].text = t_name; } // TODO: var preloadDescriptors = self.attributes.propertyDescriptors.__preloaded__; if (preloadDescriptors){ for (var pName in preloadDescriptors){ if(header.descriptions[pName]) Object.assign(header.descriptions[pName], preloadDescriptors[pName]); } } console.log("set attributes for treetable"); self.setAttribute("propertyNames", header.names); self.setAttribute("propertyDescriptors", header.descriptions); setTimeout(function(){ self.attributes.propertyDescriptors.__completeLoad__ = true; }, 1500); }, function(rj){}); }.bind(this)) }; form_module.setAttributeOfTableInput = function(t_id, t_name){ data_module.loadTypeList().then(function(typelists){ var host = { database: {} }; contentModule.makeDatabaseContent(host, {typelists: typelists}); var dict = {}; host.database.typelists.items.forEach(function (elt, index) { contentModule.makeDataTypeDecode(elt); dict[elt.id] = index; }); var getType = function(index){ var type = host.database.typelists.items[index].type; if (form_module.primitiveTypeList.indexOf(type) != -1){ type = host.database.typelists.items[index].type2; } return type; } var type = getType(dict[t_id]); var header; var self = this; form_module.makeHeaderOfTable(host, t_id).then(function(result){ header = result; if ( type != "structure" && type != "extends_structure" ) { header.descriptions[t_id].text = t_name; } // TODO: var preloadDescriptors = self.attributes.propertyDescriptors.__preloaded__; if (preloadDescriptors){ for (var pName in preloadDescriptors){ if(header.descriptions[pName]) Object.assign(header.descriptions[pName], preloadDescriptors[pName]); } } self.setAttribute("propertyNames", header.names); self.setAttribute("propertyDescriptors", header.descriptions); setTimeout(function(){ self.attributes.propertyDescriptors.__completeLoad__ = true; }, 1500); // self.setAttribute("records", []); var handleCmdRemoveRow = function (event) { event.accept(new Promise(function (resolve) { ModalElement.question({ title: LanguageModule.text("txt_warning"), message: "Bạn có muốn xóa không?", onclick: function (sel) { if (sel == 0) { resolve(true); } else { resolve(false); } } }); })); }; var handleCmdInsertRow = function (event) { event.resolve(new Promise(function (resolve) { resolve({}); })); }; self.editor.on('cmd_remove_row', handleCmdRemoveRow); self.editor.on('cmd_insert_row', handleCmdInsertRow); }, function(rj){}); }.bind(this)) }; // Hàm đổi tên form form_module.renameForm = function(taskName, id, name){ return new Promise(function(rs, rj){ FormClass.api_call({ url: "input_form_rename.php", params: [ {name: "id", value: id}, {name: "name", value: name}, {name: "taskName", value: taskName} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ rs(); } else { rj(); } } else rj(); } }); }); }; // Hàm xóa form form_module.deleteForm = function(host, id){ var formContent; if (host.taskName == "input" || host.taskName == "m_input") formContent = host.database.input_forms; else formContent = host.database.output_forms; return new Promise(function(resolve, reject){ ModalElement.show_loading(); FormClass.api_call({ url: 'input_form_delete.php', params: [ {name: "id", value: id}, {name: "task", value: host.taskName} ], func: function(success, message){ ModalElement.close(-1); if (success) { if (message.substr(0, 2) == "ok"){ formContent.items = formContent.items.filter(function(elt){ return elt.id != id; }); resolve(); } else { reject(message); } } else { reject(message); } } }) }); }; // Hàm lưu thêm form mới form_module.saveForm = function(host, params){ params.available = 1; params.ver = 1; params.task = host.taskName; params.content = EncodingClass.string.fromVariable(params.content); var formContent, FM_form_content; if (host.taskName == "input") { formContent = host.database.input_forms; FM_form_content = data_module.input_forms; } else if (host.taskName == "m_input") { formContent = host.database.input_forms; FM_form_content = data_module.mobile_input_forms; } else if (host.taskName == "m_output") { formContent = host.database.output_forms; FM_form_content = data_module.mobile_output_forms; } else { formContent = host.database.output_forms; FM_form_content = data_module.output_forms; } return new Promise(function(resolve, reject){ ModalElement.show_loading(); FormClass.api_call({ url: 'input_form_add_new_save.php', params: [ {name: "data", value: EncodingClass.string.fromVariable(params)} ], func: function(success, message){ ModalElement.close(-1); if (success) { if (message.substr(0, 2) == "ok"){ params.id = parseInt(EncodingClass.string.toVariable(message.substr(2)), 10); params.content = EncodingClass.string.toVariable(params.content); formContent.items.push(params); FM_form_content.items.push(params); form_module.attachOnCreatedCb(params.content); if (host.taskName == "input") hr.input_form.loadFormConstructorToAssembler(formContent.items, host.database.typelists.items, 1); else if (host.taskName == "m_input") hr.input_form_mobile.loadFormConstructorToAssembler(formContent.items, host.database.typelists.items, 1); else if (host.taskName == "m_output") hr.output_form_mobile.loadFormConstructorToAssembler(formContent.items, host.database.typelists.items, 1); else hr.output_form.loadFormConstructorToAssembler(formContent.items, host.database.typelists.items, 1); // hr.input_form.loadFormConstructorToAssembler(formContent.items, host.database.typelists.items); formContent.items.sort(function(a, b){ if (absol.string.nonAccentVietnamese(a.name) < absol.string.nonAccentVietnamese(b.name)) return -1; if (absol.string.nonAccentVietnamese(a.name) > absol.string.nonAccentVietnamese(b.name)) return 1; return 0; }); resolve(params); } else { if (message == "nameerror"){ ModalElement.alert({message: "Tên form đã được sử dụng"}); } reject(message); } } else { reject(message); } } }) }); } // Hàm vẽ giao diện thêm form mới form_module.showNewFormDialog = function(host){ return new Promise(function(accept, deny){ var formContent; if (host.taskName == "input" || host.taskName == "m_input") formContent = host.database.input_forms; else formContent = host.database.output_forms; var formName = absol._({ tag: 'input', class: "cardsimpleInput", style: { width: "400px" }, props: { type: 'text' } }); var initForm = absol._({ tag: 'selectmenu', style: { width: "400px" }, props: { items: [ {text: "LinearLayout", value: "LinearLayout"}, {text: "RelativeLayout", value: "RelativeLayout"} ] } }); var items = []; var dict = {}; for (var i = 0; i < host.database.typelists.items.length; i++){ if ( host.database.typelists.items[i].type == "structure" || host.database.typelists.items[i].type == "extends_structure" || host.database.typelists.items[i].type == "array" || host.database.typelists.items[i].type == "treetable" || host.database.typelists.items[i].type2 == "structure" || host.database.typelists.items[i].type2 == "array" || host.database.typelists.items[i].type2 == "treetable" || host.database.typelists.items[i].id > 0 ) items.push({ value: host.database.typelists.items[i].id, text: host.database.typelists.items[i].name, sortText: absol.string.nonAccentVietnamese(host.database.typelists.items[i].name).toLowerCase() }); dict[host.database.typelists.items[i].id] = host.database.typelists.items[i]; } items.sort(function(a, b){ if (a.sortText > b.sortText) return 1; if (a.sortText < b.sortText) return -1; return 0; }); items.unshift({text: LanguageModule.text("txt_select_datatype"), value: 0}); host.typeDict = dict; host.formDict = {}; formContent.items.forEach(function(elt){ host.formDict[elt.id] = elt; }); var type = absol._({ tag: "selectmenu", style: { width: "400px" }, props: { enableSearch: true, items: items }, on: { change: function(){ if (dict[this.value].type == "extends_structure") { // var baseTypeId = dict[this.value].content.typeof; var baseTypeId = []; var formItems = []; var strIndex = 0; while (strIndex < dict[this.value].includedid.length - 1) { var t_index = dict[this.value].includedid.indexOf("_", strIndex + 1); baseTypeId.push(parseInt(dict[this.value].includedid.substr(strIndex + 1, t_index - strIndex - 1))); strIndex = t_index; } formContent.items.forEach(function(elt){ if (baseTypeId.indexOf(elt.typeid) != -1) formItems.push({ value: elt.id, text: elt.name, sortText: absol.string.nonAccentVietnamese(elt.name).toLowerCase() }); }); if (formItems.length > 0){ formItems.sort(function(a, b){ if (a.sortText > b.sortText) return 1; if (a.sortText < b.sortText) return -1; return 0; }); formItems.unshift({value: 0, text: LanguageModule.text("txt_select_value")}); absol.$(".create-new-form-base-form", tDiv, function(elt){ elt.style.display = null; }); form.items = formItems; form.value = 0; } } else { absol.$(".create-new-form-base-form", tDiv, function(elt){ elt.style.display = "none"; }); form.value = 0; } if (formName.value.trim() == ""){ formName.value = this.textContent; formName.focus(); } } } }); var form = absol._({ tag: "selectmenu", style: { width: "400px" }, props: { enableSearch: true, items: [], value: 0 } }); var tDiv = DOMElement.div({ children: [DOMElement.table({ data: [ [ {text: "Tên form"}, { attrs: {style: {paddingLeft: "10px"}}, children: [formName] } ], [{attrs: {style: {paddingTop: "10px"}}}], [ {text: "Kiểu dữ liệu"}, { attrs: {style: {paddingLeft: "10px"}}, children: [type] } ], [{attrs: {className: "create-new-form-base-form", style: {display: "none", paddingTop: "10px"}}}], [ {attrs: {style: {display: "none"}, className: "create-new-form-base-form"}, text: "Chọn form cơ sở"}, { attrs: {className: "create-new-form-base-form", style: {display: "none", paddingLeft: "10px"}}, children: [form] } ], [{attrs: {style: {paddingTop: "10px"}}}], [ {text: "Init form"}, { attrs: {style: {paddingLeft: "10px"}}, children: [initForm] } ] ] })] }); ModalElement.showWindow({ index: 1, title: "Tạo form mới", bodycontent: DOMElement.div({ style: { padding: "10px" }, children: [ tDiv, DOMElement.div({ attrs: { style: { paddingTop: "20px", textAlign: "center" } }, children: [ DOMElement.div({ attrs: {style: { display: "inline-block" }}, children: [theme.okButton({ onclick: function () { var name = formName.value.trim(); if (name == ""){ ModalElement.alert({message: LanguageModule.text("txt_no_name")}); return; } var params = { typeid: parseInt(type.value, 10), name: name }; var baseFormId = form.value; if (params.typeid == 0) { ModalElement.alert({message: LanguageModule.text("txt_no_datatype_is_selected_yet")}); return; } for (var i = 0; i < formContent.items.length; i++){ if (formContent.items[i].name == name) { ModalElement.alert({message: "Tên form đã được sử dụng"}); return; } } var form_content; if (host.taskName == "input" || host.taskName == "m_input") { if (initForm.value == "LinearLayout") { if (!host.isMobile) form_content = form_module.generateDefaultLinearInputForm(host, params.typeid, host.typeDict[params.typeid], baseFormId); else form_content = form_module.generateDefaultLinearMobileInputForm(host, params.typeid, host.typeDict[params.typeid], baseFormId); params.content = { layout: { tag: "LinearLayout", style: { overflowY: "visible", height: "auto", width: host.isMobile ? 350 : "auto" }, attributes: {} }, circuit: {} }; } else { var size = { h: 10, w: 20 }; form_content = form_module.generateDefaultRelativeInputForm(host, params.typeid, host.typeDict[params.typeid], size); params.content = { layout: { tag: "RelativeLayout", style: { hAlign: "left", vAlign: "top", left: 0, right: 0, top: 0, bottom: 0, height: size.h, width: size.w } }, circuit: {} }; } } else { if (!host.isMobile) form_content = form_module.generateDefaultLinearOutputForm(host, params.typeid, host.typeDict[params.typeid], baseFormId); else form_content = form_module.generateDefaultLinearMobileOutputForm(host, params.typeid, host.typeDict[params.typeid], baseFormId); params.content = { layout: { tag: "LinearLayout", style: { overflowY: "visible", height: "auto", width: host.isMobile ? 350 : "auto" }, attributes: {} }, circuit: {} }; } if (!form_content) { return; } var childrenid = ""; if (dict[params.typeid].type == "shifts") params.content.layout.attributes.name = "ValidTimeShift"; else if (dict[params.typeid].includedid) { if (dict[params.typeid].includedid.indexOf("_-54_") != -1) params.content.layout.attributes.name = "ValidTimeShift"; } if (dict[params.typeid].type == "array" || dict[params.typeid].type2 == "array"){ params.content.layout.style.width = "auto"; params.content.layout.children = [form_content]; // params.content.layout.children = [form_content.layout]; // params.content.circuit = form_content.circuit; if (form_content.tag != "TableInput") childrenid = "_" + form_content.attributes.itemFragmentClass; } else if (dict[params.typeid].type == "treetable" || dict[params.typeid].type2 == "treetable"){ params.content.layout.style.width = "auto"; params.content.layout.children = [form_content]; } else if ( dict[params.typeid].type == "structure" || dict[params.typeid].type == "extends_structure" || dict[params.typeid].type2 == "structure" ) { var getChildrenIdList = function(cur){ if (cur.class && !isNaN(parseInt(cur.class))){ childrenid += "_" + parseInt(cur.class); } else if (cur.children && cur.children.length > 0){ cur.children.forEach(function(elt){ getChildrenIdList(elt); }) } } params.content.layout.children = form_content.layout; form_content.layout.forEach(function(elt){ getChildrenIdList(elt); }); params.content.circuit = form_content.circuit; } else { params.content.layout.children = [form_content.layout]; params.content.circuit = form_content.circuit; } if (childrenid != "") childrenid += "_"; params.childrenid = childrenid; params.typedescendantid = ""; contentModule.getDescendantsId(host, dict[params.typeid]).forEach(function(elt){ params.typedescendantid += "_" + elt; }); if (params.typedescendantid != "") params.typedescendantid += "_"; params.isMobile = host.isMobile; accept(params); ModalElement.close(1); } })] }), DOMElement.div({ attrs: {style: { display: "inline-block", paddingLeft: "10px" }}, children: [theme.cancelButton({ onclick: function () { deny("cancel"); ModalElement.close(1); } })] }) ] }) ] }) }); setTimeout(function(){ formName.focus(); }, 50); }); }; // Hàm thêm form mới // form_module.addNewForm = function(host){ // return form_module.showNewFormDialog(host).then(function(result){ // return form_module.saveForm(host, result) // }); // }; // Hàm lưu sửa đổi form cũ form_module.formSaveContent = function(data){ var st = { id: data.id, content: data.content, childrenid: data.childrenid, typedescendantid: data.typedescendantid, ver: data.ver + 1 }; return new Promise(function(rs, rj){ FormClass.api_call({ url: "input_form_edit_save.php", params: [ {name: "data", value: EncodingClass.string.fromVariable(st)} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == 'ok'){ var formContent = EncodingClass.string.toVariable(message.substr(2)); formContent.content = EncodingClass.string.toVariable(formContent.content); rs(formContent); } else { rj(message); } } else { rj(message); } } }); }); }; form_module.generateDefaultLinearOutputForm = function(host, typeid, items, baseFormId){ var data, type, t_id; if (typeid == "union"){ data = form_module.type2outputform[typeid](host, items); } else { type = host.typeDict[typeid].type; if (form_module.primitiveTypeList.indexOf(type) != -1){ type = host.typeDict[typeid].type2; } data = (form_module.type2outputform[type] || form_module.type2outputform.notSupport)(host, type, items, baseFormId); if(data){ data.attributes = data.attributes ||{}; data.attributes.inputType = type; data.attributes.formVersion = form_module.formVersion; } } return data; }; form_module.attachOnCreatedCb = function attachOnCreatedCb(compData){ var type = compData.attributes && compData.attributes.inputType; if (type && form_module.tag2OnCreated[type]){ compData.onCreated = form_module.tag2OnCreated[type]; } if (compData.children && compData.children.length > 0) compData.children.forEach(attachOnCreatedCb); } form_module.tag2OnCreated = {}; form_module.tag2OnCreated.array = function(){ var tag = this.tag; if (tag !== "TableInput") return; var t_id = this.attributes.typeIdOfArray; var t_name = this.attributes.nameOfArray; form_module.setAttributeOfTableInput.call(this, t_id, t_name); }; form_module.tag2OnCreated.treetable = function(){ var t_id = this.attributes.typeIdOfTreeTable; var t_name = this.attributes.nameOfTreeTable; form_module.setAttributeOfTreeTableInput.call(this, t_id, t_name); }; form_module.tag2OnCreated.user = function(task){ return data_module.loadUsersList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {users: rs}); var items = contentModule.getUsersListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.userlist = function(task){ return data_module.loadUsersList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {users: rs}); var items = contentModule.getUsersListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.geopos = function(task){ return data_module.loadGeographiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {geopos: rs}); var items = contentModule.getGeoposListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_department = function(task){ return data_module.loadOrgsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {orgs: rs}); contentModule.makeOrgsIndex(host); var items = contentModule.getOrgsListSelectTreeMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_document_groups = function(task){ return data_module.loadDocument_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {document_groups: rs}); var items = contentModule.getDocumentGroupsListSelectTreeMenu(host); return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_document_folders = function(task){ return data_module.loadDocument_foldersList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {document_folders: rs}); var items = contentModule.getDocumentFoldersListSelectTreeMenu(host); return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.select_department_employee = function(task){ return Promise.all([data_module.loadOrgsList(), data_module.loadEmployeesList(), data_module.loadPeoplesList()]).then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {orgs: rs[0], employees: rs[1], peoples: rs[2]}); var pDict = {}; host.database.peoples.items.forEach(function(elt){ pDict[elt.id] = elt; }); host.database.employees.items.forEach(function(elt){ elt.fullname = pDict[elt.peopleid].fullname; }); contentModule.makeOrgsIndex(host); contentModule.makeEmployeesIndex(host); var items = contentModule.getOrgsAndEmployeesListSelectTreeMenu(host); // var items = contentModule.getOrgsListSelectTreeMenu(host); return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_position = function(departmentid){ // var self = this; // return data_module.loadPositionsList().then(function(rs){ // if (departmentid !== undefined) { // rs = rs.filter(function(elt){ // return elt.orgid == departmentid; // }); // } // var host = {database: {}}; // contentModule.makeDatabaseContent(host, {positions: rs}); // return contentModule.getPositionsListSelectMenu(host); // // self.domElt.items = contentModule.getPositionsListSelectMenu(host); // }, function(rj){console.log(rj);}); return Promise.all([ data_module.loadOrgsList(), data_module.loadPositionsList() ]).then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {orgs: rs[0], positions: rs[1]}); contentModule.makeOrgsIndex(host); contentModule.makePositionsIndex(host); var items = contentModule.getMemberOfPositionSelectMenu(host); if (!task) items.unshift({value: 0, text: LanguageModule.text("txt_select_value"), isLeaf: true}); else items.unshift({value: 0, text: ""}); return items; // return contentModule.getEmployeesListSelectMenu(host); }, function(rj){console.log(rj);}); }; // form_module.tag2OnCreated.member_of_people = function(){ // // var self = this; // return data_module.loadPeoplesList().then(function(rs){ // var host = {database: {}}; // contentModule.makeDatabaseContent(host, {peoples: rs}); // return contentModule.getPeoplesListSelectMenu(host); // // self.domElt.items = contentModule.getPeoplesListSelectMenu(host); // }, function(rj){console.log(rj);}); // }; form_module.tag2OnCreated.member_of_employee = function(fragment, task){ return data_module.loadEmployeeItemsPrivView().then(function(host){ var items = contentModule.getMemberOfEmployeeSelectMenu(host); if (task == "output") items[0].text = ""; return items; // return contentModule.getEmployeesListSelectMenu(host); }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_template_groups = function(task){ return data_module.loadTemplateGroupList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {template_groups: rs}); host.database.template_groups.items.unshift({ id: -1, name: LanguageModule.text("txt_onboarding"), comment: "", extrainfo: "obj#0#", available: 1, ver: 1 }); host.database.template_groups.items.unshift({ id: -3, name: LanguageModule.text("txt_offboarding"), comment: "", extrainfo: "obj#0#", available: 1, ver: 1 }); host.database.template_groups.items.unshift({ id: -4, name: LanguageModule.text("txt_examination"), comment: "", extrainfo: "obj#0#", available: 1, ver: 1 }); host.database.template_groups.items.unshift({ id: -2, name: "Khác...", comment: "", extrainfo: "obj#0#", available: 1, ver: 1 }); var items = contentModule.getMemberOfTemplateGroupSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.employee_list = function(task){ return data_module.loadEmployeeItemsPrivView().then(function(host){ var items = contentModule.getMemberOfEmployeeSelectMenu(host); items.splice(0, 1); return items; // return contentModule.getEmployeesListSelectMenu(host); }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.nation_city = function(task){ return Promise.all([ data_module.loadNationsList(), data_module.loadCitiesList() ]).then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {nations: rs[0], cities: rs[1]}); contentModule.makeCitiesIndex(host); var items = contentModule.getNationCityDualSelectMenu(host); return items; // return contentModule.getEmployeesListSelectMenu(host); }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.position_list = function(task){ return Promise.all([ data_module.loadOrgsList(), data_module.loadPositionsList() ]).then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {orgs: rs[0], positions: rs[1]}); contentModule.makeOrgsIndex(host); contentModule.makePositionsIndex(host); var items = contentModule.getMemberOfPositionSelectMenu(host); return items; // return contentModule.getEmployeesListSelectMenu(host); }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_employee_choose_company = function(host, task){ if (!host.companyLoad) { host.companyLoad = { database: {} }; host.companyLoad.resultAsync = data_module.loadOrgsList().then(function(rs){ contentModule.makeDatabaseContent(host.companyLoad, {orgs: rs}); contentModule.makeOrgsIndex(host.companyLoad); var items = []; var items = [{value: 0, text: task == "output" ? "" : LanguageModule.text("txt_select_value")}]; host.companyLoad.database.orgs.items.forEach(function(elt){ if (elt.parentid == 0) items.push({ value: elt.id, text: elt.name, sortText: absol.string.nonAccentVietnamese(elt.name).toLowerCase() }); }); items.sort(function(a, b){ if (a.sortText > b.sortText) return 1; if (a.sortText < b.sortText) return -1; return 0; }); host.companyItems = items; return items; }).catch(function(err){console.log(err);}); } return host.companyLoad.resultAsync; }; form_module.tag2OnCreated.member_of_employee_choose_department = function(host, companyid, task){ if (!host.companyLoad){ form_module.tag2OnCreated.member_of_employee_choose_company(host, task); } return host.companyLoad.resultAsync.then(function(rs){ var items; if (!companyid) return []; items = contentModule.getDepartmentListSelectTreeMenu(host.companyLoad, companyid); return items; }); }; form_module.tag2OnCreated.member_of_employee_by_departmentid = function(departmentid){ return data_module.loadEmployeesListByOrgid(departmentid).then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, rs); return contentModule.getEmployeesListSelectMenu(host); }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_position_by_departmentid = function(departmentid, task){ return data_module.loadPositionsListByOrgid(departmentid).then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {positions: rs}); var items = contentModule.getPositionsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_assets = function(task){ // var self = this; return data_module.loadAssetsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {assets: rs}); var items = contentModule.getAssetsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_instruments_and_tools = function(task){ // var self = this; return data_module.loadInstruments_and_toolsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {instruments_and_tools: rs}); var items = contentModule.getInstrumentAndToolsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_assets_instruments_and_tools = function(task){ var host = {database: {}}; Promise.all([data_module.loadAssetsList(), data_module.loadInstruments_and_toolsList()]).then(function(content){ contentModule.makeDatabaseContent(host, {assets: content[0], instruments_and_tools: content[1]}); var items = contentModule.getAssetsInstrumentAndToolsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }); }; form_module.tag2OnCreated.member_of_warehouses = function(fragment, task){ return data_module.loadWarehousesList().then(function(rs){ var host = {database: {}}; if (fragment && fragment.getContext){ var shareParams = fragment.getContext("SHARE_PARAMS"); host.listWarehousePriv = shareParams.listWarehousePriv; } contentModule.makeDatabaseContent(host, {warehouses: rs}); var items = contentModule.getWarehousesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_welcome_templates = function(task){ return data_module.loadWelcomeTemplatesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {welcome_templates: rs}); var items = contentModule.getMemberOfWelcomeTemplateSelectMenu(host); // if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_allowance_policy_groups = function(task){ return data_module.loadAllowance_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {allowance_policy_groups: rs}); var items = contentModule.getAllowancePolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_bonus_policy_groups = function(task){ return data_module.loadBonus_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {bonus_policy_groups: rs}); var items = contentModule.getBonusPolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_work_flow_groups = function(task){ return data_module.loadWork_flow_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {work_flow_groups: rs}); var items = contentModule.getWorkFlowGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_work_flows = function(task){ return data_module.loadWork_flowsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {work_flows: rs}); var items = contentModule.getWorkFlowsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_payroll_cycle = function(task){ return data_module.loadPayrollCycleList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {payroll_cycle: rs}); var items = contentModule.getPayrollCycleListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_objects = function(task){ return data_module.loadObjectsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {objects: rs}); var items = contentModule.getObjectsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_lesson_categories = function(task){ return data_module.loadLesson_categoriesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {lesson_categories: rs}); var items = contentModule.getLessonCategoriesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_typelists = function(task){ return data_module.loadType_listsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {typelists: rs}); var items = contentModule.getTypeListsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_input_forms = function(task){ var items = contentModule.getInputFormsListSelectMenu(); if (task == "output") items[0].text = ""; return items; }; form_module.tag2OnCreated.member_of_mobile_input_forms = function(task){ var items = contentModule.getMobileInputFormsListSelectMenu(); if (task == "output") items[0].text = ""; return items; }; form_module.tag2OnCreated.member_of_output_forms = function(task){ var items = contentModule.getOutputFormsListSelectMenu(); if (task == "output") items[0].text = ""; return items; }; form_module.tag2OnCreated.member_of_mobile_output_forms = function(task){ var items = contentModule.getMobileOutputFormsListSelectMenu(); if (task == "output") items[0].text = ""; return items; }; form_module.tag2OnCreated.member_of_typelists = function(task){ return data_module.loadType_listsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {typelists: rs}); var items = contentModule.getTypeListsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_partner_class = function(task){ return data_module.loadPartner_classList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {partner_class: rs}); var items = contentModule.getPartnerClassListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_partner = function(task){ return data_module.loadPartnerList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {partner: rs}); var items = contentModule.getPartnerListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_contact = function(task){ return data_module.loadContactList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {contact: rs}); var items = contentModule.getContactListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_document_types = function(task){ return data_module.loadDocument_typesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {document_types: rs}); var items = contentModule.getDocumentTypesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_orgs = function(task){ return data_module.loadOrgCompanysList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {orgs: rs}); var items = contentModule.getOrgsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_other_liability_policy_groups = function(task){ return data_module.loadOther_liability_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {other_liability_policy_groups: rs}); var items = contentModule.getOtherLiabilityPolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_insurance_policies = function(task){ return data_module.loadInsurance_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {insurance_policies: rs}); var items = contentModule.getInsurancePoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_tax_policies = function(task){ return data_module.loadTax_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {tax_policies: rs}); var items = contentModule.getTaxPoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_trade_union_policies = function(task){ return data_module.loadTrade_union_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {trade_union_policies: rs}); var items = contentModule.getTradeUnionPoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_leave_policies = function(task){ return data_module.loadLeave_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {leave_policies: rs}); var items = contentModule.getLeavePoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_benefit_policies = function(task){ return data_module.loadBenefit_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {benefit_policies: rs}); var items = contentModule.getBenefitPoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_allowance_policies = function(task){ return data_module.loadAllowance_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {allowance_policies: rs}); var items = contentModule.getAllowancePoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_bonus_policies = function(task){ return data_module.loadBonus_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {bonus_policies: rs}); var items = contentModule.getBonusPoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_overtime_policies = function(task){ return data_module.loadOvertime_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {overtime_policies: rs}); var items = contentModule.getOvertimePoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_punishment_policies = function(task){ return data_module.loadPunishment_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {punishment_policies: rs}); var items = contentModule.getPunishmentPoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_advance_payment_policies = function(task){ return data_module.loadAdvance_payment_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {advance_payment_policies: rs}); var items = contentModule.getAdvancePaymentPoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_late_early_checkin_policies = function(task){ return data_module.loadLate_early_checkin_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {late_early_checkin_policies: rs}); var items = contentModule.getLateEarlyCheckinPoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_salary_policies = function(task){ return data_module.loadSalary_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {salary_policies: rs}); var items = contentModule.getSalaryPoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_other_liability_policies = function(task){ return data_module.loadOther_liability_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {other_liability_policies: rs}); var items = contentModule.getOtherLiabilityPoliciesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_nations = function(task){ return data_module.loadNationsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {nations: rs}); var items = contentModule.getNationsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_cities = function(task){ return data_module.loadCitiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {cities: rs}); var items = contentModule.getCitiesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_ethnics = function(task){ return data_module.loadEthnicsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {ethnics: rs}); var items = contentModule.getEthnicsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_religions = function(task){ return data_module.loadReligionsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {religions: rs}); var items = contentModule.getReligionsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_salary_policy_groups = function(task){ return data_module.loadSalary_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {salary_policy_groups: rs}); var items = contentModule.getSalaryPolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_trade_union_policy_groups = function(task){ return data_module.loadTrade_union_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {trade_union_policy_groups: rs}); var items = contentModule.getTradeUnionPolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_overtime_policy_groups = function(task){ return data_module.loadOvertime_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {overtime_policy_groups: rs}); var items = contentModule.getOvertimePolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_offboarding_reasons = function(task){ return data_module.loadOffboardingReasonList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {offboarding_reasons: rs}); var items = contentModule.getOffboardingReasonListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.multiselect_offboarding_reasons = function(task){ return data_module.loadOffboardingReasonList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {offboarding_reasons: rs}); var items = contentModule.getOffboardingReasonListSelectMenu(host); items.splice(0, 1); return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_offboarding_types = function(task){ return data_module.loadOffboardingTypeList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {offboarding_types: rs}); var items = contentModule.getOffboardingTypeListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_punishment_policy_groups = function(task){ return data_module.loadPunishment_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {punishment_policy_groups: rs}); var items = contentModule.getPunishmentPolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_asset_category = function(task){ return data_module.loadAssetCategoryList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {asset_category: rs}); var items = contentModule.getAssetCategoryListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_instruments_and_tools_category = function(task){ return data_module.loadInstrumentsAndToolsCategoryList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {instruments_and_tools_category: rs}); var items = contentModule.getAssetsInstrumentAndToolsCategoryListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_projects = function(task){ return data_module.loadProjectsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {projects: rs}); var items = contentModule.getProjectsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_tax_policy_groups = function(task){ return data_module.loadTax_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {tax_policy_groups: rs}); var items = contentModule.getTaxPolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_advance_payment_policy_groups = function(task){ return data_module.loadAdvance_payment_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {advance_payment_policy_groups: rs}); var items = contentModule.getAdvancePaymentPolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_late_early_checkin_policy_groups = function(task){ return data_module.loadLate_early_checkin_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {late_early_checkin_policy_groups: rs}); var items = contentModule.getLateEarlyCheckinPolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_benefit_policy_groups = function(task){ return data_module.loadBenefit_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {benefit_policy_groups: rs}); var items = contentModule.getBenefitPolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_shifts = function(task){ return data_module.loadShiftsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {shifts: rs}); var items = contentModule.getShiftsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.members_of_shifts = function(task){ return data_module.loadShiftsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {shifts: rs}); var items = contentModule.getShiftsListSelectBox(host); return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.members_of_partner_class = function(task){ return data_module.loadPartner_classList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {partner_class: rs}); var items = contentModule.getPartnerClassListSelectBox(host); return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.members_of_locations = function(task){ return data_module.loadGeographiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {geopos: rs}); var items = contentModule.getGeoposListSelectBox(host); return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_leave_policy_groups = function(task){ return data_module.loadLeave_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {leave_policy_groups: rs}); var items = contentModule.getLeavePolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_employment_contract_types = function(task){ return data_module.loadEmployment_contract_typesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {employment_contract_types: rs}); var items = contentModule.getEmploymentContractTypesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_insurance_policy_groups = function(task){ return data_module.loadInsurance_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {insurance_policy_groups: rs}); var items = contentModule.getInsurancePolicyGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.member_of_training_program_groups = function(task){ return data_module.loadTrainingProgram_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {training_program_groups: rs}); var items = contentModule.getTrainingProgramGroupsListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.fx = form_module.fx ||{};//todo: gom ham form_module.fx.load_warehouse_items = function(){ var self = this; return data_module.loadWarehousesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {warehouses: rs}); return contentModule.getWarehousesListSelectMenu(host); }, function(rj){console.log(rj);}); }; form_module.fx.member_of_assets = function(host, warehouseid, asset_transactionid){ var self = this; var c = contentModule.getAssetsHandoverListSelectMenu(host, warehouseid, asset_transactionid); return c; }; form_module.fx.change_table_asset_handover_assetid_propertyDescriptors = function(oldProps, newItems){ if (!oldProps['-72'].propertyDescriptors.type_asset_handover_lines_assetid) { oldProps['-72'].propertyDescriptors.__preloaded__ = { type_asset_handover_lines_assetid:{ items: newItems, onchange: '{{' + 'type_asset_handover_lines_status = contentModule.getStatusByAssetId(this.fragment.getContext("host"), type_asset_handover_lines_assetid);' +'}}' } }; return oldProps; } //// TODO: prevent load in onCreated oldProps['-72'].propertyDescriptors.type_asset_handover_lines_assetid.items = newItems; if (oldProps['-72'].propertyDescriptors.__completeLoad__) oldProps['-72'].records = []; oldProps['-72'].propertyDescriptors.type_asset_handover_lines_assetid.onchange = '{{' + 'type_asset_handover_lines_status = contentModule.getStatusByAssetId(this.fragment.getContext("host"), type_asset_handover_lines_assetid);' +'}}'; oldProps['-72'].propertyDescriptors.type_asset_handover_lines_status.readOnly = true; return oldProps; }; form_module.fx.member_of_instruments_and_tools = function(host, warehouseid, asset_transactionid){ var self = this; var c = contentModule.getInstrumentAndToolsHandoverListSelectMenu(host, warehouseid, asset_transactionid); return c; }; form_module.fx.change_table_instruments_and_tools_handover_assetid_propertyDescriptors = function(oldProps, newItems){ if (!oldProps['-231'].propertyDescriptors.type_instruments_and_tools_handover_lines_assetid) { oldProps['-231'].propertyDescriptors.__preloaded__ = { type_instruments_and_tools_handover_lines_assetid:{ items: newItems, onchange: '{{' +'if (type_instruments_and_tools_handover_lines_assetid == 0) return; type_instruments_and_tools_handover_lines_amount = 1;' +'type_instruments_and_tools_handover_lines_unit = contentModule.getUnitByInstrumentsAndToolsId(this.fragment.getContext("host"), type_instruments_and_tools_handover_lines_assetid);' + 'type_instruments_and_tools_handover_lines_inventory = contentModule.getInventoryByByInstrumentsAndToolsId(this.fragment.getContext("host"), type_instruments_and_tools_handover_lines_assetid);' +'}}' } }; return oldProps; } //// TODO: prevent load in onCreated oldProps['-231'].propertyDescriptors.type_instruments_and_tools_handover_lines_assetid.items = newItems; if (oldProps['-231'].propertyDescriptors.__completeLoad__) oldProps['-231'].records = []; oldProps['-231'].propertyDescriptors.type_instruments_and_tools_handover_lines_assetid.onchange = '{{' +'type_instruments_and_tools_handover_lines_amount = 1;' +'type_instruments_and_tools_handover_lines_unit = contentModule.getUnitByInstrumentsAndToolsId(this.fragment.getContext("host"), type_instruments_and_tools_handover_lines_assetid);' + 'type_instruments_and_tools_handover_lines_inventory = contentModule.getInventoryByByInstrumentsAndToolsId(this.fragment.getContext("host"), type_instruments_and_tools_handover_lines_assetid);' +'}}'; oldProps['-231'].propertyDescriptors.type_instruments_and_tools_handover_lines_unit.readOnly = true; oldProps['-231'].propertyDescriptors.type_instruments_and_tools_handover_lines_inventory.readOnly = true; oldProps['-231'].propertyDescriptors.type_instruments_and_tools_handover_lines_amount.max = '= type_instruments_and_tools_handover_lines_inventory'; return oldProps; }; form_module.fx.member_of_assets_recall = function(host, employeeid, asset_transactionid){ var self = this; var c = contentModule.getAssetsRecallListSelectMenu(host, employeeid, asset_transactionid); return c; }; form_module.fx.change_table_recall_asetid_propertyDescriptors = function(oldProps, newItems){ if (!oldProps['-76'].propertyDescriptors.type_asset_recall_lines_assetid) { oldProps['-76'].propertyDescriptors.__preloaded__ = { type_asset_recall_lines_assetid:{ items: newItems, onchange: '{{' + 'type_asset_recall_lines_status = contentModule.getStatusByAssetId(this.fragment.getContext("host"), type_asset_recall_lines_assetid);' +'}}' } }; return oldProps; } //// TODO: prevent load in onCreated oldProps['-76'].propertyDescriptors.type_asset_recall_lines_assetid.items = newItems; if (oldProps['-76'].propertyDescriptors.__completeLoad__) oldProps['-76'].records = []; oldProps['-76'].propertyDescriptors.type_asset_recall_lines_assetid.onchange = '{{' + 'type_asset_recall_lines_status = contentModule.getStatusByAssetId(this.fragment.getContext("host"), type_asset_recall_lines_assetid);' +'}}'; oldProps['-76'].propertyDescriptors.type_asset_recall_lines_status.readOnly = true; return oldProps; }; form_module.tag2OnCreated.member_of_worktime_machines = function(task){ return data_module.loadWorktimeMachinesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {worktime_machines: rs}); var items = contentModule.getWorktime_machinesListSelectMenu(host); if (task == "output") items[0].text = ""; return items; }, function(rj){console.log(rj);}); }; form_module.tag2OnCreated.enum = function(t_id, task){ // var t_id = this.attributes.typeid // var self = this; return Promise.all([ data_module.loadTypeList(), data_module.loadLeave_policy_groupsList(), data_module.loadEmployment_contract_typesList() ]).then(function(values){ var host = { database: {} }; contentModule.makeDatabaseContent(host, {typelists: values[0], leave_policy_groups: values[1], employment_contract_types: values[2]}); var typeDict = {}; host.database.typelists.items.forEach(function (elt, index) { contentModule.makeDataTypeDecode(elt); typeDict[elt.id] = elt; }); var type = typeDict[t_id].type; var items; switch (type) { case 'language': items = contentModule.getLanguageListSelectMenu(task); break; case 'member_of_leave_policy_groups': items = contentModule.getLeavePolicyGroupsListSelectMenu(host, task); break; case 'member_of_employment_contract_types': items = contentModule.getEmploymentContractTypesListSelectMenu(host, task); break; default: var content = typeDict[t_id].content; var lists = content.details.map(function(elt){ return { text: elt.text, value: elt.localid }; }); lists.unshift({text: LanguageModule.text("txt_select_value"), value: 0}); items = lists; } if (task == "output") items[0].text = ""; return items; }); }; form_module.tag2OnCreated.enum_multi = function(t_id, task){ // var t_id = this.attributes.typeid // var self = this; return Promise.all([ data_module.loadTypeList(), data_module.loadLeave_policy_groupsList(), data_module.loadEmployment_contract_typesList() ]).then(function(values){ var host = { database: {} }; contentModule.makeDatabaseContent(host, {typelists: values[0], leave_policy_groups: values[1], employment_contract_types: values[2]}); var typeDict = {}; host.database.typelists.items.forEach(function (elt, index) { contentModule.makeDataTypeDecode(elt); typeDict[elt.id] = elt; }); var type = typeDict[t_id].type; var items; switch (type) { case 'language': items = contentModule.getLanguageListSelectMenu(task); break; case 'member_of_leave_policy_groups': items = contentModule.getLeavePolicyGroupsListSelectMenu(host, task); break; case 'member_of_employment_contract_types': items = contentModule.getEmploymentContractTypesListSelectMenu(host, task); break; default: var content = typeDict[t_id].content; var lists = content.details.map(function(elt){ return { text: elt.text, value: elt.localid }; }); lists.unshift({text: LanguageModule.text("txt_select_value"), value: 0}); items = lists; } if (task == "output") items[0].text = ""; return items; }); }; form_module.tag2OnCreated.extends_enum = function(typeid, task){ // var typeid = this.attributes.typeid; // var self = this; return data_module.loadTypeList().then(function(typelists){ var host = { database: {} }; contentModule.makeDatabaseContent(host, {typelists: typelists}); var typeDict = {}; host.database.typelists.items.forEach(function (elt, index) { contentModule.makeDataTypeDecode(elt); typeDict[elt.id] = elt; }); var t_id = typeDict[typeid].content.typeof; var content = typeDict[typeid].content.details; while (typeDict[t_id].type == "extends_enum"){ content = typeDict[t_id].content.details.concat(content) t_id = typeDict[t_id].content.typeof; } var type = typeDict[t_id].type; var lists; switch (type) { case 'language': lists = contentModule.getLanguageListSelectMenu(); break; default: lists = typeDict[t_id].content.details.map(function(elt){ return { text: elt.text, value: elt.localid }; }); lists.unshift({text: LanguageModule.text("txt_select_value"), value: 0}); } content.forEach(function(elt){ lists.push({ text: elt.text, value: elt.localid }); }); lists[0].text = ""; return lists; // self.domElt.items = lists; }); }; form_module.tag2OnCreated.extends_enum_multi = function(typeid, task){ // var typeid = this.attributes.typeid; // var self = this; return data_module.loadTypeList().then(function(typelists){ var host = { database: {} }; contentModule.makeDatabaseContent(host, {typelists: typelists}); var typeDict = {}; host.database.typelists.items.forEach(function (elt, index) { contentModule.makeDataTypeDecode(elt); typeDict[elt.id] = elt; }); var t_id = typeDict[typeid].content.typeof; var content = typeDict[typeid].content.details; while (typeDict[t_id].type == "extends_enum_multi"){ content = typeDict[t_id].content.details.concat(content) t_id = typeDict[t_id].content.typeof; } var type = typeDict[t_id].type; var lists; switch (type) { case 'language': lists = contentModule.getLanguageListSelectMenu(); break; default: lists = typeDict[t_id].content.details.map(function(elt){ return { text: elt.text, value: elt.localid }; }); lists.unshift({text: LanguageModule.text("txt_select_value"), value: 0}); } content.forEach(function(elt){ lists.push({ text: elt.text, value: elt.localid }); }); lists[0].text = ""; return lists; // self.domElt.items = lists; }); }; form_module.makeHeaderOfTable = function(host, typeid){ var index, dict, type, content; dict = {}; host.database.typelists.items.forEach(function(elt, index){ dict[elt.id] = index; }); index = dict[typeid]; var getType = function(index){ var type = host.database.typelists.items[index].type; if (form_module.primitiveTypeList.indexOf(type) != -1){ type = host.database.typelists.items[index].type2; } return type; } type = getType(index); if (type == "structure") content = host.database.typelists.items[index].content.details; else if (type == "extends_structure"){ content = contentModule.makeExtendTypeData(host, typeid); } else { content = [{ type: typeid, localid: typeid }]; } var names, descriptions; names = []; descriptions = {}; var keys = []; var promiseList = []; content.forEach(function(elt){ var index, type; index = dict[elt.type]; type = getType(index); names.push(elt.localid); keys.push(elt.localid); promiseList.push((form_module.makeDataOfHeader[type] || form_module.makeDataOfHeader.notSupport)(host, elt, index)); }); return new Promise(function(rs, rj){ Promise.all(promiseList).then(function(result){ result.forEach(function(elt, index){ descriptions[keys[index]] = elt; }); rs({ names: names, descriptions: descriptions }); }, function(){ rj(); }); }); }; form_module.makeDataOfHeader = {}; form_module.makeDataOfHeader.notSupport = function(host, item){ //todo: log ra coi loi } form_module.makeDataOfHeader.string = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "text", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.performance_chart = function(host, item){ var colorMapping = [ {value: 0}, {value: 0.5}, {value: 1}, {value: 1.2} ]; systemconfig.thresholdcolor.forEach(function(elt, idx){ colorMapping[idx].color = elt; }); return new Promise(function(rs, rj){ rs({ type: "performance", text: item.name, colorMapping: colorMapping, required: item.require }); }); }; form_module.makeDataOfHeader.note = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "text", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.number = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "number", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.currency = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "number", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.date = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "Date", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.datetime = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "Date", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.datemonth = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "Date", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.boolean = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "boolean", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.email_address = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "text", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.user = function(host, item){ var items = data_module.users.items.map(function(elt){ return { text: elt.username + " - " + elt.fullname, value: elt.id }; }); return new Promise(function(rs, rj){ rs({ type: "enum", emptyValue: '0', text: item.name, items: items, required: item.require }); }); }; form_module.makeDataOfHeader.userlist = function(host, item){ var items = data_module.users.items.map(function(elt){ return { text: elt.username + " - " + elt.fullname, value: elt.id }; }); return new Promise(function(rs, rj){ rs({ type: "{enum}", text: item.name, items: items, required: item.require }); }); }; form_module.makeDataOfHeader.phonenumber = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "text", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.website = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "text", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.gps = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "text", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.geopos = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getGeoposListSelectMenu(), required: item.require }); }); }; form_module.makeDataOfHeader.member_of_department = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadOrgsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {orgs: rs}); contentModule.makeOrgsIndex(host); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getOrgsListSelectTreeMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_document_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadDocument_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {document_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getDocumentGroupsListSelectTreeMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_document_folders = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadDocument_foldersList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {document_folders: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getDocumentFoldersListSelectTreeMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_position = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadPositionsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {positions: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getPositionsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_people = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadPeoplesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {peoples: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getPeoplesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_employee = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadEmployeesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {employees: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getMemberOfEmployeeSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_template_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadTemplateGroupList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {template_groups: rs}); host.database.template_groups.items.unshift({ id: -1, name: LanguageModule.text("txt_onboarding"), comment: "", extrainfo: "obj#0#", available: 1, ver: 1 }); host.database.template_groups.items.unshift({ id: -3, name: LanguageModule.text("txt_offboarding"), comment: "", extrainfo: "obj#0#", available: 1, ver: 1 }); host.database.template_groups.items.unshift({ id: -4, name: LanguageModule.text("txt_examination"), comment: "", extrainfo: "obj#0#", available: 1, ver: 1 }); host.database.template_groups.items.unshift({ id: -2, name: "Khác...", comment: "", extrainfo: "obj#0#", available: 1, ver: 1 }); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getMemberOfTemplateGroupSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_worktime_machines = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadWorktimeMachinesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {worktime_machines: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getWorktime_machinesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_assets = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadAssetsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {assets: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getAssetsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_instruments_and_tools = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadInstruments_and_toolsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {instruments_and_tools: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getInstrumentAndToolsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_assets_instruments_and_tools = function(host, item){ return new Promise(function(resolve, reject){ var host = {database: {}}; Promise.all([data_module.loadAssetsList(), data_module.loadInstruments_and_toolsList()]).then(function(content){ contentModule.makeDatabaseContent(host, {assets: content[0], instruments_and_tools: content[1]}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getAssetsInstrumentAndToolsListSelectMenu(host), required: item.require }); }); }); }; form_module.makeDataOfHeader.member_of_warehouses = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadWarehousesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {warehouses: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getWarehousesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_welcome_templates = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadWarehousesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {welcome_templates: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getMemberOfWelcomeTemplateSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_allowance_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadAllowance_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {allowance_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getAllowancePolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_bonus_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadBonus_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {bonus_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getBonusPolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_work_flow_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadWork_flow_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {work_flow_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getWorkFlowGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_work_flows = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadWork_flowsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {work_flows: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getWorkFlowsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_payroll_cycle = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadPayrollCycleList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {payroll_cycle: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getPayrollCycleListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_objects = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadObjectsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {objects: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getObjectsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_lesson_categories = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadLesson_categoriesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {lesson_categories: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getLessonCategoriesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_typelists = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadType_listsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {typelists: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getTypeListsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_input_forms = function(host, item){ return new Promise(function(resolve, reject){ resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getInputFormsListSelectMenu(), required: item.require }); }); }; form_module.makeDataOfHeader.member_of_mobile_input_forms = function(host, item){ return new Promise(function(resolve, reject){ resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getMobileInputFormsListSelectMenu(), required: item.require }); }); }; form_module.makeDataOfHeader.member_of_output_forms = function(host, item){ return new Promise(function(resolve, reject){ resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getOutputFormsListSelectMenu(), required: item.require }); }); }; form_module.makeDataOfHeader.member_of_mobile_output_forms = function(host, item){ return new Promise(function(resolve, reject){ resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getMobileOutputFormsListSelectMenu(), required: item.require }); }); }; form_module.makeDataOfHeader.member_of_partner_class = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadPartner_classList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {partner_class: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getPartnerClassListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_partner = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadPartnerList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {partner: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getPartnerListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_contact = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadContactList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {contact: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getContactListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_document_types = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadDocument_typesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {document_types: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getDocumentTypesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_orgs = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadOrgCompanysList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {orgs: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getOrgsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_other_liability_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadOther_liability_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {other_liability_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getOtherLiabilityPolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_insurance_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadInsurance_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {insurance_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getInsurancePoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_tax_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadTax_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {tax_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getTaxPoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_trade_union_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadTrade_union_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {trade_union_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getTradeUnionPoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_leave_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadLeave_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {leave_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getLeavePoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_benefit_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadBenefit_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {benefit_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getBenefitPoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_allowance_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadAllowance_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {allowance_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getAllowancePoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_bonus_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadBonus_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {bonus_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getBonusPoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_overtime_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadOvertime_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {overtime_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getOvertimePoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_punishment_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadPunishment_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {punishment_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getPunishmentPoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_advance_payment_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadAdvance_payment_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {advance_payment_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getAdvancePaymentPoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_late_early_checkin_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadLate_early_checkin_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {late_early_checkin_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getLateEarlyCheckinPoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_salary_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadSalary_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {salary_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getSalaryPoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_other_liability_policies = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadOther_liability_policiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {other_liability_policies: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getOtherLiabilityPoliciesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_nations = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadNationsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {nations: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getNationsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_cities = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadCitiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {cities: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getCitiesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_ethnics = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadEthnicsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {ethnics: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getEthnicsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_religions = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadReligionsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {religions: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getReligionsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_salary_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadSalary_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {salary_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getSalaryPolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_salary_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadSalary_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {salary_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getSalaryPolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_punishment_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadPunishment_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {punishment_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getPunishmentPolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_asset_category = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadAssetCategoryList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {asset_category: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getAssetCategoryListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_instruments_and_tools_category = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadInstrumentsAndToolsCategoryList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {instruments_and_tools_category: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getAssetsInstrumentAndToolsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_projects = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadProjectsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {projects: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getProjectsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_tax_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadTax_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {tax_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getTaxPolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_advance_payment_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadAdvance_payment_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {advance_payment_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getAdvancePaymentPolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_late_early_checkin_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadLate_early_checkin_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {late_early_checkin_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getLateEarlyCheckinPolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_benefit_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadBenefit_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {benefit_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getBenefitPolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_shifts = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadShiftsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {shifts: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getShiftsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.members_of_shifts = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadShiftsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {shifts: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getShiftsListSelectBox(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.members_of_partner_class = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadPartner_classList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {partner_class: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getPartnerClassListSelectBox(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.members_of_locations = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadGeographiesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {geopos: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getGeoposListSelectBox(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_leave_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadLeave_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {leave_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getLeavePolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_employment_contract_types = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadEmployment_contract_typesList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {employment_contract_types: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getEmploymentContractTypesListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_insurance_policy_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadInsurance_policy_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {insurance_policy_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getInsurancePolicyGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.member_of_training_program_groups = function(host, item){ return new Promise(function(resolve, reject){ data_module.loadTrainingProgram_groupsList().then(function(rs){ var host = {database: {}}; contentModule.makeDatabaseContent(host, {training_program_groups: rs}); resolve({ type: "enum", emptyValue: '0', text: item.name, items: contentModule.getTrainingProgramGroupsListSelectMenu(host), required: item.require }); }, function(rj){reject(rj);}); }); }; form_module.makeDataOfHeader.time = function(host, item){ return new Promise(function(rs, rj){ rs({ type: "TimeInput", text: item.name, required: item.require }); }); }; form_module.makeDataOfHeader.enum = function(host, item, index){ var items; var type = host.database.typelists.items[index].type; switch (type) { case 'language': items = contentModule.getLanguageListSelectMenu(); break; default: var content = host.database.typelists.items[index].content; items = content.details.map(function(elt){ return { text: elt.text, value: elt.localid }; }); items.unshift({text: LanguageModule.text("txt_select_value"), value: "0"}); } return new Promise(function(rs, rj){ rs({ type: "enum", emptyValue: '0', text: item.name, items: items, required: item.require }); }); }; form_module.makeDataOfHeader.enum_multi = function(host, item, index){ var items; var type = host.database.typelists.items[index].type; switch (type) { case 'language': items = contentModule.getLanguageListSelectMenu(); break; default: var content = host.database.typelists.items[index].content; items = content.details.map(function(elt){ return { text: elt.text, value: elt.localid }; }); items.unshift({text: LanguageModule.text("txt_select_value"), value: 0}); } return new Promise(function(rs, rj){ rs({ type: "{enum}", text: item.name, items: items, required: item.require }); }); }; form_module.makeDataOfHeader.extends_enum_multi = function(host, item, index){ var getType = function(index){ var type = host.database.typelists.items[index].type; if (form_module.primitiveTypeList.indexOf(type) != -1){ type = host.database.typelists.items[index].type2; } return type; } var dict = contentModule.makeDictionaryIndex(host.database.typelists.items); var details = host.database.typelists.items[index].content.details; var t_id = host.database.typelists.items[index].content.typeof; var t_type = getType(dict[t_id]); while(t_type == "extends_enum_multi"){ details = host.database.typelists.items[dict[t_id]].content.details.concat(details); t_id = host.database.typelists.items[dict[t_id]].content.typeof; t_type = getType(dict[t_id]); } var items, type; type = host.database.typelists.items[dict[t_id]].type; switch (type) { case 'language': items = contentModule.getLanguageListSelectMenu(); break; default: items = host.database.typelists.items[dict[t_id]].content.details.map(function(elt){ return { text: elt.text, value: elt.localid }; }); items.unshift({text: LanguageModule.text("txt_select_value"), value: 0}); } details.forEach(function(elt){ items.push({ text: elt.text, value: elt.localid }); }); return new Promise(function(rs, rj){ rs({ type: "{enum}", text: item.name, items: items, required: item.require }); }); }; form_module.makeDataToSet = function(params){ var typeid, valueid; typeid = params.typeid; valueid = params.valueid; return new Promise(function(resolve, reject){ var typeDict = contentModule.makeDictionaryIndex(params.typelists); var valueDict = contentModule.makeDictionaryIndex(params.values); var primitiveTypeList = form_module.primitiveTypeList; var getType = function(index){ var type = params.typelists[index].type; if ( form_module.primitiveTypeList.indexOf(type) != -1 ){ type = params.typelists[index].type2; } return type; } var localDatabase = {}; var generateData = function(typeid, valueid, currentPath){ return new Promise(function(rs, rj){ var value, index, typeContent, t_id, dataTypeOfArray, content; var type; if (isNaN(parseInt(typeid))) type = typeid; else type = getType(typeDict[typeid]); var data; switch (type) { case "nation_city": if (valueid) data = { values: params.values[valueDict[valueid]].content }; else data = {}; rs(data); break; case "position_list": data = {}; data[typeid] = []; if (valueid){ var index = typeDict[typeid]; var typeContent = params.typelists[index].content; var t_id = typeContent.typeof; var valueContent = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); valueContent.forEach(function(elt){ data[typeid].push(generateData(t_id, elt)); }); } rs(data); break; case "employee_list": if (valueid) data = { values: params.values[valueDict[valueid]].content }; else data = {}; rs(data); // data = {}; // data[typeid] = []; // if (valueid){ // var index = typeDict[typeid]; // var typeContent = params.typelists[index].content; // var t_id = typeContent.typeof; // var valueContent = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); // valueContent.forEach(function(elt){ // data[typeid].push(generateData(t_id, elt)); // }); // } // rs(data); break; case "number": if (valueid) data = parseInt(params.values[valueDict[valueid]].content, 10); else data = 0; rs(data); break; case "currency": if (valueid) data = parseInt(params.values[valueDict[valueid]].content, 10); else data = 0; rs(data); break; case "string": case "phonenumber": case "website": case "gps": case "note": case "html": case "variable_input": case "variable_textarea": case "email_address": if (valueid) data = params.values[valueDict[valueid]].content; else data = ""; rs(data); break; case "date": case "datetime": case "datemonth": case "boolean": if (valueid) data = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); else data = ""; rs(data); break; case "hour_period": if (valueid) data = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); else data = ""; rs(data); break; case "time": data = params.values[valueDict[valueid]].content; rs(data); break; case "user": // case "language": case "geopos": case "member_of_position": case "member_of_people": case "member_of_employee": case "member_of_worktime_machines": case "member_of_department": case "member_of_assets": case "member_of_instruments_and_tools": case "member_of_assets_instruments_and_tools": case "member_of_warehouses": case "member_of_welcome_templates": case "member_of_allowance_policy_groups": case "member_of_bonus_policy_groups": case "member_of_work_flow_groups": case "member_of_work_flows": case "member_of_payroll_cycle": case "member_of_objects": case "member_of_lesson_categories": case "member_of_typelists": case "member_of_input_forms": case "member_of_output_forms": case "member_of_mobile_input_forms": case "member_of_mobile_output_forms": case "member_of_partner_class": case "member_of_partner": case "member_of_contact": case "member_of_other_liability_policy_groups": case "member_of_salary_policy_groups": case "member_of_trade_union_policy_groups": case "member_of_overtime_policy_groups": case "member_of_offboarding_types": case "member_of_offboarding_reasons": case "multiselect_offboarding_reasons": case "member_of_punishment_policy_groups": case "member_of_asset_category": case "member_of_instruments_and_tools_category": case "member_of_projects": case "member_of_tax_policy_groups": case "member_of_advance_payment_policy_groups": case "member_of_late_early_checkin_policy_groups": case "member_of_benefit_policy_groups": case "member_of_leave_policy_groups": case "member_of_employment_contract_types": case "member_of_insurance_policy_groups": case "member_of_training_program_groups": case "member_of_shifts": case "member_of_insurance_policies": case "member_of_tax_policies": case "member_of_trade_union_policies": case "member_of_benefit_policies": case "member_of_allowance_policies": case "member_of_bonus_policies": case "member_of_overtime_policies": case "member_of_punishment_policies": case "member_of_leave_policies": case "member_of_advance_payment_policies": case "member_of_late_early_checkin_policies": case "member_of_salary_policies": case "member_of_other_liability_policies": case "member_of_nations": case "member_of_cities": case "member_of_ethnics": case "member_of_religions": case "member_of_document_types": case "member_of_orgs": case "member_of_document_groups": case "member_of_document_folders": case "member_of_template_groups": if (valueid) data = { value: params.values[valueDict[valueid]].content }; else data = {}; rs(data); break; case "any_file": case "image_file": data_module.makeImageContent(EncodingClass.string.toVariable(params.values[valueDict[valueid]].content)).then(function(result){ rs(result); }); break; case "enum": if (valueid) data = { value: params.values[valueDict[valueid]].content }; else data = {}; rs(data); break; case "userlist": case "members_of_shifts": case "members_of_locations": case "members_of_partner_class": if (valueid) data = { values: EncodingClass.string.toVariable(params.values[valueDict[valueid]].content) }; else data = {}; rs(data); break; case "structure": index = typeDict[typeid]; typeContent = params.typelists[index].content.details; data = {}; if (valueid) { var t_values = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); var dict_values = {}; t_values.forEach(function(elt){ dict_values[elt.localid] = elt.valueid; }); var t_data = {}; for (var i = 0; i < typeContent.length; i++){ value = generateData(typeContent[i].type, dict_values[typeContent[i].localid], typeContent[i]); // if (value === null) return null; t_data[typeContent[i].localid] = value; } Promise.all(Object.values(t_data)).then(function(result){ var a = Object.keys(t_data); for (var i = 0; i < a.length; i++){ if (result[i] === null){ rs(null); break; } if (result[i] && result[i].detailUnion){ data[a[i]] = { value: result[i].value } Object.assign(data, result[i].detailUnion); } else data[a[i]] = result[i]; } rs(data); }, function(message){rj(message);}); } break; case "extends_structure": index = typeDict[typeid]; typeContent = params.typelists[index].content; t_id = typeContent.typeof; content = params.typelists[typeDict[t_id]].content.details.concat(typeContent.details); while (params.typelists[typeDict[t_id]].type == "extends_structure"){ t_id = params.typelists[typeDict[t_id]].content.typeof; content = params.typelists[typeDict[t_id]].content.details.concat(content) } data = {}; if (valueid) { var t_values = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); var dict_values = {}; t_values.forEach(function(elt){ dict_values[elt.localid] = elt.valueid; }); var t_data = {}; for (var i = 0; i < content.length; i++){ value = generateData(content[i].type, dict_values[content[i].localid], content[i]); // if (value === null) return null; t_data[content[i].localid] = value; } Promise.all(Object.values(t_data)).then(function(result){ var a = Object.keys(t_data); for (var i = 0; i < a.length; i++){ if (result[i] === null){ rs(null); break; } if (result[i] && result[i].detailUnion){ data[a[i]] = { value: result[i].value } Object.assign(data, result[i].detailUnion); } else data[a[i]] = result[i]; } rs(data); }, function(message){rj(message);}) } break; case "extends_enum": if (valueid) data = { value: params.values[valueDict[valueid]].content }; else data = {}; rs(data); break; case "array": index = typeDict[typeid]; typeContent = params.typelists[index].content; t_id = typeContent.typeof; data = {}; if (valueid) { var valueContent = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); dataTypeOfArray = contentModule.checkDatatypeOfArray(params.typelists, t_id); if (dataTypeOfArray == "advanced"){ data[typeid] = []; t_type = getType(typeDict[t_id]); if (t_type == "structure" || t_type == "extends_structure"){ var t_data = []; for (i = 0; i < valueContent.length; i++){ var x = generateData(t_id, valueContent[i]); t_data.push(x); } Promise.all(t_data).then(function(result){ data[typeid] = result; rs(data); }, function(message){rj(message);}); } else { var t_data = []; for (i = 0; i < valueContent.length; i++){ t_data.push(generateData(t_id, valueContent[i])); } Promise.all(t_data).then(function(result){ result.forEach(function(elt){ var x = {}; x[t_id] = elt; data[typeid].push(x); }); rs(data); }, function(message){rj(message);}); } } else { data[typeid] = {records: []}; t_type = getType(typeDict[t_id]); if (t_type == "structure" || t_type == "extends_structure"){ content = params.typelists[typeDict[t_id]].content.details; var t_dict = {}; content.forEach(function(elt){ t_dict[elt.localid] = elt.type; }); var t_data = []; for (i = 0; i < valueContent.length; i++){ t_data.push(generateData(t_id, valueContent[i])); } Promise.all(t_data).then(function(result){ result.forEach(function(x){ var keys = Object.keys(x); keys.forEach(function(elt){ if (x[elt] instanceof Object) x[elt] = x[elt].value; }) data[typeid].records.push(x); }); rs(data); }, function(message){rj(message);}) } else { var t_data = []; for (i = 0; i < valueContent.length; i++){ t_data.push(generateData(t_id, valueContent[i])); } Promise.all(t_data).then(function(result){ result.forEach(function(x){ if (x instanceof Object) x = x.value; var st = {}; st[t_id] = x; data[typeid].records.push(st); }); rs(data); }, function(message){rj(message);}) } } } else { rs([]) } break; case "union": if (valueid) { var t_values = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); data = { value: t_values.value, detailUnion: {} }; var detailUnion = {}; t_values.detailUnion.forEach(function(elt){ detailUnion[elt.localid] = elt.valueid; }); var t_data = {}; if (currentPath.detailUnion[data.value]){ currentPath.detailUnion[data.value].forEach(function(elt){ t_data[elt.localid] = generateData(elt.type, detailUnion[elt.localid], elt); }); } Promise.all(Object.values(t_data)).then(function(result){ var a = Object.keys(t_data); for (var i = 0; i < a.length; i++){ if (result[i] === null){ rs(null); break; } data.detailUnion[a[i]] = result[i]; } rs(data); }, function(message){rj(message);}); } else rs({}); break; default: rj("undefined type: " + type); } }); }; generateData(typeid, valueid).then(function(result){ if (result === null) resolve(null); resolve(result) }, function(message){console.log(message); reject(message);}); }); }; form_module.makeDataToSave = function(formView, typeid, typelists){ var typeDict = {}; typelists.forEach(function(elt, index){ typeDict[elt.id] = index; }); var primitiveTypeList = form_module.primitiveTypeList; var getType = function(index){ var type = typelists[index].type; if ( form_module.primitiveTypeList.indexOf(type) != -1 ){ type = typelists[index].type2; } return type; } var generateData = function(valueContent, typeid, elt){ var data; var value, index, typeContent, t_id, dataTypeOfArray, content; var type; if (isNaN(parseInt(typeid, 10))) type = typeid; else type = getType(typeDict[typeid]); switch (type) { case "nation_city": if (elt && elt.require && valueContent.value.length < 2) { ModalElement.alert({message: "Chưa chọn " + elt.name}); return null; } data = { values: valueContent.value, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "position_list": data = []; index = typeDict[typeid]; typeContent = typelists[index].content; t_id = typeContent.typeof; for (var i = 0; i < valueContent[typeid].length; i++){ var x = generateData(valueContent[typeid][i], t_id); if (x === null) return null; data.push(x); } data = { value: data, typeid: typeid, // localid: elt ? elt.localid : undefined, privtype: type }; if (elt) data.localid = elt.localid; break; case "employee_list": if (elt && elt.require && valueContent.values.length == 0) { ModalElement.alert({message: "Chưa chọn " + elt.name}); return null; } data = { values: valueContent.values, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; // data = []; // index = typeDict[typeid]; // typeContent = typelists[index].content; // t_id = typeContent.typeof; // for (var i = 0; i < valueContent[typeid].length; i++){ // var x = generateData(valueContent[typeid][i], t_id); // if (x === null) return null; // data.push(x); // } // data = { // value: data, // typeid: typeid, // // localid: elt ? elt.localid : undefined, // privtype: type // }; // if (elt) data.localid = elt.localid; // break; case "number": if (elt && elt.require && valueContent == "") { ModalElement.alert({message: "Chưa nhập " + elt.name}); return null; } data = { value: valueContent, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "currency": if (elt && elt.require && valueContent == "") { ModalElement.alert({message: "Chưa nhập " + elt.name}); return null; } data = { value: valueContent, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "string": case "phonenumber": case "website": case "gps": case "note": case "html": case "variable_input": case "variable_textarea": case "email_address": valueContent = valueContent.trim(); if (elt && elt.require && valueContent == "") { absol.form.traversal(formView, function(path){ if (path.node["$" + elt.localid]) { ModalElement.alert({ message: "Chưa nhập " + elt.name, func: function(){ path.node["$" + elt.localid].domElt.focus(); } }); path.stop(); } }); return null; } data = { value: valueContent, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "date": case "datetime": case "datemonth": case "time": case "boolean": data = { value: valueContent, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "hour_period": data = { value: valueContent, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "user": // case "language": case "geopos": case "member_of_position": case "member_of_people": case "member_of_employee": case "member_of_worktime_machines": case "member_of_assets": case "member_of_instruments_and_tools": case "member_of_assets_instruments_and_tools": case "member_of_warehouses": case "member_of_welcome_templates": case "member_of_allowance_policy_groups": case "member_of_bonus_policy_groups": case "member_of_work_flow_groups": case "member_of_work_flows": case "member_of_payroll_cycle": case "member_of_objects": case "member_of_lesson_categories": case "member_of_typelists": case "member_of_input_forms": case "member_of_output_forms": case "member_of_mobile_input_forms": case "member_of_mobile_output_forms": case "member_of_partner_class": case "member_of_partner": case "member_of_contact": case "member_of_other_liability_policy_groups": case "member_of_salary_policy_groups": case "member_of_trade_union_policy_groups": case "member_of_overtime_policy_groups": case "member_of_offboarding_types": case "member_of_offboarding_reasons": case "multiselect_offboarding_reasons": case "member_of_punishment_policy_groups": case "member_of_asset_category": case "member_of_instruments_and_tools_category": case "member_of_projects": case "member_of_tax_policy_groups": case "member_of_advance_payment_policy_groups": case "member_of_late_early_checkin_policy_groups": case "member_of_benefit_policy_groups": case "member_of_leave_policy_groups": case "member_of_employment_contract_types": case "member_of_insurance_policy_groups": case "member_of_training_program_groups": case "member_of_shifts": case "member_of_insurance_policies": case "member_of_tax_policies": case "member_of_trade_union_policies": case "member_of_benefit_policies": case "member_of_allowance_policies": case "member_of_bonus_policies": case "member_of_overtime_policies": case "member_of_punishment_policies": case "member_of_leave_policies": case "member_of_advance_payment_policies": case "member_of_late_early_checkin_policies": case "member_of_salary_policies": case "member_of_other_liability_policies": case "member_of_nations": case "member_of_cities": case "member_of_ethnics": case "member_of_religions": case "member_of_document_types": case "member_of_orgs": case "member_of_template_groups": if (elt && elt.require && valueContent.value == 0) { ModalElement.alert({message: "Chưa chọn " + elt.name}); return null; } data = { value: valueContent.value, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "member_of_department": data = { value: valueContent.value, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "member_of_document_groups": data = { value: valueContent.value, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "member_of_document_folders": data = { value: valueContent.value, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "image_file": data = { value: valueContent ? valueContent.id : null, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "any_file": data = { value: valueContent ? valueContent.id : null, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "enum": if (elt && elt.require && valueContent.value == 0) { ModalElement.alert({message: "Chưa chọn " + elt.name}); return null; } var t_type = typelists[typeDict[typeid]].type; data = { value: valueContent.value, typeid: typeid, // localid: elt.localid, privtype: t_type }; if (elt) data.localid = elt.localid; break; case "userlist": case "members_of_shifts": case "members_of_locations": case "members_of_partner_class": if (elt && elt.require && valueContent.values.length == 0) { ModalElement.alert({message: "Chưa chọn " + elt.name}); return null; } data = { value: valueContent.values, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "structure": index = typeDict[typeid]; typeContent = typelists[index].content.details; data = []; for (var i = 0; i < typeContent.length; i++){ value = generateData(valueContent[typeContent[i].localid], typeContent[i].type, typeContent[i]); if (value === null) return null; data.push(value); } data = { value: data, typeid: typeid, // localid: elt ? elt.localid : undefined, privtype: type }; if (elt) data.localid = elt.localid; break; case "extends_structure": index = typeDict[typeid]; typeContent = typelists[index].content; t_id = typeContent.typeof; content = typelists[typeDict[t_id]].content.details.concat(typeContent.details); while (typelists[typeDict[t_id]].type == "extends_structure"){ t_id = typelists[typeDict[t_id]].content.typeof; content = typelists[typeDict[t_id]].content.details.concat(content) } data = []; for (var i = 0; i < content.length; i++){ value = generateData(valueContent[content[i].localid], content[i].type, content[i]); if (value === null) return null; data.push(value); } data = { value: data, typeid: typeid, // localid: elt ? elt.localid : undefined, privtype: type }; if (elt) data.localid = elt.localid; break; case "extends_enum": if (elt && elt.require && valueContent.value == 0) { ModalElement.alert({message: "Chưa chọn " + elt.name}); return null; } data = { value: valueContent.value, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "array": index = typeDict[typeid]; typeContent = typelists[index].content; t_id = typeContent.typeof; data = []; dataTypeOfArray = contentModule.checkDatatypeOfArray(typelists, t_id); if (dataTypeOfArray == "advanced"){ t_type = getType(typeDict[t_id]); if (t_type == "structure" || t_type == "extends_structure"){ for (i = 0; i < valueContent[typeid].length; i++){ var x = generateData(valueContent[typeid][i], t_id); if (x === null) return null; // var subdata = { // value: x, // privtype: t_type, // typeid: t_id // }; data.push(x); } } else { for (i = 0; i < valueContent[typeid].length; i++){ var x = generateData(valueContent[typeid][i][t_id], t_id); if (x === null) return null; // var subdata = { // value: x, // privtype: t_type, // typeid: t_id // }; data.push(x); } } } else { t_type = getType(typeDict[t_id]); if (t_type == "structure" || t_type == "extends_structure"){ content = typelists[typeDict[t_id]].content.details; var t_dict = {}; content.forEach(function(elt){ t_dict[elt.localid] = elt.type; }) for (i = 0; i < valueContent[typeid].records.length; i++){ var keys = Object.keys(valueContent[typeid].records[i]); var subdata = { value: [], privtype: t_type, typeid: t_id }; keys.forEach(function(elt){ subdata.value.push({ value: valueContent[typeid].records[i][elt], localid: elt, typeid: t_dict[elt], privtype: typelists[typeDict[t_dict[elt]]].type }); }) data.push(subdata); } } else { for (i = 0; i < valueContent[typeid].records.length; i++){ var x = generateData(valueContent[typeid].records[i][t_id], t_id); if (x === null) return null; data.push(x); } } } data = { value: data, typeid: typeid, // localid: elt.localid, privtype: type }; if (elt) data.localid = elt.localid; break; case "union": if (elt && elt.require && valueContent.value == 0) { ModalElement.alert({message: "Chưa chọn " + elt.name}); return null; } data = { value: valueContent.value, detailUnion: [], typeid: elt.typeOfUnion, // localid: elt ? elt.localid : undefined, privtype: type }; if (elt.detailUnion[data.value]){ for (var i = 0; i < elt.detailUnion[data.value].length; i++){ value = generateData(formView.props[elt.detailUnion[data.value][i].localid], elt.detailUnion[data.value][i].type, elt.detailUnion[data.value][i]); if (value === null) return null; data.detailUnion.push(value); } } if (elt) data.localid = elt.localid; break; default: } return data; }; var data = generateData(formView.props, typeid); if (data === null) return null; return data; }; form_module.convertOutputFormToNewVersion = function(params){ var typeid, valueid; typeid = params.typeid; valueid = params.valueid; return new Promise(function(resolve, reject){ var typeDict = contentModule.makeDictionaryIndex(params.typelists); var valueDict = contentModule.makeDictionaryIndex(params.values); var primitiveTypeList = form_module.primitiveTypeList; var getType = function(index){ var type = params.typelists[index].type; if ( form_module.primitiveTypeList.indexOf(type) != -1 ){ type = params.typelists[index].type2; } return type; } var localDatabase = {}; var generateData = function(typeid, valueid, currentPath){ return new Promise(function(rs, rj){ var value, index, typeContent, t_id, dataTypeOfArray, content; var type; if (isNaN(parseInt(typeid))) type = typeid; else type = getType(typeDict[typeid]); var data; switch (type) { case "nation_city": if (valueid) data = { values: params.values[valueDict[valueid]].content }; else data = {}; rs(data); break; case "position_list": data = {}; data[typeid] = []; if (valueid){ var index = typeDict[typeid]; var typeContent = params.typelists[index].content; var t_id = typeContent.typeof; var valueContent = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); valueContent.forEach(function(elt){ data[typeid].push(generateData(t_id, elt)); }); } rs(data); break; case "employee_list": if (valueid) data = { values: params.values[valueDict[valueid]].content }; else data = {}; rs(data); // data = {}; // data[typeid] = []; // if (valueid){ // var index = typeDict[typeid]; // var typeContent = params.typelists[index].content; // var t_id = typeContent.typeof; // var valueContent = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); // valueContent.forEach(function(elt){ // data[typeid].push(generateData(t_id, elt)); // }); // } // rs(data); break; case "number": if (valueid) data = parseInt(params.values[valueDict[valueid]].content, 10); else data = 0; rs(data); break; case "currency": if (valueid) data = parseInt(params.values[valueDict[valueid]].content, 10); else data = 0; rs(data); break; case "string": case "phonenumber": case "website": case "gps": case "html": case "variable_input": case "variable_textarea": case "email_address": if (valueid) data = params.values[valueDict[valueid]].content; else data = ""; rs(data); break; case "date": case "datetime": case "datemonth": case "boolean": if (valueid) data = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); else data = ""; rs(data); break; case "hour_period": if (valueid) data = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); else data = ""; rs(data); break; case "time": data = params.values[valueDict[valueid]].content; rs(data); break; case "user": // case "language": case "geopos": case "member_of_position": case "member_of_people": case "member_of_employee": case "member_of_worktime_machines": case "member_of_department": case "member_of_assets": case "member_of_instruments_and_tools": case "member_of_assets_instruments_and_tools": case "member_of_warehouses": case "member_of_welcome_templates": case "member_of_allowance_policy_groups": case "member_of_bonus_policy_groups": case "member_of_work_flow_groups": case "member_of_work_flows": case "member_of_payroll_cycle": case "member_of_objects": case "member_of_lesson_categories": case "member_of_typelists": case "member_of_input_forms": case "member_of_output_forms": case "member_of_mobile_input_forms": case "member_of_mobile_output_forms": case "member_of_partner_class": case "member_of_partner": case "member_of_contact": case "member_of_other_liability_policy_groups": case "member_of_salary_policy_groups": case "member_of_trade_union_policy_groups": case "member_of_overtime_policy_groups": case "member_of_offboarding_types": case "member_of_offboarding_reasons": case "multiselect_offboarding_reasons": case "member_of_punishment_policy_groups": case "member_of_asset_category": case "member_of_instruments_and_tools_category": case "member_of_projects": case "member_of_tax_policy_groups": case "member_of_advance_payment_policy_groups": case "member_of_late_early_checkin_policy_groups": case "member_of_benefit_policy_groups": case "member_of_leave_policy_groups": case "member_of_employment_contract_types": case "member_of_insurance_policy_groups": case "member_of_training_program_groups": case "member_of_shifts": case "member_of_insurance_policies": case "member_of_tax_policies": case "member_of_trade_union_policies": case "member_of_benefit_policies": case "member_of_allowance_policies": case "member_of_bonus_policies": case "member_of_overtime_policies": case "member_of_punishment_policies": case "member_of_leave_policies": case "member_of_advance_payment_policies": case "member_of_late_early_checkin_policies": case "member_of_salary_policies": case "member_of_other_liability_policies": case "member_of_nations": case "member_of_cities": case "member_of_ethnics": case "member_of_religions": case "member_of_document_types": case "member_of_orgs": case "member_of_document_groups": case "member_of_document_folders": case "member_of_template_groups": if (valueid) data = { value: params.values[valueDict[valueid]].content }; else data = {}; rs(data); break; case "any_file": case "image_file": data_module.makeImageContent(EncodingClass.string.toVariable(params.values[valueDict[valueid]].content)).then(function(result){ rs(result); }); break; case "enum": if (valueid) data = { value: params.values[valueDict[valueid]].content }; else data = {}; rs(data); break; case "userlist": case "members_of_shifts": case "members_of_locations": case "members_of_partner_class": if (valueid) data = { values: EncodingClass.string.toVariable(params.values[valueDict[valueid]].content) }; else data = {}; rs(data); break; case "structure": index = typeDict[typeid]; typeContent = params.typelists[index].content.details; data = {}; if (valueid) { var t_values = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); var dict_values = {}; t_values.forEach(function(elt){ dict_values[elt.localid] = elt.valueid; }); var t_data = {}; for (var i = 0; i < typeContent.length; i++){ value = generateData(typeContent[i].type, dict_values[typeContent[i].localid], typeContent[i]); // if (value === null) return null; t_data[typeContent[i].localid] = value; } Promise.all(Object.values(t_data)).then(function(result){ var a = Object.keys(t_data); for (var i = 0; i < a.length; i++){ if (result[i] === null){ rs(null); break; } if (result[i] && result[i].detailUnion){ data[a[i]] = { value: result[i].value } Object.assign(data, result[i].detailUnion); } else data[a[i]] = result[i]; } rs(data); }, function(message){rj(message);}); } break; case "extends_structure": index = typeDict[typeid]; typeContent = params.typelists[index].content; t_id = typeContent.typeof; content = params.typelists[typeDict[t_id]].content.details.concat(typeContent.details); while (params.typelists[typeDict[t_id]].type == "extends_structure"){ t_id = params.typelists[typeDict[t_id]].content.typeof; content = params.typelists[typeDict[t_id]].content.details.concat(content) } data = {}; if (valueid) { var t_values = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); var dict_values = {}; t_values.forEach(function(elt){ dict_values[elt.localid] = elt.valueid; }); var t_data = {}; for (var i = 0; i < content.length; i++){ value = generateData(content[i].type, dict_values[content[i].localid], content[i]); // if (value === null) return null; t_data[content[i].localid] = value; } Promise.all(Object.values(t_data)).then(function(result){ var a = Object.keys(t_data); for (var i = 0; i < a.length; i++){ if (result[i] === null){ rs(null); break; } if (result[i] && result[i].detailUnion){ data[a[i]] = { value: result[i].value } Object.assign(data, result[i].detailUnion); } else data[a[i]] = result[i]; } rs(data); }, function(message){rj(message);}) } break; case "extends_enum": if (valueid) data = { value: params.values[valueDict[valueid]].content }; else data = {}; rs(data); break; case "array": index = typeDict[typeid]; typeContent = params.typelists[index].content; t_id = typeContent.typeof; data = {}; if (valueid) { var valueContent = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); dataTypeOfArray = contentModule.checkDatatypeOfArray(params.typelists, t_id); if (dataTypeOfArray == "advanced"){ data[typeid] = []; t_type = getType(typeDict[t_id]); if (t_type == "structure" || t_type == "extends_structure"){ var t_data = []; for (i = 0; i < valueContent.length; i++){ var x = generateData(t_id, valueContent[i]); t_data.push(x); } Promise.all(t_data).then(function(result){ data[typeid] = result; rs(data); }, function(message){rj(message);}); } else { var t_data = []; for (i = 0; i < valueContent.length; i++){ t_data.push(generateData(t_id, valueContent[i])); } Promise.all(t_data).then(function(result){ result.forEach(function(elt){ var x = {}; x[t_id] = elt; data[typeid].push(x); }); rs(data); }, function(message){rj(message);}); } } else { data[typeid] = {records: []}; t_type = getType(typeDict[t_id]); if (t_type == "structure" || t_type == "extends_structure"){ content = params.typelists[typeDict[t_id]].content.details; var t_dict = {}; content.forEach(function(elt){ t_dict[elt.localid] = elt.type; }); var t_data = []; for (i = 0; i < valueContent.length; i++){ t_data.push(generateData(t_id, valueContent[i])); } Promise.all(t_data).then(function(result){ result.forEach(function(x){ var keys = Object.keys(x); keys.forEach(function(elt){ if (x[elt] instanceof Object) x[elt] = x[elt].value; }) data[typeid].records.push(x); }); rs(data); }, function(message){rj(message);}) } else { var t_data = []; for (i = 0; i < valueContent.length; i++){ t_data.push(generateData(t_id, valueContent[i])); } Promise.all(t_data).then(function(result){ result.forEach(function(x){ if (x instanceof Object) x = x.value; var st = {}; st[t_id] = x; data[typeid].records.push(st); }); rs(data); }, function(message){rj(message);}) } } } else { rs([]) } break; case "union": if (valueid) { var t_values = EncodingClass.string.toVariable(params.values[valueDict[valueid]].content); data = { value: t_values.value, detailUnion: {} }; var detailUnion = {}; t_values.detailUnion.forEach(function(elt){ detailUnion[elt.localid] = elt.valueid; }); var t_data = {}; if (currentPath.detailUnion[data.value]){ currentPath.detailUnion[data.value].forEach(function(elt){ t_data[elt.localid] = generateData(elt.type, detailUnion[elt.localid], elt); }); } Promise.all(Object.values(t_data)).then(function(result){ var a = Object.keys(t_data); for (var i = 0; i < a.length; i++){ if (result[i] === null){ rs(null); break; } data.detailUnion[a[i]] = result[i]; } rs(data); }, function(message){rj(message);}); } else rs({}); break; default: rj("undefined type: " + type); } }); }; generateData(typeid, valueid).then(function(result){ if (result === null) resolve(null); resolve(result) }, function(message){console.log(message); reject(message);}); }); }; form_module.getNameDictOfTypelist = function(content, dict){ for (var i = 0; i < content.details.length; i++){ dict[content.details[i].localid] = 1; if (content.details[i].localid.type == "union"){ var keys = Object.keys(content.details[i].detailUnion); for (var j = 0; j < keys.length; j++){ form_module.getNameDictOfTypelist(content.details[i].detailUnion[keys[j]], dict); } } } }; form_module.makeLayoutFormDictionary = function(form, nameDict, dictionary){ for (var i = 0; i < form.length; i++){ if (nameDict[form[i].attributes.name]) { dictionary.layout[form[i].attributes.name] = form[i]; } else if (form[i].children){ form_module.makeLayoutFormDictionary(form[i].children, nameDict, dictionary); } } }; form_module.makeCircuitFormDictionary = function(circuit, dictionary){ for (var i = 0; i < circuit.blocks.length; i++){ dictionary.circuit.blocks[circuit.blocks[i].attributes.ident] = circuit.blocks[i]; } for (var i = 0; i < circuit.lines.length; i++){ dictionary.circuit.lines[circuit.lines[i].attributes.ident] = circuit.lines[i]; } }; form_module.convertLayoutInputFormToNewVersion = function(content, dictionary){ var temp, t_name; for (var i = 0; i < content.length; i++){ if (content[i].attributes && content[i].attributes.name){ if (content[i].attributes.name.indexOf("_employeeid_container") != -1) { if (content[i].children[0].attributes && content[i].children[0].attributes.name && content[i].children[0].attributes.name.indexOf("_choose_company") != -1) { t_name = content[i].attributes.name; content[i] = content[i].children[2]; content[i].attributes.name = t_name; content[i].children[1].tag = "TreeLeafComboBox"; } } else if (content[i].attributes.name.indexOf("_positionid_container") != -1) { if (content[i].children[0].attributes && content[i].children[0].attributes.name && content[i].children[0].attributes.name.indexOf("_choose_company") != -1) { t_name = content[i].attributes.name; content[i] = content[i].children[2]; content[i].attributes.name = t_name; content[i].children[1].tag = "TreeLeafComboBox"; } } // else if (content[i].attributes.name.indexOf("_attachments_container") != -1) { // if (dictionary.layout[content[i].children[1].attributes.name]){ // temp = EncodingClass.string.duplicate(dictionary.layout[content[i].children[1].attributes.name]); // content[i] = temp; // } // // content[i] = content[i].children[1]; // } else if (dictionary.layout[content[i].attributes.name]){ if ( !(content[i].tag && dictionary.layout[content[i].attributes.name].tag) || (content[i].tag && !dictionary.layout[content[i].attributes.name].tag) || (content[i].tag && dictionary.layout[content[i].attributes.name].tag && (content[i].tag != dictionary.layout[content[i].attributes.name].tag)) ){ temp = EncodingClass.string.duplicate(dictionary.layout[content[i].attributes.name]); content[i] = temp; } } if (content[i].children) { form_module.convertLayoutInputFormToNewVersion(content[i].children, dictionary); } } else if (content[i].children) { form_module.convertLayoutInputFormToNewVersion(content[i].children, dictionary); } } }; form_module.convertCircuitInputFormToNewVersion = function(circuit, dictionary){ var blockDict = {}; var count = circuit.blocks.length; var isEmp = false; var isPos = false; for (var i = 0; i < count; i++){ if (circuit.blocks[i].attributes.ident && dictionary.circuit.blocks[circuit.blocks[i].attributes.ident]) { if (!circuit.blocks[i].attributes.isModified) { circuit.blocks[i] = dictionary.circuit.blocks[circuit.blocks[i].attributes.ident]; blockDict[circuit.blocks[i].attributes.ident] = 1; } } if (!circuit.blocks[i].attributes.ident && dictionary.circuit.blocks[circuit.blocks[i].attributes.id]) { circuit.blocks[i] = dictionary.circuit.blocks[circuit.blocks[i].attributes.id]; blockDict[circuit.blocks[i].attributes.id] = 1; } if (circuit.blocks[i].attributes.ident == "load_member_of_employee_items" && circuit.blocks[i].attributes.args && circuit.blocks[i].attributes.args.length == 1 && circuit.blocks[i].attributes.args[0] == "departmentid"){ isEmp = true; circuit.blocks[i].attributes.body = "console.log(form_module.tag2OnCreated.member_of_employee(this.fragment));return form_module.tag2OnCreated.member_of_employee(this.fragment);"; circuit.blocks[i].attributes.args = []; circuit.blocks.push({ attributes: { id: "member_of_employee_frag_created", ident: "member_of_employee_frag_created" }, tag: "CBEntry" }); var t_line = { u: "member_of_employee_frag_created", uPin: "signal", v: "load_member_of_employee_items", vPin: "exec" }; t_line.attributes = { ident: t_line.u + t_line.uPin + t_line.v + t_line.vPin }; circuit.lines.push(t_line); } if (circuit.blocks[i].attributes.ident == "load_member_of_position_items" && circuit.blocks[i].attributes.args && circuit.blocks[i].attributes.args.length == 1 && circuit.blocks[i].attributes.args[0] == "departmentid"){ isPos = true; circuit.blocks[i].attributes.body = "return form_module.tag2OnCreated.member_of_position();"; circuit.blocks[i].attributes.args = []; circuit.blocks.push({ attributes: { id: "member_of_position_frag_created", ident: "member_of_position_frag_created" }, tag: "CBEntry" }); var t_line = { u: "member_of_position_frag_created", uPin: "signal", v: "load_member_of_position_items", vPin: "exec" }; t_line.attributes = { ident: t_line.u + t_line.uPin + t_line.v + t_line.vPin }; circuit.lines.push(t_line); } } var keys = Object.keys(dictionary.circuit.blocks); keys.forEach(function(elt){ if (!blockDict[elt]) circuit.blocks.push(dictionary.circuit.blocks[elt]); }); var lineDict = {}; for (var i = 0; i < circuit.lines.length; i++){ if (circuit.lines[i].attributes && circuit.lines[i].attributes.ident && dictionary.circuit.lines[circuit.lines[i].attributes.ident]) { if (!circuit.lines[i].attributes.isModified) { circuit.lines[i] = dictionary.circuit.lines[circuit.lines[i].attributes.ident]; lineDict[circuit.lines[i].attributes.ident] = 1; } } if ((!circuit.lines[i].attributes || !circuit.lines[i].attributes.ident) && dictionary.circuit.lines[circuit.lines[i].u + circuit.lines[i].uPin + circuit.lines[i].v + circuit.lines[i].vPin]) { circuit.lines[i] = dictionary.circuit.lines[circuit.lines[i].u + circuit.lines[i].uPin + circuit.lines[i].v + circuit.lines[i].vPin]; lineDict[circuit.lines[i].u + circuit.lines[i].uPin + circuit.lines[i].v + circuit.lines[i].vPin] = 1; } } keys = Object.keys(dictionary.circuit.lines); keys.forEach(function(elt){ if (!lineDict[elt]) circuit.lines.push(dictionary.circuit.lines[elt]); }); if (isEmp) { count = circuit.blocks.length; for (var i = 0; i < count; i++){ if ( circuit.blocks[i].attributes.ident == "member_of_employee_choose_company_frag_created" || circuit.blocks[i].attributes.ident == "load_member_of_employee_choose_company_items" || circuit.blocks[i].attributes.ident == "load_member_of_employee_choose_department_items" || circuit.blocks[i].attributes.ident == "load_member_of_employee_check_company_length" ){ circuit.blocks.splice(i, 1); i--; count = circuit.blocks.length; } } count = circuit.lines.length; for (var i = 0; i < count; i++){ if ( circuit.lines[i].u == "load_member_of_employee_choose_company_items" || circuit.lines[i].v == "load_member_of_employee_choose_company_items" || circuit.lines[i].u == "load_member_of_employee_choose_department_items" || circuit.lines[i].v == "load_member_of_employee_choose_department_items" || circuit.lines[i].u == "load_member_of_employee_check_company_length" || circuit.lines[i].v == "load_member_of_employee_check_company_length" ){ circuit.lines.splice(i, 1); i--; count = circuit.lines.length; } } } if (isPos) { count = circuit.blocks.length; for (var i = 0; i < count; i++){ if ( circuit.blocks[i].attributes.ident == "member_of_position_choose_company_frag_created" || circuit.blocks[i].attributes.ident == "load_member_of_position_choose_company_items" || circuit.blocks[i].attributes.ident == "load_member_of_position_choose_department_items" ){ circuit.blocks.splice(i, 1); i--; count = circuit.blocks.length; } } count = circuit.lines.length; for (var i = 0; i < count; i++){ if ( circuit.lines[i].u == "load_member_of_position_choose_company_items" || circuit.lines[i].v == "load_member_of_position_choose_company_items" || circuit.lines[i].u == "load_member_of_position_choose_department_items" || circuit.lines[i].v == "load_member_of_position_choose_department_items" ){ circuit.lines.splice(i, 1); i--; count = circuit.lines.length; } } } }; form_module.defaultMobileInputFormForPrimitiveType = function(){ var resolveFunc = function (content, rs) { content = EncodingClass.string.duplicate(content); content.forEach(function(elt){ elt.name = elt.name + " (" + LanguageModule.text("txt_system") + ")" elt.id = "m_" + elt.formid; }); rs(content); }; var waitFunc = function (resolveFunc) { return function (rs, waitFunc, varname) { if (window[varname] == "ready") { resolveFunc(cache_forms_data.input_form_mobile_system_load, rs); } else { setTimeout(function (rs, waitFunc, varname) { return function () { waitFunc(rs, waitFunc, varname); } } (rs, waitFunc, varname), 10); } } } (resolveFunc); switch (cache_forms_status) { case "none": return new Promise(function (resolveFunc) { return function(rs, rj) { FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "input_form_mobile_system_load"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok"){ var content = EncodingClass.string.toVariable(message.substr(2)); resolveFunc(content, rs); } else { console.log(message); rj(message) } } else { console.log(message); rj(message) } } }) } } (resolveFunc)); case "ready": return new Promise(function (resolveFunc, content) { return function(resolve, reject) { resolveFunc(content, resolve); } } (resolveFunc, cache_forms_data.input_form_mobile_system_load)); case "pending": return new Promise(function (waitFunc, varname) { return function(resolve, reject) { waitFunc(resolve, waitFunc, varname); } } (waitFunc, "cache_forms_status")); } }; form_module.defaultMobileOutputFormForPrimitiveType = function(){ var resolveFunc = function (content, rs) { content = EncodingClass.string.duplicate(content); content.forEach(function(elt){ elt.name = elt.name + " (" + LanguageModule.text("txt_system") + ")" elt.id = "m_" + elt.formid; }); rs(content); }; var waitFunc = function (resolveFunc) { return function (rs, waitFunc, varname) { if (window[varname] == "ready") { resolveFunc(cache_forms_data.output_form_mobile_system_load, rs); } else { setTimeout(function (rs, waitFunc, varname) { return function () { waitFunc(rs, waitFunc, varname); } } (rs, waitFunc, varname), 10); } } } (resolveFunc); switch (cache_forms_status) { case "none": return new Promise(function (resolveFunc) { return function(rs, rj) { FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "output_form_mobile_system_load"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok"){ var content = EncodingClass.string.toVariable(message.substr(2)); resolveFunc(content, rs); } else { console.log(message); rj(message) } } else { console.log(message); rj(message) } } }) } } (resolveFunc)); case "ready": return new Promise(function (resolveFunc, content) { return function(resolve, reject) { resolveFunc(content, resolve); } } (resolveFunc, cache_forms_data.output_form_mobile_system_load)); case "pending": default: return new Promise(function (waitFunc, varname) { return function(resolve, reject) { waitFunc(resolve, waitFunc, varname); } } (waitFunc, "cache_forms_status")); } }; form_module.makeMobileDefaultForm = function(){ var host = { taskName: "m_input", isMobile: true, database: {} }; var typelists = contentModule.getDatatypePrimitiveList(); host.formDict = {}; form_module.defaultMobileInputFormForPrimitiveType().then(function(formContent){ contentModule.makeDatabaseContent(host, {typelists: [], input_forms: formContent}); host.database.input_forms.items.forEach(function(elt){ elt.content = EncodingClass.string.toVariable(elt.content); host.formDict[elt.id] = elt; }); host.database.typelists.items = host.database.typelists.items.concat(typelists); var dict = {}; host.database.typelists.items.forEach(function (elt, index) { dict[elt.id] = elt; }); host.typeDict = dict; var makeFormFunc = function(typeid){ return new Promise(function(rs, rj){ var form_content = form_module.generateDefaultLinearMobileInputForm(host, typeid, host.typeDict[typeid]); if (form_content.typeid) { makeFormFunc(form_content.typeid).then(function(){ makeFormFunc(typeid); }); return; } else { var content = { layout: { tag: "LinearLayout", style: { overflowY: "visible", height: "auto", width: host.isMobile ? 350 : "auto" }, attributes: {} }, circuit: {} }; var params = { typeid: parseInt(typeid, 10), name: dict[typeid].name, content: content }; var childrenid = ""; if (dict[params.typeid].type == "shift_worktime") params.content.layout.attributes.name = "ValidTimeShift"; else if (dict[params.typeid].includedid) { if (dict[params.typeid].includedid.indexOf("_-270_") != -1) params.content.layout.attributes.name = "ValidTimeShift"; } if (dict[params.typeid].type == "array" || dict[params.typeid].type2 == "array"){ params.content.layout.style.width = "auto"; params.content.layout.children = [form_content]; if (form_content.tag != "TableInput") childrenid = "_" + form_content.attributes.itemFragmentClass; } else if ( dict[params.typeid].type == "structure" || dict[params.typeid].type == "extends_structure" || dict[params.typeid].type2 == "structure" ) { var getChildrenIdList = function(cur){ if (cur.class && !isNaN(parseInt(cur.class))){ childrenid += "_" + parseInt(cur.class); } else if (cur.children && cur.children.length > 0){ cur.children.forEach(function(elt){ getChildrenIdList(elt); }) } } params.content.layout.children = form_content.layout; form_content.layout.forEach(function(elt){ getChildrenIdList(elt); }); params.content.circuit = form_content.circuit; } else { params.content.layout.children = [form_content.layout]; params.content.circuit = form_content.circuit; } if (childrenid != "") childrenid += "_"; params.childrenid = childrenid; params.typedescendantid = ""; contentModule.getDescendantsId(host, dict[params.typeid]).forEach(function(elt){ params.typedescendantid += "_" + elt; }); if (params.typedescendantid != "") params.typedescendantid += "_"; params.task = "m_input"; params.id = typeid; uploadFormSystem.upload(params).then(function(result){ result.id = "m_" + result.formid; result.content = EncodingClass.string.toVariable(result.content); host.database.input_forms.items.push(result); host.formDict[result.id] = result; rs(); }, function(message){ rj(message); }); } }); } typelists.forEach(function(elt){ if (elt.type2 == "structure" || elt.type2 == "array"){ if (host.formDict["m_" + elt.id]) return; var form_content = makeFormFunc(elt.id); } }); }); } //# sourceURL=hr:///src/form_module.php.js?