From be70b6ef6e6288f64852a61c340e3857ed39a640 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Wed, 29 Nov 2023 20:14:31 +0100 Subject: [PATCH] =?UTF-8?q?Externalisation=20config=20par=20d=C3=A9faut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.html | 133 ++++++++++++++++++++++++++++++++-------------------- defaut.json | 12 +++++ 2 files changed, 95 insertions(+), 50 deletions(-) create mode 100644 defaut.json diff --git a/config.html b/config.html index 3c3d77b..c6b2c14 100644 --- a/config.html +++ b/config.html @@ -5,35 +5,37 @@ {{:include file="/%s/_nav.html"|args:$module.name current="config"}} {{if $_GET.ok}} -

Configuration enregistrée.

+

Configuration enregistrée.

{{/if}} {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} - {{:save key="config" - validate_schema="./config.schema.json" - inputNature=$_POST.input_fields|array_transpose - outputNature=$_POST.output_fields|array_transpose - }} - {{:redirect to="./config.html?ok=1"}} + {{:save key="config" + validate_schema="./config.schema.json" + inputNature=$_POST.input_fields|array_transpose + outputNature=$_POST.output_fields|array_transpose + }} + {{:redirect to="./config.html?ok=1"}} {{/form}} -{{* types d'entrées *}} -{{:assign var='types_entrees' définitif="définitif" temporaire="temporaire" retour="retour"}} +{{* config par défaut *}} +{{:read file="defaut.json" assign="config_defaut"}} +{{:assign config_defaut=$config_defaut|json_decode}} -{{* entrées par défaut *}} -{{:assign var='entrees_defaut.Achat' value='définitif'}} -{{:assign var='entrees_defaut.Location' value='temporaire'}} -{{:assign var='entrees_defaut.Retour de Location/Prêt' value='retour'}} +{{* types d'entrées *}} +{{#foreach from=$config_defaut.entrées item="elem"}} + {{#foreach from=$elem key=label item=value}} + {{:assign var='types_entrees.%s'|args:$value value=$value}} + {{/foreach}} +{{/foreach}} {{* types de sorties *}} -{{:assign var='types_sorties' définitif="définitif" temporaire="temporaire" retour="retour"}} - -{{* sorties par défaut *}} -{{:assign var='sorties_defaut.Vente' value='définitif'}} -{{:assign var='sorties_defaut.Prêt' value='temporaire'}} -{{:assign var='sorties_defaut.Retour de Location/Emprunt' value='retour'}} +{{#foreach from=$config_defaut.sorties item="elem"}} + {{#foreach from=$elem key=label item=value}} + {{:assign var='types_sorties.%s'|args:$value value=$value}} + {{/foreach}} +{{/foreach}}
@@ -57,7 +59,13 @@ {{:input type="text" name="input_fields[label][]" default=$input_field.label}} - {{:input type="select" name="input_fields[type][]" options=$types_entrees default=$input_field.type required=true default_empty="— Choisir un type —"}} + {{:input type="select" + name="input_fields[type][]" + options=$types_entrees + default=$input_field.type + required=true + default_empty="— Choisir un type —"}} + {{if $suppr}} {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} @@ -68,25 +76,34 @@ {{else}} {{* pas de config enregistrée : utiliser les valeurs par défaut *}} - {{#foreach from=$entrees_defaut key="label" item="value"}} + {{#foreach from=$config_defaut.entrées item="elem"}} + {{#foreach from=$elem key=label item=value}} - {{* Vérifier si la suppression de ce type d'entrée est possible *}} - {{:assign suppr=true}} - {{#load type="movement" where="$$.inputNature = :libelle" :libelle=$label}} - {{:assign suppr=false}} - {{/load}} + {{* Vérifier si la suppression de ce type d'entrée est possible *}} + {{:assign suppr=true}} + {{#load type="movement" where="$$.inputNature = :libelle" :libelle=$label}} + {{:assign suppr=false}} + {{/load}} - - {{:input type="text" name="input_fields[label][]" default=$label}} - {{:input type="select" name="input_fields[type][]" options=$types_entrees required=true default=$value default_empty="— Choisir un type —"}} - - {{if $suppr}} - {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} - {{else}} - {{:button label="Supprimer" shape="minus" disabled=true}} - {{/if}} - - + + {{:input type="text" name="input_fields[label][]" default=$label}} + {{:input + type="select" + name="input_fields[type][]" + options=$types_entrees + required=true + default=$value + default_empty="— Choisir un type —"}} + + + {{if $suppr}} + {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} + {{else}} + {{:button label="Supprimer" shape="minus" disabled=true}} + {{/if}} + + + {{/foreach}} {{/foreach}} {{/foreach}} @@ -127,7 +144,14 @@ {{:input type="text" name="output_fields[label][]" default=$output_field.label}} - {{:input type="select" name="output_fields[type][]" options=$types_sorties default=$output_field.type required=true default_empty="— Choisir un type —"}} + {{:input + type="select" + name="output_fields[type][]" + options=$types_sorties + default=$output_field.type + required=true + default_empty="— Choisir un type —"}} + {{if $suppr}} {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} @@ -138,7 +162,8 @@ {{else}} {{* pas de config enregistrée : utiliser les valeurs par défaut *}} - {{#foreach from=$sorties_defaut key="label" item="value"}} + {{#foreach from=$config_defaut.sorties item="elem"}} + {{#foreach from=$elem key=label item=value}} {{* Vérifier si la suppression de ce type de sortie est possible *}} {{:assign suppr=true}} @@ -146,17 +171,25 @@ {{:assign suppr=false}} {{/load}} - - {{:input type="text" name="output_fields[label][]" default=$label}} - {{:input type="select" name="output_fields[type][]" options=$types_sorties required=true default=$value default_empty="— Choisir un type —"}} - - {{if $suppr}} - {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} - {{else}} - {{:button label="Supprimer" shape="minus" disabled=true}} - {{/if}} - - + + {{:input type="text" name="output_fields[label][]" default=$label}} + {{:input + type="select" + name="output_fields[type][]" + options=$types_sorties + required=true + default=$value + default_empty="— Choisir un type —"}} + + + {{if $suppr}} + {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} + {{else}} + {{:button label="Supprimer" shape="minus" disabled=true}} + {{/if}} + + + {{/foreach}} {{/foreach}} {{/foreach}} diff --git a/defaut.json b/defaut.json new file mode 100644 index 0000000..f9d27bb --- /dev/null +++ b/defaut.json @@ -0,0 +1,12 @@ +{ + "entrées" : [ + { "Achat" : "définitif" }, + { "Location" : "temporaire" }, + { "Retour de Location/Prêt" : "retour" } + ], + "sorties" : [ + { "Vente" : "définitif" }, + { "Prêt" : "temporaire" }, + { "Retour de Location/Emprunt" : "retour" } + ] +}