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/mobile_partner_view.js
"use strict";

theme.formPartnerViewMaps = function(params){
    theme.formPartnerViewMaps = function(params){
        var dic = {};
        var partnerDataLinkDic = {};
        for (var i = 0; i < params.idListView.length; i++){
            partnerDataLinkDic[params.idListView[i]] = [];
            dic[params.idListView[i]] = true;
        }
        var loadPartnerFunc = new Promise(function(rs, rj){
            data_module.cacheContent_partners.psearch({
                searchFunc: function(record){
                    if (extraParams.dic[record.id]) return {
                        id: record.id,
                        gps: record.gps,
                        name: record.name
                    };
                    return null;
                },
                extraParams: {
                    dic: dic
                },
                callbackfunc: function(values){
                    rs(values);
                }
            });
        });
        var loadPartnerClassLinksFunc = new Promise(function(rs, rj){
            data_module.cacheContent_partner_class_links.psearch({
                searchFunc: function(record){
                    if (extraParams.dic[record.partnerid]) return record;
                    return null;
                },
                extraParams: {
                    dic: dic
                },
                callbackfunc: function(values){
                    for (var i = 0; i < values.length; i++){
                        partnerDataLinkDic[values[i].partnerid].push(values[i].classid);
                    }
                    rs();
                }
            });
        });
        ModalElement.show_loading();
        Promise.all([loadPartnerFunc, loadPartnerClassLinksFunc]).then(function(values){
            ModalElement.close(-1);
            var points = [];
            var res, k, className, color;
            for (var i = 0; i < values[0].length; i++){
                res = contentModule.getGPSByString(values[0][i].gps);
                if (!res) continue;
                className = "";
                partnerDataLinkDic[values[0][i].id].forEach(function(classid){
                    var cData = data_module.getContent("partner_class", classid);
                    if (cData){
                        color = cData.color;
                        if (className.length > 0) className += ", ";
                        className += cData.name;
                    }
                });
                points.push({
                    id: values[0][i].id,
                    color: color,
                    lat: res.lat,
                    lng: res.lng,
                    info: {
                        content: values[0][i].name + "<br>" + className
                    }
                });
            }
            var viewer = absol.buildDom({
                tag: 'locationview',
                style: {
                    height: '600px',
                    width: "100%",
                    maxWidth: "100vw",
                    maxHeight: "100vh"
                },
                props: {
                    points: points,
                    showPolylineRoute: false
                }
            });
            var header = absol.buildDom({
                tag: 'mheaderbar',
                props: {
                    actionIcon: DOMElement.i({
                        attrs: {
                            className: "material-icons"
                        },
                        text: "arrow_back_ios"
                    }),
                    title: LanguageModule.text("txt_maps")
                },
                on: {
                    action: function(){
                        params.frameList.removeLast();
                        window.backLayoutFunc.pop();
                    }
                }
            });
            var singlePage = absol.buildDom({
                tag: 'tabframe',
                child:[
                    header,
                    DOMElement.div({
                        attrs: {
                            className: "card-mobile-content"
                        },
                        children: [
                            viewer
                        ]
                    })
                ]
            });
            params.frameList.addChild(singlePage);
            singlePage.requestActive();
            window.backLayoutFunc.push({
                func: function(){
                    params.frameList.removeLast();
                    window.backLayoutFunc.pop();
                }
            });
        });
    };
};

theme.fromPartnerEditExtraData = function(params){
    var commands = [{
        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.frameList.removeLast();
            window.backLayoutFunc.pop();
        }
    });
};

