Browse Source

Fix #96

- `saisies_lister_par_etapes()` ajoute une étape supplémentaire à la
fin, qui est le récapitulatif (sauf demande contraire dans les
options globales du formulaire)
l'ensemble des valeurs postées
- L'affichage de cette dernière étape est déportée dans le squelette `formulaires/inc-saisies-cvt-etapes-recapitulatif.html`, qui lui même appelle
  `#VOIR_SAISIES`, en insérant au préalable une petite explication).
- Petite modification de `#VOIR_SAISIES` qui peut prendre une option
`voir_explications`.
- Option globales possible pour le tableau de saisies
`etapes_ignorer_recapitulatif`, si rempli, on ne fait pas de
récapitulatif
- Ajustement de divers css privé pour le récap des étapes

Excursus:
- On passe les boutons de retour arrière en `<button>`
- On passe aussi `|_T_ou_Typo` sur les boutons de validation
pull/112/head
Maïeul 1 year ago
parent
commit
5a9efba9db
  1. 8
      formulaires/inc-saisies-cvt-boutons.html
  2. 2
      formulaires/inc-saisies-cvt-etapes-defaut.html
  3. 14
      formulaires/inc-saisies-cvt-etapes-recapitulatif.html
  4. 23
      formulaires/inc-saisies-cvt.html
  5. 7
      inc/saisies_afficher.php
  6. 18
      inc/saisies_lister.php
  7. 2
      lang/saisies_fr.php
  8. 15
      prive/style_prive_plugin_saisies.html
  9. 3
      saisies-vues/_base.html
  10. 1
      saisies_pipelines.php

8
formulaires/inc-saisies-cvt-boutons.html

