rougail/doc/condition/condition.md

130 lines
3.2 KiB
Markdown
Raw Normal View History

2021-02-15 18:52:41 +01:00
# Les conditions
2021-02-16 10:22:29 +01:00
## Un condition
2021-11-24 18:06:09 +01:00
Les conditions permettent d'ajouter ou de supprimer des propriétés à une [variable](../variable/README.md), une [famille](../family/README.md), un [service](../service/README.md), un [fichier](../service/file.md) ou une [ip](../service/ip.md) suivant le contexte.
2021-02-15 18:52:41 +01:00
Nous allons nous concentrer ici sur la condition hidden_if_in, mais [il existe d'autre conditions](conditions.md).
La condition hidden_if_in permet de cacher une variable où une famille à l'utilisateur, mais cette variable est toujours accessible dans un calcul, un vérification ou dans un template.
2022-11-03 22:17:43 +01:00
```xml
2021-02-15 18:52:41 +01:00
<variables>
2021-12-11 16:33:55 +01:00
<variable name="condition" type="boolean"/>
<variable name="my_variable"/>
2021-02-15 18:52:41 +01:00
</variables>
<constraints>
2021-12-11 16:33:55 +01:00
<condition name="hidden_if_in" source="condition">
<param>True</param>
<target>my_variable</target>
</condition>
2021-02-15 18:52:41 +01:00
</constraints>
```
2022-11-02 22:52:50 +01:00
En YAML :
2022-11-03 22:17:43 +01:00
```yml
2022-11-02 22:52:50 +01:00
variables:
- variable:
name: condition
type: boolean
- variable:
name: my_variable
constraints:
- condition:
- name: hidden_if_in
source: condition
param:
2022-11-03 22:16:52 +01:00
- text: true
2022-11-02 22:52:50 +01:00
target:
- text: my_variable
```
2021-02-15 18:52:41 +01:00
Le [paramètres](../param/README.md) de la condition permet de définir les valeurs que doit avoir la source pour appliquer l'action.
La [cible](../target/README.md) de la condition est ici "my_variable".
Donc ici la variable est caché à l'utilisateur si la variable "condition" est à True (le paramètre).
2021-02-16 10:22:29 +01:00
## Un condition avec plusieurs paramètres
2021-02-15 18:52:41 +01:00
Il est également possible de mettre plusieurs paramètre :
2022-11-03 22:17:43 +01:00
```xml
2021-02-15 18:52:41 +01:00
<variables>
2021-12-11 16:33:55 +01:00
<variable name="condition"/>
<variable name="my_variable"/>
2021-02-15 18:52:41 +01:00
</variables>
<constraints>
2021-12-11 16:33:55 +01:00
<condition name="hidden_if_in" source="condition">
<param>yes</param>
<param>maybe</param>
<target>my_variable</target>
</condition>
2021-02-15 18:52:41 +01:00
</constraints>
```
2022-11-02 22:52:50 +01:00
En YAML :
2022-11-03 22:17:43 +01:00
```yml
2022-11-02 22:52:50 +01:00
variables:
- variable:
name: condition
- variable:
name: my_variable
constraints:
- condition:
- name: hidden_if_in
source: condition
param:
- text: 'yes'
- text: 'maybe'
target:
- text: my_variable
```
2021-02-16 10:22:29 +01:00
## Une condition optionnelle
Il est possible de définir une condition avec une variable source qui n'existe pas dans toutes les contextes.
Dans ce cas, on met la condition en "optionnelle".
Si la variable source existe, la condition s'applique.
Si la variable source n'existe pas :
- si le nom fini en _if_in (par exemple hidden_if_in), l'action est forcée sans condition (les cibles sont hidden)
- si le nom fini en _if_not_in (par exemple hidden_if_not_in), la condition est totalement ignorée
Ces deux comportements peuvent être changé à tout moment avec l'attribut "apply_on_fallback". Dans ce cas :
- si la valeur de "apply_on_fallback" est "True", l'action est forcée sans condition
- si la valeur de "apply_on_fallback" est "False", la condition est totalement ignorée
Exemple :
2022-11-03 22:17:43 +01:00
```xml
2021-02-16 10:22:29 +01:00
<condition name="hidden_if_in" source="condition" optional="True", apply_on_fallback="False">
2021-12-11 16:33:55 +01:00
<param>yes</param>
<param>maybe</param>
<target>my_variable</target>
2021-02-16 10:22:29 +01:00
</condition>
```
2022-11-02 22:52:50 +01:00
En YAML :
2022-11-03 22:17:43 +01:00
```yml
2022-11-02 22:52:50 +01:00
- condition:
- name: hidden_if_in
source: condition
2022-11-03 22:16:52 +01:00
optional: true
apply_on_fallback: false
2022-11-02 22:52:50 +01:00
param:
- text: 'yes'
- text: 'maybe'
target:
- text: my_variable
```