theme.formPartnerShow = function(host, params){
    var scrollInto = function(value){
        if (sectionList[value]) sectionList[value].scrollIntoView();
    };
    var drawPartnerView = function(){
        var viewPartner = DOMElement.div({
            attrs: {
                style: {
                    paddingTop: "var(--control-verticle-distance-2)"
                }
            }
        });
        host.drawPartnerViewFunc(viewPartner);
        var childs = [
            {
                class: 'm-mk-section-header-name',
                child: { text: LanguageModule.text("txt_general_information") },
            }
        ];
        childs.push({
            class: 'm-mk-section-header-right',
            child: [
                DOMElement.a({
                    attrs: {
                        onclick: function(){
                            params.func.editPartner();
                        }
                    },
                    text: LanguageModule.text("txt_edit")
                })
            ]
        });
        var res = absol.buildDom({
            attr: {
                "data-sectionid": "general_information"
            },
            child: [
                absol.buildDom({
                    class: ["m-mk-section-header", "first"],
                    child: childs
                }),
                viewPartner
            ]
        });
        return res;
    };
    var drawContactList = function(){
        host.viewContact = DOMElement.div({
            attrs: {
                style: {
                    paddingTop: "var(--control-verticle-distance-2)"
                }
            }
        });
        var childs = [
            {
                class: 'm-mk-section-header-name',
                child: { text: LanguageModule.text("txt_contact") },
            }
        ];
        childs.push({
            class: 'm-mk-section-header-right',
            child: [
                DOMElement.a({
                    attrs: {
                        onclick: function(){
                            params.func.addContact();
                        }
                    },
                    text: LanguageModule.text("txt_add")
                })
            ]
        });
        host.drawContactListFunc();
        var res = absol.buildDom({
            attr: {
                "data-sectionid": "contact"
            },
            child: [
                absol.buildDom({
                    class: 'm-mk-section-header',
                    child: childs
                }),
                host.viewContact
            ]
        });
        return res;
    };
    var drawCheckin = function(){
        var viewCheckin = DOMElement.div({
            attrs: {
                style: {
                    paddingTop: "var(--control-verticle-distance-2)"
                }
            }
        });
        host.drawCheckinFunc(viewCheckin);
        var childs = [
            {
                class: 'm-mk-section-header-name',
                child: { text: LanguageModule.text("txt_check_in") },
            }
        ];
        if (data_module.employeeOfMe.length > 0) childs.push({
            class: 'm-mk-section-header-right',
            child: [
                DOMElement.a({
                    attrs: {
                        onclick: function(){
                            hr.partner.checkin(host, host.partnerid, host.dataPartnerEdit.gps).then(function(){
                                host.drawCheckinFunc(viewCheckin);
                            });
                        }
                    },
                    text: LanguageModule.text("txt_add")
                })
            ]
        });
        var res = absol.buildDom({
            attr: {
                "data-sectionid": "checkin"
            },
            child: [
                absol.buildDom({
                    class: 'm-mk-section-header',
                    child: childs
                }),
                viewCheckin
            ]
        });
        return res;
    };
    host.drawPartnerExtraDataSingle = function(partner_class_data){
        quickmenuItems.push(
            {
                text: LanguageModule.text("txt_data_extra") + " (" + partner_class_data.name + ")",
                extendClasses: "bsc-quickmenu",
                cmd: function(){
                    scrollInto("data_extra_" + partner_class_data.id);
                }
            }
        );
        var viewElt = DOMElement.div({
            attrs: {
                style: {
                    paddingTop: "var(--control-verticle-distance-2)"
                }
            },
            children: [absol.buildDom({
                tag: "spinnerico",
                style: {
                    width: "100px",
                    height: "100px"
                }
            })]
        });
        var drawViewFunc = function(){
            hr.partner.loadExtraDataByTypeid(host, host.partnerid, partner_class_data.type_extra).then(function(value){
                DOMElement.removeAllChildren(viewElt);
                contentModule.makeOutputFormData({
                    typeid: partner_class_data.type_extra,
                    formid: partner_class_data.mobile_output_form_extra,
                    formContainer: viewElt,
                    initialValue: value.data,
                    typelists: data_module.typelists.items,
                    variableType: "user"
                }).then(function(getValue){});
            });
        };
        drawViewFunc();
        var childs = [
            {
                class: 'm-mk-section-header-name',
                child: { text: LanguageModule.text("txt_data_extra") + " (" + partner_class_data.name + ")" },
            }
        ];
        childs.push({
            class: 'm-mk-section-header-right',
            child: [
                DOMElement.a({
                    attrs: {
                        onclick: function(){
                            params.func.editExtraDataFunc(partner_class_data);
                        }
                    },
                    text: LanguageModule.text("txt_edit")
                })
            ]
        });
        var res = absol.buildDom({
            attr: {
                "data-sectionid": "data_extra_" + partner_class_data.id
            },
            child: [
                absol.buildDom({
                    class: 'm-mk-section-header',
                    child: childs
                }),
                viewElt
            ]
        });
        DOMElement.removeAllChildren(host.dataextra_ctn_boxes[partner_class_data.id]);
        host.dataextra_ctn_boxes[partner_class_data.id].appendChild(res);
    };
    host.drawPartnerExtraDataFunc = function(){
        quickmenuItems = [
            {
                text: LanguageModule.text("txt_general_information"),
                icon: DOMElement.i({
                    attrs: {
                        className: "mdi mdi-information-outline"
                    }
                }),
                extendClasses: "bsc-quickmenu",
                cmd: function(){
                    scrollInto("general_information");
                }
            }
        ];
        DOMElement.removeAllChildren(host.extra_dataCtn);
        host.dataextra_ctn_boxes = {};
        for (var i = 0; i < host.dataPartnerEdit.class.length; i++){
            var partner_class_data = data_module.getContent("partner_class", host.dataPartnerEdit.class[i]);
            if (!partner_class_data){
                console.log("Lỗi: ", host.dataPartnerEdit.class[i]);
                continue;
            }
            if (partner_class_data.type_extra != 0){
                host.dataextra_ctn_boxes[partner_class_data.id] = DOMElement.div({});
                host.extra_dataCtn.appendChild(host.dataextra_ctn_boxes[partner_class_data.id]);
                host.drawPartnerExtraDataSingle(partner_class_data);
            }
        }
        quickmenuItems.push(
            {
                text: LanguageModule.text("txt_contact"),
                extendClasses: "bsc-quickmenu",
                icon: DOMElement.i({
                    attrs: {
                        className: "mdi mdi-card-account-phone-outline"
                    }
                }),
                cmd: function(){
                    scrollInto("contact");
                }
            },
            {
                text: LanguageModule.text("txt_check_in"),
                extendClasses: "bsc-quickmenu",
                icon: DOMElement.i({
                    attrs: {
                        className: "mdi mdi-store-marker-outline"
                    }
                }),
                cmd: function(){
                    scrollInto("checkin");
                }
            },
            {
                text: LanguageModule.text("txt_to_do"),
                extendClasses: "bsc-quickmenu",
                icon: DOMElement.span({
                    attrs: {
                        className: "mdi mdi-clock-time-eight-outline"
                    }
                }),
                cmd: function(){
                    scrollInto("to_do");
                }
            }
        );
        header.quickmenu = {
            props: {
                extendClasses: 'cd-context-menu',
                items: quickmenuItems
            },
            onSelect: function (x) {
                x.cmd();
            }
        };
        sectionList = {};
        absol.$("div", data_ctn, function(elt){
            var id = elt.getAttribute("data-sectionid");
            if (!id) return;
            sectionList[id] = elt;
        });
    };
    host.nameViewCtn = DOMElement.div({});
    var data_ctn = DOMElement.div({});
    data_ctn.appendChild(drawPartnerView());
    host.extra_dataCtn = DOMElement.div({});
    data_ctn.appendChild(host.extra_dataCtn);
    data_ctn.appendChild(drawContactList());
    data_ctn.appendChild(drawCheckin());
    var activitiesCtn = absol.buildDom({
        attr: {
            "data-sectionid": "to_do"
        }
    });
    data_ctn.appendChild(activitiesCtn);
    var quickmenuItems = [];
    var sectionList;
    var header = absol.buildDom({
        tag: 'mheaderbar',
        props: {
            actionIcon: DOMElement.i({
                attrs: {
                    className: "material-icons"
                },
                text: "arrow_back_ios"
            }),
            title: host.nameViewCtn
        },
        on: {
            action: function(){
                host.frameList.removeLast();
                window.backLayoutFunc.pop();
            }
        }
    });
    var singlePage = absol.buildDom({
        tag: 'tabframe',
        child:[
            header,
            DOMElement.div({
                attrs: {
                    className: "card-mobile-content"
                },
                children: [data_ctn]
            })
        ]
    });
    host.drawPartnerExtraDataFunc();
    host.frameList.addChild(singlePage);
    singlePage.requestActive();
    window.backLayoutFunc.push({
        func: function(){
            host.frameList.removeLast();
            window.backLayoutFunc.pop();
        }
    });
    contentModule.activitiesInformation({
        workSelected: "both",
        tableName: "partner",
        instanceid: host.partnerid,
        addActivitiesSelected: "normal",
        frameList: host.frameList
    }).then(function(result){
        var activities = result.getActivitiesContent();
        activitiesCtn.appendChild(activities);
    });
};

