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/input_form_mobile.js
hr.input_form_mobile.fragmentClasses = {
    staticLoaded: false
};

hr.input_form_mobile.emittor = absol.form.emittor;

hr.input_form_mobile.generateOperateFunctionOfArray = function (typelist) {
    var handleCmdInsertRow;

    return handleCmdInsertRow;
}

hr.input_form_mobile.checkFormVersion = function(code, callbackfunc){
    var checkInputForm = Thread.create({
        extcode: EncodingClass.exportCode() + "\n" + code,
        modules: {
            data_module: null,
            generateDefaultLinearInputForm: form_module.generateDefaultLinearMobileInputForm,
            generateDefaultRelativeInputForm: form_module.generateDefaultRelativeMobileInputForm,
            getNameDictOfTypelist: form_module.getNameDictOfTypelist,
            makeLayoutFormDictionary: form_module.makeLayoutFormDictionary,
            makeCircuitFormDictionary: form_module.makeCircuitFormDictionary,
            convertLayoutInputFormToNewVersion: form_module.convertLayoutInputFormToNewVersion,
            convertCircuitInputFormToNewVersion: form_module.convertCircuitInputFormToNewVersion,
            form_module: {
                type2mobileinputform: form_module.type2mobileinputform
            }
        },
        func: function(params) {
            params.data = EncodingClass.pack.fromUint8Array(params.data);
            data_module = params.data.read();
            params.data.terminate();
            var latestVersionForm = {};
            var formDict = {};
            data_module.mobile_input_forms.items.forEach((cur) => {
                formDict[cur.id] = cur;
            });
            var typeDict = {};
            data_module.typelists.items.forEach((cur, idx) => {
                typeDict[cur.id] = idx;
            });
            data_module.mobile_input_forms.items.forEach(function (form) {
                var t_idx = typeDict[form.typeid];
                if (!form.content.layout) return;
                if (t_idx === undefined) {
                    return;
                }
                if (
                    data_module.typelists.items[t_idx].type == "structure"
                    || data_module.typelists.items[t_idx].type == "extends_structure"
                    || data_module.typelists.items[t_idx].type2 == "structure"
                    || data_module.typelists.items[t_idx].type2 == "extends_structure"
                ) {
                    form.content.layout.attributes.typeId = form.typeid;
                    form.content.layout.attributes.formName = form.name;
                    if (form.content.layout.attributes.formVersion != form_module.formVersion){
                        if (!latestVersionForm[form.typeid]) {
                            var t_form;
                            if (form.content.layout.tag == "LinearLayout") t_form = form_module.generateDefaultLinearInputForm({}, form.typeid, data_module.typelists.items[t_idx]);
                            else t_form = form_module.generateDefaultRelativeInputForm({}, form.typeid, data_module.typelists.items[t_idx]);
                            latestVersionForm[form.typeid] = {
                                layout: {},
                                circuit: {
                                    blocks: {},
                                    lines: {}
                                }
                            };
                            if (t_form !== false) {
                                var nameDict = {};
                                form_module.getNameDictOfTypelist(data_module.typelists.items[t_idx].content, nameDict);
                                form_module.makeLayoutFormDictionary(t_form.layout, nameDict, latestVersionForm[form.typeid]);
                                form_module.makeCircuitFormDictionary(t_form.circuit, latestVersionForm[form.typeid]);
                            }
                            else {
                                ModalElement.close();
                            }
                        }
                        form_module.convertLayoutInputFormToNewVersion(form.content.layout.children, latestVersionForm[form.typeid]);
                        form_module.convertCircuitInputFormToNewVersion(form.content.circuit, latestVersionForm[form.typeid]);
                        var t_dict = {};
                        form.content.circuit.blocks.forEach(function(elt){
                            if (!t_dict[elt.attributes.id]) {
                                t_dict[elt.attributes.id] = elt;
                            }
                            else {
                                if (!t_dict[elt.attributes.id].attributes.permissions) {
                                    t_dict[elt.attributes.id] = elt;
                                }
                            }
                        });
                        form.content.circuit.blocks = Object.values(t_dict);

                        t_dict = {};
                        form.content.circuit.lines.forEach(function(elt){
                            var text = elt.u + elt.uPin + elt.v + elt.vPin;
                            if (!t_dict[text]) {
                                t_dict[text] = elt;
                            }
                            else {
                                if (!t_dict[text].attributes.permissions) {
                                    t_dict[text] = elt;
                                }
                            }
                        });
                        form.content.circuit.lines = Object.values(t_dict);
                    }
                }
            });
            data_module = EncodingClass.pack.fromVariable(data_module);
            params.data = data_module.toUint8Array();
            data_module.terminate();
            tranferList = [params.data.buffer];
            return {
                status: "success",
                retval: params.data
            };
        },
        callbackfunc: callbackfunc
    });

    var packData = EncodingClass.pack.fromVariable({
        typelists: data_module.typelists,
        mobile_input_forms: data_module.mobile_input_forms
    });
    var data = packData.toUint8Array();
    packData.terminate();
    // var tranferList = data.toUint8Array();
    return checkInputForm.call({data: data}, [data.buffer]);
}

