vérification sélections cases et radios
FossilOrigin-Name: ba0d1089be4acbc5c7cfba5ab180a19e6a66bb1b466e8ed238337c239d326a49
This commit is contained in:
parent
a3e855870c
commit
38a3556dbd
@ -32,6 +32,10 @@ class Personne
|
|||||||
$this->versements = array();
|
$this->versements = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return copie d'une personne
|
||||||
|
* @param $p
|
||||||
|
*/
|
||||||
public static function copier($p)
|
public static function copier($p)
|
||||||
{
|
{
|
||||||
return new Personne(
|
return new Personne(
|
||||||
@ -44,8 +48,12 @@ class Personne
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* ajouter un versement pour une activité et un tarif donnés
|
* ajouter un versement
|
||||||
|
* @param $idActivite
|
||||||
|
* @param $idTarif
|
||||||
|
* @param $montant
|
||||||
|
* @param $tauxReduction
|
||||||
*/
|
*/
|
||||||
public function ajouterVersement(
|
public function ajouterVersement(
|
||||||
$idActivite,
|
$idActivite,
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
{include file="%s/templates/_nav.tpl"|args:$plugin_root current_nav="index"}
|
{include file="%s/templates/_nav.tpl"|args:$plugin_root current_nav="index"}
|
||||||
|
|
||||||
<h2>Choisir l'année fiscale</h2>
|
<h2>Choisir l'année fiscale</h2>
|
||||||
<form id="formulaire_saisie" method="post" action="">
|
<form id="formulaire_saisie" method="post" action="action.php">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
{* <legend>Choisir l'année fiscale</legend> *}
|
{* <legend>Choisir l'année fiscale</legend> *}
|
||||||
<select id="annee_recu" name="annee_recu">
|
<select id="annee_recu" name="annee_recu">
|
||||||
@ -48,7 +48,7 @@
|
|||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="taux_reduc" class="tous hidden">
|
<div id="div_taux_reduc" class="tous hidden">
|
||||||
<h2>Choisir le taux de réduction</h2>
|
<h2>Choisir le taux de réduction</h2>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
{foreach from=$plugin_config->reduction item="reduc"}
|
{foreach from=$plugin_config->reduction item="reduc"}
|
||||||
@ -64,7 +64,7 @@
|
|||||||
<div id="generer_tous" class="tous hidden">
|
<div id="generer_tous" class="tous hidden">
|
||||||
<p class=" submit">
|
<p class=" submit">
|
||||||
{csrf_field key="generer_tous_recus"}
|
{csrf_field key="generer_tous_recus"}
|
||||||
{button type="submit" name="generer_tous" label="Poursuivre" shape="right" class="main" onclick="aiguiller(this.form, 'versements_personnes');" }
|
{button type="submit" name="generer_tous" label="Poursuivre" shape="right" class="main" onclick="return verifierRadio('div_taux_reduc');" }
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -105,14 +105,14 @@
|
|||||||
{/foreach}
|
{/foreach}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p class="help">Si vous ne savez pas quel taux de réduction utiliser, n'en choisissez aucun</p>
|
{*<p class="help">Si vous ne savez pas quel taux de réduction utiliser, n'en choisissez aucun</p>*}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="generer_activites" class="activites hidden">
|
<div id="generer_activites" class="activites hidden">
|
||||||
<p class=" submit">
|
<p class=" submit">
|
||||||
{csrf_field key="generer_recus_activites"}
|
{csrf_field key="generer_recus_activites"}
|
||||||
{button type="submit" name="generer_activites" label="Poursuivre" shape="right" class="main" onclick="aiguiller(this.form, 'versements_activites');" }
|
{button type="submit" name="generer_activites" label="Poursuivre" shape="right" class="main" onclick="return verifierCases('liste_activites_tarifs');" }
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@ -120,7 +120,7 @@
|
|||||||
<script type="text/javascript" src="script.js" defer="defer"></script>
|
<script type="text/javascript" src="script.js" defer="defer"></script>
|
||||||
{literal}
|
{literal}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// activer/désactiver les radios
|
// activer/désactiver les radios des activités/tarifs
|
||||||
for (var laCase of document.querySelectorAll("input[type=checkbox]")) {
|
for (var laCase of document.querySelectorAll("input[type=checkbox]")) {
|
||||||
laCase.addEventListener('change', (evt) => {
|
laCase.addEventListener('change', (evt) => {
|
||||||
var idCase = evt.target;
|
var idCase = evt.target;
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
* (dé)sélectionner toutes les cases à cocher de toutes les activités
|
* (dé)sélectionner toutes les cases à cocher de toutes les activités
|
||||||
* @param id de la case globale
|
* @param id de la case globale
|
||||||
*/
|
*/
|
||||||
function cocherDecocherTout(idCaseGlobale) {
|
function cocherDecocherTout(idCaseGlobale)
|
||||||
|
{
|
||||||
// chercher le formulaire englobant
|
// chercher le formulaire englobant
|
||||||
var formulaire = idCaseGlobale.closest("form");
|
var formulaire = idCaseGlobale.closest("form");
|
||||||
// itérer sur la liste des éléments détails : 1 par couple <activité, tarif>
|
// itérer sur la liste des éléments détails : 1 par couple <activité, tarif>
|
||||||
@ -39,7 +40,8 @@ function cocherDecocherTout(idCaseGlobale) {
|
|||||||
* @param id de la case qui a été cochée
|
* @param id de la case qui a été cochée
|
||||||
* @param id de l'élément où afficher le total
|
* @param id de l'élément où afficher le total
|
||||||
*/
|
*/
|
||||||
function cocherDecocherPersonne(idCase, idTotal) {
|
function cocherDecocherPersonne(idCase, idTotal)
|
||||||
|
{
|
||||||
// chercher le fieldset englobant
|
// chercher le fieldset englobant
|
||||||
var fieldset = idCase.closest("fieldset");
|
var fieldset = idCase.closest("fieldset");
|
||||||
var listeCases = fieldset.querySelectorAll("input[type=checkbox]");
|
var listeCases = fieldset.querySelectorAll("input[type=checkbox]");
|
||||||
@ -67,7 +69,8 @@ function cocherDecocherPersonne(idCase, idTotal) {
|
|||||||
* @param id de la case qui a été cochée
|
* @param id de la case qui a été cochée
|
||||||
* @param id de l'élément où afficher le total
|
* @param id de l'élément où afficher le total
|
||||||
*/
|
*/
|
||||||
function cocherDecocherVersement(idCase, idTotal) {
|
function cocherDecocherVersement(idCase, idTotal)
|
||||||
|
{
|
||||||
var fieldset = idCase.closest("fieldset");
|
var fieldset = idCase.closest("fieldset");
|
||||||
var listeCases = fieldset.querySelectorAll("input[type=checkbox]");
|
var listeCases = fieldset.querySelectorAll("input[type=checkbox]");
|
||||||
var listeMontants = fieldset.querySelectorAll("span.montant");
|
var listeMontants = fieldset.querySelectorAll("span.montant");
|
||||||
@ -80,7 +83,8 @@ function cocherDecocherVersement(idCase, idTotal) {
|
|||||||
* @param listes des montants associés
|
* @param listes des montants associés
|
||||||
* @param id de l'élément où afficher le total
|
* @param id de l'élément où afficher le total
|
||||||
*/
|
*/
|
||||||
function calculerTotal(listeCases, listeMontants, idTotal) {
|
function calculerTotal(listeCases, listeMontants, idTotal)
|
||||||
|
{
|
||||||
var total = 0;
|
var total = 0;
|
||||||
for (var i = 1; i < listeCases.length; ++i)
|
for (var i = 1; i < listeCases.length; ++i)
|
||||||
{
|
{
|
||||||
@ -118,7 +122,11 @@ function verifierChoix(formulaire)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
function afficherMasquer(formulaire, nomClasse1, nomClasse2) {
|
/**
|
||||||
|
* fonction appelée pour afficher et masquer des portions de formulaire
|
||||||
|
*/
|
||||||
|
function afficherMasquer(formulaire, nomClasse1, nomClasse2)
|
||||||
|
{
|
||||||
for (var elem of formulaire.querySelectorAll(nomClasse1)) {
|
for (var elem of formulaire.querySelectorAll(nomClasse1)) {
|
||||||
elem.classList.remove('hidden');
|
elem.classList.remove('hidden');
|
||||||
}
|
}
|
||||||
@ -127,13 +135,53 @@ function afficherMasquer(formulaire, nomClasse1, nomClasse2) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// aiguiller la suite vers la page passée en paramètre
|
// vérifier
|
||||||
function aiguiller(formulaire, pageSuivante) {
|
// - qu'au moins une activité/tarif est sélectionnée
|
||||||
formulaire.action = pageSuivante + ".php";
|
// - qu'un radio de chaque activité/tarif sélectionné a été sélectionné :)
|
||||||
|
function verifierCases(idElem)
|
||||||
|
{
|
||||||
|
var div = document.getElementById(idElem);
|
||||||
|
var nbChoix = 0;
|
||||||
|
// parcourir les cases à cocher
|
||||||
|
for (var idCase of div.querySelectorAll("input[type=checkbox]"))
|
||||||
|
{
|
||||||
|
if (idCase.checked) {
|
||||||
|
++nbChoix;
|
||||||
|
// vérifier qu'un radio de la même ligne est sélectionné
|
||||||
|
var ligneCorrecte = false;
|
||||||
|
// trouver la ligne englobante
|
||||||
|
var ligne = idCase.closest("tr");
|
||||||
|
for (var idRadio of ligne.querySelectorAll('input[type=radio]'))
|
||||||
|
{
|
||||||
|
if (idRadio.checked) { ligneCorrecte = true; break; }
|
||||||
|
}
|
||||||
|
if (! ligneCorrecte) {
|
||||||
|
alert("Erreur : il faut sélectionner un taux de réduction dans chaque ligne cochée");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (nbChoix == 0) {
|
||||||
|
alert("Erreur : il faut sélectionner au moins une activité/tarif");
|
||||||
|
}
|
||||||
|
return nbChoix != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// vérifier qu'un radio a été sélectionné dans la div paramètre
|
||||||
|
function verifierRadio(idElem)
|
||||||
|
{
|
||||||
|
var div = document.getElementById(idElem);
|
||||||
|
for (var idRadio of div.querySelectorAll('input[type=radio]'))
|
||||||
|
{
|
||||||
|
if (idRadio.checked) { return true; }
|
||||||
|
}
|
||||||
|
alert("Erreur : il faut sélectionner un taux de réduction");
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// inutilisé
|
// inutilisé
|
||||||
function activerDesactiverRadio(evt) {
|
function activerDesactiverRadio(evt)
|
||||||
|
{
|
||||||
var idCase = evt.target;
|
var idCase = evt.target;
|
||||||
// checher la ligne englobante ( <tr>)
|
// checher la ligne englobante ( <tr>)
|
||||||
var ligne = idCase.closest("tr");
|
var ligne = idCase.closest("tr");
|
||||||
@ -148,21 +196,12 @@ function activerDesactiverRadio(evt) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* indiquer le nom du script php à activer
|
|
||||||
* @param formulaire
|
|
||||||
* @param script php
|
|
||||||
*/
|
|
||||||
function activer(formulaire, script) {
|
|
||||||
formulaire.action = script;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Associer un écouteur à la première case à cocher de chaque table
|
* Associer un écouteur à la première case à cocher de chaque table
|
||||||
* @remarks : n'est plus utile
|
* @remarks : n'est plus utile
|
||||||
*/
|
*/
|
||||||
function activerListener() {
|
function activerListener()
|
||||||
|
{
|
||||||
// parcourir les tables
|
// parcourir les tables
|
||||||
const lesTables = document.querySelectorAll("table.list");
|
const lesTables = document.querySelectorAll("table.list");
|
||||||
for (let i = 0; i < lesTables.length; ++i) {
|
for (let i = 0; i < lesTables.length; ++i) {
|
||||||
|
Loading…
Reference in New Issue
Block a user