Externalisation config par défaut

This commit is contained in:
Jean-Christophe Engel 2023-11-29 20:14:31 +01:00
parent 005b53096c
commit be70b6ef6e
2 changed files with 95 additions and 50 deletions

View File

@ -5,7 +5,7 @@
{{:include file="/%s/_nav.html"|args:$module.name current="config"}} {{:include file="/%s/_nav.html"|args:$module.name current="config"}}
{{if $_GET.ok}} {{if $_GET.ok}}
<p class="block confirm">Configuration enregistrée.</p> <p class="block confirm">Configuration enregistrée.</p>
{{/if}} {{/if}}
{{* Traiter l'envoi du formulaire *}} {{* Traiter l'envoi du formulaire *}}
@ -19,21 +19,23 @@
{{:redirect to="./config.html?ok=1"}} {{:redirect to="./config.html?ok=1"}}
{{/form}} {{/form}}
{{* types d'entrées *}} {{* config par défaut *}}
{{:assign var='types_entrees' définitif="définitif" temporaire="temporaire" retour="retour"}} {{:read file="defaut.json" assign="config_defaut"}}
{{:assign config_defaut=$config_defaut|json_decode}}
{{* entrées par défaut *}} {{* types d'entrées *}}
{{:assign var='entrees_defaut.Achat' value='définitif'}} {{#foreach from=$config_defaut.entrées item="elem"}}
{{:assign var='entrees_defaut.Location' value='temporaire'}} {{#foreach from=$elem key=label item=value}}
{{:assign var='entrees_defaut.Retour de Location/Prêt' value='retour'}} {{:assign var='types_entrees.%s'|args:$value value=$value}}
{{/foreach}}
{{/foreach}}
{{* types de sorties *}} {{* types de sorties *}}
{{:assign var='types_sorties' définitif="définitif" temporaire="temporaire" retour="retour"}} {{#foreach from=$config_defaut.sorties item="elem"}}
{{#foreach from=$elem key=label item=value}}
{{* sorties par défaut *}} {{:assign var='types_sorties.%s'|args:$value value=$value}}
{{:assign var='sorties_defaut.Vente' value='définitif'}} {{/foreach}}
{{:assign var='sorties_defaut.Prêt' value='temporaire'}} {{/foreach}}
{{:assign var='sorties_defaut.Retour de Location/Emprunt' value='retour'}}
<form method="post" action=""> <form method="post" action="">
<fieldset> <fieldset>
@ -57,7 +59,13 @@
<tr> <tr>
<td>{{:input type="text" name="input_fields[label][]" default=$input_field.label}}</td> <td>{{:input type="text" name="input_fields[label][]" default=$input_field.label}}</td>
<td>{{:input type="select" name="input_fields[type][]" options=$types_entrees default=$input_field.type required=true default_empty="— Choisir un type —"}}</td> <td>{{:input type="select"
name="input_fields[type][]"
options=$types_entrees
default=$input_field.type
required=true
default_empty="— Choisir un type —"}}
</td>
<td class="action"> <td class="action">
{{if $suppr}} {{if $suppr}}
{{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}}
@ -68,7 +76,8 @@
</tr> </tr>
{{else}} {{else}}
{{* pas de config enregistrée : utiliser les valeurs par défaut *}} {{* 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 *}} {{* Vérifier si la suppression de ce type d'entrée est possible *}}
{{:assign suppr=true}} {{:assign suppr=true}}
@ -78,7 +87,14 @@
<tr> <tr>
<td>{{:input type="text" name="input_fields[label][]" default=$label}}</td> <td>{{:input type="text" name="input_fields[label][]" default=$label}}</td>
<td>{{:input type="select" name="input_fields[type][]" options=$types_entrees required=true default=$value default_empty="— Choisir un type —"}}</td> <td>{{:input
type="select"
name="input_fields[type][]"
options=$types_entrees
required=true
default=$value
default_empty="— Choisir un type —"}}
</td>
<td class="action"> <td class="action">
{{if $suppr}} {{if $suppr}}
{{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}}
@ -89,6 +105,7 @@
</tr> </tr>
{{/foreach}} {{/foreach}}
{{/foreach}} {{/foreach}}
{{/foreach}}
</tbody> </tbody>
</table> </table>
<p class="actions"> <p class="actions">
@ -127,7 +144,14 @@
<tr> <tr>
<td>{{:input type="text" name="output_fields[label][]" default=$output_field.label}}</td> <td>{{:input type="text" name="output_fields[label][]" default=$output_field.label}}</td>
<td>{{:input type="select" name="output_fields[type][]" options=$types_sorties default=$output_field.type required=true default_empty="— Choisir un type —"}}</td> <td>{{:input
type="select"
name="output_fields[type][]"
options=$types_sorties
default=$output_field.type
required=true
default_empty="— Choisir un type —"}}
</td>
<td class="action"> <td class="action">
{{if $suppr}} {{if $suppr}}
{{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}}
@ -138,7 +162,8 @@
</tr> </tr>
{{else}} {{else}}
{{* pas de config enregistrée : utiliser les valeurs par défaut *}} {{* 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 *}} {{* Vérifier si la suppression de ce type de sortie est possible *}}
{{:assign suppr=true}} {{:assign suppr=true}}
@ -148,7 +173,14 @@
<tr> <tr>
<td>{{:input type="text" name="output_fields[label][]" default=$label}}</td> <td>{{:input type="text" name="output_fields[label][]" default=$label}}</td>
<td>{{:input type="select" name="output_fields[type][]" options=$types_sorties required=true default=$value default_empty="— Choisir un type —"}}</td> <td>{{:input
type="select"
name="output_fields[type][]"
options=$types_sorties
required=true
default=$value
default_empty="— Choisir un type —"}}
</td>
<td class="action"> <td class="action">
{{if $suppr}} {{if $suppr}}
{{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} {{:button label="Supprimer" shape="minus" onclick="this.parentNode.parentNode.remove();"}}
@ -159,6 +191,7 @@
</tr> </tr>
{{/foreach}} {{/foreach}}
{{/foreach}} {{/foreach}}
{{/foreach}}
</tbody> </tbody>
</table> </table>
<p class="actions"> <p class="actions">

12
defaut.json Normal file
View File

@ -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" }
]
}