You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Configuration de la carte](#configuration-de-la-carte)
21
22
-[Exports](#exports)
@@ -494,35 +495,35 @@ Par exemple :
494
495
},
495
496
```
496
497
497
-
### Les paramètres dynamiques
498
-
499
-
Il est possible de définir des paramètre qui peuvent dépendre de
500
-
plusieurs variables. La valeur de ce paramètre est alors une chaîne de
501
-
caractère qui définit une fonction, qui utilise les variables suivantes
502
-
503
-
**Ce cas n'est pris en compte que pour les composants spécifiques, ou
504
-
pour les composants redéfinis dans `specific`**
505
-
506
-
*`value` : les valeurs du formulaire
507
-
*`attribut_name` : du composant concerné
508
-
*`meta` : un dictionnaire de données additionelles, et fourni au
509
-
composant dynamicFormGenerator, il peut contenir des données sur
510
-
* la nomenclature (pour avoir les valeurs des nomenclature à
511
-
partir des id, ici un dictionnaire avec `id_nomenclature` comme
512
-
clés.
513
-
*`bChainInput` si on enchaine les relevés
514
-
* etc.. à redéfinir selon les besoins
515
-
516
-
La chaine de caractère qui décrit la fonction doit être de la forme
498
+
## Les paramètres dynamiques
499
+
500
+
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.
501
+
502
+
**Ce cas n'est pris en compte que pour les composants spécifiques, ou pour les composants redéfinis dans `specific`**
503
+
504
+
Il est possible de définir des fonctions à deux niveaux:
505
+
* au niveau de chaque champ du formulaire
506
+
* au niveau global au formulaire (via la fonction change)
507
+
508
+
Les variables accessibles en fonction des différents contextes sont les suivantes :
509
+
*`value` : la valeur du formulaire. Dans le contexte d'un champ specific
510
+
*`attribut_name` : du composant concerné. Dans le contexte d'un champ specific
511
+
*`objForm` : Formulaire. Dans le contexte de la fonction change
512
+
*`meta` : Dictionnaire de données additionnelles, contient les données suivantes. Dans tout les contextes
513
+
*`nomenclatures`: liste des nomenclatures utilisées. Dictionnaire avec `id_nomenclature` comme clé.
514
+
*`dataset` : liste des jdds disponibles pour l'utilisateur et le module
515
+
*`id_role` : identifiant de l'utilisateur courant
516
+
*`bChainInput`: si on enchaîne les relevés
517
+
*`parents`: Objets parents. Permet de récupérer les valeurs définies dans le parents.
518
+
519
+
520
+
La chaîne de caractère qui décrit la fonction doit être de la forme
Le format JSON ne permet pas les sauts de ligne dans les chaines de
524
-
caractère, et pour avoir plus de lisibilité, quand la fonction est plus
525
-
complexe, on peut aussi utiliser un tableau de chaine de caractères :
526
+
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 :
526
527
527
528
```json
528
529
"hidden": [
@@ -531,16 +532,11 @@ complexe, on peut aussi utiliser un tableau de chaine de caractères :
531
532
"}"
532
533
]
533
534
```
535
+
534
536
535
-
Le lignes seront collées entre elles avec l'ajout de saut de lignes
536
-
(caractère [n]{.title-ref}).
537
-
538
-
Il faut être certain de sa fonction.
537
+
### Exemples champs des formulaires
539
538
540
-
Exemples :
541
-
542
-
* Afficher le composant `test2` et le rendre obligatoire seulement si
543
-
`test1` a pour valeur `t` :
539
+
* Afficher le composant `test2` et le rendre obligatoire seulement si `test1` a pour valeur `t` :
544
540
545
541
```json
546
542
"specific": {
@@ -557,8 +553,7 @@ Exemples :
557
553
}
558
554
```
559
555
560
-
* Ajouter un champs pour renseigner la profondeur d'une grotte si le
561
-
type de site est une grotte
556
+
* Ajouter un champ pour renseigner la profondeur d'une grotte si le type de site est une grotte (cd_nomenclature '1')
562
557
563
558
Dans le fichier `site.json`
564
559
@@ -575,15 +570,13 @@ Dans le fichier `site.json`
575
570
}
576
571
```
577
572
578
-
**Le paramêtre ``value`` ne peut pas être dynamique, pour changer la
579
-
valeur des variables en fonction d'autres variables, on peut définir
580
-
``change`` dans la config. Voir ci dessous**
573
+
**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**
581
574
582
-
### La variable `change`
575
+
### Exemples variable `change`
583
576
584
-
On peut y définir une fonction qui sera appelée chaque fois que le
585
-
formulaire change.
577
+
On peut y définir une fonction qui sera appelée chaque fois que le formulaire change.
586
578
579
+
**Exemple utilisation de objForm**
587
580
Un exemple (`module.json` du module test) :
588
581
589
582
```json
@@ -617,14 +610,69 @@ Un exemple (`module.json` du module test) :
617
610
}
618
611
```
619
612
620
-
Ici on donne à la variable `test3` la valeur `<test>_<test2>`.
613
+
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.
614
+
621
615
622
-
C'est valable tant que le `test3` n'a pas été modifé à la main (i. e.
623
-
`objForm.controls.test3.dirty` n'est pas vrai).
616
+
**Exemple valeur par défaut en fonction des valeurs du formulaire parent**
617
+
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:
624
618
625
-
On peut donc modifer par la suite la valeur de test3 à la main.
619
+
Fichier de configuration du niveau site:
626
620
627
-
Comme précemment on peut aussi avoir accès à meta.
621
+
```json
622
+
{
623
+
...
624
+
"specific": {
625
+
...
626
+
"occ_sol": {
627
+
"attribut_label": "OS",
628
+
"type_widget": "select",
629
+
"values": [...],
630
+
"required": true,
631
+
"hidden": false
632
+
},
633
+
"gestion":{
634
+
"attribut_label": "Gestion",
635
+
"type_widget": "select",
636
+
"values": [...],
637
+
"required": true,
638
+
"hidden": false
639
+
}
640
+
}
641
+
```
642
+
643
+
Fichier de configuration du niveau visite:
644
+
645
+
```json
646
+
{
647
+
...
648
+
"specific": {
649
+
...
650
+
"occ_sol": {
651
+
"attribut_label": "Occupation du sol à grande échelle",
0 commit comments