Valider 59683c89 rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

Pb #95.

Pouvoir avoir des variantes pour la présentation des étapes, chaque variante étant dans un squelette spécifique.
Pour l'instant on a
  - 'defaut', qui est ce qui est proposé actuellement
  - 'courante', pour n'afficher que l'étape courante + le nb total
  d'étapes.

== Mode defaut
- Ne pas renvoyer les étapes passées masquées par afficher_si
- Passage des boutons de `<input>` à `<button name="aller_a_etape">`

== Mode courante
Je reprend le code de @nicod_, aux adaptations suivantes :
  - utiliser les mêmes conventions de nommage css que pour le modèle
  `defaut`
  - utiliser une chaine de langue à laquelle on passe :
    - le numéro de l'étape courante (déjà encapsulé)
    - le nbre totale d'étape (déjà encapsulé)
    - le nom de l'étape courante
  - on peut ainsi suivre plus facilement les conventions par langue;

Concernant la gestion des `afficher_si` :
  - le numéro de l'étape courante est calculé côté squelette en tenant
  compte des étapes passées qui sont masquées (vu que normalement une
  saisie dans l'étape actuellement ne peut pas changer le masquage des
  étapes masquées)
  - le nbr totale d'étape
    - n'inclut pas les étapes passées masquées par afficher_si
    - inclut toutes les étapes futures
    - est ajusté en JS au chargement + à chaque modification d'un champ
    en fonction des afficher_si
parent cf981b8c
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+37 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
#SET{afficher_si,#ARRAY}
#SET{etapes_max,0}[(#REM) nombre d'étape max, en tenant compte du fait que certaines étapes passées ont deja été masquées par afficher_si]
#SET{etape_a_afficher,0}
#SET{saisies_afficher_si_masquees,#VAL{get}|saisies_afficher_si_liste_masquees}
<BOUCLE_etapes(DATA){source table, #ENV{etapes}}>
#SET{etape_courante,#CLE|replace{'etape_',''}}
[(#REM) mettre uniquement les étapes passées qui ont réussi le test d'afficher_si]
[(#GET{etape_courante}|<{#ENV{_etape}}|oui)
	[(#VALEUR|in_any{#GET{saisies_afficher_si_masquees}}|non)
		#SET{etape_a_afficher,#GET{etape_a_afficher}|plus{1}}
		#SET{etapes_max,#GET{etapes_max}|plus{1}}
	]
]
[(#REM) Mettre systématiquement l'étape courante]
[(#ENV{_etape}|=={#GET{etape_courante}}|oui)
	#SET{etape_a_afficher,#GET{etape_a_afficher}|plus{1}}
	#SET{etapes_max,#GET{etapes_max}|plus{1}}
	#SET{etape_a_afficher_label,#VALEUR{options/label}}
]
[(#REM) Mettre toutes les étapes futures]
[(#GET{etape_courante}|>{#ENV{_etape}}|oui)
	[(#VALEUR{options/afficher_si}|oui)
		#SET{afficher_si,#GET{afficher_si}|array_merge{#ARRAY{#CLE,#VAL{&quot;}|str_replace{'"',#VALEUR{options/afficher_si}|saisies_afficher_si_js{#ENV{etapes}}}}}}
	]
	#SET{etapes_max,#GET{etapes_max}|plus{1}}
]
</BOUCLE_etapes>
	#SET{params, #ARRAY{
			'etape',<span class="formulaire_spip_etape__courante">#GET{etape_a_afficher}</span>,
			'etapes', <span class="formulaire_spip_etape__total">#GET{etapes_max}</span>,
			'label_etape',#GET{etape_a_afficher_label}
		}
	}
<div class="formulaire_spip__etapes etapes formulaire_spip__etapes--courante" [data-afficher_si-etapes-futures="(#VAL{'"'}|str_replace{'&quot;', #GET{afficher_si}|json_encode})"] data-etapes_max="#GET{etapes_max}">
	[(#VAL{saisies:cvt_etapes_courante}|_T{#GET{params}})]
</div>
</B_etapes>
+17 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
#SET{afficher_si_masquees,#VAL{'get'}|saisies_afficher_si_liste_masquees}
<B_etapes>
<nav class="formulaire_spip__etapes etapes" aria-label="<:saisies:etapes_formulaire:>">
	<ol class="etapes__items">
		<BOUCLE_etapes(DATA){source table, #ENV{etapes}}>
		[(#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)<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>
		]
		</BOUCLE_etapes>
	</ol>
</nav>
</B_etapes>
+2 −14
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<B_etapes>
<nav class="formulaire_spip__etapes etapes" aria-label="<:saisies:etapes_formulaire:>">
	<ol class="etapes__items">
		<BOUCLE_etapes(DATA){source table, #ENV{etapes}}>
		#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)<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>
		</BOUCLE_etapes>
	</ol>
</nav>
</B_etapes>
[(#REM) squelette gardé pour compatibilité historique, mais ne devrait plus être appelé, préferez un appel à la variante)]
<INCLURE{fond=formulaires/inc-saisies-cvt-etapes-#ENV{_saisies/options/etapes_presentation,defaut}, etapes=#ENV{_saisies_par_etapes}, env} />
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -10,7 +10,7 @@
		#ACTION_FORMULAIRE{#ENV{action}}

		[(#ENV{_etape}|oui)
			<INCLURE{fond=formulaires/inc-saisies-cvt-etapes, etapes=#GET{etapes}, env} />
			<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">
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -123,7 +123,7 @@ function saisies_generer_html($champ, $env = array()) {
		} elseif (isset($env['_saisies_par_etapes'])) {
			$contexte['_saisies'] = $env['_saisies_par_etapes'];
		} else {
			isset($env['saisies']) ? saisies_lister_par_etapes($env['saisies']) : array();
			$contexte['_saisies'] = isset($env['saisies']) ? saisies_lister_par_etapes($env['saisies']) : array();
		}
	} else {
		$contexte['_saisies'] = isset($env['saisies']) ? $env['saisies'] : array();
Chargement en cours