diff --git a/_nav.html b/_nav.html
index dfdf9ef..e2e6170 100644
--- a/_nav.html
+++ b/_nav.html
@@ -60,9 +60,7 @@
{{/if}}
diff --git a/config.html b/config.html
index 9927c5e..f5bb3ec 100644
--- a/config.html
+++ b/config.html
@@ -12,14 +12,21 @@
{{/if}}
{{* lecture config (défaut ou enregistrée) *}}
-{{:include file="./_get_config.html" keep="config, directions"}}
+{{:include file="./_get_config.html" keep="config_defaut, config, directions"}}
+
+{{* interdire la modification et la suppression des types de mouvement prédéfinis *}}
+{{#foreach from=$directions key="direction"}}
+ {{:assign var="nature" from="config_defaut.%ss"|args:$direction}}
+ {{#foreach from=$nature item="elem"}}
+ {{:assign var="default_keys." value=$key}}
+ {{/foreach}}
+{{/foreach}}
{{#foreach from=$directions key="direction" item="item"}}
{{* types de mouvements qui ne peuvent être supprimés *}}
{{#load type="movement" where="$$.direction='%s'"|args:$direction group="$$.operation"}}
- {{:assign var="op_label" from="config.%s_nature.%s.label"|args:$direction:$operation}}
- {{:assign var="locked_%ss."|args:$direction value=$op_label}}
+ {{:assign var="locked." value=$operation}}
{{/load}}
{{$item|ucfirst}}s
@@ -38,11 +45,12 @@
{{$label}} |
{{$type}} |
- {{:assign var="locked" from="locked_%ss"|args:$direction}}
- {{if ! $locked|has:$label}}
+ {{if ! $default_keys|has:$key && ! $locked|has:$key}}
{{:linkbutton label="Supprimer" shape="delete" href="config/delete_movement_type.html?dir=%s&op_key=%s"|args:$direction:$key target="_dialog"}}
{{/if}}
+ {{if ! $default_keys|has:$key}}
{{:linkbutton label="Modifier" shape="edit" href="config/modify_movement_type.html?dir=%s&op_key=%s"|args:$direction:$key target="_dialog"}}
+ {{/if}}
|
{{/foreach}}
diff --git a/config/delete_movement_type.html b/config/delete_movement_type.html
index 4f0ddaa..801f821 100644
--- a/config/delete_movement_type.html
+++ b/config/delete_movement_type.html
@@ -10,16 +10,28 @@
{{* lecture config (défaut ou enregistrée) *}}
-{{:include file="../_get_config.html" keep="config, directions"}}
+{{:include file="../_get_config.html" keep="config_defaut, config, directions"}}
+
+{{if ! $directions|has_key:$_GET.dir}}
+ {{:error message="Direction « %s » inconnue !"|args:$_GET.dir}}
+{{/if}}
+
+{{* interdire la suppression des types de mouvement prédéfinis *}}
+{{:assign var="nature" from="config_defaut.%ss"|args:$_GET.dir}}
+{{#foreach from=$nature item="elem"}}
+ {{:assign var="default_keys." value=$key}}
+{{/foreach}}
+{{if $default_keys|has:$_GET.op_key}}
+ {{:error message="Ce type de mouvement ne peut être supprimé"}}
+{{/if}}
{{#form on="delete"}}
{{#foreach from=$directions key="direction"}}
{{:assign var="nature" from="config.%s_nature"|args:$direction}}
- {{#foreach from=$nature key="key"}}
+ {{#foreach from=$nature key="key" item="elem"}}
{{if $_GET.dir == $direction && $key != $_GET.op_key || $_GET.dir != $direction}}
+ {{:assign var="%s_nature"|args:$direction value=$elem}}
{{:assign var="%s_nature.key"|args:$direction value=$key}}
- {{:assign var="%s_nature.label"|args:$direction value=$label}}
- {{:assign var="%s_nature.type"|args:$direction value=$type}}
{{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}}
{{/if}}
{{/foreach}}
diff --git a/config/modify_movement_type.html b/config/modify_movement_type.html
index 89d9970..5d99d4d 100644
--- a/config/modify_movement_type.html
+++ b/config/modify_movement_type.html
@@ -11,21 +11,34 @@
{{* lecture config (défaut ou enregistrée) *}}
{{:include file="../_get_config.html" keep="config, directions"}}
+{{if ! $directions|has_key:$_GET.dir}}
+ {{:error message="Direction « %s » inconnue !"|args:$_GET.dir}}
+{{/if}}
+
+{{* interdire la modification des types de mouvement prédéfinis *}}
+{{:assign var="nature" from="config_defaut.%ss"|args:$_GET.dir}}
+{{#foreach from=$nature item="elem"}}
+ {{:assign var="default_keys." value=$key}}
+{{/foreach}}
+{{if $default_keys|has:$_GET.op_key}}
+ {{:error message="Ce type de mouvement ne peut être modifié"}}
+{{/if}}
+
{{#form on="save"}}
{{#foreach from=$directions key="direction"}}
{{:assign var="nature" from="config.%s_nature"|args:$direction}}
- {{#foreach from=$nature key="key"}}
- {{:assign var="%s_nature.key"|args:$direction value=$key}}
- {{if $_GET.dir == $direction}}
- {{if $key == $_GET.op_key}}
- {{:assign var="%s_nature.label"|args:$direction value=$_POST.name|trim}}
- {{else}}
- {{:assign var="%s_nature.label"|args:$direction value=$label}}
- {{/if}}
- {{else}}
- {{:assign var="%s_nature.label"|args:$direction value=$label}}
+ {{#foreach from=$nature key="key" item="elem"}}
+ {{if $_GET.dir == $direction && $_POST.name|trim|tolower == $elem.label|trim|tolower}}
+ {{:error message="Le libellé « %s » est déjà présent"|args:$_POST.name}}
{{/if}}
- {{:assign var="%s_nature.type"|args:$direction value=$type}}
+ {{if $_GET.dir == $direction && $key == $_GET.op_key}}
+ {{:assign label=$_POST.name|trim}}
+ {{else}}
+ {{:assign label=$elem.label}}
+ {{/if}}
+ {{:assign var="%s_nature"|args:$direction value=$elem}}
+ {{:assign var="%s_nature.label"|args:$direction value=$label}}
+ {{:assign var="%s_nature.key"|args:$direction value=$key}}
{{:assign var="%s_natures."|args:$direction from="%s_nature"|args:$direction}}
{{/foreach}}
{{/foreach}}