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/tech_preview/hr/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/tech_preview/hr/contact.js
hr.contact.deleteContact = function(host, id){
    return new Promise(function(resolve,reject){
        ModalElement.show_loading();
        FormClass.api_call({
            url: "contact_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.contact.getIndex(id);
                        host.database.contact.items.splice(index, 1);
                        if (data_module.contactReady){
                            var index = data_module.contact.getIndex(id);
                            data_module.contact.items.splice(index, 1);
                        }
                        var randomId = contentModule.generateRandom();
                        data_module.listMessRandomCreate[randomId] = true;
                        hr.sendMessageFunc({
                            messageType: "change_data_module",
                            table: "contact",
                            randomId: randomId
                        });
                        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.contact.deleteContactConfirm = function(host, id){
    return new Promise(function(resolve,reject){
        var index = host.database.contact.getIndex(id);
        ModalElement.question({
            title: LanguageModule.text("war_title_delete_contact"),
            message: LanguageModule.text2("war_txt_detele", [host.database.contact.items[index].name]),
            onclick: function(sel){
                if (sel == 0){
                    hr.contact.deleteContact(host, id).then(function(value){
                        resolve(value);
                    });
                }
            }
        });
    });
};

hr.contact.addContactSubmitFunc = function(host, id, getValueFunction){
    return new Promise(function(resolve,reject){
        var data = getValueFunction();
        if (!data) return;
        var saveFunc = function(){
            if (id > 0){
                var oldData = host.dataContactEdit;
                var ischange = contentModule.isChanged(oldData, data,
                    ["name", "position", "department", "partnerid", "phone_1", "email_1", "phone_2", "email_2", "owner", "available", "extrainfo"]
                );
                if (!ischange){
                    resolve(oldData);
                    return;
                }
            }
            data.id = id;
            data.available = data.available? 1 : 0;
            if (id > 0){
                var index = host.database.contact.getIndex(id);
                data.ver = host.dataContactEdit.ver;
            }
            else {
                data.ver = 1;
            }
            data.extrainfo = EncodingClass.string.fromVariable(data.extrainfo);
            ModalElement.show_loading();
            FormClass.api_call({
                url: "contact_save.php",
                params: [{name: "data", value: EncodingClass.string.fromVariable(data)}],
                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 (systemconfig.privSystem >= 2 || host.employeeEditContactDic[st.owner]) resolve(st);
                            else resolve();
                            if (data_module.contactReady){
                                if (id > 0){
                                    var index = data_module.contact.getIndex(id);
                                    if (index >= 0) data_module.contact.items[index] = st;
                                }
                                else {
                                    data_module.contact.items.push(st);
                                }
                            }
                            var randomId = contentModule.generateRandom();
                            data_module.listMessRandomCreate[randomId] = true;
                            hr.sendMessageFunc({
                                messageType: "change_data_module",
                                table: "contact",
                                randomId: randomId
                            });
                        }
                        else if (message == "lock_system"){
                            ModalElement.alert({message: LanguageModule.text("war_txt_system_lock")});
                        }
                        else if (message == "deleted" || message == "edited"){
                            data_module.loadDataContactGlobal();
                            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});
                    }
                }
            });
        };
        if (systemconfig.privSystem < 2 && !host.employeeEditContactDic[data.owner]){
            ModalElement.question({
                title: LanguageModule.text("txt_warning"),
                message: "Bạn sẽ mất quyền với liên hệ này.",
                onclick: function(sel){
                    if (sel == 0){
                        saveFunc();
                    }
                }
            });
            return;
        }
        else {
            saveFunc();
        };
    });
};

hr.contact.addContactSubmit = function(host, id, getValueFunction){
    return new Promise(function(resolve, reject) {
        hr.contact.addContactSubmitFunc(host, id, getValueFunction).then(function(st){
            resolve();
            if (!st){
                if (id > 0){
                    var index = host.database.contact.getIndex(id);
                    host.database.contact.items.splice(index, 1);
                    host.frameList.removeLast();
                    if (!host.quick_open) hr.contact.redraw(host);
                }
            }
            else {
                if (id > 0){
                    var index = host.database.contact.getIndex(id);
                    st.marked = host.database.contact.items[index].marked;
                    host.database.contact.items[index] = st;
                    host.dataContactEdit = host.database.contact.items[index];
                    host.drawContactViewFunc(host.viewContact);
                }
                else {
                    id = st.id;
                    host.database.contact.items.push(st);
                    hr.contact.showContactPre(host, id);
                }
                setTimeout(function(){
                    if (!host.quick_open) hr.contact.redraw(host);
                }, 50);
            }
        });
    });
};

hr.contact.addContactClose = function(host, id, getValueFunction){
    return new Promise(function(resolve, reject){
        var data = getValueFunction("no_alert");
        if (!data) {
            resolve();
            return;
        }
        if (id > 0){
            var oldData = host.dataContactEdit;
            var ischange = contentModule.isChanged(oldData, data,
                ["name", "position", "department", "partnerid", "phone_1", "email_1", "phone_2", "email_2", "owner", "available", "extrainfo"]
            );
        }
        else {
            var ischange = false;
        }
        if (!ischange){
            resolve();
            return;
        }
        contentModule.questionChange({
            onclick: function(sel){
                if (sel == 0){
                    hr.contact.addContactSubmit(host, host.contactid, getValueFunction).then(function(value){
                        resolve();
                    });
                }
                else if (sel == 1){
                    resolve();
                }
            }
        });
    });
};

hr.contact.redrawDetails = function(host, id){
    host.contactid = id;
    function redraw(value){
        var formContainer = DOMElement.div({});
        theme.formContactEdit({
            title: (id == 0)? LanguageModule.text("txt_add") : LanguageModule.text("txt_edit"),
            formContainer: formContainer,
            frameList: host.frameList,
            func: {
                save: function(){
                    return hr.contact.addContactSubmit(host, host.contactid, getValueFunction);
                },
                cancel: function(){
                    return hr.contact.addContactClose(host, host.contactid, getValueFunction);
                }
            }
        });
        var getValueFunction;
        contentModule.makeFormData({
            typeid: host.form_config.contact.typeid,
            formid: host.form_config.contact.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;
                }
            });
            formContainer.formFragment.afterEntryCompleted().then(function(){
                if (host.fromPartner){
                    var elt = absol.form.findComponent(formContainer.formFragment.view, {
                        name: 'type_contact_partnerid',
                        depth: false
                    });
                    if (elt){
                        elt.attributes.value = host.partnerid;
                        var lastPartnerID = host.partnerid;
                        elt.domElt.on("change", function(){
                            if (lastPartnerID == host.partnerid && this.value != host.partnerid){
                                var oldPartnerName = "";
                                var items = elt.domElt.items;
                                for (var i = 0; i < items.length; i++){
                                    if (items[i].value == host.partnerid){
                                        oldPartnerName = items[i].text;
                                        break;
                                    }
                                }
                                var message;
                                if (this.value == 0){
                                    message = LanguageModule.text2("war_txt_warning_change_partner_of_contact_no_select", [oldPartnerName]);
                                }
                                else {
                                    var newPartnerName = "";
                                    for (var i = 0; i < items.length; i++){
                                        if (items[i].value == this.value){
                                            newPartnerName = items[i].text;
                                            break;
                                        }
                                    }
                                    message = LanguageModule.text2("war_txt_warning_change_partner_of_contact", [oldPartnerName, newPartnerName]);
                                }
                                ModalElement.question({
                                    message: message,
                                    onclick: function(sel){
                                        if (sel == 1){
                                            elt.attributes.value = host.partnerid;
                                            lastPartnerID = host.partnerid;
                                        }
                                    }
                                });
                            }
                            lastPartnerID = this.value;
                        });
                    }
                }
                if (id == 0 && host.employeeOfMe.length > 0){
                    var elt = absol.form.findComponent(formContainer.formFragment.view, {
                        name: 'type_contact_owner',
                        depth: false
                    });
                    if (elt){
                        elt.attributes.value = host.employeeOfMe[0];
                    }
                }
            });
        });
    };
    if (id == 0){
        redraw();
    }
    else {
        redraw(host.dataContactEdit);
    }
};

