![]() 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/keeview_app/html/ |
Upload File : |
"use strict"; theme.formLeave_requestEdit = function(params){ var formContainer = DOMElement.div({}); var commands = [{ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), cmd: function(){ params.cmdbutton.save(getValueFunction).then(function(){ if (params.id == 0){ params.frameList.removeLast(); window.backLayoutFunc.pop(); } }); } }]; var header = absol.buildDom({ tag: 'mheaderbar', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: LanguageModule.text("txt_leave_request"), commands: commands }, on: { action: function(){ params.cmdbutton.cancel(getValueFunction).then(function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }); }, command: function(event){ event.commandItem.cmd(); } } }); var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, DOMElement.div({ attrs: { className: "card-mobile-content" }, children: [formContainer] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); window.backLayoutFunc.push({ func: function(){ params.cmdbutton.cancel(getValueFunction).then(function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }); } }); var getValueFunction; contentModule.makeFormData({ typeid: data_module.form_config.request_leave.typeid, formid: data_module.form_config.request_leave.mobile_input_form, initialValue: params.value, formContainer: formContainer, typelists: data_module.typelists.items, variableType: "system" }).then(function(getValue){ getValueFunction = getValue; formContainer.formFragment.setContext('host', params); if (params.id == 0){ formContainer.formFragment.afterEntryCompleted().then(function(){ var elt = absol.form.findComponent(formContainer.formFragment.view, { name: 'type_request_leave_employeeid', depth: false }); if (elt){ elt.attributes.value = params.employeeOfMe[0]; } }); } }); }; theme.showLeaveRequestGeneralInfomation = function(params){ var viewGeneralInformation = DOMElement.div({ attrs: { style: { paddingLeft: "var(--control-verticle-distance-2)", paddingTop: "var(--control-verticle-distance-2)" } } }); var childs = [ { class: 'm-mk-section-header-name', child: { text: LanguageModule.text("txt_request_leave") }, } ]; if (params.cmdbutton.editFunc){ childs.push({ class: 'm-mk-section-header-right', child: [ DOMElement.a({ attrs: { onclick: params.cmdbutton.editFunc }, text: LanguageModule.text("txt_edit") }) ] }); } var res = absol.buildDom({ attr: { "data-sectionid": "request_leave" }, child: [ absol.buildDom({ class: 'm-mk-section-header', child: childs }), viewGeneralInformation ] }); res.viewGeneralInformation = viewGeneralInformation; return res; }; theme.showLeaveRequestApproval = function(params){ var approval_ctn = DOMElement.div({ attrs: { className: "cardsimpletableclass" } }); var long_leave_approval_ctn = DOMElement.div({ attrs: { className: "cardsimpletableclass" } }); var pIndex = params.database.leave_policies.getIndex(params.dataLeave_listEdit.policyid); if (pIndex >= 0){ var approval_methodText = params.getApprovalMethod(params.database.leave_policies.items[pIndex].standard_leave_approval_type); } else { return DOMElement.div({}); } var childs = [ absol.buildDom({ class: 'm-mk-section-header', child: [ { class: 'm-mk-section-header-name', child: { text: LanguageModule.text("txt_approval") } } ] }), DOMElement.div({ attrs: {style: {lineHeight: "var(--control-height)"}}, text: LanguageModule.text("txt_approval_method") + ": " + approval_methodText }), approval_ctn ]; if (params.database.leave_policies.items[pIndex].long_leave_approval){ if (params.dataLeave_listEdit.number_of_day_off > params.database.leave_policies.items[pIndex].long_leave_threshold){ var approval_methodText = params.getApprovalMethod(params.database.leave_policies.items[pIndex].long_leave_approval_type); childs.push( DOMElement.div({ attrs: {style: {lineHeight: "var(--control-height)"}}, text: LanguageModule.text("txt_long_leave_approval") }), DOMElement.div({ attrs: {style: {lineHeight: "var(--control-height)"}}, text: LanguageModule.text("txt_approval_method") + ": " + approval_methodText }), long_leave_approval_ctn ); } } var res = absol.buildDom({ attr: { "data-sectionid": "approval" }, child: childs }); res.drawApprovalFunc = function(){ var pIndex = params.database.leave_policies.getIndex(params.dataLeave_listEdit.policyid); if (pIndex >= 0){ var approval_methodText = params.getApprovalMethod(params.database.leave_policies.items[pIndex].standard_leave_approval_type); } else { return; } var approversDic = {}; params.database.employee_benefit_and_liability_request_approvers.items.forEach(function(item){ if (item.status == 3) return; if (item.requestid == params.dataLeave_listEdit.id) approversDic[item.employeeid] = item; }); var over_due = false; var time_hours_needed_for_approval = params.database.leave_policies.items[pIndex].time_hours_needed_for_approval; var datetime = params.dataLeave_listEdit.fromdate.getTime(); if (datetime - time_hours_needed_for_approval*60*60*1000 < new Date().getTime()){ over_due = true; } var data = [], row, employeeid, eIndex, dIndex, orgIndex, approversItem; var direct_done = true; if (params.database.leave_policies.items[pIndex].direct_manager_approves_first){ var employeeid = params.dataLeave_listEdit.employeeid; var empIndex = params.employeeDic[employeeid]; var direct_manager = params.database.employees.items[empIndex].direct_manager; eIndex = params.employeeDic[direct_manager]; if (eIndex >= 0){ row = []; row.push({ text: params.database.employees.items[eIndex].fullname }); approversItem = approversDic[direct_manager]; if (approversItem){ if (approversItem.status == 1){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status approved" }, text: LanguageModule.text("txt_approved") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status deny" }, text: LanguageModule.text("txt_deny") }) }); } row.push({text: contentModule.getDateTimeView(approversItem.time)}); row.push({ text: approversItem.comment }); } else { direct_done = false; if (params.dataLeave_listEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } row.push({}); row.push({}); } data.push(row); } } var indirect_done = true; if (params.database.leave_policies.items[pIndex].indirect_manager_approves_first){ var employeeid = params.dataLeave_listEdit.employeeid; var empIndex = params.employeeDic[employeeid]; var indirect_manager = params.database.employees.items[empIndex].indirect_manager; eIndex = params.employeeDic[indirect_manager]; if (eIndex >= 0){ row = []; row.push({ text: params.database.employees.items[eIndex].fullname }); approversItem = approversDic[indirect_manager]; if (approversItem){ if (approversItem.status == 1){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status approved" }, text: LanguageModule.text("txt_approved") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status deny" }, text: LanguageModule.text("txt_deny") }) }); } row.push({text: contentModule.getDateTimeView(approversItem.time)}); row.push({ text: approversItem.comment }); } else { indirect_done = false; if (params.dataLeave_listEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } row.push({}); row.push({}); } data.push(row); } } var prev_done = true; var approval_method = params.database.leave_policies.items[pIndex].standard_leave_approval_type; var approvers = params.database.leave_policies.items[pIndex].approvers; for (var i = 0; i < approvers.length; i++){ employeeid = approvers[i].employeeid; eIndex = params.database.employees.getIndex(employeeid); row = []; row.push({ text: params.database.employees.items[eIndex].fullname }); approversItem = approversDic[employeeid]; if (approversItem){ if (approversItem.status == 1){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status approved" }, text: LanguageModule.text("txt_approved") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status deny" }, text: LanguageModule.text("txt_deny") }) }); } row.push({text: contentModule.getDateTimeView(approversItem.time)}); row.push({ text: approversItem.comment }); } else { switch (approval_method) { case "one_approver": if (params.dataLeave_listEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } break; case "parallel": if (direct_done && indirect_done && params.dataLeave_listEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } break; case "sequence": if (direct_done && indirect_done && params.dataLeave_listEdit.status == 0 && prev_done){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } prev_done = false; break; default: row.push({}); } row.push({}); row.push({}); } data.push(row); } var tableView = DOMElement.table({ data: data }); DOMElement.removeAllChildren(approval_ctn); approval_ctn.appendChild(tableView); if (params.database.leave_policies.items[pIndex].long_leave_approval){ if (params.dataLeave_listEdit.number_of_day_off > params.database.leave_policies.items[pIndex].long_leave_threshold){ data = []; approval_method = params.database.leave_policies.items[pIndex].long_leave_approval_type; approvers = params.database.leave_policies.items[pIndex].long_approvers; for (var i = 0; i < approvers.length; i++){ employeeid = approvers[i].employeeid; eIndex = params.database.employees.getIndex(employeeid); row = []; row.push({ text: params.database.employees.items[eIndex].fullname }); approversItem = approversDic[employeeid]; if (approversItem){ if (approversItem.status == 1){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status approved" }, text: LanguageModule.text("txt_approved") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status deny" }, text: LanguageModule.text("txt_deny") }) }); } row.push({text: contentModule.getDateTimeView(approversItem.time)}); row.push({ text: approversItem.comment }); } else { switch (approval_method) { case "one_approver": if (params.dataLeave_listEdit.standard_status && params.dataLeave_listEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } break; case "parallel": if (params.dataLeave_listEdit.standard_status && params.dataLeave_listEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } break; case "sequence": if (params.dataLeave_listEdit.standard_status && params.dataLeave_listEdit.status == 0 && prev_done){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } prev_done = false; break; default: row.push({}); } row.push({}); row.push({}); } data.push(row); } tableView = DOMElement.table({ data: data }); DOMElement.removeAllChildren(long_leave_approval_ctn); long_leave_approval_ctn.appendChild(tableView); } } }; return res; }; theme.showLeaveRequest = function(params){ var scrollInto = function(value){ if (sectionList[value]) sectionList[value].scrollIntoView(); }; var data_ctn = DOMElement.div({}); data_ctn.appendChild(params.info_ctn); data_ctn.appendChild(params.general_information_ctn); data_ctn.appendChild(params.approval_ctn); data_ctn.appendChild(contentModule.drawComment({frameList: params.frameList, taskid: params.id, tablename: "employee_benefit_and_liability_request"})); var sectionList = {}; absol.$("div", data_ctn, function(elt){ var id = elt.getAttribute("data-sectionid"); if (!id) return; sectionList[id] = elt; }); var commands = []; if (params.cmdbutton.approval){ commands.push({ icon: DOMElement.i({ attrs: { className: "mdi mdi-checkbox-marked-circle hr-icon-approval" } }), cmd: params.cmdbutton.approval }); } if (params.cmdbutton.deny){ commands.push({ icon: DOMElement.i({ attrs: { className: "mdi mdi-close-circle hr-icon-deny" } }), cmd: params.cmdbutton.deny }); } var header = absol.buildDom({ tag: 'mheaderbar', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: LanguageModule.text("txt_leave_request"), commands: commands, quickmenu: { props: { extendClasses: 'cd-context-menu', items: [ { text: LanguageModule.text("txt_request_leave"), icon: DOMElement.i({ attrs: { className: "mdi mdi-information-outline" } }), extendClasses: "bsc-quickmenu", cmd: function(){ scrollInto("request_leave"); } }, { text: LanguageModule.text("txt_approval"), extendClasses: "bsc-quickmenu", icon: DOMElement.span({ attrs: { className: "mdi mdi-clock-time-eight-outline" } }), cmd: function(){ scrollInto("approval"); } }, { text: LanguageModule.text("txt_comment"), extendClasses: "bsc-quickmenu", icon: DOMElement.span({ attrs: { className: "mdi mdi-clock-time-eight-outline" } }), cmd: function(){ scrollInto("comment"); } } ] }, onSelect: function (x) { x.cmd(); } } }, on: { action: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }, command: function(event){ event.commandItem.cmd(); } } }); var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, DOMElement.div({ attrs: { className: "card-mobile-content" }, children: [data_ctn] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); window.backLayoutFunc.push({ func: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); } }); }; theme.formLeave_listGetRow = function(params, content){ var cells = []; function applyParam(elt){ if (content.func.view){ elt.classList.add("hr-table-cell-link"); elt.onclick = function(){ content.func.view(); }; } return elt; } cells.push({ innerText: content.employeeName, render: function(tdElt){ tdElt.appendChild(applyParam(DOMElement.div({text: content.employeeName}))); } }); cells.push({ style: {textAlign: "right"}, innerText: contentModule.getDateView(content.fromdate), render: function(tdElt){ tdElt.appendChild(applyParam(DOMElement.div({ text: contentModule.getDateView(content.fromdate) }))); } }); var item; switch (content.status) { case "over_due": item = { innerText: LanguageModule.text("txt_over_due"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status over-due", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_over_due") })); }, keySort: LanguageModule.text("txt_over_due") }; break; case "draf": item = { innerText: LanguageModule.text("txt_draf"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status draf", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_draf") })); }, keySort: LanguageModule.text("txt_draf") }; break; case "waiting_approval": item = { innerText: LanguageModule.text("txt_waiting_approval"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status waiting-approval", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_waiting_approval") })); }, keySort: LanguageModule.text("txt_waiting_approval") }; break; case "approved": item = { innerText: LanguageModule.text("txt_approved"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status approved", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_approved") })); }, keySort: LanguageModule.text("txt_approved") }; break; case "deny": item = { innerText: LanguageModule.text("txt_deny"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status deny", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_deny") })); }, keySort: LanguageModule.text("txt_deny") }; break; case "canceled": item = { innerText: LanguageModule.text("txt_canceled"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status canceled", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_canceled") })); }, keySort: LanguageModule.text("txt_canceled") }; break; default: item = {}; } cells.push(item); cells.push({ style: {width: "40px"}, render: function(tdElt){ var qmenuButton = DOMElement.div({ attrs: { className: "card-icon-cover" }, children: [DOMElement.i({ attrs: { className: "material-icons bsc-icon-hover-black" }, text: "more_vert" })] }); absol.QuickMenu.toggleWhenClick(qmenuButton, { getMenuProps: function(){ var quickMenuItems = []; if (content.func.view) quickMenuItems.push({ text: LanguageModule.text("txt_view"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "visibility" }), cmd: function(){ content.func.view(); } }); if (content.func.cancel) quickMenuItems.push({ text: LanguageModule.text("txt_cancel"), extendClasses: ["bsc-quickmenu", "red"], icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "cancel" }), cmd: function(){ content.func.cancel(); } }); if (content.func.delete) quickMenuItems.push({ text: LanguageModule.text("txt_delete"), extendClasses: ["bsc-quickmenu", "red"], icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "delete" }), cmd: function(){ content.func.delete(); } }); return {items: quickMenuItems}; }, onSelect: function (item){ item.cmd(); }, anchor: [3, 4] }); tdElt.addChild(qmenuButton); } }); var row = { cells: cells }; return row; }; theme.formLeave_listContentData = function(params){ var data = []; for (var i = 0; i < params.data.length; i++){ data.push(theme.formLeave_listGetRow(params, params.data[i])); } params.tableView = absol.buildDom({ tag: "dynamictable", props: { id: "leave_request", adapter: { data: { head: { rows: [ { cells: [] } ] }, body: { rows: data } } } } }); params.tableView.attachSearchInput(params.inputsearchbox); return params.tableView; }; ModuleManagerClass.register({ name: "Leave_list_view", prerequisites: ["ModalElement"] });