{{:admin_header title="Modifier matériel" current="module_equipment"}}

{{:assign equipment_key=$_GET.key|trim}}
{{#load key=$_GET.key assign="equipment"}}
	{{:assign default_category=$equipment.category}}
{{else}}
		{{:error message="Pas de matériel avec la clé %s"|args:$equipment_key}}
{{/load}}

{{* Traiter l'envoi du formulaire *}}
{{#form on="save"}}

	{{* récupérer les infos de la catégorie *}}
	{{#load type="category" key=$_POST.category assign="category"}}
	{{/load}}

	{{* vérifier la validité des changements demandés *}}
	{{:assign chgt_ok=true}}
	{{if $_POST.category != $default_category}}

		{{* catégorie change : vérifier le nom *}}
		{{#load key=$equipment_key}}
			{{if $designation|trim|tolower != $_POST.designation|trim|tolower}}
				{{* le nom change => vérifier l'existence d'un matériel du même nom *}}
				{{#load type="equipment" where="lower($$.designation) = :name" :name=$_POST.designation|trim|tolower}}
					{{:assign chgt_ok=false}}
				{{/load}}
			{{else}}
				{* le nom ne change pas : ok *}}
			{{/if}}
		{{/load}}

	{{else}}
		{{* catégorie ne change pas => vérifier le nom*}}
		{{#load type="equipment" where="lower($$.designation) = :name" :name=$_POST.designation|trim|tolower}}
			{{:assign chgt_ok=false}}
		{{/load}}
	{{/if}}

	{{if !$chgt_ok}}
		{{:error message="Erreur : il existe déjà un matériel avec cette désignation"}}
	{{/if}}

	{{* enregistrer les modifications *}}
	{{:save
		key=$equipment_key
		category=$category.key
		designation=$_POST.designation|trim
	}}
	{{:redirect force="index.html?ok=1"}}

{{else}}
		{{:form_errors}}
{{/form}}

{{* lister les catégories disponibles *}}
{{#load type="category" assign="category" order="$$.name"}}
	{{:assign var="categories.%s"|args:$category.key value=$category.name}}
{{/load}}

<form method="post" action="">
	<fieldset class="modification">
		<legend>Modifier un matériel</legend>
		<dl>
		{{:input type="select" name="category" label="Catégorie" default=$default_category required=true options=$categories}}
		{{:input type="text" name="designation" label="Désignation" default=$equipment.designation required=true}}
		</dl>
	</fieldset>

	<p class="submit">
		{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}
	</p>
</form>