import { updateDB } from "../modules/ajaxRequest.mjs"; import { baseUrl, checkSelectPurJs, LoadDT, showDone } from "../modules/mainFunction.mjs"; export class Lieu { /** * Lieu object * @param myresp instantiate lieu object */ constructor(myresp) { this.id = myresp.id; this.user_id = myresp.user_id; this.nom = ((myresp.nom == null || myresp.nom.length === 0) ? '-' : myresp.nom); this.adresse = ((myresp.adresse == null || myresp.adresse.length === 0) ? '-' : myresp.adresse); this.latitude = ((myresp.latitude == null || myresp.latitude.length === 0) ? '-' : myresp.latitude); this.longitude = ((myresp.longitude == null || myresp.longitude.length === 0) ? '-' : myresp.longitude); this.portalCode = myresp.portal_code != null && myresp.portal_code.length > 0 ? myresp.portal_code : "-"; this.alarmCode = myresp.alarm_code != null && myresp.alarm_code.length > 0 ? myresp.alarm_code : "-"; this.funeralCode = myresp.funeral_code != null && myresp.funeral_code.length > 0 ? myresp.funeral_code : "-"; } /**undefined * Get datatable row for a lieu */ getDTRow() { let myrow = [ '
' + this.id + '
', '
' + this.nom + '
', '
' + this.adresse + '
', '
' + this.latitude + '
', '
' + this.longitude + '
', '
' + this.portalCode + '
', '
' + this.alarmCode + '
', '
' + this.funeralCode + '
', '
' ]; return myrow; } static loadLieuDT(lieuDT) { var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/getLieux', true); oReq.setRequestHeader("Content-Type", "application/json"); oReq.onload = function(e){ if (this.status == 200) { LoadDT(lieuDT, JSON.parse(this.response), Lieu); // Devis.loadDevisList(); // configuration(checkAutoIncrement); }else{ showError(this.response); } }; oReq.send(); } /** * * @param {*} dt */ static newLieu(dt) { var oReq = new XMLHttpRequest(); oReq.open('POST', baseUrl + '/lieu/insert', true); oReq.onload = function(e){ if (this.status == 200) { showDone() Lieu.loadLieuDT(dt); }else{ showError(this.response); } }; oReq.send(); } static getLieux(callback){ var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/getLieux', true); oReq.setRequestHeader("Content-Type", "application/json"); oReq.onload = function(e){ if (this.status == 200) { callback(JSON.parse(this.response)); }else{ showError(this.response); } }; oReq.send(); } /** * * @param {*} lid */ static loadLieuList_lid(e){ Lieu.getLieux(response => { var selectElement = document.createElement("select"); selectElement.dataset.current = e.target.dataset.current; selectElement.dataset.id = e.target.dataset.id; selectElement.dataset.old = e.target.innerHTML; selectElement.addEventListener("change", el=>{ if(el.target.value != 0){ updateDB(el.target.parentElement.dataset.table, el.target.parentElement.dataset.column, el.target.value, el.target.parentElement.dataset.id ); // location.reload(); var parentElement = el.target.parentElement parentElement.innerHTML = el.target.options[el.target.selectedIndex].text; parentElement.dataset.current = el.target.value; }else{ var parentElement = el.target.parentElement parentElement.innerHTML = el.target.dataset.old } }); var option = document.createElement("option"); option.value = 0; option.text = t('gestion', 'Cancel'); selectElement.appendChild(option); JSON.parse(response).forEach(myresp => { var txt = document.createElement("textarea"); txt.innerHTML = myresp.nom; var option = document.createElement("option"); option.value = myresp.id; option.text = txt.value; selectElement.appendChild(option); }); checkSelectPurJs(selectElement); e.target.innerHTML = '' e.target.appendChild(selectElement); }); } }