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);
});
}
}