Browse Source

Pb #175 : constructeur de formulaire, permettre de choisir plusieurs

vérif par saisies.
Compatibilité historique assurée.
pull/182/head
Maïeul 7 months ago
parent
commit
e3bed20205
  1. 12
      formulaires/construire_formulaire.html
  2. 60
      formulaires/construire_formulaire.php

12
formulaires/construire_formulaire.html

@ -168,18 +168,6 @@
.end()
.end();
// Gérer la liste des vérifications
$('.liste_verifications').each(function(){
var $options = $(this).siblings('.options_verifier').hide();
var $select = $(this).find('select');
$select
.change(function(){
var montrer = $(this).val() ? $(this).val() : 'soigfeg';
$options.#CONST{_SAISIES_AFFICHER_SI_JS_HIDE}.filter('.'+montrer).#CONST{_SAISIES_AFFICHER_SI_JS_SHOW};
})
.change();
});
// On déplie toujours les fieldsets plés par défaut
$('.fieldset.plie').each(function(){

60
formulaires/construire_formulaire.php

@ -246,9 +246,11 @@ function formulaires_construire_formulaire_verifier($identifiant, $formulaire_in
'options' => array(
'nom' => "saisie_modifiee_${nom}[verifier][type]",
'label' => _T('saisies:construire_verifications_label'),
'option_intro' => _T('saisies:construire_verifications_aucune'),
'cacher_option_intro' => True,
'conteneur_class' => 'liste_verifications',
'data' => array()
'data' => array(),
'class' => 'select2',
'multiple' => true
)
);
}
@ -261,7 +263,8 @@ function formulaires_construire_formulaire_verifier($identifiant, $formulaire_in
'options' => array(
'nom' => 'options',
'label' => $verif['titre'],
'conteneur_class' => "$type_verif options_verifier"
'conteneur_class' => "$type_verif options_verifier",
'afficher_si' => "@saisie_modifiee_${nom}[verifier][type]@ IN '$type_verif'"
),
'saisies' => $verif['options']
);
@ -302,13 +305,9 @@ function formulaires_construire_formulaire_verifier($identifiant, $formulaire_in
}
}
// On regarde s'il a été demandé un type de vérif
if (isset($saisie_modifiee['verifier']['type'])
and (($type_verif = $saisie_modifiee['verifier']['type']) != '')
and $verif_options[$type_verif]) {
// On ne vérifie que les options du type demandé
$vraies_erreurs = array_merge($vraies_erreurs, saisies_verifier($verif_options[$type_verif]['saisies']));
}
// On regarde s'il a été demandé des vérifs, et on vérifie les options des vérif (!)
// Note : les options de verif sont en afficher_si, donc ne sont vérifié que celles des vérifs choisies.
$vraies_erreurs = array_merge($vraies_erreurs, saisies_verifier($verif_options));
}
// On insère chaque saisie des options de verification
@ -426,12 +425,15 @@ function formulaires_construire_formulaire_traiter($identifiant, $formulaire_ini
}
// On regarde s'il y a des options de vérification à modifier
if (isset($saisie_modifiee['verifier']['type'])
and ($type_verif = $saisie_modifiee['verifier']['type']) != '') {
$saisie_modifiee['verifier'] = array(
'type' => $type_verif,
'options' => $saisie_modifiee['verifier'][$type_verif]
);
if (isset($saisie_modifiee['verifier']['type'])) {
$verifier_format_api = [];
foreach ($saisie_modifiee['verifier']['type'] as $type_verif) {
$verifier_format_api[] = [
'type' => $type_verif,
'options' => $saisie_modifiee['verifier'][$type_verif] ?? []
];
}
$saisie_modifiee['verifier'] = $verifier_format_api;
} else {
unset($saisie_modifiee['verifier']);
}
@ -480,7 +482,7 @@ function construire_formulaire_transformer_nom(&$valeur, $cle, $transformation)
// Applique une transformation à la valeur de tous les champs "afficher_si" d'un formulaire, y compris loin dans l'arbo
function construire_formulaire_transformer_afficher_si(&$valeur, $cle, $transformation) {
if ($cle == 'afficher_si' and is_string($valeur)) {
$valeur = preg_replace("#@((?!config:)(?!plugin).*)@#U", '@'.$transformation.'[${1}]@', $valeur);
$valeur = preg_replace("#@((?!saisie_modifiee)(?!config:)(?!plugin).*)@#U", '@'.$transformation.'[${1}]@', $valeur);
}
}
@ -612,11 +614,27 @@ function construire_formulaire_generer_saisie_configurable(array $saisie, array
}
} else {
$env2["saisie_modifiee_$nom"] = $env2['_saisies_par_nom'][$nom];
// il n'y a pas toujours de verification...
if (isset($env2["saisie_modifiee_$nom"]['verifier']) and isset($env2["saisie_modifiee_$nom"]['verifier']['type'])) {
$env2["saisie_modifiee_$nom"]['verifier'][ $env2["saisie_modifiee_$nom"]['verifier']['type'] ]
= $env2["saisie_modifiee_$nom"]['verifier']['options'] ?? [];
// Support de l'ancien format avec une seule saisie
if (isset($env2["saisie_modifiee_$nom"]['verifier']['type'])) {
$env2["saisie_modifiee_$nom"]['verifier'] = [
[
'type' => $env2["saisie_modifiee_$nom"]['verifier']['type'],
'options' => $env2["saisie_modifiee_$nom"]['verifier']['options'] ?? []
]
];
}
// Puis convertir le tableau depuis le format API vers le format constructeur
$verif_format_constructeur = ['type' => []];
foreach ($env2["saisie_modifiee_$nom"]['verifier'] ?? [] as $verif) {
$verif_format_constructeur['type'][] = $verif['type'];
$verif_format_constructeur[$verif['type']] = [];
$options_verif = $verif['options'] ?? [];
foreach ($options_verif as $option_verif => $valeur_option_verif) {
$verif_format_constructeur[$verif['type']][$option_verif] = $valeur_option_verif;
}
}
$env2["saisie_modifiee_$nom"]['verifier'] = $verif_format_constructeur;
}
$env2['fond_generer'] = 'inclure/generer_saisies';

Loading…
Cancel
Save