import { updateDB } from "../modules/ajaxRequest.mjs"; import { baseUrl, checkSelectPurJs, LoadDT, showDone } from "../modules/mainFunction.mjs"; export class Thanatopracteur { /** * Thanatopracteur object * @param myresp instantiate thanatopracteur object */ constructor(myresp) { this.id = myresp.id; this.prenom = ((myresp.prenom.length === 0) ? '-' : myresp.prenom); this.nom = ((myresp.nom.length === 0) ? '-' : myresp.nom); this.reference = ((myresp.reference.length === 0) ? '-' : myresp.reference); this.date = ((myresp.date_habilitation.length === 0) ? '-' : myresp.date_habilitation); this.thanatoTypeLabel = ((myresp.thanato_type_label != null && myresp.thanato_type_label.length > 0)) ? myresp.thanato_type_label : '-'; this.thanatoTypeKey = ((myresp.fk_thanato_type_key != null && myresp.fk_thanato_type_key.length > 0)) ? myresp.fk_thanato_type_key : '-'; this.thanatoEmail = ((myresp.thanato_email != null && myresp.thanato_email.length > 0)) ? myresp.thanato_email : '-'; let userDisplayName = "-"; let currentUserUuid = (myresp.fk_user_uuid != null && myresp.fk_user_uuid.length > 0) ? myresp.fk_user_uuid : null; if(myresp.displayname != null && myresp.displayname.length > 0){ userDisplayName = myresp.displayname } else if(myresp.fk_user_uuid != null && myresp.fk_user_uuid.length > 0){ userDisplayName = myresp.fk_user_uuid } this.userDisplayName = userDisplayName; this.currentUserUuid + currentUserUuid; } /**undefined * Get datatable row for a lieu */ getDTRow() { let myrow = [ '', '
' + this.prenom + '
', '
' + this.nom + '
', '
' + this.reference + '
', '', '
' + this.thanatoEmail + '
', '
' + this.thanatoTypeLabel + '
', '
' + this.userDisplayName + '
', '
' ]; return myrow; } static loadThanatoDT(thanatoDT) { var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/getThanatopracteurs', true); oReq.setRequestHeader("Content-Type", "application/json"); oReq.onload = function(e){ if (this.status == 200) { LoadDT(thanatoDT, JSON.parse(this.response), Thanatopracteur); }else{ showError(this.response); } }; oReq.send(); } /** * * @param {*} dt */ static newThanatopracteur(dt) { var oReq = new XMLHttpRequest(); oReq.open('POST', baseUrl + '/thanatopracteur/insert', true); oReq.onload = function(e){ if (this.status == 200) { console.log(this.response); showDone() Thanatopracteur.loadThanatoDT(dt); }else{ showError(this.response); } }; oReq.send(); } static getThanatopracteurs(callback){ var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/getThanatopracteurs', 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(); } static getThanatoTypes(callback){ var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/thanato/type', 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(); } static getThanatoByType(thanatoType,callback){ var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/thanatos/type/'+thanatoType, 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(); } static getUsersNotLinkedToThanato(callback){ var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/user/getUsersNotLinkedToThanato', 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(); } /** * @desc populate thanato select list in devis */ static loadThanatoList_tid(e){ Thanatopracteur.getThanatopracteurs(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 ); 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.prenom + ' ' + 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); }); } static loadThanatoTypeIntoSelect(e){ Thanatopracteur.getThanatoTypes(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 && el.target.value != null){ updateDB(el.target.parentElement.dataset.table, el.target.parentElement.dataset.column, el.target.value, el.target.parentElement.dataset.id ); 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 = null; option.text = t('gestion', 'Cancel'); selectElement.appendChild(option); JSON.parse(response).forEach(myresp => { var txt = document.createElement("textarea"); txt.innerHTML = myresp.thanato_type_label; var option = document.createElement("option"); option.value = myresp.thanato_type_key; option.text = txt.value; selectElement.appendChild(option); }); checkSelectPurJs(selectElement); e.target.innerHTML = '' e.target.appendChild(selectElement); }); } /** * POPULATE LIST OF USER NOT LINKED TO THANATO YET IN A SELECT */ static loadUserNotLinkedToThanatoToSelect(e){ Thanatopracteur.getUsersNotLinkedToThanato(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 ); 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.displayname != null && myresp.displayname.length > 0) ? myresp.displayname : myresp.uid var option = document.createElement("option"); option.value = myresp.uid option.text = txt.value; selectElement.appendChild(option); }); checkSelectPurJs(selectElement); e.target.innerHTML = '' e.target.appendChild(selectElement); }); } static loadThanatosListedByTypeIntoSelect(e,thanatoType){ Thanatopracteur.getThanatoByType(thanatoType,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 && el.target.value != null){ updateDB(el.target.parentElement.dataset.table, el.target.parentElement.dataset.column, el.target.value, el.target.parentElement.dataset.id ); 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 = null; option.text = t('gestion', 'Cancel'); selectElement.appendChild(option); JSON.parse(response).forEach(myresp => { var txt = document.createElement("textarea"); txt.innerHTML = myresp.nom + ' ' + myresp.prenom; 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); }); } }