{{#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}}