diff --git a/config.html b/config.html index 4215003..023948d 100644 --- a/config.html +++ b/config.html @@ -11,34 +11,29 @@ {{* Traiter l'envoi du formulaire *}} {{#form on="save"}} - {{#foreach from=$_POST.input_fields|array_transpose item="field"}} - {{:assign var="input_fields." label=$field.label|trim owner=$field.owner|boolval}} - {{/foreach}} - - {{#foreach from=$_POST.output_fields|array_transpose item="field"}} - {{:assign var="output_fields." label=$field.label|trim final=$field.final|boolval}} - {{/foreach}} - {{:save key="config" validate_schema="./config.schema.json" - inputNature=$input_fields - outputNature=$output_fields + inputNature=$_POST.input_fields|array_transpose + outputNature=$_POST.output_fields|array_transpose }} {{:redirect to="./config.html?ok=1"}} {{/form}} -{{* types d'entrées par défaut *}} -{{:assign var='types_entrees.Achat' value=1}} -{{:assign var='types_entrees.Don' value=1}} -{{:assign var='types_entrees.Récupération' value=1}} -{{:assign var='types_entrees.Location' value=0}} -{{:assign var='types_entrees.Emprunt' value=0}} +{{* types d'entrées *}} +{{:assign var='types_entrees' définitif="définitif" temporaire="temporaire" retour="retour"}} -{{* types de sorties par défaut *}} -{{:assign var='types_sorties.Vente' value=1}} -{{:assign var='types_sorties.Don' value=1}} -{{:assign var='types_sorties.Location' value=0}} -{{:assign var='types_sorties.Prêt' value=0}} +{{* 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 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/Prêt' value='retour'}}
@@ -46,8 +41,8 @@ - - + + @@ -55,28 +50,16 @@ {{#foreach from=$module.config.inputNature item="input_field"}} - + {{else}} - {{#foreach from=$types_entrees key="label" item="value"}} + {{#foreach from=$entrees_defaut key="label" item="value"}} - + @@ -90,6 +73,14 @@ label="Ajouter un champ" onclick="addLine('#input_body')"}}

+
+

Signification du type d'entrée

+
    +
  • définitif : l'asso devient propriétaire du matériel (ex : achat, don)
  • +
  • temporaire : l'asso ne devient pas propriétaire du matériel (ex : location, emprunt)
  • +
  • retour : matériel qui revient après une sortie temporaire (ex : retour de location ou de prêt)
  • +
+
@@ -97,8 +88,8 @@
Type d'entréePropriétaire ?
Cocher si l'association devient propriétaire du matériel
Nature de l'entréeType Action
{{: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 —"}} {{:button label="Retirer" shape="minus" onclick="this.parentNode.parentNode.remove();"}}
{{: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 —"}} {{:button label="Retirer" shape="minus" onclick="this.parentNode.parentNode.remove();"}}
- - + + @@ -106,28 +97,16 @@ {{#foreach from=$module.config.outputNature item="output_field"}} - + {{else}} - {{#foreach from=$types_sorties key="label" item="value"}} + {{#foreach from=$sorties_defaut key="label" item="value"}} - + @@ -141,6 +120,14 @@ label="Ajouter un champ" onclick="addLine('#output_body')"}}

+
+

Signification du type de sortie

+
    +
  • définitif : le matériel n'appartient plus à l'asso (ex : vente, casse, perte, vol, ...)
  • +
  • temporaire : le matériel sort temporairement de l'asso qui en reste propriétaire (ex : location, prêt)
  • +
  • retour : le matériel non propriété de l'asso est rendu à son propriétaire (ex : retour de location ou de prêt)
  • + +

@@ -150,7 +137,6 @@ label="Enregistrer" shape="right" class="main" - onclick="return desactiverCache('#input_body', '#output_body');" }}

@@ -162,26 +148,12 @@ var nelle = ligne.cloneNode(true); let text = nelle.querySelector('input[type="text"]'); text.value = null; - let cb = nelle.querySelector('input[type="checkbox"]') - if (cb != null) { - cb.checked = false; + let menu = nelle.querySelector('select') + if (menu != null) { + menu[0].selected = 'selected'; } ligne.parentNode.appendChild(nelle); text.focus(); } - - // Désactiver les champs caché des checkbox cochés - function desactiverCache(...id_body) { - for (const id of id_body) { - for (let ligne of document.querySelector(id).children) { - let idCase = ligne.querySelector("input[type=checkbox]"); - let cache = ligne.querySelector("input[type=hidden]"); // le champ caché - if (idCase.checked) { - cache.disabled = true; - } - } - } - } - {{:admin_footer}} diff --git a/config.schema.json b/config.schema.json index 0acbb84..82a7198 100644 --- a/config.schema.json +++ b/config.schema.json @@ -4,15 +4,16 @@ "properties": { "inputNature": { "description": "Nature des entrées", - "type": "array", + "type": ["array", "null"], "items": { "type": "object", "properties": { "label" : { "type" : "string" }, - "owner" : { - "type" : "boolean" + "type" : { + "type" : "string", + "enum" : ["définitif", "temporaire", "retour"] } } } @@ -26,8 +27,9 @@ "label" : { "type" : "string" }, - "final" : { - "type" : "boolean" + "type" : { + "type" : "string", + "enum" : ["définitif", "temporaire", "retour"] } } }
Type de sortieDéfinitif ?
Cocher si la sortie est définitive
Nature de la sortieType Action
{{: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 —"}} {{:button label="Retirer" shape="minus" onclick="this.parentNode.parentNode.remove();"}}
{{: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 —"}} {{:button label="Retirer" shape="minus" onclick="this.parentNode.parentNode.remove();"}}