VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/keeview_app/html/task_templates.js
hr.task_templates.deleteTaskTemplate = function(host, id){
    return new Promise(function(resolve,reject){
        ModalElement.show_loading();
        FormClass.api_call({
            url: "task_templates_delete.php",
            params: [{name: "id", value: id}],
            func: function(success, message){
                ModalElement.close(-1);
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var index = host.database.task_templates.getIndex(id);
                        host.database.task_templates.items.splice(index, 1);
                        resolve();
                    }
                    else if (message == "lock_system"){
                        ModalElement.alert({message: LanguageModule.text("war_txt_system_lock")});
                    }
                    else if (message == "failed_used"){
                        ModalElement.alert({
                            message: LanguageModule.text("war_txt_can_not_delete")
                        });
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

hr.task_templates.deleteTaskTemplateConfirm = function(host, id){
    return new Promise(function(resolve,reject){
        var index = host.database.task_templates.getIndex(id);
        ModalElement.question({
            title: LanguageModule.text("war_title_delete_task_template"),
            message: LanguageModule.text2("war_txt_detele", [host.database.task_templates.items[index].name]),
            onclick: function(sel){
                if (sel == 0){
                    hr.task_templates.deleteTaskTemplate(host, id).then(function(value){
                        resolve(value);
                    });
                }
            }
        });
    });
};

hr.task_templates.addTaskTemplatesubmit = function(host, id, getValueFunction){
    return new Promise(function(resolve,reject){
        var data = getValueFunction();
        if (!data) return;
        var oldData;
        if (id != 0){
            oldData = host.dataTaskTemplateEdit;
        }
        else {
            oldData = {
                name: "",
                comment: "",
                available: 1
            };
        }
        var ischange = contentModule.isChanged(oldData, data, [
            "name", "comment", "available", "task_name", "task_status",
             "task_expire_time", "task_reminder", "task_assign_to", "task_participant", "task_result"
        ]);
        if (!ischange){
            ModalElement.close();
            hr.menu.changeCurrentUrlTab(host, "templates");
            return;
        }
        for (var i = 0; i < host.database.task_templates.items.length; i++){
            if (host.database.task_templates.items[i].id == id) continue;
            if (host.database.task_templates.items[i].name == data.name){
                ModalElement.alert({message: LanguageModule.text("war_txt_exist_name")});
                return;
            }
        }
        var rs = {
            id: id,
            groupid: data.groupid,
            name: data.name,
            comment: data.comment,
            available: data.available ? 1 : 0
        };
        rs.content = {
            task_name: data.task_name,
            task_status: data.task_status,
            task_expire_time: data.task_expire_time,
            task_reminder: data.task_reminder,
            task_assign_to: data.task_assign_to,
            task_participant: data.task_participant,
            task_result: data.task_result
        }
        if (id != 0){
            rs.ver = host.dataTaskTemplateEdit.ver;
        }
        else {
            rs.ver = 1;
        }
        rs.extrainfo = EncodingClass.string.fromVariable(data.extrainfo);
        rs.content = EncodingClass.string.fromVariable(rs.content);
        ModalElement.show_loading();
        FormClass.api_call({
            url: "task_template_save.php",
            params: [{name: "data", value: EncodingClass.string.fromVariable(rs)}],
            func: function(success, message){
                ModalElement.close(-1);
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        st.extrainfo = EncodingClass.string.toVariable(st.extrainfo);
                        if (id != 0){
                            var index = host.database.task_templates.getIndex(id);
                            host.database.task_templates.items[index] = st;
                            host.dataTaskTemplateEdit = host.database.task_templates.items[index];
                        }
                        else {
                            id = st.id;
                            data.id = id;
                            host.id = id;
                            host.database.task_templates.items.push(st);
                            host.dataTaskTemplateEdit = st;
                        }
                        resolve(hr.task_templates.getCellTaskTemplate(host, id));
                        ModalElement.close();
                        hr.menu.changeCurrentUrlTab(host, "templates");
                    }
                    else if (message == "lock_system"){
                        ModalElement.alert({message: LanguageModule.text("war_txt_system_lock")});
                    }
                    else if (message == "deleted" || message == "edited"){
                        ModalElement.alert({
                            message: LanguageModule.text("war_txt_failed_ver_reload_data")
                        });
                    }
                    else if (message == "exist_name"){
                        ModalElement.alert({message: LanguageModule.text("war_txt_exist_name")});
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

hr.task_templates.addTaskTemplateClose = function(host, id, getValueFunction, resolve, resolveAdd){
    var data = getValueFunction();
    if (!data) {
        ModalElement.close();
        ModalElement.close();
        hr.menu.changeCurrentUrlTab(host, "templates");
        return;
    }
    var oldData;
    if (id != 0){
        oldData = host.dataTaskTemplateEdit;
    }
    else {
        oldData = {
            name: "",
            comment: "",
            available: 1
        };
    }
    var ischange = contentModule.isChanged(oldData, data, ["name", "comment", "available"]);
    if (!ischange){
        ModalElement.close();
        hr.menu.changeCurrentUrlTab(host, "templates");
        return;
    }
    contentModule.questionChange({
        onclick: function(sel){
            if (sel == 0){
                if (host.id == 0){
                    hr.task_templates.addTaskTemplatesubmit(host, host.id, getValueFunction).then(function(value){
                        resolveAdd(value);
                    });
                }
                else {
                    hr.task_templates.addTaskTemplatesubmit(host, host.id, getValueFunction).then(function(value){
                        resolve(value);
                    });
                }
            }
            else if (sel == 1){
                ModalElement.close();
                hr.menu.changeCurrentUrlTab(host, "templates");
            }
        }
    });
};

hr.task_templates.redrawDetails = function(host, id, resolve, resolveAdd){
    if (id > 0) hr.menu.changeCurrentUrlTab(host, "task_templates/" + id);
    host.id = id;
    function redraw(value){
        var formContainer = DOMElement.div({});
        ModalElement.showWindow({
            title: (id == 0)? LanguageModule.text("txt_add") : LanguageModule.text("txt_edit"),
            bodycontent: formContainer,
            buttonlist: [
                {
                    text: LanguageModule.text("txt_save"),
                    onclick: function(){
                        if (host.id == 0){
                            hr.task_templates.addTaskTemplatesubmit(host, host.id, getValueFunction).then(function(value){
                                resolveAdd(value);
                            });
                        }
                        else {
                            hr.task_templates.addTaskTemplatesubmit(host, host.id, getValueFunction).then(function(value){
                                resolve(value);
                            });
                        }
                    }
                },
                {
                    text: LanguageModule.text("txt_cancel"),
                    onclick: function(){
                        hr.task_templates.addTaskTemplateClose(host, host.id, getValueFunction, resolve, resolveAdd);
                    }
                }
            ]
        });
        var getValueFunction;
        contentModule.makeFormData({
            typeid: host.form_config.task_templates.typeid,
            formid: host.form_config.task_templates.input_form,
            initialValue: value,
            formContainer: formContainer,
            typelists: host.database.typelists.items,
            variableType: "system"
        }).then(function(getValue){
            getValueFunction = getValue;
            absol.form.traversal(formContainer.formFragment.view, function(item){
                if (item.node.tag === "TextInput") {
                    item.node.domElt.focus();
                    item.stop();
                    return;
                }
                if (id < 0){
                    var activeElt = absol.form.findComponent(formContainer.formFragment.view, {
                        name: 'type_task_template_active',
                        depth: false
                    });
                    if (activeElt) activeElt.attributes.disabled = true;
                }
            });
        });
    };
    if (id != 0){
        redraw(host.dataTaskTemplateEdit);
    }
    else {
        redraw({groupid: host.groupidToAddNewRecord});
    }
};

hr.task_templates.addTaskTemplate = function(host, id, resolve, resolveAdd){
    if (id == 0){
        var groupItems = host.database.template_groups.items.map(function(elt){
            return {
                value: elt.id,
                text: elt.name,
                sortText: absol.string.nonAccentVietnamese(elt.name.toLowerCase())
            };
        });
        groupItems.sort(function(a, b){
            if (a.sortText > b.sortText) return 1;
            if (a.sortText < b.sortText) return -1;
            return 0;
        });
        host.funcs.formTaskTemplateChooseGroup(groupItems).then(function(value){
            if (value === null) return;
            host.groupidToAddNewRecord = value;
            hr.task_templates.redrawDetails(host, id, resolve, resolveAdd);
        });
    }
    else {
        if (host.database.task_templates.getIndex(id) < 0) return;
        ModalElement.show_loading();
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "task_templates_load_by_id"},
                {name: "id", value: id}
            ],
            func: function(success, message){
                ModalElement.close(-1);
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        if (st.id !== undefined){
                            st.content = EncodingClass.string.toVariable(st.content);
                            st.task_name = st.content.task_name;
                            st.task_status = st.content.task_status;
                            st.task_expire_time = st.content.task_expire_time;
                            st.task_reminder = st.content.task_reminder;
                            st.task_assign_to = st.content.task_assign_to;
                            st.task_participant = st.content.task_participant;
                            st.task_result = st.content.task_result;
                            host.dataTaskTemplateEdit = st;
                            if (host.dataTaskTemplateEdit.extrainfo == "") host.dataTaskTemplateEdit.extrainfo = {};
                            else host.dataTaskTemplateEdit.extrainfo = EncodingClass.string.toVariable(host.dataTaskTemplateEdit.extrainfo);
                        }
                        else {
                            var index = host.database.task_templates.getIndex(id);
                            host.dataTaskTemplateEdit = host.database.task_templates.items[index];
                            host.dataTaskTemplateEdit.content = EncodingClass.string.toVariable(host.dataTaskTemplateEdit.content);
                            host.dataTaskTemplateEdit.task_name = host.dataTaskTemplateEdit.content.task_name;
                            host.dataTaskTemplateEdit.task_status = host.dataTaskTemplateEdit.content.task_status;
                            host.dataTaskTemplateEdit.task_expire_time = host.dataTaskTemplateEdit.content.task_expire_time;
                            host.dataTaskTemplateEdit.task_reminder = host.dataTaskTemplateEdit.content.task_reminder;
                            host.dataTaskTemplateEdit.task_assign_to = host.dataTaskTemplateEdit.content.task_assign_to;
                            host.dataTaskTemplateEdit.task_participant = host.dataTaskTemplateEdit.content.task_participant;
                            host.dataTaskTemplateEdit.task_result = host.dataTaskTemplateEdit.content.task_result;
                        }
                        hr.task_templates.redrawDetails(host, id, resolve, resolveAdd);
                    }
                    else if (message == "war_txt_failed_data"){
                        ModalElement.alert({
                            message: LanguageModule.text("war_txt_failed_data"),
                            func: function(){
                                hr.task_templates.init(host);
                            }
                        });
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    }
};

hr.task_templates.getCellTaskTemplate = function(host, id){
    var index = host.database.task_templates.getIndex(id);
    var func = {
        edit: function(resolve){
            hr.task_templates.addTaskTemplate(host, id, resolve);
        }
    };
    if (id > 0) func.delete = function(){
        return new Promise(function(resolve,reject){
            hr.task_templates.deleteTaskTemplateConfirm(host, id).then(function(value){
                resolve(value);
            });
        });
    };
    var res = host.database.task_templates.items[index];
    res.func = func;
    return res;
};

hr.task_templates.redraw = function(host, groupid){
    var displayDic = {
        name: true,
        groupid: true,
        available: true
    };
    var columnList = contentModule.getColumnListFromDatatype(host, "task_templates", displayDic);
    var redrawTableFunc = function(){
        var data = [];
        for (var i = 0; i < host.database.task_templates.items.length; i++){
            if (groupid == 0 || host.database.task_templates.items[i].groupid == groupid) {
                data.push(hr.task_templates.getCellTaskTemplate(host, host.database.task_templates.items[i].id));
            }
        }
        contentModule.getColumnListConfig(host, host.user_column_configsDic, columnList, "task_template_list").then(function(value){
            host.configColumnTaskTemplates = value;
            host.dataView = host.funcs.formTaskTemplatesContentData({
                data: data,
                inputsearchbox: host.inputsearchbox,
                configColumnTaskTemplates: host.configColumnTaskTemplates,
                configColumnFunc: function(){
                    contentModule.userColumnConfigForm({
                        type: "task_template_list",
                        columnList: columnList
                    }).then(function(value){
                        host.user_column_configsDic["task_template_list"] = value;
                        redrawTableFunc();
                    });
                }
            });
            host.data_container.appendChild(host.dataView);
        });
    };
    redrawTableFunc();
};

hr.task_templates.init = function(host){
    return new Promise(function(resolveMn, rejectMn){
        hr.menu.changeCurrentUrlTab(host, "templates");
        host.database = {};
        ModalElement.show_loading();
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "task_templates_load_init"}
            ],
            func: function(success, message){
                ModalElement.close(-1);
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        contentModule.makeDatabaseContent(host, content);
                        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: -2,
                            name: "Khác...",
                            comment: "",
                            extrainfo: "obj#0#",
                            available: 1,
                            ver: 1
                        });
                        host.database.task_templates.items.forEach(function(elt){
                            elt.content = EncodingClass.string.toVariable(elt.content);
                            elt.task_name = elt.content.task_name,
                            elt.task_status = elt.content.task_status,
                            elt.task_expire_time = elt.content.task_expire_time,
                            elt.task_reminder = elt.content.task_reminder,
                            elt.task_assign_to = elt.content.task_assign_to,
                            elt.task_participant = elt.content.task_participant,
                            elt.task_result = elt.content.task_result
                        });
                        host.form_config = contentModule.configVariable(host);
                        contentModule.makeInputFormDecode(host.database.input_forms.items);
                        hr.input_form.loadFormConstructorToAssembler(host.database.input_forms.items, host.database.typelists.items);
                        host.user_column_configsDic = contentModule.getUser_column_configsDic(host);
                        host.inputsearchbox = absol.buildDom({
                            tag:'searchcrosstextinput',
                            style: {
                                width: "var(--searchbox-width)"
                            },
                            props:{
                                placeholder: LanguageModule.text("txt_search")
                            }
                        });
                        var cmdbutton = {
                            close: function(host){
                                return function (event, me) {
                                    if (hr.isMobile){
                                        host.holder.selfRemove();
                                        hr.menu.loadPage(100);
                                    }
                                    else {
                                        hr.menu.tabPanel.removeTab(host.holder.id);
                                    }
                                }
                            } (host),
                            add: function(host){
                                return function (event, me) {
                                    hr.task_templates.addTaskTemplate(host, 0, function onSave(value){
                                        host.newRecord = host.newRecord.updateCurrentRow(host.funcs.formTaskTemplateGetRow(host.configColumnTaskTemplates, value));
                                    }, function onAdd(value){
                                        host.newRecord = host.dataView.insertRow(host.funcs.formTaskTemplateGetRow(host.configColumnTaskTemplates, value));
                                    });
                                }
                            } (host)
                        };
                        host.groupid = 0;
                        var groupItems = host.database.template_groups.items.map(function(elt){
                            return {value: elt.id, text: elt.name};
                        });
                        groupItems.unshift({value: 0, text: LanguageModule.text("txt_all")});
                        var groupChange = function(host){
                            return function(groupid){
                                hr.task_templates.redraw(host, groupid);
                            }
                        }(host);
                        host.data_container = DOMElement.div({attrs: {style: {paddingBottom: "var(--footer-margin)"}}});
                        host.holder.addChild(host.frameList);
                        var singlePage = host.funcs.formTaskTemplatesInit({
                            cmdbutton: cmdbutton,
                            data_container: host.data_container,
                            inputsearchbox: host.inputsearchbox,
                            groupItems: groupItems,
                            groupChange: groupChange
                        });
                        host.frameList.addChild(singlePage);
                        singlePage.requestActive();
                        hr.task_templates.redraw(host, 0);
                        resolveMn(host);
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

VaKeR 2022