hr.input_form_mobile.loadFormConstructorToAssembler = function () {
    return new Promise(function(rs, rj){
        var latestVersionForm = {};
        var formDict = {};
        var caculateFunc = function(){
            data_module.mobile_input_forms.items.forEach((cur) => {
                formDict[cur.id] = cur;
            });
            data_module.mobile_input_forms.items.forEach(function (form) {
                var t_idx = data_module.typelists.getIndex(form.typeid);
                if (!form.content.layout) return;
                if (t_idx == -1) {
                    // console.log(form.typeid);
                    return;
                }
                // if (data_module.typelists.items[t_idx].type == "structure" || data_module.typelists.items[t_idx].type == "extends_structure" || data_module.typelists.items[t_idx].type2 == "structure") {
                //     form.content.layout.attributes.typeId = form.typeid;
                //     form.content.layout.attributes.formName = form.name;
                //     if (form.content.layout.attributes.formVersion != form_module.formVersion){
                //         if (!latestVersionForm[form.typeid]) {
                //             var t_form;
                //             if (form.content.layout.tag == "LinearLayout") t_form = form_module.generateDefaultLinearMobileInputForm({}, form.typeid, data_module.typelists.items[t_idx]);
                //             else t_form = form_module.generateDefaultRelativeMobileInputForm({}, form.typeid, data_module.typelists.items[t_idx]);
                //             latestVersionForm[form.typeid] = {
                //                 layout: {},
                //                 circuit: {
                //                     blocks: {},
                //                     lines: {}
                //                 }
                //             };
                //             if (t_form !== false) {
                //                 var nameDict = {};
                //                 form_module.getNameDictOfTypelist(data_module.typelists.items[t_idx].content, nameDict);
                //                 form_module.makeLayoutFormDictionary(t_form.layout, nameDict, latestVersionForm[form.typeid]);
                //                 form_module.makeCircuitFormDictionary(t_form.circuit, latestVersionForm[form.typeid]);
                //             }
                //             else {
                //                 ModalElement.close();
                //             }
                //         }
                //         form_module.convertLayoutInputFormToNewVersion(form.content.layout.children, latestVersionForm[form.typeid]);
                //         form_module.convertCircuitInputFormToNewVersion(form.content.circuit, latestVersionForm[form.typeid]);
                //         var t_dict = {};
                //         form.content.circuit.blocks.forEach(function(elt){
                //             if (!t_dict[elt.attributes.id]) {
                //                 t_dict[elt.attributes.id] = elt;
                //             }
                //             else {
                //                 if (!t_dict[elt.attributes.id].attributes.permissions) {
                //                     t_dict[elt.attributes.id] = elt;
                //                 }
                //             }
                //         });
                //         form.content.circuit.blocks = Object.values(t_dict);
                //
                //         t_dict = {};
                //         form.content.circuit.lines.forEach(function(elt){
                //             var text = elt.u + elt.uPin + elt.v + elt.vPin;
                //             if (!t_dict[text]) {
                //                 t_dict[text] = elt;
                //             }
                //             else {
                //                 if (!t_dict[text].attributes.permissions) {
                //                     t_dict[text] = elt;
                //                 }
                //             }
                //         });
                //         form.content.circuit.lines = Object.values(t_dict);
                //     }
                // }
                var constructor = absol.form.makeFmFragmentConstructor({
                    tag: '' + form.id,
                    contentViewData: form.content
                });
                if ((data_module.typelists.items[t_idx]) && (data_module.typelists.items[t_idx].type == "array" || data_module.typelists.items[t_idx].type2 == "array")) {
                    form_module.attachOnCreatedCb(form.content.layout);
                    constructor.prototype.onCreated = function () {
                        var myArrayComp = this.findViewByName(form.typeid.toString());
                        if (!myArrayComp) {
                            var t_id = data_module.typelists.items[t_idx].content.typeof;
                            myArrayComp = this.findViewByName("$value$");
                        }
                        myArrayComp.on('cmd_insert_row', this.handleCmdInsertRow.bind(this));
                        myArrayComp.on('cmd_remove_row', this.handleCmdRemoveRow.bind(this));
                    };
                    constructor.prototype.handleCmdRemoveRow = function (event) {
                        event.accept(new Promise(function (resolve) {
                            ModalElement.question({
                                title: LanguageModule.text("txt_warning"),
                                message: "Bạn có muốn xóa không?",
                                onclick: function (sel) {
                                    if (sel == 0) {
                                        resolve(true);
                                    }
                                    else {
                                        resolve(false);
                                    }
                                }
                            });
                        }))
                    };
                    constructor.prototype.handleCmdInsertRow = function (event) {
                        // var parentFrg = this.parentFragment;//laf cais form o ngoai
                        // var orgId = parentFrg.props.___.value;
                        var shareData = this.getContext("shareData");

                        var orgid;

                        if (shareData) {
                            orgid = shareData.orgid;
                        }

                        if (orgid && form.typeid == -25) event.resolve({type_select_position_orgid: {value: orgid}});
                        else event.resolve({});
                    };
                }
                absol.form.AssemblerInstance.addConstructor(constructor);
                form.FragmentClass = constructor;
            });
            rs("success");
        };
        caculateFunc();
    });
};