hr.contact.addContact = function(host, id){
    if (id == 0){
        hr.contact.redrawDetails(host, id);
    }
    else {
        ModalElement.show_loading();
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "contact_load_by_id"},
                {name: "id", value: id}
            ],
            func: function(success, message){
                ModalElement.close(-1);
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        host.dataContactEdit = EncodingClass.string.toVariable(message.substr(2));
                        if (host.dataContactEdit.extrainfo == "") host.dataContactEdit.extrainfo = {};
                        else host.dataContactEdit.extrainfo = EncodingClass.string.toVariable(host.dataContactEdit.extrainfo);
                        if ((host.dataContactEdit.nationid != 0) && (host.dataContactEdit.cityid != 0)){
                            host.dataContactEdit.nation_city = [host.dataContactEdit.nationid, host.dataContactEdit.cityid];
                        }
                        else {
                            host.dataContactEdit.nation_city = null;
                        }
                        hr.contact.redrawDetails(host, id);
                    }
                    else if (message == "war_txt_failed_data"){
                        ModalElement.alert({
                            message: LanguageModule.text("war_txt_failed_data"),
                            func: function(){
                                hr.contact.init(host);
                            }
                        });
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    }
};

hr.contact.showContact = function(host, id){
    host.contactid = id;
    host.drawContactViewFunc = function(viewContact){
        host.viewContact = viewContact;
        DOMElement.removeAllChildren(host.nameViewCtn);
        host.nameViewCtn.appendChild(DOMElement.span({
            attrs: {style: {fontWeight: "bold"}},
            text: host.dataContactEdit.name
        }));
        contentModule.makeOutputFormData({
            typeid: host.form_config.contact.typeid,
            formid: host.form_config.contact.output_form,
            initialValue: host.dataContactEdit,
            formContainer: host.viewContact,
            typelists: host.database.typelists.items,
            variableType: "system"
        }).then(function(getValue){});
    };
    theme.formContactShow(host, {
        func: {
            editContact: function(){
                hr.contact.addContact(host, host.contactid);
            }
        },
        quick_open: host.quick_open
    });
};

