328 lines
12 KiB
JavaScript
328 lines
12 KiB
JavaScript
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 = [
|
|
'<input class="thanatoToExport" data-id= '+ this.id + ' type="checkbox" name="thanatoToExport" value="' + this.id + '"/>',
|
|
'<div class="editable" data-table="thanato" data-column="prenom" data-id="' + this.id + '">' + this.prenom + '</div>',
|
|
'<div class="editable" data-table="thanato" data-column="nom" data-id="' + this.id + '">' + this.nom + '</div>',
|
|
'<div class="editable" data-table="thanato" data-column="reference" data-id="' + this.id + '">' + this.reference + '</div>',
|
|
'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.date + ' data-table="thanato" data-column="date_habilitation" data-id="' + this.id + '"/>',
|
|
'<div class="editable" data-table="thanato" data-column="thanato_email" data-id="' + this.id + '">' + this.thanatoEmail + '</div>',
|
|
'<div class="selectThanatoType" data-table="thanato" data-column="fk_thanato_type_key" data-id="' + this.id + '" data-current="' + this.thanatoTypeKey + '">' + this.thanatoTypeLabel + '</div>',
|
|
'<div class="selectUserAsThanatoList" data-table="thanato" data-column="fk_user_uuid" data-id="' + this.id + '" data-current="' + this.currentUserUuid + '">' + this.userDisplayName + '</div>',
|
|
'<center><div data-modifier="thanato" data-id=' + this.id + ' data-table="thanato" style="display:inline-block;margin-right:0px;" class="deleteItem icon-delete"></div></center>'
|
|
];
|
|
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);
|
|
});
|
|
}
|
|
} |