hr.input_form_mobile.init = function (host) {
    while (data_module.pendingData.status != "success") {
        setTimeout(function(){
            hr.input_form_mobile.init(host);
        }, 1000)
        return;
    }
    if (window.ABSOL_DEBUG) console.trace(host);

    host.database = {};
    host.taskName = "m_input";
    host.isMobile = true;
    hr.input_form_mobile.loadFormConstructorToAssembler().then(function(result){
        data_module.mobile_input_forms.items.sort(function (a, b) {
            if (absol.string.nonAccentVietnamese(a.name).toLowerCase() < absol.string.nonAccentVietnamese(b.name).toLowerCase()) return -1;
            if (absol.string.nonAccentVietnamese(a.name).toLowerCase() > absol.string.nonAccentVietnamese(b.name).toLowerCase()) return 1;
            return 0;
        });
        hr.input_form_mobile.emittor.emit('form_load', { formList: data_module.mobile_input_forms.items });
        host.formEditor = new absol.form.FormEditor({downloadPrefixFileName: "input_"});
        host.formEditor.getView()
        .addStyle({
            width: '100%',
            height: '100%'
        }).addTo(host.holder);
        host.formEditor.setContext("HOST", host);
        host.formEditor.start();
        host.holder.on('deactive', function () {
            host.formEditor.pause();
        });

        host.holder.on('active', function () {
            host.formEditor.start();
        });

        host.holder.on('remove', function () {
            host.formEditor.destroy();
        });
    });
    /////////////////////////////////
    // // Load người dùng, quốc gia, thành phố, form, kiểu dữ liệu
    // var input_forms = host.funcs.loadFormList();
    // var typelists = data_module.loadTypeList();
    /////////////////////////////////
    // Promise.all(
    //     [
    //         input_forms, typelists,
    //         form_module.defaultMobileInputFormForPrimitiveType()
    //     ]
    // ).then(function (result) {
    //     var content = {
    //         input_forms: result[0].concat(result[2]),
    //         typelists: result[1]
    //     };
    //     data_module.typelists.items = content.typelists;
    //     data_module.mobile_input_forms.items = content.input_forms;
    //     contentModule.decodeContent(data_module.typelists.items, function () {
    //         contentModule.decodeContent(data_module.mobile_input_forms.items, function () {
    //             hr.input_form_mobile.loadFormConstructorToAssembler().then(function(result){
    //                 data_module.mobile_input_forms.items.sort(function (a, b) {
    //                     if (absol.string.nonAccentVietnamese(a.name).toLowerCase() < absol.string.nonAccentVietnamese(b.name).toLowerCase()) return -1;
    //                     if (absol.string.nonAccentVietnamese(a.name).toLowerCase() > absol.string.nonAccentVietnamese(b.name).toLowerCase()) return 1;
    //                     return 0;
    //                 });
    //                 hr.input_form_mobile.emittor.emit('form_load', { formList: data_module.mobile_input_forms.items });
    //                 host.formEditor = new absol.form.FormEditor({downloadPrefixFileName: "input_"});
    //                 host.formEditor.getView()
    //                 .addStyle({
    //                     width: '100%',
    //                     height: '100%'
    //                 }).addTo(host.holder);
    //                 host.formEditor.setContext("HOST", host);
    //                 host.formEditor.start();
    //                 host.holder.on('deactive', function () {
    //                     host.formEditor.pause();
    //                 });
    //
    //                 host.holder.on('active', function () {
    //                     host.formEditor.start();
    //                 });
    //
    //                 host.holder.on('remove', function () {
    //                     host.formEditor.destroy();
    //                 });
    //             });
    //         });
    //     });
    //
    // }, function (rj_mes) {
    //     console.log(rj_mes);
    // });
}

VaKeR 2022