theme.fromPartnerEdit = function(params){
    var commands = [{
        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.frameList.removeLast();
            window.backLayoutFunc.pop();
        }
    });
};

theme.formPartnerInit = function (params){
    var filterFunc = function(){
        itemsList.unshift({
            value: 0,
            text: LanguageModule.text("txt_all_nation"),
            items: [{value: 0, text: LanguageModule.text("txt_all_city")}]
        });
        var nation_cities_select_temp = absol.buildDom({
            tag: "dualselectmenu",
            props: {
                items: nation_cities_select.items,
                value: nation_cities_select.value,
                enableSearch: true
            },
            on: {
                change: function(){
                    nation_cities_select.value = this.value;
                    params.func.filter_change_func();
                }
            }
        });
        var partner_class_select_temp = absol.buildDom({
            tag: "mselectmenu",
            style: {
                display: "block",
                width: "100%"
            },
            props: {
                items: partner_class_select.items,
                enableSearch: true,
                value: partner_class_select.value
            },
            on: {
                change: function(){
                    partner_class_select.value = this.value;
                    params.func.filter_change_func();
                }
            }
        });
        theme.modalFormMobile({
            title: LanguageModule.text("txt_filter"),
            bodycontent: DOMElement.div({
                children: [
                    DOMElement.div({
                        attrs: {
                            className: "card-mobile-label-form-edit-first"
                        },
                        text: LanguageModule.text("txt_partner_class")
                    }),
                    partner_class_select_temp,
                    DOMElement.div({
                        attrs: {
                            className: "card-mobile-label-form-edit"
                        },
                        text: LanguageModule.text("txt_nationcity")
                    }),
                    nation_cities_select_temp
                ]
            })
        });
    };
    var itemsList = contentModule.getNationCityDualSelectMenu(params);
    itemsList.forEach(function(nItem){
        nItem.items.unshift({value: 0, text: LanguageModule.text("txt_all_city")});
    });
    var nation_cities_select = {
        value: [0, 0],
        items: itemsList
    };
    var partner_class_select = {
        value: 0,
        items: contentModule.getPartnerClassFilterList(params)
    };
    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")
        },
        on: {
            stoptyping: function(){
                params.func.filter_change_func();
            }
        }
    });
    var quickmenuItems = [];
    if (params.cmdbutton.add !== undefined){
        quickmenuItems.push({
            text: LanguageModule.text("txt_add"),
            extendClasses: "bsc-quickmenu",
            icon:  DOMElement.i({
                attrs: {
                    className: "material-icons"
                },
                text: "add"
            }),
            cmd: params.cmdbutton.add
        });
    }
    quickmenuItems.push({
        text: LanguageModule.text("txt_view_maps"),
        extendClasses: "bsc-quickmenu",
        icon: DOMElement.i({
            attrs: {
                className: "material-icons"
            },
            text: "visibility"
        }),
        cmd: function(){
            params.cmdbutton.view_maps();
        }
    });
    var header = absol.buildDom({
        tag: 'headerbarwithsearch',
        props: {
            actionIcon: DOMElement.i({
                attrs: {
                    className: "material-icons"
                },
                text: "arrow_back_ios"
            }),
            title: LanguageModule.text("txt_partner"),
            commands: commands,
            quickmenu: {
                props: {
                    extendClasses: '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.data_container]
            })
        ]
    });
    singlePage.nation_cities_select = nation_cities_select;
    singlePage.partner_class_select = partner_class_select;
    singlePage.inputsearchbox = inputsearchbox;
    return singlePage;
};
ModuleManagerClass.register({
    name: "Partner_view",
    prerequisites: ["ModalElement"]
});

VaKeR 2022