Skip to content

Commit 3de6665

Browse files
committed
Revert "documentation compléments relatifs aux variables dynamiques des formu…"
This reverts commit 6db88cc.
1 parent 6db88cc commit 3de6665

1 file changed

Lines changed: 47 additions & 95 deletions

File tree

docs/sous_module.md

Lines changed: 47 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@ title: 'Création d''un sous-module'
1414
- [Définir une nouvelle variable](#définir-une-nouvelle-variable)
1515
- [Redéfinir une variable existante](#redéfinir-une-variable-existante)
1616
- [`datalists`](#datalists)
17-
- [Les paramètres dynamiques](#les-paramètres-dynamiques)
18-
- [Exemples champs des formulaires](#exemples-champs-des-formulaires)
19-
- [Exemples variable `change`](#exemples-variable-change)
17+
- [Les paramètres dynamiques](#les-paramètres-dynamiques)
18+
- [La variable `change`](#la-variable-change)
2019
- [Nomenclature](#nomenclature)
2120
- [Configuration de la carte](#configuration-de-la-carte)
2221
- [Exports](#exports)
@@ -494,35 +493,35 @@ Par exemple :
494493
},
495494
```
496495

497-
## Les paramètres dynamiques
498-
499-
Il est possible de définir des fonctions javascript (sous forme de chaine de caractères) qui peuvent modifier les comportements et valeurs du formulaire.
500-
501-
**Ce cas n'est pris en compte que pour les composants spécifiques, ou pour les composants redéfinis dans `specific`**
502-
503-
Il est possible de définir des fonctions à deux niveaux:
504-
* au niveau de chaque champ du formulaire
505-
* au niveau global au formulaire (via la fonction change)
506-
507-
Les variables accessibles en fonction des différents contextes sont les suivantes :
508-
* `value` : la valeur du formulaire. Dans le contexte d'un champ specific
509-
* `attribut_name` : du composant concerné. Dans le contexte d'un champ specific
510-
* `objForm` : Formulaire. Dans le contexte de la fonction change
511-
* `meta` : Dictionnaire de données additionnelles, contient les données suivantes. Dans tout les contextes
512-
* `nomenclatures`: liste des nomenclatures utilisées. Dictionnaire avec `id_nomenclature` comme clé.
513-
* `dataset` : liste des jdds disponibles pour l'utilisateur et le module
514-
* `id_role` : identifiant de l'utilisateur courant
515-
* `bChainInput`: si on enchaîne les relevés
516-
* `parents`: Objets parents. Permet de récupérer les valeurs définies dans le parents.
517-
518-
519-
La chaîne de caractère qui décrit la fonction doit être de la forme
496+
### Les paramètres dynamiques
497+
498+
Il est possible de définir des paramètre qui peuvent dépendre de
499+
plusieurs variables. La valeur de ce paramètre est alors une chaîne de
500+
caractère qui définit une fonction, qui utilise les variables suivantes
501+
502+
**Ce cas n'est pris en compte que pour les composants spécifiques, ou
503+
pour les composants redéfinis dans `specific`**
504+
505+
* `value` : les valeurs du formulaire
506+
* `attribut_name` : du composant concerné
507+
* `meta` : un dictionnaire de données additionelles, et fourni au
508+
composant dynamicFormGenerator, il peut contenir des données sur
509+
* la nomenclature (pour avoir les valeurs des nomenclature à
510+
partir des id, ici un dictionnaire avec `id_nomenclature` comme
511+
clés.
512+
* `bChainInput` si on enchaine les relevés
513+
* etc.. à redéfinir selon les besoins
514+
515+
La chaine de caractère qui décrit la fonction doit être de la forme
520516
suivante :
521517

522518
```json
523519
"hidden": "({value, attribut_name, }) => { return value.id == 't' }"
524520
```
525-
Le format JSON ne permet pas les sauts de ligne dans les chaînes de caractère, et pour avoir plus de lisibilité, quand la fonction est plus complexe, on peut aussi utiliser un tableau de chaîne de caractères :
521+
522+
Le format JSON ne permet pas les sauts de ligne dans les chaines de
523+
caractère, et pour avoir plus de lisibilité, quand la fonction est plus
524+
complexe, on peut aussi utiliser un tableau de chaine de caractères :
526525

527526
```json
528527
"hidden": [
@@ -531,11 +530,16 @@ Le format JSON ne permet pas les sauts de ligne dans les chaînes de caractère,
531530
"}"
532531
]
533532
```
534-
535533

536-
### Exemples champs des formulaires
534+
Le lignes seront collées entre elles avec l'ajout de saut de lignes
535+
(caractère [n]{.title-ref}).
536+
537+
Il faut être certain de sa fonction.
537538

538-
* Afficher le composant `test2` et le rendre obligatoire seulement si `test1` a pour valeur `t` :
539+
Exemples :
540+
541+
* Afficher le composant `test2` et le rendre obligatoire seulement si
542+
`test1` a pour valeur `t` :
539543

540544
```json
541545
"specific": {
@@ -552,7 +556,8 @@ Le format JSON ne permet pas les sauts de ligne dans les chaînes de caractère,
552556
}
553557
```
554558

555-
* Ajouter un champ pour renseigner la profondeur d'une grotte si le type de site est une grotte (cd_nomenclature '1')
559+
* Ajouter un champs pour renseigner la profondeur d'une grotte si le
560+
type de site est une grotte
556561

557562
Dans le fichier `site.json`
558563

@@ -569,13 +574,15 @@ Dans le fichier `site.json`
569574
}
570575
```
571576

572-
**Le paramêtre ``value`` ne peut pas être dynamique, pour changer la valeur des variables en fonction d'autres variables, on peut définir ``change`` dans la config. Voir ci dessous**
577+
**Le paramêtre ``value`` ne peut pas être dynamique, pour changer la
578+
valeur des variables en fonction d'autres variables, on peut définir
579+
``change`` dans la config. Voir ci dessous**
573580

574-
### Exemples variable `change`
581+
### La variable `change`
575582

576-
On peut y définir une fonction qui sera appelée chaque fois que le formulaire change.
583+
On peut y définir une fonction qui sera appelée chaque fois que le
584+
formulaire change.
577585

578-
**Exemple utilisation de objForm**
579586
Un exemple (`module.json` du module test) :
580587

581588
```json
@@ -609,69 +616,14 @@ Un exemple (`module.json` du module test) :
609616
}
610617
```
611618

612-
Ici on donne à la variable `test3` la valeur `<test>_<test2>`. Le test `!objForm.controls.test3.dirty` permet de ne modifier la variable que si l'utilisateur ne l'a pas modifié manuellement.
613-
619+
Ici on donne à la variable `test3` la valeur `<test>_<test2>`.
614620

615-
**Exemple valeur par défaut en fonction des valeurs du formulaire parent**
616-
Il est possible avec meta de récupérer les données du niveau supérieur. Voici un exemple sur la réutilisation de valeurs au niveau du site pour pré-remplir les champs au niveau de la visite:
621+
C'est valable tant que le `test3` n'a pas été modifé à la main (i. e.
622+
`objForm.controls.test3.dirty` n'est pas vrai).
617623

618-
Fichier de configuration du niveau site:
624+
On peut donc modifer par la suite la valeur de test3 à la main.
619625

620-
```json
621-
{
622-
...
623-
"specific": {
624-
...
625-
"occ_sol": {
626-
"attribut_label": "OS",
627-
"type_widget": "select",
628-
"values": [...],
629-
"required": true,
630-
"hidden": false
631-
},
632-
"gestion":{
633-
"attribut_label": "Gestion",
634-
"type_widget": "select",
635-
"values": [...],
636-
"required": true,
637-
"hidden": false
638-
}
639-
}
640-
```
641-
642-
Fichier de configuration du niveau visite:
643-
644-
```json
645-
{
646-
...
647-
"specific": {
648-
...
649-
"occ_sol": {
650-
"attribut_label": "Occupation du sol à grande échelle",
651-
"type_widget": "select",
652-
"values": [...],
653-
"required": true,
654-
"hidden": false
655-
},
656-
"gestion":{
657-
"attribut_label": "Gestion",
658-
"type_widget": "select",
659-
"values": [...],
660-
"required": false,
661-
"hidden": false
662-
}
663-
},
664-
"change": [
665-
"({objForm, meta}) => {",
666-
"const occ_sol = (meta.parents.site.properties.occ_sol);",
667-
"const gestion = (meta.parents.site.properties.gestion);",
668-
"(objForm.value.occ_sol == (null || undefined) && meta.parents.site.properties.occ_sol != (null || undefined) ? objForm.patchValue({occ_sol}) : '');",
669-
"(objForm.value.gestion == (null || undefined) ? objForm.patchValue({gestion}) : '');",
670-
"}",
671-
""
672-
]
673-
}
674-
```
626+
Comme précemment on peut aussi avoir accès à meta.
675627

676628
# Nomenclature
677629

0 commit comments

Comments
 (0)