equipment/scripts.js

65 lines
1.9 KiB
JavaScript

/**
* désactiver le tri des colonnes ayant la classe nosort dans une liste triable
* @param {Node} liste - liste triable
*/
function disableColumSort(liste) {
// chercher la première ligne du corps de la table
let columns = liste.querySelectorAll("tbody > tr > td");
// chercher la ligne de titres
let titles = liste.querySelectorAll("thead > tr > th");
// désactiver le tri
for (let i = 0; i < titles.length; ++i) {
let anchor = titles[i].querySelector("a");
const classAttr = columns[i].getAttribute("class");
if (anchor != null && classAttr != null && classAttr.includes("nosort")) {
anchor.removeAttribute("href");
anchor.removeAttribute("title");
anchor.removeChild(anchor.firstElementChild);
let headerClass = titles[i].getAttribute("class");
if (headerClass == null) { headerClass = ""; }
headerClass += "nosort";
titles[i].setAttribute("class", headerClass);
}
}
}
function toggleVisibility(idcheck, fields) {
const elem = document.getElementById(idcheck);
for (let id of fields) {
const field = document.getElementById(id);
if (elem.checked) {
field.style.visibility = "visible";
} else {
field.style.visibility = "hidden";
}
}
}
/**
* renvoyer la valeur en secondes d'une date au format j/m/a
* @param {string} date
*/
function str2sec(date) {
const jma = date.split('/');
const dd = new Date(jma[2], jma[1]-1, jma[0]);
return dd.getTime()/1000;
}
// renvoyer la valeur en secondes d'un champ date
function getDate(idelem) {
return str2sec(document.getElementById(idelem).value);
}
/**
* modifier la date de retour en fonction de la date de sortie et de la durée du prêt
*/
function setReturnDate(id_date, id_return_date, id_loan_duration)
{
const loan_duration = document.getElementById(id_loan_duration).value;
let nbsec = getDate(id_date) + loan_duration*24*60*60;
const date_retour = new Date(nbsec * 1000);
document.getElementById(id_return_date).value = date_retour.toLocaleDateString();
}