![]() 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.formDocument_managerEditProperties = function(params){ var commands = []; commands.push({ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), cmd: function(){ params.func.save().then(function(){ 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: params.title, commands: commands }, 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: [params.elt] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); window.backLayoutFunc.push({ func: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); } }); }; theme.formDocument_managerSaveAsTemplate = function(params){ var name_input = theme.input({ style: { width: "100%" }, value: params.name }); var commands = []; commands.push({ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), cmd: function(){ var name = name_input.value.trim(); if (name == ""){ name_input.focus(); return; } params.func.save(name).then(function(){ 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: params.title, commands: commands }, 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: [ DOMElement.div({ attrs: { className: "card-mobile-label-form-edit-first" }, text: LanguageModule.text("txt_name") }), name_input ] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); window.backLayoutFunc.push({ func: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); } }); }; theme.formDocument_managerEditApproval = function(params){ var commands = []; commands.push({ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), cmd: function(){ params.func.save().then(function(){ 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: params.title, commands: commands }, 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: [params.elt] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); window.backLayoutFunc.push({ func: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); } }); }; theme.formDocument_managerEditDocument = function(params){ var commands = []; commands.push({ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), cmd: function(){ params.func.save().then(function(){ 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: params.title, commands: commands }, on: { action: function(){ params.func.cancel().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: [params.formContainer] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); window.backLayoutFunc.push({ func: function(){ params.func.cancel().then(function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }); } }); }; theme.formDocument_managerMoveFoler = function(params){ var folder_select = absol.buildDom({ tag: "mselecttreemenu", style: { width: "100%", display: "block" }, props: { items: params.itemsList, value: params.parentid, enableSearch: true } }); ModalElement.showWindow({ index: 1, title: LanguageModule.text("txt_move_folder_to"), bodycontent: DOMElement.div({ children: [ folder_select ] }), buttonlist: [ { text: LanguageModule.text("txt_ok"), typeColor: "light", onclick: function (event, me){ params.func.save(folder_select.value).then(function(){ ModalElement.close(); }) } }, { text: LanguageModule.text("txt_cancel"), onclick: function (event, me) { ModalElement.close(); } } ] }); }; theme.formDocument_managerDrawApproveView = function(params){ var data = []; for (var i = 0; i < params.approvers.length; i++){ data.push([ {text: params.approvers[i].fullname}, params.approvers[i].status, params.approvers[i].time, params.approvers[i].note ]); } var approvalElt = DOMElement.div({ children: [ DOMElement.div({ attrs: { className: "card-mobile-label-form-edit-first" }, text: LanguageModule.text("txt_time_hours_needed_for_approval") }), theme.input({ style: { width: "100%" }, disabled: true, value: params.time_hours_needed_for_approval }), DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_time_hours_needed_for_approval") }), theme.input({ style: { width: "100%" }, disabled: true, value: params.approval_method }), DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_approvers") }), DOMElement.div({ attrs: {className: "cardsimpletableclass"}, children: [DOMElement.table({ data: data })] }) ] }); return approvalElt; }; theme.formDocument_managerDrawPropertiesView = function(params){ var data = []; data.push( DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_folder") }), theme.input({ style: { width: "100%" }, disabled: true, value: params.folderName }) ); for (var i = 0; i < params.propertiesList.length; i++){ data.push( DOMElement.div({ attrs: { className: "card-mobile-label-form-edit", style: { fontWeight: "bold" } }, text: params.propertiesList[i].name }), theme.input({ style: { width: "100%" }, disabled: true, value: params.propertiesList[i].value }) ) } return DOMElement.div({ children: data }); }; theme.formDocument_managerShowDocument = function(params){ var scrollInto = function(value){ if (sectionList[value]) sectionList[value].scrollIntoView(); }; var drawIntro = function(){ var res = DOMElement.div({}); params.drawIntroFunc = function(){ var processlbar = absol.buildDom({ tag: 'processlbar', style: { verticalAlign: "middle" }, props: { items: [ {value: 0, name: LanguageModule.text("txt_pending_approval"), color: "#ed7d31"}, {value: 1, name: LanguageModule.text("txt_published"), color: "#72bb53"}, {value: 2, name: LanguageModule.text("txt_rejected"), color: "#d30903"} ], value: params.dataDocumentEdit.status, disabled: true, lHeight: 1 } }); if (params.dataDocumentEdit.status == 0){ var expire_time = params.dataDocumentEdit.issued_date.getTime() - params.dataDocumentEdit.time_hours_needed_for_approval*60*60*1000; if (new Date().getTime() < expire_time){ var remainTime = expire_time - new Date().getTime(); if (remainTime < 24*60*60*1000){ var countdownText = absol.buildDom({ tag: 'countdowntext', style: { marginLeft: "20px" }, props: { finishTime: new Date(expire_time), format: "HH:mm:ss" }, on: { finish: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); hr.document_manager.showDocumentPre(params, params.id); } } }); processlbar.$stepName.addChild(countdownText); } } } var lock_ctn; if (params.dataDocumentEdit.unused){ lock_ctn = DOMElement.div({ attrs: { className: "card-icon-cover-disabled", style: { marginLeft: "20px" } }, children: [DOMElement.i({ attrs: { className: "mdi mdi-lock", style: { color: "red", fontSize: "var(--icon-fontsize)" } } })] }); } else { lock_ctn = DOMElement.div({ attrs: { title: LanguageModule.text("txt_archive_document"), className: "card-icon-cover", style: { marginLeft: "20px" }, onclick: function(){ if (params.func.change_to_unused) params.func.change_to_unused(); } }, children: [DOMElement.i({ attrs: { className: "mdi mdi-archive-outline bsc-icon-hover-black" } })] }); } var markedIcon = contentModule.getMarkIcon(params.dataDocumentEdit.marked, params.func.markedFunc); var viewInitInfor = DOMElement.div({ attrs: { className: "m-hr-intro-view-form" }, children: [ processlbar, lock_ctn, DOMElement.div({ attrs: { title: LanguageModule.text("txt_marked"), style: { marginLeft: "20px", display: "inline-block" } }, children: [markedIcon] }) ] }); if (params.dataDocumentEdit.unused){ viewInitInfor.classList.add("disabled"); } DOMElement.removeAllChildren(res); res.appendChild(viewInitInfor); }; params.drawIntroFunc(); return res; }; params.viewGeneralInformation.style.paddingTop = "var(--control-verticle-distance-2)"; var drawGeneralInformation = function(){ var childs = [ { class: 'm-mk-section-header-name', child: { text: LanguageModule.text("txt_general_information") }, } ]; if (params.privEdit){ childs.push({ class: 'm-mk-section-header-right', child: [ DOMElement.a({ attrs: { onclick: function(){ params.func.edit_document(); } }, text: LanguageModule.text("txt_edit") }) ] }); } var res = absol.buildDom({ attr: { "data-sectionid": "general_information" }, child: [ absol.buildDom({ class: 'm-mk-section-header', child: childs }), params.viewGeneralInformation ] }); params.drawGeneralInforFunc(); return res; } params.viewProperties.style.paddingTop = "var(--control-verticle-distance-2)"; var drawProperties = function(){ var childs = [ { class: 'm-mk-section-header-name', child: { text: LanguageModule.text("txt_folder_and_properties") }, } ]; if (params.privEdit){ childs.push({ class: 'm-mk-section-header-right', child: [ DOMElement.a({ attrs: { onclick: function(){ params.func.edit_properties(); } }, text: LanguageModule.text("txt_edit") }) ] }); } var res = absol.buildDom({ attr: { "data-sectionid": "properties" }, child: [ absol.buildDom({ class: 'm-mk-section-header', child: childs }), params.viewProperties ] }); params.drawPropertiesFunc(); return res; } params.viewApproval.style.paddingTop = "var(--control-verticle-distance-2)"; var drawApproval = function(){ params.drawApprovalFunc(); var childs = [ { class: 'm-mk-section-header-name', child: { text: LanguageModule.text("txt_approve") } } ]; if (params.privEdit){ childs.push(absol.buildDom({ class: 'm-mk-section-header-right', child: [ DOMElement.a({ attrs: { onclick: function(){ params.func.edit_approve(); } }, text: LanguageModule.text("txt_edit") }) ] })); } var res = absol.buildDom({ attr: { "data-sectionid": "approve" }, child: [ absol.buildDom({ class: 'm-mk-section-header', child: childs }), params.viewApproval ] }); return res; }; var commands = []; var quickmenuItems = []; if (params.privApproval){ quickmenuItems.push({ text: LanguageModule.text("txt_approved"), icon: DOMElement.i({ attrs: { className: "mdi mdi-checkbox-marked-circle", style: { color: "#489b0f" } } }), extendClasses: "bsc-quickmenu", cmd: function(){ params.func.approval(); } }); quickmenuItems.push({ text: LanguageModule.text("txt_deny"), icon: DOMElement.i({ attrs: { className: "mdi mdi-close-circle", style: { color: "#f23c36" } } }), extendClasses: "bsc-quickmenu", cmd: function(){ params.func.deny(); } }); } if (params.func.change_to_unused){ quickmenuItems.push({ text: LanguageModule.text("txt_archive_document"), icon: DOMElement.i({ attrs: { className: "mdi mdi-archive-lock", style: { color: "red" } } }), extendClasses: "bsc-quickmenu", cmd: function(){ params.func.change_to_unused(); } }); } if (params.func.save_as_template){ quickmenuItems.push({ text: LanguageModule.text("txt_save_as_template"), icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), extendClasses: "bsc-quickmenu", cmd: function(){ params.func.save_as_template(); } }); } quickmenuItems.push({ text: LanguageModule.text("txt_general_information"), icon: DOMElement.i({ attrs: { className: "mdi mdi-information-outline" } }), extendClasses: "bsc-quickmenu", cmd: function(){ scrollInto("general_information"); } }, { text: LanguageModule.text("txt_folder_and_properties"), icon: DOMElement.i({ attrs: { className: "mdi mdi-information-outline" } }), extendClasses: "bsc-quickmenu", cmd: function(){ scrollInto("properties"); } }, { text: LanguageModule.text("txt_approve"), icon: DOMElement.i({ attrs: { className: "mdi mdi-information-outline" } }), extendClasses: "bsc-quickmenu", cmd: function(){ scrollInto("approve"); } }); var header = absol.buildDom({ tag: 'mheaderbar', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: params.dataDocumentEdit.name, commands: commands, quickmenu: { props: { extendClasses: 'cd-context-menu', items: quickmenuItems }, onSelect: function (x) { x.cmd(); } } }, on: { action: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }, command: function(event){ event.commandItem.cmd(); } } }); var data_ctn = DOMElement.div({ attrs: { className: "card-mobile-content" }, children: [ drawIntro(), drawGeneralInformation(), drawProperties(), drawApproval() ] }); var sectionList = {}; absol.$("div", data_ctn, function(elt){ var id = elt.getAttribute("data-sectionid"); if (!id) return; sectionList[id] = elt; }); var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, data_ctn ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); window.backLayoutFunc.push({ func: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); } }); return singlePage; }; theme.formDocument_managerApprovalCtn = function(params){ var getRowApprover = function(employeeid){ var employee_select = absol.buildDom({ tag: "selecttreeleafmenu", style: { display: "block", width: "100%" }, props: { items: params.employeeViewItems, enableSearch: true, value: employeeid } }); var cells = [ { style: { width: '30px', textAlign: 'center', fontSize: '25px' }, class: 'as-drag-zone', child: 'span.mdi.mdi-drag' }, { child: employee_select } ]; var deleteIcon = DOMElement.div({ attrs: { className: "card-icon-remove-cover", onclick: function(){ var x = tableView.rowOf(row) x.remove(); } }, children: [DOMElement.i({ attrs: { className: "material-icons card-icon-remove" }, text: "remove_circle" })] }); cells.push({ style: {width: "40px"}, child: deleteIcon }); var row = {cells: cells}; row.getValue = function(){ var x = employee_select.value; if (x == 0){ ModalElement.alert({ message: LanguageModule.text("txt_employee_is_null") }); return; } return x; }; return row; }; var approval_method_select = absol.buildDom({ tag: "mselectmenu", style: { display: "block", width: "100%" }, props: { items: contentModule.getListApprovalMethod() } }); if (params.id > 0 && params.dataDocumentEdit && params.dataDocumentEdit.approval_method != "") approval_method_select.value = params.dataDocumentEdit.approval_method; var time_hours_needed_for_approval_input = theme.input({ type: "number", min: 0, style: { textAlign: "right", width: "100%" }, value: params.id > 0 && params.dataDocumentEdit? params.dataDocumentEdit.time_hours_needed_for_approval : 0 }); var data = []; if (params.id > 0 && params.dataDocumentEdit){ for (var i = 0; i < params.dataDocumentEdit.approvers.length; i++){ data.push(getRowApprover(params.dataDocumentEdit.approvers[i].employeeid)); } } var tableView = absol.buildDom({ tag: "dynamictable", props: { id: "document_manager_approval", adapter: { data: { head: { rows: [ { cells: [ {}, { child: absol.buildDom({text: LanguageModule.text("txt_employee")}) }, {} ] } ] }, body: { rows: data } } } } }); var editApprovalForm = DOMElement.div({ children: [ DOMElement.div({ attrs: { className: "card-mobile-label-form-edit-first" }, text: LanguageModule.text("txt_time_hours_needed_for_approval") }), time_hours_needed_for_approval_input, DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_approval_method") }), approval_method_select, DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, children: [ DOMElement.span({text: LanguageModule.text("txt_approvers")}), DOMElement.div({ attrs: { className: "mk-table-wrapper-header-cmd", onclick: function(){ tableView.addRow(getRowApprover(0)); } }, text: LanguageModule.text("txt_add") }) ] }), tableView ] }); editApprovalForm.getValue = function(){ var time_hours_needed_for_approval = parseFloat(time_hours_needed_for_approval_input.value); if (!time_hours_needed_for_approval){ ModalElement.alert({ message: LanguageModule.text("txt_time_hours_needed_for_approval_is_null"), func: function(){ time_hours_needed_for_approval_input.focus(); } }); return; } var approvers = [], value; var data = tableView.requireRows(); var rowData; for (var i = 0; i < data.length; i++){ rowData = data[i]; value = rowData.data.getValue(); if (!value) return; approvers.push(value); } var res = { time_hours_needed_for_approval: time_hours_needed_for_approval, approval_method: approval_method_select.value, approvers: approvers }; return res; }; return editApprovalForm; }; theme.formDocument_managerPropertiesCtn = function(params){ var folder_select = absol.buildDom({ tag: "mselecttreemenu", style: { display: "block", width: "100%" }, props: { items: contentModule.makeDocument_foldersSelectItems(params, params.listProps["folder"]), enableSearch: true, strictValue: true }, on: { change: function(){ params.change_func(); } } }); var data = [ DOMElement.div({ attrs: { className: "card-mobile-label-form-edit-first" }, text: LanguageModule.text("txt_folder") }), folder_select ]; var combobox = {}; for (var i = 0; i < params.listPropertiesRoot.length; i++){ combobox[params.listPropertiesRoot[i].id] = absol.buildDom({ tag: "mselectmenu", style: { display: "block", width: "100%" }, props: { items: contentModule.makeDocument_propertiesSelectItems(params, params.listPropertiesRoot[i].id, params.listProps[params.listPropertiesRoot[i].id]), enableSearch: true, strictValue: true }, on: { change: function(){ params.change_func(); } } }); if (params.id > 0){ if (params.dataDocumentEdit.properties[params.listPropertiesRoot[i].id] !== undefined){ combobox[params.listPropertiesRoot[i].id].value = params.dataDocumentEdit.properties[params.listPropertiesRoot[i].id]; } } data.push( DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: params.listPropertiesRoot[i].name }), combobox[params.listPropertiesRoot[i].id] ); } data.push(DOMElement.div({ attrs: {style: {textAlign: "right", height: "var(--control-height)"}}, children: [DOMElement.span({ attrs: { style: { color: "var(--a-color)", lineHeight: "var(--control-height)" }, onclick: function(){ params.reset_func(); } }, text: LanguageModule.text("txt_reset") })] })); var res = DOMElement.div({ children: data }); res.getValue = function(){ var values = [], value; var folderid = folder_select.value; if (folderid == 0){ ModalElement.alert({message: LanguageModule.text("war_txt_not_folder")}); return; } values.push({ folderid: folderid, property_groupid: 'folder' }) for (var i = 0; i < params.listPropertiesRoot.length; i++){ value = combobox[params.listPropertiesRoot[i].id].value; if (value == 0 && params.listPropertiesRoot[i].id < 0){ ModalElement.alert({ message: LanguageModule.text2("war_txt_no_select_properties", [params.listPropertiesRoot[i].name]) }); return; } values.push({ propertyid: value, property_groupid: params.listPropertiesRoot[i].id }); } return values; }; res.folder_select = folder_select; res.combobox = combobox; return res; }; theme.formDocument_managerAddDocument = function(params){ var firstPageCtn = DOMElement.div({ children: [ DOMElement.div({ attrs: { className: 'm-kv-document-page-content' }, children: [params.formContainer] }), absol.buildDom({ class: 'm-kv-document-page-footer', child: [ DOMElement.div({ attrs: {className: "m-kv-document-page-footer-right"}, children: [ DOMElement.div({ attrs: { className: "m-kv-document-link", onclick: function(){ var data = params.formContainer.getValue(); if (!data) return; header.title = LanguageModule.text("txt_folder_and_properties"); firstPageCtn.style.display = "none"; secondPageCtn.style.display = ""; } }, text: LanguageModule.text("txt_next") }) ] }) ] }) ] }); var secondPageCtn = DOMElement.div({ attrs: { style: {display: "none"} }, children: [ DOMElement.div({ attrs: { className: 'm-kv-document-page-content' }, children: [params.editPropertiesForm] }), absol.buildDom({ class: 'm-kv-document-page-footer', child: [ DOMElement.div({ attrs: {className: "m-kv-document-page-footer-left"}, children: [ DOMElement.div({ attrs: { className: "m-kv-document-link", onclick: function(){ header.title = LanguageModule.text("txt_general_information"); firstPageCtn.style.display = ""; secondPageCtn.style.display = "none"; } }, text: LanguageModule.text("txt_back") }) ] }), DOMElement.div({ attrs: {className: "m-kv-document-page-footer-right"}, children: [ DOMElement.div({ attrs: { className: "m-kv-document-link", onclick: function(){ var values = params.editPropertiesForm.getValue(); if (!values) return; header.title = LanguageModule.text("txt_approval"); secondPageCtn.style.display = "none"; thirdPageCtn.style.display = ""; } }, text: LanguageModule.text("txt_next") }) ] }) ] }) ] }); var thirdPageCtn = DOMElement.div({ attrs: { style: {display: "none"} }, children: [ DOMElement.div({ attrs: { className: 'm-kv-document-page-content' }, children: [params.editApprovalForm] }), absol.buildDom({ class: 'm-kv-document-page-footer', child: [ DOMElement.div({ attrs: {className: "m-kv-document-page-footer-left"}, children: [ DOMElement.div({ attrs: { className: "m-kv-document-link", onclick: function(){ header.title = LanguageModule.text("txt_folder_and_properties"); secondPageCtn.style.display = ""; thirdPageCtn.style.display = "none"; } }, text: LanguageModule.text("txt_back") }) ] }), DOMElement.div({ attrs: {className: "m-kv-document-page-footer-right"}, children: [ DOMElement.div({ attrs: { className: "m-kv-document-link", onclick: function(){ params.func.save().then(function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }); } }, text: LanguageModule.text("txt_save") }) ] }) ] }) ] }); var header = absol.buildDom({ tag: 'mheaderbar', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: LanguageModule.text("txt_general_information") }, on: { action: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }, command: function(event){ event.commandItem.cmd(); } } }); var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, firstPageCtn, secondPageCtn, thirdPageCtn ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); }; theme.formDocument_managerAddDocumentChooseTemplate = function(params){ var document_template_select = absol.buildDom({ tag: "mselectmenu", style: { display: "block", width: "100%" }, props: { items: params.templatesList, enableSearch: true }, on: { change: function(){ templateid = document_template_select.value; if (templateid != 0){ var index = params.database.document_templates.getIndex(templateid); document_template_desc.value = params.database.document_templates.items[index].summary_content; } else { document_template_desc.value = ""; } } } }); var document_template_desc = DOMElement.textarea({ attrs: { style: { height: "70px", width: "100%" }, disabled: true } }); var commands = [{ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), cmd: function(){ var templateid = document_template_select.value; params.frameList.removeLast(); window.backLayoutFunc.pop(); params.func.save(templateid); } }]; var header = absol.buildDom({ tag: 'mheaderbar', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: params.title, commands: commands }, 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: [ DOMElement.div({ attrs: { className: "card-mobile-label-form-edit-first" }, text: LanguageModule.text("txt_document_template") }), document_template_select, DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_summary_content") }), document_template_desc ] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); }; theme.formDocument_managerEditFolder = function(params){ var parent_select = absol.buildDom({ tag: "mselecttreemenu", style: { width: "100%", display: "block" }, props: { enableSearch: true, items: contentModule.getDocumentFoldersSelectTreeMenu(params), value: params.data.parentid, disabled: true } }); if (params.data.id > 0) parent_select.disabled = true; var name_input = theme.input({ style: { width: "100%" }, value: params.data.name }); var dataView = []; if (params.data.parentid > 0) dataView.push( DOMElement.div({ attrs: { className: "card-mobile-label-form-edit-first" }, text: LanguageModule.text("txt_folder_parent") }), parent_select ); dataView.push( DOMElement.div({ attrs: { className: (params.data.parentid == 0)? "card-mobile-label-form-edit-first" : "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_name") }), name_input ); var commands = [{ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), cmd: function(){ var name = name_input.value.trim(); if (name == ""){ ModalElement.alert({ message: LanguageModule.text("war_txt_name_is_null"), func: function(){ name_input.focus(); } }); return; } var parentid = parent_select.value; for (var i = 0; i < params.database.document_folders.items.length; i++){ if (params.database.document_folders.items[i].parentid != parentid) continue; if (params.database.document_folders.items[i].id == params.data.id) continue; if (params.database.document_folders.items[i].name == name){ ModalElement.alert({ message: LanguageModule.text("war_txt_name_is_exist"), func: function(){ name_input.focus(); } }); return; } } var data = { id: params.data.id, parentid: parentid, name: name }; params.func.save(data).then(function(){ 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: params.title, commands: commands }, 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: dataView }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); name_input.focus(); }; theme.formDocument_managerContentData = function(params){ var getPathItem = function(items, id){ var list = []; if (id > 0){ var index = params.database.document_folders.getIndex(id); var ni; for (var i = 0; i < params.database.document_folders.items[index].childIndexList.length; i++){ ni = params.database.document_folders.items[index].childIndexList[i]; list.push({ id: params.database.document_folders.items[ni].id, name: params.database.document_folders.items[ni].name, iconSrc: window.originHost + "/vivid_exticons/" + 'folder.svg' }); } items.unshift({ id: id, name: params.database.document_folders.items[index].name, iconSrc: window.originHost + "/vivid_exticons/" + 'folder.svg', items: list }); } else { for (var i = 0; i < params.database.document_folders.items.length; i++){ if (params.database.document_folders.items[i].parentid != 0) continue; list.push({ id: params.database.document_folders.items[i].id, name: params.database.document_folders.items[i].name, iconSrc: window.originHost + "/vivid_exticons/" + 'folder.svg' }); } items.unshift({ id: id, name: "", icon: "span.mdi.mdi-laptop", items: list }); } if (id > 0){ var index = params.database.document_folders.getIndex(id); getPathItem(items, params.database.document_folders.items[index].parentid); } }; var getPathTreeList = function(folderid){ var items = []; getPathItem(items, folderid); return items; }; params.pathElt.style.display = "none"; var getRowFolder = function(content){ var cells = [ { style: { textAlign: "center", width: "40px" }, render: function(tdElt){ tdElt.addChild(DOMElement.img({ attrs: { style: { width: "20px", height: "20px" }, src: window.originHost + "/vivid_exticons/" + 'folder.svg', onclick: function(){ content.func.clickRowFunc(content.id); } } })) } }, { innerText: content.name, render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { onclick: function(event, me){ content.func.clickRowFunc(content.id); } }, text: content.name })); } } ]; cells.push({ style: {textAlign: "center", 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_horiz" })] }); absol.QuickMenu.toggleWhenClick(qmenuButton, { getMenuProps: function (){ var quickMenuItems = [ { text: LanguageModule.text("txt_edit_folder"), value: "edit_folder", extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "create" }), cmd: function(){ content.func.edit(); } }, { text: LanguageModule.text("txt_add_folder"), value: "add_folder", extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "mdi mdi-folder-plus" } }), cmd: function(){ content.func.add_folder(); } } ]; if (content.func.add_document){ quickMenuItems.push({ text: LanguageModule.text("txt_add_document"), value: "add_document", extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "mdi mdi-file-plus" } }), cmd: function(){ content.func.add_document(); } }); } if (content.func.move){ quickMenuItems.push({ text: LanguageModule.text("txt_move"), value: "move", extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "mdi mdi-folder-move" } }), cmd: function(){ content.func.move(); } }); } if (content.func.delete) quickMenuItems.push({ text: LanguageModule.text("txt_delete_folder"), value: "delete", extendClasses: ["bsc-quickmenu", "red"], icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "delete" }), cmd: function(){ content.func.delete().then(function(value){ var x = tableView.rowOf(row) x.remove(); params.pathElt.path = getPathTreeList(params.folderid); }); } }); return { items: quickMenuItems } }, onSelect: function(item){ item.cmd(); } }); tdElt.addChild(qmenuButton); } }); var row = { cells: cells }; return row; }; var getRowDocument = function(content){ var cells = [ {style: {width: "40px"}}, { innerText: content.name, render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { onclick: function(event, me){ params.document_func.view(content.id); } }, text: content.name })); } } ]; cells.push({ style: {textAlign: "center", 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_horiz" })] }); absol.QuickMenu.toggleWhenClick(qmenuButton, { getMenuProps: function(){ var quickMenuItems = [ { text: LanguageModule.text("txt_view"), icon: {tag: 'i', class: 'material-icons', child: {text: "visibility"}}, extendClasses: ['bsc-quickmenu'], cmd: function () { params.document_func.view(content.id); } } ]; if (content.privApproval){ quickMenuItems.push({ text: LanguageModule.text("txt_approved"), icon: DOMElement.i({ attrs: { className: "mdi mdi-checkbox-marked-circle", style: { color: "#489b0f" } } }), extendClasses: ['bsc-quickmenu'], cmd: function () { params.document_func.approval(content.id); } }); quickMenuItems.push({ text: LanguageModule.text("txt_deny"), icon: DOMElement.i({ attrs: { className: "mdi mdi-close-circle", style: { color: "#f23c36" } } }), extendClasses: ['bsc-quickmenu'], cmd: function () { params.document_func.deny(content.id); } }); } if (content.marked){ quickMenuItems.push({ text: LanguageModule.text("txt_remove_marked"), extendClasses: ["bsc-quickmenu"], icon: DOMElement.i({ attrs: { className: "material-icons", style: { color: "#ffa834" } }, text: "star_border" }), cmd: function(){ params.document_func.markedFunc(content.id, false).then(function(){ content.marked = false; if (params.viewStatus == "fav"){ var x = tableView.rowOf(row) x.remove(); } }); } }); } else { quickMenuItems.push({ text: LanguageModule.text("txt_add_to_marked"), extendClasses: ["bsc-quickmenu"], icon: DOMElement.i({ attrs: { className: "material-icons", style: { color: "#ffa834" } }, text: "star" }), cmd: function(){ params.document_func.markedFunc(content.id, true).then(function(){ content.marked = true; }); } }); } if (systemconfig.privSystem >= 2 || content.privEdit || content.privApproval) quickMenuItems.push({ text: LanguageModule.text("txt_delete"), icon: {tag: 'i', class: 'material-icons', child: {text: "delete"}}, extendClasses: ['bsc-quickmenu', 'red'], cmd: function () { params.document_func.delete(content.id).then(function(value){ var x = tableView.rowOf(row) x.remove(); }); } }); return {items: quickMenuItems}; }, onSelect: function (item){ item.cmd(); } }, [3, 4]); tdElt.addChild(qmenuButton); } }); var row = { cells: cells }; return row; }; var data = []; var status = params.status_select.value; if (params.viewStatus == "fav"){ var view; for (var i = 0; i < params.database.documents.items.length; i++){ view = true; if (!params.database.documents.items[i].marked) continue; if (!params.database.documents.items[i].privView) continue; if (status != -1 && params.database.documents.items[i].unused != status) continue; for (var type in params.filters){ if (params.filters[type].value != 0 && params.filters[type].value != params.database.documents.items[i].properties[type]) view = false; } if (view) data.push(getRowDocument(params.database.documents.items[i])); } } else { for (var i = 0; i < params.database.document_folders.items.length; i++){ if (params.database.document_folders.items[i].parentid == params.folderid){ data.push(getRowFolder(params.getRowFolder(params.database.document_folders.items[i]))); } } if (params.folderid > 0){ params.pathElt.style.display = ""; params.pathElt.path = getPathTreeList(params.folderid); hr.menu.changeCurrentUrlTab(params, "document_manager/" + params.folderid); var index = params.database.document_folders.getIndex(params.folderid); var ni, ex; for (var i = 0; i < params.database.document_folders.items[index].documentIndexList.length; i++){ view = true; ni = params.database.document_folders.items[index].documentIndexList[i]; if (!params.database.documents.items[ni].privView) continue; if (status != -1 && params.database.documents.items[ni].unused != status) continue; for (var type in params.filters){ if (params.filters[type].value != 0 && params.filters[type].value != params.database.documents.items[i].properties[type]) view = false; } if (view) data.push(getRowDocument(params.database.documents.items[ni])); } } } var tableView = absol.buildDom({ tag: "dynamictable", props: { id: "documents", adapter: { data: { head: { rows: [] }, body: { rows: data } } } } }); DOMElement.removeAllChildren(params.data_container); tableView.attachSearchInput(params.inputsearchbox); params.data_container.appendChild(tableView); }; theme.formDocument_managerInit = function (params){ var filterFunc = function(){ var children = []; for (var i = 0; i < comboboxFilterList.length; i++){ children.push( DOMElement.div({ attrs: { className: (i == 0)? "card-mobile-label-form-edit-first" : "card-mobile-label-form-edit" }, text: comboboxFilterList[i].name }), comboboxFilterList[i].elt ); } children.push( DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_document_status") }), status_select ); theme.modalFormMobile({ title: LanguageModule.text("txt_filter"), bodycontent: DOMElement.div({ children: children }) }); }; var filters = {}; var comboboxFilterList = []; for (var i = 0; i < params.listPropertiesRoot.length; i++){ filters[params.listPropertiesRoot[i].id] = absol.buildDom({ tag: "mselectmenu", style: { display: "block", width: "100%" }, props: { items: contentModule.makeDocument_propertiesSelectFilterItems(params, params.listPropertiesRoot[i].id), enableSearch: true }, on: { change: function(){ params.filter_change_func(); } } }); comboboxFilterList.push({ name: params.listPropertiesRoot[i].name, elt: filters[params.listPropertiesRoot[i].id] }); } var status_select = absol.buildDom({ tag: "mselectmenu", style: { display: "block", width: "100%" }, props: { items: [ {value: -1, text: LanguageModule.text("txt_all")}, {value: 0, text: LanguageModule.text("txt_using_documents")}, {value: 1, text: LanguageModule.text("txt_unused_documents")} ], value: 0 }, on: { change: function(){ params.status_change_func(); } } }); var commands = []; commands.push({ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "filter_alt" }), cmd: function(){ filterFunc(); } }); commands.push({ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "search" }), cmd: function(){ header.searchMode(true); } }); var inputsearchbox = absol.buildDom({ tag:'searchcrosstextinput', style: { width: "var(--searchbox-width)" }, props:{ placeholder: LanguageModule.text("txt_search") } }); var header = absol.buildDom({ tag: 'headerbarwithsearch', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: LanguageModule.text("txt_document_manager"), commands: commands, quickmenu: { getMenuProps: function(){ var quickmenuItems = []; if (params.viewStatus == "fav"){ quickmenuItems.push({ text: LanguageModule.text("txt_all_view"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "mdi mdi-table-eye" } }), cmd: function(){ params.viewStatus = "tree"; params.type_view_change_func(params.viewStatus); } }); } else { quickmenuItems.push({ text: LanguageModule.text("txt_marked_view"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "material-icons", style: { color: "#ffa834" } }, text: "star" }), cmd: function(){ params.viewStatus = "fav"; params.type_view_change_func(params.viewStatus); } }); } if (params.cmdbutton.add_folder !== undefined){ quickmenuItems.push({ text: LanguageModule.text("txt_add_folder"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "add" }), cmd: params.cmdbutton.add_folder }); quickmenuItems.push({ text: LanguageModule.text("txt_add_document"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "add" }), cmd: params.cmdbutton.add_document }); } return { extendClass: 'cd-context-menu', items: quickmenuItems }; }, onSelect: function (x) { x.cmd(); } } }, data:{ searchInput: inputsearchbox }, on: { action: params.cmdbutton.close, command: function(event){ event.commandItem.cmd(); } } }); var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, DOMElement.div({ attrs: { className: "card-mobile-content" }, children: [ params.pathElt, params.data_container ] }) ] }); singlePage.inputsearchbox = inputsearchbox; singlePage.filters = filters; singlePage.status_select = status_select; return singlePage; }; ModuleManagerClass.register({ name: "Document_manager_view", prerequisites: ["ModalElement"] });