![]() 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 : |
"use strict"; theme.formPartner_checkinEdit = function(params){ var commands = [{ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), cmd: function(){ var data = data_ctn.getValue(); if (!data) return; params.func.save(data).then(function(){ params.frameList.removeLast(); }); } }]; var header = absol.buildDom({ tag: 'mheaderbar', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: LanguageModule.text("txt_add"), commands: commands }, on: { action: function(){ params.frameList.removeLast(); }, command: function(event){ event.commandItem.cmd(); } } }); if (window.isApp){ var getLocation = function(){ mobileHost.getLocation(function(value){ if (value == null){ ModalElement.alert({message: LanguageModule.text("war_txt_devices_not_supported_gps")}); return; } else { if (absol.$.isRealNumber(value.accuracy) && value.accuracy > hr.maximumAllowableAccuracy){ ModalElement.alert({message: LanguageModule.text("war_txt_maximum_allowable_error")}); return; } checkin_gps_input.value = value.latitude + "," + value.longitude; } }); }; var isPriv = mobileHost.checkLocationPermission(); if (isPriv){ getLocation(); } else { mobileHost.requestLocationPermission(function(value){ if (value) getLocation(); }); } } else { if (navigator.geolocation){ navigator.geolocation.getCurrentPosition(function(position){ if (absol.$.isRealNumber(position.coords.accuracy) && position.coords.accuracy > hr.maximumAllowableAccuracy){ ModalElement.alert({message: LanguageModule.text("war_txt_maximum_allowable_error")}); return; } checkin_gps_input.value = position.coords.latitude + "," + position.coords.longitude; }, function(err){ if (err){ ModalElement.alert({message: err.message}); } }); } else { console.log("Geolocation is not supported by this browser."); } } var time_input = absol.buildDom({ tag: "datetimeinput", style: { display: "block", width: "100%" }, props: { value: new Date(), notNull: true } }); var employee_select = absol.buildDom({ tag: "selecttreeleafmenu", style: { display: "block", width: "100%" }, props: { items: contentModule.getMemberOfEmployeeSelectMenu(params), enableSearch: true } }); if (params.employeeOfMe.length > 0) employee_select.value = params.employeeOfMe[0]; var changeDistanceFunc = function(){ var lat1, lng1, lat2, lng2; var partnergps = partnergps_input.value.trim(); var x = partnergps.indexOf(","); if (x > 0){ lat1 = parseFloat(partnergps.substr(0, x)); lng1 = parseFloat(partnergps.substr(x + 1)); } else { lat1 = 0; lng1 = 0; } var checkingps = checkin_gps_input.value.trim(); var x = checkingps.indexOf(","); if (x > 0){ lat2 = parseFloat(checkingps.substr(0, x)); lng2 = parseFloat(checkingps.substr(x + 1)); } else { lat2 = 0; lng2 = 0; } if (lat1 && lng1 && lat2 && lng2){ distance_input.value = Math.round(contentModule.calcCrow(lat1, lng1, lat2, lng2)); } else { distance_input.value = ""; } }; var partner_select = absol.buildDom({ tag: "selectmenu", class: "as-keep-dropdown-icon", style: { display: "block", width: "100%" }, props: { items: [{value: 0, text: LanguageModule.text("txt_select_value")}], readOnly: true }, on: { click: function(){ params.partner_select_click_func(this.value).then(function(x){ partner_select.items = [x]; partner_select.value = x.value; partner_select.emit("change"); }); }, change: function(){ var k = params.database.partner.getIndex(this.value); if (k >= 0){ partnergps_input.value = params.database.partner.items[k].gps; partner_gps_while_checkin_input.value = params.database.partner.items[k].gps; } else { partnergps_input.value = ""; partner_gps_while_checkin_input.value = ""; } changeDistanceFunc(); } } }); var partnergps_input = theme.input({ style: {width: "100%", minWidth: "300px"}, disabled: true }); var toggleCheckinFollowGps = function(){ if (checkin_follow_gps_checkbox.checked){ absol.$('.checkin-follow-gps', data_ctn, function(elt){ elt.style.display = ""; }); time_input.value = new Date(); time_input.disabled = true; } else { absol.$('.checkin-follow-gps', data_ctn, function(elt){ elt.style.display = "none"; }); time_input.disabled = false; } }; var checkin_follow_gps_checkbox = absol.buildDom({ tag: "checkbox", style: { marginLeft: "var(--control-horizontal-distance-2)" }, props: { checked: true }, on: { change: function(){ toggleCheckinFollowGps(); } } }); var checkin_gps_input = theme.input({ style: {width: "100%", minWidth: "300px"}, disabled: true }); var partner_gps_while_checkin_input = theme.input({ style: {width: "100%", minWidth: "300px"}, disabled: true }); var distance_input = theme.input({ style: {width: "100%", minWidth: "300px"}, disabled: true }); var note_input = DOMElement.textarea({ attrs: { className: "cardSimpleTextarea", style: { width: "100%", height: "70px" } } }); var data_ctn = DOMElement.div({ children: [ DOMElement.div({ attrs: {className: "card-mobile-label-form-edit-first"}, text: LanguageModule.text("txt_employee") }), employee_select, DOMElement.div({ attrs: {className: "card-mobile-label-form-edit"}, text: LanguageModule.text("txt_partner") }), partner_select, DOMElement.div({ attrs: {className: "card-mobile-label-form-edit"}, text: LanguageModule.text("txt_partner_gps") }), partnergps_input, DOMElement.div({ attrs: {className: "card-mobile-label-form-edit"}, children: [ DOMElement.span({ text: LanguageModule.text("txt_checkin_follow_gps") }), checkin_follow_gps_checkbox ] }), DOMElement.div({ attrs: {className: "card-mobile-label-form-edit"}, text: LanguageModule.text("txt_checkintime") }), time_input, DOMElement.div({ attrs: {className: "card-mobile-label-form-edit checkin-follow-gps"}, text: LanguageModule.text("txt_checkin_gps") }), DOMElement.div({ attrs: {className: "checkin-follow-gps"}, children: [checkin_gps_input] }), DOMElement.div({ attrs: {className: "card-mobile-label-form-edit checkin-follow-gps"}, text: LanguageModule.text("txt_partner_gps_while_checkin") }), DOMElement.div({ attrs: {className: "checkin-follow-gps"}, children: [partner_gps_while_checkin_input] }), DOMElement.div({ attrs: {className: "card-mobile-label-form-edit checkin-follow-gps"}, text: LanguageModule.text("txt_distance_met") }), DOMElement.div({ attrs: {className: "checkin-follow-gps"}, children: [distance_input] }), DOMElement.div({ attrs: {className: "card-mobile-label-form-edit"}, text: LanguageModule.text("txt_note") }), note_input ] }); toggleCheckinFollowGps(); data_ctn.getValue = function(){ var employeeid = employee_select.value; if (employeeid == 0){ ModalElement.alert({message: LanguageModule.text("txt_employee_is_null")}); return; } var partnerid = partner_select.value; if (partnerid == 0){ ModalElement.alert({message: LanguageModule.text("txt_partner_is_null")}); return; } var checkin_follow_gps = checkin_follow_gps_checkbox.checked; var data = { checkintime: time_input.value, employeeid: employeeid, partnerid: partnerid, checkin_follow_gps: checkin_follow_gps? 1 : 0, note: note_input.value, gps: partnergps_input.value }; if (checkin_follow_gps){ var checkingps = checkin_gps_input.value; var distance = parseFloat(distance_input.value); if (isNaN(distance) || distance > hr.maximumDistance){ ModalElement.alert({message: LanguageModule.text2("war_txt_checkin_distance_invalid", [hr.maximumDistance])}); return; } data.checkingps = checkingps; data.partnergps = partner_gps_while_checkin_input.value; data.distance = distance; } return data; }; var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, DOMElement.div({ attrs: { className: "card-mobile-content" }, children: [data_ctn] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); }; theme.formPartner_checkinViewMaps = function(params){ var viewer = absol.buildDom({ tag: 'locationview', style: { height: '600px', width: "100%", maxWidth: "100vw", maxHeight: "100vh" }, props: { polylines: params.polylines, zoom: 16, showPolylineRoute: params.view_line } }); var view_line_checkbox = absol.buildDom({ tag: "checkbox", style: { marginRight: "var(--control-horizontal-distance-2)" }, props: { text: LanguageModule.text("txt_show_path"), checked: params.view_line }, on: { change: function(){ viewer.showPolylineRoute = this.checked; } } }); var view_line_ctn = DOMElement.div({ attrs: { style: { marginBottom: "20px" } }, children: [ view_line_checkbox ] }); var polylinesT = viewer.getPolylines(); var k; var employeesDic = contentModule.makeDictionaryIndex(params.database.employees.items); for (var i = 0; i < polylinesT.length; i++){ k = employeesDic[polylinesT[i].id]; view_line_ctn.appendChild(DOMElement.div({ attrs: { style: { paddingLeft: "var(--control-horizontal-distance-1)", lineHeight: "var(--control-height)", color: polylinesT[i].color, whiteSpace: "nowrap", verticalAlign: "middle", display: "inline-block" } }, text: params.database.employees.items[k].fullname + ": " + Math.round(polylinesT[i].sumDistance * 100 )/100 + " (km)" })); } 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(); } } }); var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, DOMElement.div({ attrs: { className: "card-mobile-content" }, children: [ view_line_ctn, viewer ] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); }; theme.formPartner_checkinContentData = function(params){ var detailsView = function(){ var formPartner_checkinGetRow = function(content){ var text = "", k; k = employeesDic[content.employeeid]; if (k === undefined) return null; text += params.database.employees.items[k].fullname; k = partnerDic[content.partnerid]; if (k === undefined) return null; text += " - " + contentModule.getDateTimeView(content.checkintime); if (content.checkin_follow_gps) text += " (" + content.distance + " m)"; var item = absol.buildDom({ tag: "mcabinetitem", child: [ DOMElement.div({ children: [ DOMElement.div({text: text}), DOMElement.div({ attrs: {className: "m-hr-description"}, text: params.database.partner.items[k].name }) ] }) ] }); var itemsList = []; if (content.func.delete) itemsList.push({ text: LanguageModule.text("txt_delete"), extendClasses: "bsc-quickmenu red", icon: { tag: "i", class: "material-icons", child: { text: "delete" } }, cmd: function(){ content.func.delete().then(function(value){ item.selfRemove(); }); } }); if (itemsList.length > 0){ item.quickmenu = { props: { extendClasses: 'cd-context-menu', items: itemsList }, onSelect: function (x) { x.cmd(); } }; } return item; }; var employeesDic = contentModule.makeDictionaryIndex(params.database.employees.items); var partnerDic = contentModule.makeDictionaryIndex(params.database.partner.items); DOMElement.removeAllChildren(params.ctn); var childs = [], row; for (var i = 0; i < dataView.length; i++){ row = formPartner_checkinGetRow(dataView[i]); if (row) childs.push(row); } var list = absol.buildDom({ tag: "mcabinetlist", child: childs }); if (params.inputsearchbox) list.addInputSearch(params.inputsearchbox); params.ctn.appendChild(list); }; var dataView = [], x; for (var i = 0; i < params.database.partner_checkin.items.length; i++){ if (params.partnerid != 0 && params.database.partner_checkin.items[i].partnerid != params.partnerid) continue; if (params.cityid != 0 && params.database.partner_checkin.items[i].cityid != params.cityid) continue; x = params.getCellPartner_checkin(params.database.partner_checkin.items[i]); if (x){ dataView.push(x); } } var syntheticView = function(){ contentModule.loadListPrimaryTypeEnum("member_of_employee").then(function(values){ if (values.length > 0) values[0].text = ""; var listItemsDic = new absol.ListDictionary(values); var dic = {}; for (var i = 0; i < dataView.length; i++){ if (!dic[dataView[i].employeeid]){ dic[dataView[i].employeeid] = {}; } if (!dic[dataView[i].employeeid][dataView[i].partnerid]){ dic[dataView[i].employeeid][dataView[i].partnerid] = { count: 0, partner: dataView[i].partner, data: [] }; } dic[dataView[i].employeeid][dataView[i].partnerid].count++; dic[dataView[i].employeeid][dataView[i].partnerid].data.push(dataView[i]); } var data = [], eOld, counter1, counter2 = 0; for (var x in dic){ counter1 = 0; if (data_module.all_employeesDic[x]) x = data_module.all_employeesDic[x]; var item = listItemsDic.getItemByValue(x); var text; if (!item) text = ""; else text = item.text; for (var y in dic[x]){ counter1 += dic[x][y].count; } data.push([ { attrs: {style: {fontWeight: "bold", backgroundColor: "var(--table-even-row-color)"}}, text: text }, { attrs: {align: "right", style: {fontWeight: "bold", backgroundColor: "var(--table-even-row-color)"}}, text: counter1 } ]); for (var y in dic[x]){ data.push([ { attrs: {style: {paddingLeft: "30px"}}, text: dic[x][y].partner }, { attrs: {align: "right"}, text: dic[x][y].count } ]); counter2 += dic[x][y].count; } } data.push([ { attrs: {style: {fontWeight: "bold"}}, text: LanguageModule.text("txt_total") }, { attrs: {align: "right", style: {fontWeight: "bold"}}, text: counter2 } ]); DOMElement.removeAllChildren(params.ctn); var header = []; var tableView = DOMElement.table({ attrs: {style: {width: "100%"}}, header: header, data: data }); if (params.inputsearchbox) tableView.addSearchBox(params.inputsearchbox); params.ctn.appendChild(DOMElement.div({ attrs: {className: "cardsimpletableclass"}, children: [tableView] })); }); }; switch (params.typeView) { case "details": detailsView(); break; case "synthetic": syntheticView(); break; default: detailsView(); } return dataView; }; theme.formPartner_checkinInit = function (params){ var filterFunc = function(){ theme.modalFormMobile({ title: LanguageModule.text("txt_filter"), bodycontent: filter_ctn }); }; var employeeItems = contentModule.getMemberOfEmployeeSelectMenu(params); employeeItems.splice(0, 1); var employee_select = absol.buildDom({ tag: "multichecktreemenu", style: { display: "block", width: "100%" }, props: { items: employeeItems, enableSearch: true }, on: { change: function(){ params.changeTimeFunc(); } } }); if (params.employeeOfMe.length > 0) employee_select.values = [params.employeeOfMe[0]]; var partner_select = absol.buildDom({ tag: "selectmenu", class: "as-keep-dropdown-icon", style: { display: "block", width: "100%" }, props: { items: [{value: 0, text: LanguageModule.text("txt_all_partner")}], readOnly: true }, on: { click: function(){ params.partner_select_click_func(this.value).then(function(x){ partner_select.items = [x]; partner_select.value = x.value; partner_select.emit("change"); }); }, change: function(){ params.filter_change_func(); } } }); var nation_city_items = contentModule.getNationCityDualSelectMenu(params); nation_city_items.forEach(function(nItem){ nItem.items.unshift({value: 0, text: LanguageModule.text("txt_all_city")}); }); nation_city_items.unshift({ value: 0, text: LanguageModule.text("txt_all_nation"), items: [{value: 0, text: LanguageModule.text("txt_all_city")}] }); var nation_city_select = absol.buildDom({ tag: "dualselectmenu", props: { items: nation_city_items, value: [0, 0], enableSearch: true }, on: { change: function(){ params.filter_change_func(); } } }); var toggleTimeOption = function(){ if (time.value == 0) { absol.$('.time-option', filter_ctn, function(elt){ elt.style.display = ""; }); } else { absol.$('.time-option', filter_ctn, function(elt){ elt.style.display = "none"; }); } }; var timeItems = [ {value: 1, text: LanguageModule.text("txt_yesterday")}, {value: 2, text: LanguageModule.text("txt_today")}, {value: 3, text: LanguageModule.text("txt_last_week")}, {value: 4, text: LanguageModule.text("txt_this_week")}, {value: 5, text: LanguageModule.text("txt_last_7_days")}, {value: 13, text: LanguageModule.text("txt_7_days_before_after")}, {value: 6, text: LanguageModule.text("txt_last_month")}, {value: 7, text: LanguageModule.text("txt_this_month")}, {value: 8, text: LanguageModule.text("txt_last_30_days")}, {value: 9, text: LanguageModule.text("txt_last_quarter")}, {value: 10, text: LanguageModule.text("txt_this_quarter")}, {value: 11, text: LanguageModule.text("txt_last_90_days")}, {value: 12, text: LanguageModule.text("txt_last_year")}, {value: 14, text: LanguageModule.text("txt_this_year")}, {value: 0, text: LanguageModule.text("txt_option")} ]; var time = absol._({ tag: "mselectmenu", style: { display: "block", width: "100%" }, props: { items: timeItems, value: 13, enableSearch: true }, on: { change: function(){ toggleTimeOption(); params.changeTimeFunc(); } } }); var start = absol._({ tag: 'dateinput', props: { value: new Date(), max: new Date(), notNull: true }, on: { change: function(){ params.changeTimeFunc(); end.min = this.value; } } }); var end = absol._({ tag: 'dateinput', props: { value: new Date(), min: new Date(), notNull: true }, on: { change: function(){ params.changeTimeFunc(); start.max = this.value; } } }); var filter_ctn = DOMElement.div({ children: [ DOMElement.div({ attrs: { className: "card-mobile-label-form-edit-first" }, text: LanguageModule.text("txt_partner") }), partner_select, DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_employee") }), employee_select, DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_city") }), nation_city_select, DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_time") }), time, DOMElement.div({ attrs: { className: "card-mobile-label-form-edit time-option" }, text: LanguageModule.text("txt_time_start") }), DOMElement.div({ attrs: {className: "time-option"}, children: [start] }), DOMElement.div({ attrs: { className: "card-mobile-label-form-edit time-option" }, text: LanguageModule.text("txt_time_end") }), DOMElement.div({ attrs: {className: "time-option"}, children: [end] }) ] }); toggleTimeOption(); var commands = []; if (params.cmdbutton.add !== undefined){ commands.push({ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "add" }), cmd: params.cmdbutton.add }); } var inputsearchbox = absol.buildDom({ tag: 'searchcrosstextinput', style: { width: "var(--searchbox-width)" }, props:{ placeholder: LanguageModule.text("txt_search") } }); var header = absol.buildDom({ tag: 'headerbarwithsearch', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: LanguageModule.text("txt_partner_checkin"), commands: commands, quickmenu: { getMenuProps: function(){ var quickmenuItems = []; quickmenuItems.push( { text: LanguageModule.text("txt_filter"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "material-icons m-hr-icon-filter active" }, text: "filter_alt" }), cmd: function(){ filterFunc(); } }, { text: LanguageModule.text("txt_view_maps"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "visibility" }), cmd: function(){ params.cmdbutton.view_maps(); } }, { text: LanguageModule.text("txt_search"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "search" }), cmd: function(){ header.searchMode(true); } } ); if (params.typeView == "details"){ quickmenuItems.push({ text: LanguageModule.text("txt_synthetic_view"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "" } }), cmd: function(){ params.typeView = "synthetic"; params.change_type_view(params.typeView); } }); } else { quickmenuItems.push({ text: LanguageModule.text("txt_details_view"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "" } }), cmd: function(){ params.typeView = "details"; params.change_type_view(params.typeView); } }); } return { 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(); } } }); header.$quickmenuBtn.addClass(["m-hr-icon-quickmenu", "as-active"]); var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, DOMElement.div({ attrs: { className: "card-mobile-content" }, children: [params.data_container] }) ] }); singlePage.employee_select = employee_select; singlePage.partner_select = partner_select; singlePage.nation_city_select = nation_city_select; singlePage.inputsearchbox = inputsearchbox; singlePage.time_select = time; singlePage.start = start; singlePage.end = end; return singlePage; }; ModuleManagerClass.register({ name: "Partner_checkin_view", prerequisites: ["ModalElement"] });