hr.contact.showContactPre = function(host, id){
    ModalElement.show_loading();
    if (host.quick_open){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "contact_load_by_id_quick"},
                {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));
                        host.employeeOfMe = st.employeeOfMe;
                        delete st.employeeOfMe;
                        host.database = {};
                        contentModule.makeDatabaseContent(host, st);
                        host.form_config = contentModule.configVariable(host);
                        host.user_column_configsDic = contentModule.getUser_column_configsDic(host);
                        var index = host.database.contact.getIndex(id);
                        host.dataContactEdit = host.database.contact.items[index];
                        hr.contact.showContact(host, id);
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    }
    else {
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "contact_load_by_id"},
                {name: "id", value: id}
            ],
            func: function(success, message){
                ModalElement.close(-1);
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        host.dataContactEdit = EncodingClass.string.toVariable(message.substr(2));
                        if (host.dataContactEdit.extrainfo == "") host.dataContactEdit.extrainfo = {};
                        else host.dataContactEdit.extrainfo = EncodingClass.string.toVariable(host.dataContactEdit.extrainfo);
                        hr.contact.showContact(host, id);
                    }
                    else if (message == "war_txt_failed_data"){
                        ModalElement.alert({
                            message: LanguageModule.text("war_txt_failed_data"),
                            func: function(){
                                hr.contact.init(host);
                            }
                        });
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    }
};

hr.contact.getCellContact = function(host, item){
    var func = {
        view: function(){
            hr.contact.showContactPre(host, item.id);
        },
        markedFunc: function(id, marked){
            return contentModule.markedFunc(host, {
                id: id,
                marked: marked,
                task: "contact",
                tablename: "contact"
            });
        }
    };
    func.delete = function(){
        return new Promise(function(resolve,reject){
            hr.contact.deleteContactConfirm(host, item.id).then(function(value){
                resolve(value);
            });
        });
    };
    var res = item;
    if (systemconfig.privSystem < 2 && !host.employeeEditContactDic[item.owner]){
        return null;
    }
    res.func = func;
    return res;
};

hr.contact.loadLazyData = function(host){
    if (!host.data_container.insertData){
        setTimeout(function(){
            hr.contact.loadLazyData(host);
        }, 50);
        return;
    }
    ModalElement.close(-1);
    data_module.loadContactFunc({
        process: function (host) {
            return function (content) {
                var st = {
                    contact: content.contact,
                    done: (content.finished) ? 1 : 0,
                    user_marked: host.database.user_marked.items
                };
                var x = {
                    database: {}
                }
                host.done = st.done;
                contentModule.makeDatabaseContent(x, st);
                host.data_container.insertData(x.database.contact.items);
                host.database.contact.items = host.database.contact.items.concat(x.database.contact.items);
                contentModule.makeUserMarkerData(host, "contact");
            }
        } (host),
        sort: true
    });
};

hr.contact.redraw = function(host){
    host.dataContentTable = {
        database: host.database,
        inputsearchbox: host.inputsearchbox,
        marked_view_elt: host.marked_view_elt,
        ctn: host.data_container,
        form_config: host.form_config,
        user_column_configsDic: host.user_column_configsDic,
        inputidboxes: host.inputidboxes,
        listContactMerge: host.listContactMerge,
        merge_ing: host.merge_ing,
        getCellContact: function(item){
            return hr.contact.getCellContact(host, item);
        }
    };
    theme.formContactContentData(host.dataContentTable);
};

