Projet

Général

Profil

RequiredEtDisabled » Historique » Version 2

Version 1 (Emmanuel GARETTE, 30/11/2012 10:15) → Version 2/6 (Emmanuel GARETTE, 30/11/2012 10:18)

h1. RequiredEtDisabled

h2. Terminologie

Les termes employés ici sont les termes Tiramisu pour plus de clareté.

Le **hidden_if_(not_)in** @hidden_if_(not_)in@ de Créole s'appellera ici **disabled_if_(not_in)in**. @disabled_if_(not_in)in@.

Un **disabled_if_in** @disabled_if_in@ place un **requires** @requires@ sur la **variable** @variable@ de type : nom de la **variable @variable à tester**, tester@, la **valeur attendue** @valeur attendue@ sur la variable à tester, et l'**action** l'@action@ correspondante.

h2. Description des cas d'utilisation

* Cas 1 :

Requires sur **adresse_ip_proxy** @adresse_ip_proxy@ : si **activer_proxy** @activer_proxy@ est à **non** @non@ la variable est **disabled**. @disabled@.

* Cas 2 :

Requires sur **activer_phpmyadmin** @activer_phpmyadmin@ : si **activer_mysql** @activer_mysql@ est à **non** @non@ la variable est **disabled**. @disabled@.
Requires sur **adresse_ip_phpmyadmin** @adresse_ip_phpmyadmin@ : si **activer_phpmyadmin** @activer_phpmyadmin@ est à **non** @non@ la variable est **disabled**. @disabled@.

h2. Problématique

Dans Créole on utilise deux types de **requires** @requires@ :

* @disabled_if_in@ : pour désactiver une variable ;
* @freeze_if_in@ : sert à la variable calculée pour passer une variable en mode automatique sans possibilité de changer la valeur.

Le problème se pose sur le cas 2. Si activer_phpmyadmin est désactivé parce que activer_mysql est à non, on ne peut pas faire le requires pour adresse_ip_phpmyadmin.

h2. Solutions

h3. Proposition 1 :

Faire une liste de propriété "transitive" lors des requires. Cela veut dire que si on veut déterminé si une **variable** @variable@ est **disabled**, @disabled@, si la **variable @variable à tester** tester@ est à disabled, la **variable** @variable@ est **disabled** @disabled@ aussi.

Par contre, si la variable à une autre propriété, elle peut faire un raise.