From bdb577059e9f0189d81e7399a1aa1aacc6d4db58 Mon Sep 17 00:00:00 2001
From: "maieul@maieul.net" <>
Date: Thu, 1 Nov 2018 22:23:14 +0000
Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20drastique=20de=20la=20saisi?=
 =?UTF-8?q?e=20champs:=20=20=20-=20mutualisation=20du=20code=20avec=20les?=
 =?UTF-8?q?=20autres=20saisies=20=20=20-=20cons=C3=A9quence=20:=20on=20peu?=
 =?UTF-8?q?t=20l'appeler=20en=20pr=C3=A9cision=20le=20type=20de=20saisies?=
 =?UTF-8?q?=20pour=20=20=20selectionner=20la=20saisie.=20Donc=20pas=20limi?=
 =?UTF-8?q?t=C3=A9=20au=20select,=20mais=20aussi=20radios=20=20=20ou=20che?=
 =?UTF-8?q?ckbox?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 paquet.xml         |  2 +-
 saisies/champ.html | 52 +++++++++++++++-------------------------------
 2 files changed, 18 insertions(+), 36 deletions(-)

diff --git a/paquet.xml b/paquet.xml
index d673b07b..fd52994c 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -1,7 +1,7 @@
 <paquet
 	prefix="formidable"
 	categorie="communication"
-	version="3.22.4"
+	version="3.23.0"
 	etat="stable"
 	compatibilite="[3.0.0;3.2.*]"
 	logo="images/formidable-64.png"
diff --git a/saisies/champ.html b/saisies/champ.html
index 324e1573..75991a3d 100644
--- a/saisies/champ.html
+++ b/saisies/champ.html
@@ -1,44 +1,26 @@
-[(#ENV{multiple}|?{
-	#SET{nom,#ENV{nom}\[\]},
-	#SET{nom,#ENV{nom}}
-	}
-)]
-<select name="#GET{nom}" id="champ_#ENV{nom}"[ (#ENV{multiple}|oui)multiple="multiple"]>
-	<option value=""><:formidable:traitements_champ_aucun:></option>
+[(#ENV{type_choix}|=={checkbox}|?{
+	#SET{data,#ARRAY},
+	#SET{data,#ARRAY{'',#VAL{formidable:traitements_champ_aucun}|_T}}
+})]
+
 	[(#ENV{forcer_type}|non)
 		#SET{tab,#ENV{formulaire}}
 	]
 	[(#ENV{forcer_type}|oui)
 		[(#SET{tab,[(#ENV{formulaire}|saisies_lister_par_nom{0})]})]
 	]
-	#SET{padding,0}
 	<BOUCLE_parcours(POUR){tableau #GET{tab}}>
-		#SET{saisie,#VALEUR}
-		<BOUCLE_test_enfants(CONDITION){si #GET{saisie}|table_valeur{saisies}|is_array}>
-		<optgroup style="padding-left:#GET{padding}px" label="[(#GET{saisie}|table_valeur{options}|table_valeur{label}|sinon{#GET{saisie}|table_valeur{options}|table_valeur{nom}})]">
-				#SET{tab,#GET{saisie}|table_valeur{saisies}}
-				#SET{padding,#GET{padding}|plus{20}}
-				<BOUCLE_parcours_recursif(BOUCLE_parcours)/>
-				#SET{padding,#GET{padding}|moins{20}}
-		</optgroup>
-		</BOUCLE_test_enfants>
-			<BOUCLE_test_type(CONDITION){si #ENV{forcer_type}|non|ou{#GET{saisie}|table_valeur{saisie}|in_array{#ENV{forcer_type}}}}>
-			#SET{saisie_currente_nom,#GET{saisie}|table_valeur{options}|table_valeur{nom}}
-			#SET{selected,''}
-			[(#ENV{multiple}|oui)
-			[(#GET{saisie_currente_nom}|in_array{#ENV{valeur,#ENV{saisie_a_positionner,#ARRAY{}}}}|oui)
-					#SET{selected,'selected="selected"'}
-				)]
-			]
-			[(#ENV{multiple}|non)
-				[(#GET{saisie_currente_nom}|=={#ENV{valeur,#ENV{saisie_a_positionner}}}|oui)
-					#SET{selected,'selected="selected"'}
-				)]
-			]
-			<option value="[(#GET{saisie}|table_valeur{options}|table_valeur{nom})]" style="padding-left:#GET{padding}px" #GET{selected}>
-				[(#GET{saisie}|table_valeur{options}|table_valeur{label}|sinon{#GET{saisie}|table_valeur{options}|table_valeur{nom}})]
-			</option>
-			</BOUCLE_test_type>
-		<//B_test_enfants>
+	#SET{enfants,#ARRAY}
+	<BOUCLE_enfants(POUR){tableau #VALEUR|table_valeur{'saisies'}}>
+		#SET{enfant,#ARRAY{#VALEUR|table_valeur{options}|table_valeur{nom},#VALEUR|table_valeur{options}|table_valeur{label}}}
+		#SET{enfants,#GET{enfants}|array_merge{#GET{enfant}}}
+	</BOUCLE_enfants>
+	#SET{saisie,#ARRAY{#VALEUR|table_valeur{options}|table_valeur{label},#GET{enfants}}
+	</B_enfants>
+	#SET{saisie,#ARRAY{#VALEUR|table_valeur{options}|table_valeur{nom},#VALEUR|table_valeur{options}|table_valeur{label}}}
+	<//B_enfants>
+	#SET{data,#GET{data}|array_merge{#GET{saisie}}}
 	</BOUCLE_parcours>
 </select>
+
+#INCLURE{fond=saisies/#ENV{type_choix,selection},data=#GET{data},env,cacher_option_intro='oui',defaut=''}
-- 
GitLab