update defunt cover on the defunt list

This commit is contained in:
Tiavina 2025-01-13 09:59:42 +03:00
parent c1a69f0d73
commit f4181f2a7d
26 changed files with 104 additions and 24 deletions

View File

@ -139,6 +139,7 @@ return [
//defuntCover
['name' => 'page#setDefuntCover', 'url' => '/defunt/setDefuntCover', 'verb' => 'POST'],
['name' => 'page#getCoverProducts', 'url' => '/getCoverProducts', 'verb' => 'PROPFIND'],
//user groups getUserConnectedGroups
['name' => 'page#getUserConnectedGroups', 'url' => '/getUserConnectedGroups', 'verb' => 'GET'],

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2927,6 +2927,7 @@ class PageController extends Controller {
* @NoAdminRequired
* @NoCSRFRequired
* @param int $defuntId
* @param int $productId
*/
public function setDefuntCover($defuntId,$productId){
@ -2941,7 +2942,6 @@ class PageController extends Controller {
/**
* @NoAdminRequired
* @NoCSRFRequired
* @param int $defuntId
*/
public function getUserConnectedGroups(){
@ -2966,4 +2966,17 @@ class PageController extends Controller {
}
catch(\OCP\Files\NotFoundException $e) { }
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function getCoverProducts(){
try{
$coverProducts = $this->myDb->getCoverProducts();
return $coverProducts;
}
catch(\OCP\Files\NotFoundException $e) { }
}
}

View File

@ -61,6 +61,9 @@ document.body.addEventListener('click', e => {
else if(e.target.className.includes("selectProductsList")){
Produit.loadProductListToSelect(e);
}
else if(e.target.className.includes("selectCoverProductsList")){
Produit.loadCoverProductListIntoSelect(e);
}
else if(e.target.className.includes("loadSelect_listdevis")){
Devis.loadDevisList_dnum(e);
}else if(e.target.className.includes("loadSelect_listalldevis")){

View File

@ -50,7 +50,7 @@ export class Defunt {
'<div>'+this.numero_devis+'</div>', // numeroDevis
'<div>'+this.pompe+'</div>', // pompe
'<div>'+this.lieu+'</div>', // lieu
'<div>'+this.productCoverDescription+'</div>', // lieu
'<div class="selectCoverProductsList" data-id="' + this.id + '" data-current="' + this.productId + '">' +this.productCoverDescription+'</div>', // lieu
'<div style="display:inline-block;margin-right:0px;width:80%;"><a href="' + this.baseUrl + '"><button>' + t('gestion', 'Open') + '</button></a></div><div data-modifier="defunt" data-id=' + this.id + ' data-table="defunt" style="display:inline-block;margin-right:0px;" class="deleteItem icon-delete"></div>'
];
return myrow;

View File

@ -1,6 +1,6 @@
import { showError } from "@nextcloud/dialogs";
import { baseUrl, cur, checkSelectPurJs, LoadDT, showDone } from "../modules/mainFunction.mjs";
import { updateDB } from "../modules/ajaxRequest.mjs";
import { updateDB, setDefuntCover } from "../modules/ajaxRequest.mjs";
export class Produit {
@ -77,7 +77,21 @@ export class Produit {
}
};
oReq.send();
}
static getCoverProductsList(callback){
var oReq = new XMLHttpRequest();
oReq.open('PROPFIND', baseUrl + '/getCoverProducts', 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();
}
/**
*
@ -130,4 +144,53 @@ export class Produit {
e.target.appendChild(selectElement);
});
}
/**
*
* @param {*} lid
*/
static loadCoverProductListIntoSelect(e){
Produit.getCoverProductsList(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){
let setDefuntCoverPayload = {
defuntId : el.target.parentElement.dataset.id,
productId : el.target.value
}
setDefuntCover(setDefuntCoverPayload);
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.description;
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);
});
}
}