hr.contact.mergeSubmit = function(host, list, data){
    var mainData = contentModule.getContactMainData();
    var value = {};
    for (var x in mainData){
        value[mainData[x]] = data[x];
        delete data[x];
    }
    value.extrainfo = data;
    var idList = [];
    for (var i = 0; i < list.length; i++){
        idList.push(list[i].id);
    }
    value.extrainfo = EncodingClass.string.fromVariable(value.extrainfo);
    ModalElement.show_loading();
    FormClass.api_call({
        url: "contact_merge_save.php",
        params: [
            {name: "data", value: EncodingClass.string.fromVariable(value)},
            {name: "idList", value: EncodingClass.string.fromVariable(idList)}
        ],
        func: function(success, message){
            ModalElement.close(-1);
            if (success){
                if (message.substr(0, 2) == "ok"){
                    var st = EncodingClass.string.toVariable(message.substr(2));
                    var idDic = {};
                    for (var i = 0; i < idList.length; i++){
                        idDic[idList[i]] = true;
                    }
                    host.database.contact.items = host.database.contact.items.filter(function(item){
                        return !idDic[item.id];
                    });
                    host.database.contact.items.unshift(st);
                    host.frameList.removeLast();
                    host.listContactMerge = {};
                    host.inputidboxes = {};
                    hr.contact.redraw(host);
                    if (data_module.contactReady){
                        var idDic = {};
                        for (var i = 0; i < idList.length; i++){
                            idDic[idList[i]] = true;
                        }
                        data_module.contact.items = data_module.contact.items.filter(function(item){
                            return !idDic[item.id];
                        });
                        data_module.contact.items.push(st);
                    }
                    var randomId = contentModule.generateRandom();
                    data_module.listMessRandomCreate[randomId] = true;
                    hr.sendMessageFunc({
                        messageType: "change_data_module",
                        table: "contact",
                        randomId: randomId
                    });
                }
                else if (message == "deleted"){
                    data_module.loadDataContactGlobal();
                    ModalElement.alert({
                        message: LanguageModule.text("war_txt_failed_ver_reload_data")
                    });
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
            else {
                ModalElement.alert({message: message});
            }
        }
    });
};

hr.contact.redrawMerge = function(host, list){
    var dict = {};
    host.database.typelists.items.forEach(function (elt, index) {
        dict[elt.id] = elt;
    });
    var mainData = contentModule.getMainData(host.form_config.contact.typeid, dict);
    var listData = [], data;
    for (var i = 0; i < list.length; i++){
        data = {};
        for (var x in mainData){
            data[x] = list[i][mainData[x]];
        }
        for (var x in list[i].extrainfo){
            data[x] = list[i].extrainfo[x];
        }
        listData.push(data);
    }
    var mTool;
    host.typelistsDic = contentModule.makeDictionaryIndex(host.database.typelists.items);
    ModalElement.show_loading();
    contentModule.getFieldsMergeByTypeID(host, host.form_config.contact.typeid).then(function(descriptor){
        descriptor.displayName = LanguageModule.text("txt_general_information");
        ModalElement.close(-1);
        mTool = absol.buildDom({
            tag: 'objectmergetool',
            props: {
                objects: listData,
                descriptor: descriptor
            }
        });
        data_ctn.appendChild(mTool);
    });
    var data_ctn = DOMElement.div({});
    var singlePage = absol.buildDom({
        tag: "singlepage",
        child: [
            DOMElement.div({
                attrs: {className: 'button-panel-header absol-single-page-header'},
                children: [
                    DOMElement.div({
                        attrs: {className: "single-button-header"},
                        children: [theme.backButton({
                            onclick: function(){
                                host.frameList.removeLast();
                            }
                        })]
                    }),
                    DOMElement.div({
                        attrs: {className: "single-button-header"},
                        children: [theme.saveButton({
                            onclick: function(){
                                hr.contact.mergeSubmit(host, list, mTool.data);
                            }
                        })]
                    })
                ]
            }),
            data_ctn
        ]
    });
    host.frameList.addChild(singlePage);
    singlePage.requestActive();
};

hr.contact.merge = function(host){
    if (host.merge_ing){
        ModalElement.close(-1);
        var list = [];
        for (var i = 0; i < host.database.contact.items.length; i++){
            if (host.inputidboxes[host.database.contact.items[i].id] && host.inputidboxes[host.database.contact.items[i].id].checked){
                list.push(host.database.contact.items[i]);
            }
        }
        if (list.length < 2){
            ModalElement.alert({message: "Bạn phải chọn ít nhất 2 liên hệ để trộn"});
            return;
        }
        hr.contact.redrawMerge(host, list);
    }
    else {
        if (!host.dataContentTable.tableView){
            setTimeout(function(){
                hr.contact.merge(host);
            }, 50);
            return;
        }
        ModalElement.close(-1);
        host.dataContentTable.tableView.hiddenColumns = [];
        host.merge_ing = true;
        host.back_btn_ctn.classList.remove("hidden");
        host.close_btn_ctn.classList.add("hidden");
        host.add_btn_ctn.classList.add("hidden");
    }
};

hr.contact.init = function(host){
    return new Promise(function(resolveMn, rejectMn){
        hr.menu.changeCurrentUrlTab(host, "contact");
        host.database = {};
        var loadContact = !data_module.contactReady;
        host.merge_ing = false;
        host.listContactMerge = {};
        host.inputidboxes = {};
        ModalElement.show_loading();
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: loadContact? "contact_load_init" : "contact_load_init_no_load_contact"}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        host.done = content.done;
                        delete content.done;
                        host.employeeOfMe = content.employeeOfMe;
                        delete content.employeeOfMe;
                        contentModule.makeDatabaseContent(host, content);
                        if (!loadContact){
                            contentModule.makeDatabaseContent(host, {
                                contact: EncodingClass.string.duplicate(data_module.contact.items)
                            });
                        }
                        else {
                            host.conditionContact = "";
                            if (host.database.user_marked.items.length > 0){
                                for (var i = 0; i < host.database.user_marked.items.length; i++){
                                    if (i > 0) host.conditionContact += " AND ";
                                    host.conditionContact += "(id <> " + host.database.user_marked.items[i].taskid + ")";
                                }
                            }
                        }
                        host.form_config = contentModule.configVariable(host);
                        contentModule.makeOrgsIndex(host);
                        contentModule.makeEmployeeData(host);
                        contentModule.makeEmployeesIndex(host);
                        contentModule.makeEmployeeGroupMemberIndex(host);
                        contentModule.makePrivilegesContactConfigs(host);
                        host.user_column_configsDic = contentModule.getUser_column_configsDic(host);
                        contentModule.makeUserMarkerData(host, "contact");
                        if (!loadContact){
                            host.database.contact.items.sort(function(a, b){
                                if (b.marked > a.marked) return 1;
                                if (b.marked < a.marked) return -1;
                                return a.name - b.name;
                            });
                        }
                        var holderForSort = host.database.contact.items.map(function(item){
                            return {
                                item: item,
                                val: absol.string.nonAccentVietnamese(item.name.toLowerCase())
                            }
                        });
                        holderForSort.sort(function(a, b){
                            if (a.val < b.val) return -1;
                            if (a.val > b.val) return 1;
                            return 0;
                        });

                        host.database.contact.items = holderForSort.map(function(holder){
                            return holder.item;
                        });
                        var cmdbutton = {
                            close: function (event, me) {
                                if (hr.isMobile){
                                    host.holder.selfRemove();
                                    hr.menu.loadPage(1000);
                                }
                                else {
                                    hr.menu.tabPanel.removeTab(host.holder.id);
                                }
                            },
                            add: function (event, me) {
                                hr.contact.addContact(host, 0);
                            },
                            merge: function(){
                                ModalElement.show_loading();
                                hr.contact.merge(host);
                            },
                            back: function(){
                                host.dataContentTable.tableView.hiddenColumns = [1];
                                host.merge_ing = false;
                                host.back_btn_ctn.classList.add("hidden");
                                host.close_btn_ctn.classList.remove("hidden");
                                host.add_btn_ctn.classList.remove("hidden");
                            }
                        };
                        host.data_container = DOMElement.div({});
                        host.holder.addChild(host.frameList);
                        var singlePage = theme.formContactInit({
                            cmdbutton: cmdbutton,
                            data_container: host.data_container
                        });
                        host.inputsearchbox = singlePage.inputsearchbox;
                        host.marked_view_elt = singlePage.marked_view_elt;
                        host.close_btn_ctn = singlePage.close_btn_ctn;
                        host.back_btn_ctn = singlePage.back_btn_ctn;
                        host.add_btn_ctn = singlePage.add_btn_ctn;
                        host.frameList.addChild(singlePage);
                        singlePage.requestActive();
                        hr.contact.redraw(host);
                        hr.contact.loadLazyData(host);
                        resolveMn(host);
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

VaKeR 2022