début ajout lieu stockage

This commit is contained in:
Jean-Christophe Engel 2025-03-01 10:17:44 +01:00
parent 42210d2c9a
commit 966323acdf
5 changed files with 125 additions and 0 deletions

View File

@ -15,6 +15,7 @@
<li {{if $current == 'inventaire'}} class="current"{{/if}}><a href="{{$module.url}}index.html?prop=1">Inventaire</a></li>
<li {{if $current == 'historique'}} class="current"{{/if}}><a href="{{$module.url}}global_history.html">Historique</a></li>
<li {{if $current == 'archives'}} class="current"{{/if}}><a href="{{$module.url}}archives.html">Archives</a></li>
<li {{if $current == 'storage'}} class="current"{{/if}}><a href="{{$module.url}}storage/index.html">Stockage</a></li>
<li {{if $current == 'config'}} class="current"{{/if}}><a href="{{$module.url}}categories/index.html">Configuration</a></li>
</ul>
@ -35,6 +36,10 @@
<li class="title"><strong>Historique — {{$eqpmt}} ({{$category}})</strong></li>
</ul>
{{/if}}
{{elseif $current == 'storage'}}
<aside>
{{:linkbutton label="Ajouter un lieu de stockage" shape="plus" href="add_storage.html" target="_dialog"}}
</aside>
{{elseif $current == 'config'}}
{{if $subcurrent == 'categories'}}
<aside>

43
storage/add_storage.html Normal file
View File

@ -0,0 +1,43 @@
{{* -*- brindille -*- *}}
{{* Traiter l'envoi du formulaire *}}
{{#form on="save"}}
{{* vérification *}}
{{if $_POST.name == null}}
{{:error message="Le nom du lieu de stockage est obligatoire"}}
{{/if}}
{{#load type="storage" where="$$.name = :name COLLATE U_NOCASE" :name=$_POST.name|trim limit=1}}
{{:error message="Ce nom est déjà utilisé"}}
{{/load}}
{{:save
key=""|uuid
validate_schema="storage.schema.json"
type="storage"
name=$_POST.name|tolower|ucwords
location=$_POST.location
}}
{{:redirect force="index.html?ok=1&msg=ajout"}}
{{/form}}
{{:admin_header title="Lieu de stockage" current="module_equipment"}}
{{* barre de navigation *}}
{{if ! $dialog}}
{{:include file="../_nav.html" current="storage"}}
{{/if}}
{{:form_errors}}
<form method="post" action="" data-focus="1">
<fieldset class="storage">
<legend>Ajouter un lieu de stockage</legend>
<dl>
{{:input type="text" name="name" label="Nom" required=true}}
{{:input type="textarea" name="location" label="Emplacement" cols="40", rows="3" required=false}}
</dl>
</fieldset>
<p class="submit">
{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}
</p>
</form>

View File

@ -0,0 +1,21 @@
{{* -*- brindille -*- *}}
{{*
paramètres :
- key : clé du stockage à supprimer
*}}
{{#form on="delete"}}
{{:delete where="key = :key" :key=$_GET.key}}
{{:redirect force="index.html?ok=1&msg=suppression"}}
{{/form}}
{{:admin_header title="Lieux de stockage" custom_css="./style.css" current="module_equipment"}}
{{:form_errors}}
{{#load key=$_GET.key limit="1" assign="store"}}{{/load}}
{{:delete_form
legend="Supprimer %s ?"|args:$store.name
warning="Confirmer la suppression de « %s »"|args:$store.name
}}

37
storage/index.html Normal file
View File

@ -0,0 +1,37 @@
{{* -*- brindille -*- *}}
{{*
Afficher les lieux de stockage
*}}
{{:admin_header title="Lieux de stockage" custom_css="./style.css" current="module_equipment"}}
{{:include file="../_nav.html" current="storage"}}
{{if $_GET.ok}}
{{if $_GET.msg == "ajout"}}
<p class="block confirm">Ajout effectué</p>
{{elseif $_GET.msg == "suppression"}}
<p class="block confirm">Suppression effectuée</p>
{{/if}}
{{elseif $_GET.err}}
<p class="block error">Opération refusée</p>
{{/if}}
{{#list
type="storage"
select="
$$.name AS 'Nom';
$$.location AS 'Emplacement'
"
}}
<tr>
<td>{{$name}}</td>
<td>{{$location}}</td>
<td class="actions">
{{:linkbutton label="Supprimer" shape="delete" href="delete_storage.html?key=%s"|args:$key target="_dialog"}}
</td>
</tr>
{{/list}}
{{:admin_footer}}

View File

@ -0,0 +1,19 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["storage"]
},
"name" : {
"description": "Nom du lieu de stockage",
"type": "string"
},
"location": {
"description": "Emplacement du lieu de stockage",
"type": "string"
}
},
"required": ["type", "name"]
}