{{#restrict section="config" level="admin" block=true}}{{/restrict}} {{:admin_header title="Configuration" current="module_equipment"}} {{* barre de navigation *}} {{:include file="/%s/_nav.html"|args:$module.name current="config"}} {{if $_GET.ok}} <p class="block confirm">Configuration enregistrée.</p> {{/if}} {{* 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}} {{:save key="config" validate_schema="./config.schema.json" inputNature=$input_fields outputNature=$_POST.output_fields }} {{: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 de sorties par défaut *}} {{:assign var='types_sorties.' value='Vente'}} {{:assign var='types_sorties.' value='Don'}} {{:assign var='types_sorties.' value='Location'}} {{:assign var='types_sorties.' value='Prêt'}} <form method="post" action=""> <fieldset> <legend>Entrées</legend> <table class="list input_fields"> <thead> <tr> <th>Type d'entrée</th> <th>Propriétaire ? <br/> <span class="help" style="font-weight:normal">Cocher si l'association devient propriétaire du matériel</span></th> <th>Action</th> </tr> </thead> <tbody id="input_body"> {{#foreach from=$module.config.inputNature item="input_field"}} <tr> <td>{{:input type="text" name="input_fields[label][]" default=$input_field.label}}</td> <td> <label> {{:input type="hidden" name="input_fields[owner][]" value=0}} {{:input type="checkbox" name="input_fields[owner][]" value=1 default=$input_field.owner}} Proprio ? </label> </td> <td class="action"> {{:button label="Retirer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} </td> </tr> {{else}} {{#foreach from=$types_entrees key="label" item="value"}} <tr> <td>{{:input type="text" name="input_fields[label][]" default=$label}}</td> <td> <label> {{:input type="hidden" name="input_fields[owner][]" value=0}} {{:input type="checkbox" name="input_fields[owner][]" value=1 default=$value}} Proprio ? </label> </td> <td class="action"> {{:button label="Retirer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} </td> </tr> {{/foreach}} {{/foreach}} </tbody> </table> <p class="actions"> {{:button shape="plus" label="Ajouter un champ" onclick="addLine('#input_body')"}} </p> </fieldset> <fieldset> <legend>Sorties</legend> <table class="list output_fields"> <thead> <tr> <th>Type de sortie</th> <th>Action</th> </tr> </thead> <tbody id="output_body"> {{#foreach from=$module.config.outputNature item="output_field"}} <tr> <td>{{:input type="text" name="output_fields[]" default=$output_field.label}}</td> <td class="action"> {{:button label="Retirer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} </td> </tr> {{else}} {{#foreach from=$types_sorties item="value"}} <tr> <td>{{:input type="text" name="output_fields[]" default=$value}}</td> <td class="action"> {{:button label="Retirer" shape="minus" onclick="this.parentNode.parentNode.remove();"}} </td> </tr> {{/foreach}} {{/foreach}} </tbody> </table> <p class="actions"> {{:button shape="plus" label="Ajouter un champ" onclick="addLine('#output_body')"}} </p> </fieldset> <p class="submit"> {{:button type="submit" name="save" label="Enregistrer" shape="right" class="main" onclick="return desactiverCache('#input_body');" }} </p> </form> <script type="text/javascript"> // dupliquer la dernière ligne d'une table function addLine(id_body) { var ligne = document.querySelector(id_body).lastElementChild; 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; } ligne.parentNode.appendChild(nelle); text.focus(); } // Désactiver les champs caché des checkbox cochés function desactiverCache(id_body) { for (let ligne of document.querySelector(id_body).children) { let idCase = ligne.querySelector("input[type=checkbox]"); let cache = ligne.querySelector("input[type=hidden]"); // le champ caché if (idCase.checked) { cache.disabled = true; } } } </script> {{:admin_footer}}