Files
equipment_resa/config/custom_fields.html
T

92 lines
3.9 KiB
HTML

{{* -*- brindille -*- *}}
{{#restrict block=true section="accounting" level="write"}}{{/restrict}}
{{:assign var="types"
checkbox="Case à cocher"
date="Date"
number="Nombre"
monetary="Montant €"
text="Texte"
textarea="Texte multi-lignes"
}}
{{#form on="save"}}
{{#foreach from=$_POST.fields|array_transpose item="field"}}
{{if !$field.label|trim || !$field.type}}
{{:continue}}
{{/if}}
{{if !$types|keys|has:$field.type}}
{{:error message="Type inconnu: %s"|args:$field.type}}
{{/if}}
{{:assign var="fields." required=$field.required|boolval published=$field.published|boolval assignedto=$field.assignedto type=$field.type name=$field.name label=$field.label help=$field.help|or:null}}
{{/foreach}}
{{:save key="config" fields=$fields|arrayval}}
{{:redirect to="?ok=1"}}
{{/form}}
{{:admin_header title="Configuration" current="module_%s"|args:$module.name}}
{{:include file="../_nav.html" current="config" subcurrent="custom_fields"}}
{{:form_errors}}
{{if $_GET.ok}}
<p class="block confirm">Configuration enregistrée.</p>
{{/if}}
<form method="post" action="" data-focus=1>
<section class="equipment_loan">
<fieldset>
<p class="help">
À utiliser optionnellement pour associer des informations supplémentaires aux matériels et/ou objets.
</p>
<table class="list fields">
<thead>
<tr>
<td>Type de champ</td>
<td>Nom du champ</td>
<td>Libellé du champ</td>
<td>Texte d'aide en dessous du champ</td>
<td>Champ obligatoire&nbsp;?</td>
<td>Page publique</td>
<td>Associé à</td>
<td></td>
</tr>
</thead>
<tbody>
{{:assign var="select" 0="Facultatif" 1="Obligatoire"}}
{{:assign var="select2" 0="Masquer" 1="Afficher"}}
{{:assign var="select3" M="Matériels" C="Catégories" E="Emplacements" T="Tous"}}
{{#foreach from=$module.config.fields item="field"}}
<tr>
<td>{{:input type="select" name="fields[type][]" default=$field.type options=$types}}</td>
<td>{{:input type="text" name="fields[name][]" default=$field.name}}</td>
<td>{{:input type="text" name="fields[label][]" default=$field.label}}</td>
<td>{{:input type="text" name="fields[help][]" default=$field.help}}</td>
<td>{{:input type="select" name="fields[required][]" default=$field.required options=$select required=true}}</td>
<td>{{:input type="select" name="fields[published][]" default=$field.published options=$select2 required=true}}</td>
<td>{{:input type="select" name="fields[assignedto][]" default=$field.assignedto options=$select3 required=true}}</td>
<td class="actions">{{:button shape="minus" label="Enlever cette ligne" onclick="this.parentNode.parentNode.remove();"}}</td>
</tr>
{{else}}
<tr>
<td>{{:input type="select" name="fields[type][]" options=$types default="text"}}</td>
<td>{{:input type="text" name="fields[name][]" default=$field.name}}</td>
<td>{{:input type="text" name="fields[label][]" default=$field.label}}</td>
<td>{{:input type="text" name="fields[help][]" default=$field.help}}</td>
<td>{{:input type="select" name="fields[required][]" default=$field.required options=$select required=true}}</td>
<td>{{:input type="select" name="fields[published][]" default=$field.published options=$select2 required=true}}</td>
<td>{{:input type="select" name="fields[assignedto][]" default=$field.assignedto options=$select3 required=true}}</td>
<td class="actions">{{:button shape="minus" label="Enlever ce champ" onclick="this.parentNode.parentNode.remove();"}}</td>
</tr>
{{/foreach}}
</tbody>
</table>
<p class="actions">
{{:button shape="plus" label="Ajouter un champ" onclick="var a = $('.fields tbody')[0].lastElementChild; var b = a.cloneNode(true); b.querySelectorAll('input, select').forEach((e) => e.value = null); a.parentNode.append(b);"}}
</p>
</fieldset>
<p class="submit">
{{:button type="submit" shape="right" name="save" label="Enregistrer" class="main"}}
</p>
</form>