diff --git a/www/admin/script.js b/www/admin/script.js index b53db28..5e82a87 100644 --- a/www/admin/script.js +++ b/www/admin/script.js @@ -69,7 +69,7 @@ function cocherDecocherLesPersonnes(idCaseGlobale, lesPersonnes) function cocherDecocherPersonne(idCase, idTotal) { // chercher le fieldset des versements - let fieldset = idCase.closest("details").querySelector("fieldset"); + let fieldset = idCase.closest("details").querySelector("div.versements"); let listeCases = fieldset.querySelectorAll("input[type=checkbox]"); for (let i = 0; i < listeCases.length; ++i) { @@ -87,7 +87,7 @@ function cocherDecocherPersonne(idCase, idTotal) */ function cocherDecocherVersement(idCase, idTotal) { - let fieldset = idCase.closest("fieldset"); + let fieldset = idCase.closest("div.versements"); let listeCases = fieldset.querySelectorAll("input[type=checkbox]"); let listeMontants = fieldset.querySelectorAll("span.montant"); calculerTotal(listeCases, listeMontants, idTotal); @@ -105,7 +105,7 @@ function calculerTotal(listeCases, listeMontants, idTotal) for (let i = 0; i < listeCases.length; ++i) { if (listeCases[i].checked) { - total += parseFloat(listeMontants[i].textContent.replace(/\s/g, "")); + total += parseFloat(listeMontants[i].textContent.replace(/\s/g, "").replace(",", ".")); } } // afficher le total @@ -153,31 +153,28 @@ function verifierChoix(formulaire) } /** + * positionner l'action déclenchée par l'envoi du formulaire * afficher et masquer des portions de formulaire selon l'action * @param {HTMLFormElement} formulaire * @param {string} action après envoi du formulaire - * @param {any} nomClasse1 classe des éléments à afficher - * @param {any} nomClasse2 classe des éléments à masquer + * @param {any} idElem id de l'élément à afficher + * @param {any} nomClasse classe des éléments à masquer (sauf idElem) */ -function choixMethodeGeneration(formulaire, action, nomClasse1, nomClasse2) +function choixMethodeGeneration(formulaire, action, idElem, nomClasse) { + console.log("id = " + idElem + ", cl = " + nomClasse); formulaire.setAttribute('action', 'action.php?action=' + action); - afficherMasquer(formulaire, nomClasse1, nomClasse2); -} - -/** - * afficher et masquer des portions de formulaire - * @param {HTMLFormElement} formulaire - * @param {any} nomClasse1 classe des éléments à afficher - * @param {any} nomClasse2 classe des éléments à masquer - */ -function afficherMasquer(formulaire, nomClasse1, nomClasse2) -{ - for (let elem of formulaire.querySelectorAll(nomClasse1)) { - elem.classList.remove('hidden'); - } - for (let elem of formulaire.querySelectorAll(nomClasse2)) { - elem.classList.add('hidden'); + for (let elem of formulaire.querySelectorAll(nomClasse)) + { + console.log("elem.id = " + elem.id + ", elem.classList = " + elem.classList); + if (elem.id == idElem) + { + elem.classList.remove('hidden'); + } + else + { + elem.classList.add('hidden'); + } } } @@ -199,7 +196,7 @@ function verifierCases(idElem) // vérifier qu'un radio de la même ligne est sélectionné let ligneCorrecte = false; // trouver la ligne englobante - let ligne = idCase.closest("tr"); + let ligne = idCase.closest("li"); for (let idRadio of ligne.querySelectorAll('input[type=radio]')) { if (idRadio.checked) { ligneCorrecte = true; break; } @@ -211,7 +208,7 @@ function verifierCases(idElem) } } if (nbChoix == 0) { - alert("Erreur : il faut sélectionner au moins une activité/tarif"); + alert("Erreur : il faut sélectionner au moins une ligne"); } return nbChoix != 0; } @@ -228,7 +225,7 @@ function verifierRadio(idElem) if (idRadio.checked) { return true; } } alert("Erreur : il faut sélectionner un taux de réduction"); - return false; + return false; } /**