@ -1,11 +1,11 @@
<p class="boutons" [ data-afficher_si="(#ENV*{_saisies/options/afficher_si_submit}|saisies_afficher_si_js{#ENV{_saisies}})"]>
<span class="image_loading"></span>
[(#SET{label_valider, #ENV{_saisies/options/texte_submit, #ENV{saisies_texte_submit, <:bouton_enregistrer:>}}})]
[(#SET{label_valider, #ENV{_saisies/options/texte_submit, #ENV*{saisies_texte_submit, <:bouton_enregistrer:>}}})]
[(#ENV{_etape}|et{#ENV{_etape}|!={#ENV{_etapes}}})
[(#SET{label_valider, #ENV{_saisies/options/etapes_suivant, <:bouton_suivant:>}})]
[(#SET{label_valider, #ENV*{_saisies/options/etapes_suivant, <:bouton_suivant:>}})]
]
[(#ENV{_etape}|>{1}|oui)
<input type="submit" class="submit" name="_retour_etape_[(#ENV{_saisies}|saisies_determiner_recul_rapide{#ENV{_etape}})]" value="[(#ENV{_saisies/options/etapes_precedent, <:precedent|ucfirst:>})]" />
<button type="submit" class="submit" name="aller_a_etape" value="[(#ENV{_saisies}|saisies_determiner_recul_rapide{#ENV{_etape}})]" >[(#ENV*{_saisies/options/etapes_precedent, <:precedent|ucfirst:>}|_T_ou_typo)]</button>
]
<input type="submit" class="submit" value="#GET{label_valider}" />
<button type="submit" class="submit" name="submit" value="1">[(#GET{label_valider}|_T_ou_typo)]</button>
</p>

2
formulaires/inc-saisies-cvt-etapes-defaut.html

@ -6,8 +6,8 @@
[(#VALEUR|in_any{#GET{afficher_si_masquees}}|non)
#SET{etape,#CLE|replace{etape_,''}}
<li [data-afficher_si="(#VALEUR{options/afficher_si}|saisies_afficher_si_js{#ENV{etapes}})"] class="etapes__item"[(#ENV{_etape}|=={#GET{etape}}|oui) aria-current="step"]>
[(#ENV{_etape}|>{#GET{etape}}|oui)<button type="submit" class="submit" name="aller_a_etape" value="#GET{etape}">#VALEUR{options/label}</button>]
[(#ENV{_etape}|=={#GET{etape}}|oui)<em>#VALEUR{options/label}</em>]
[(#ENV{_etape}|>{#GET{etape}}|oui)<input type="submit" class="submit" name="_retour_etape_#GET{etape}" value="#VALEUR{options/label}" />]
[(#ENV{_etape}|<{#GET{etape}}|oui)<span>#VALEUR{options/label}</span>]
</li>
]

14
formulaires/inc-saisies-cvt-etapes-recapitulatif.html

@ -0,0 +1,14 @@
<div class="saisies_etapes_recapitulatif reponses">
[(#SET{saisies,#ENV{_saisies}|saisies_inserer{
#ARRAY{
saisie,explication,
options,#ARRAY{
nom,saisies_etapes_recapitulatif,
texte,<:saisies:etapes_recapitulatif_texte:>,
},
},
#LISTE{0}
}})]
#SET{valeurs,#ENV{_saisies_par_etapes/etape_#ENV{_etapes}/valeurs}}
#VOIR_SAISIES{#GET{saisies},#GET{valeurs},voir_explications=oui}
</div>

23
formulaires/inc-saisies-cvt.html

@ -2,26 +2,29 @@
#ENV**{_saisies/options/inserer_debut}
[<p class="reponse_formulaire reponse_formulaire_ok"[(#HTML5|oui) role="status"]>(#ENV**{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur"[(#HTML5|oui) role="alert"]>(#ENV**{message_erreur})</p>]
[(#ENV{editable}|oui)
<form method="post" action="#ENV{action}" enctype="multipart/form-data"><div>
[(#REM) declarer les hidden qui declencheront le service du formulaire
parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
[(#ENV{_etape}|oui)
<INCLURE{fond=formulaires/inc-saisies-cvt-etapes-#ENV{_saisies/options/etapes_presentation,defaut}, etapes=#ENV{_saisies_par_etapes}, env} />
]
<[(#DIV|sinon{ul})] class="editer-groupe">
#SET{saisies, #ENV{_saisies}}
[(#ENV{_etape}|oui)
#SET{saisies, #GET{etapes}|table_valeur{etape_#ENV{_etape}/saisies}}
#GENERER_SAISIES{#GET{saisies},saisies_par_etapes=#ENV{_saisies_par_etapes}}
]
[(#ENV{_etape}|non)
#GENERER_SAISIES{#GET{saisies}}
]
#SET{saisies, #ENV{_saisies}}
[(#ENV{_etape}|oui)
[(#ENV{options/etapes_ignorer_recapitulatif}|non|et{#ENV{_etape}|=={#ENV{_etapes}}}|oui)
<INCLURE{fond=formulaires/inc-saisies-cvt-etapes-recapitulatif,env} />
]
[(#ENV{options/etapes_ignorer_recapitulatif}|non|et{#ENV{_etape}|=={#ENV{_etapes}}}|non)
#SET{saisies, #GET{etapes}|table_valeur{etape_#ENV{_etape}/saisies}}
#GENERER_SAISIES{#GET{saisies},saisies_par_etapes=#ENV{_saisies_par_etapes}}
]
]
[(#ENV{_etape}|non)
#GENERER_SAISIES{#GET{saisies}}
]
</[(#DIV|sinon{ul})]>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]

7
inc/saisies_afficher.php

@ -232,7 +232,7 @@ function saisies_generer_html($champ, $env = array()) {
* @param array $env
* L'environnement, contenant normalement la réponse à la saisie
* @param array $env_obligatoire
* ???
* Ce qui doit toujours être passé à l'environnement
*
* @return string
* Code HTML de la vue de la saisie
@ -282,10 +282,13 @@ function saisies_generer_vue($saisie, $env = array(), $env_obligatoire = array()
unset($env[$option_a_supprimer]);
}
}
$contexte = array_merge($env, $contexte);
}
// Faut-il aussi afficher les explications ?
if (isset($env['voir_explications'])) {
$contexte['voir_explications'] = $env['voir_explications'];
}
// Dans tous les cas on récupère de l'environnement la valeur actuelle du champ
// On regarde en priorité s'il y a un tableau listant toutes les valeurs

18
inc/saisies_lister.php

@ -205,6 +205,7 @@ function saisies_lister_par_type($contenu) {
* @return array|bool
* Retourne un tableau associatif par numéro d'étape avec pour chacune leurs saisies, false si pas d'étapes
* Retourne un tableau associatif "etape_xxx" => "contenu de l'étape" avec pour chacune leurs saisies, false si pas d'étapes
* Ajoute si besoin une étape N+1 "Récapitulatif"
* Les noms des étapes sont automatiquement passés dans _T_ou_typo
*/
function saisies_lister_par_etapes($saisies) {
@ -251,6 +252,23 @@ function saisies_lister_par_etapes($saisies) {
}
}
}
//// Ajouter l'étape recapitulatif
if (
!isset($saisies['options']['etapes_ignorer_recapitulatif'])
or !$saisies['options']['etapes_ignorer_recapitulatif']
) {
$compteur_etape++;
$saisies_etapes["etape_$compteur_etape"] = array(
'saisie' => 'fieldset',
'options' => array(
'nom' => '@saisies_recapitulatif',
'label' => _T('saisies:etapes_recapitulatif_label')
),
'saisies' => array(),
'valeurs' => $_POST
);
}
}
}

2
lang/saisies_fr.php

@ -60,6 +60,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'erreur_syntaxe_afficher_si' => 'Syntaxe incorrecte du test',
'erreur_valeur_inacceptable' => 'Valeur postée non acceptable.',
'etapes_formulaire' => 'Étapes du formulaire',
'etapes_recapitulatif_texte' => 'Merci de relire vos réponses et de les vérifier avant la validation finale.',
'etapes_recapitulatif_label' => 'Récapitulatif',
// F
'fichier_erreur_explication_renvoi_alternative' => 'Vous pouvez renvoyer un nouveau fichier, ou bien soumettre le formulaire tel quel, l’ancien fichier n’est pas conservé.',

15
prive/style_prive_plugin_saisies.html

@ -108,4 +108,17 @@ body.saisies_doc {
}
.saisies-menu-onglets.scrollable:hover {
scrollbar-color: black transparent;
}
}
/** recap des étapes **/
.formulaire_spip .saisies_etapes_recapitulatif .legend {
margin:0;
margin-bottom:10px;
}
.formulaire_spip .saisies_etapes_recapitulatif .editer_explication{
padding-left:0;
padding-right:0;
}
.saisies_etapes_recapitulatif {
padding:10px;
}

3
saisies-vues/_base.html

@ -51,6 +51,9 @@ Hors option 'valeur_uniquement' :
[(#GET{reponse}|sinon{#GET{sans_reponse}})]
</div>
]
[(#ENV{voir_explications,non}|!={non}|et{#ENV{type_saisie}|=={explication}}|oui)
<INCLURE{fond=saisies/explication,env} />
]
</div>
]

1
saisies_pipelines.php

@ -311,6 +311,7 @@ function saisies_formulaire_verifier_etape($flux) {
}
}
return $flux;
}

Loading…
Cancel
Save