Table of Contents
-
Rendu en HTML
-
Rendu en Mails
-
Rendu en PDF
-
Rendu en CSV
Validation du formulaire
Figure 1. Formulaire localisé
Lors de l’enregistrement d’un objet, les erreurs sont signalées, localisées, sans coût supplémentaire…
Voir la documentation de Grails sur Constraints Usage pour vérifier la validité de votre objet avant de l’enregistrer.
Exemple de code
Exemple de code de formulaire 1.
def userForm(User user) {
user ?= new User(params)
UiFormSpecifier f = new UiFormSpecifier() (1)
f.ui user, { (2)
section "User", { (3)
field user.username_ (4)
field user.firstName_
field user.lastName_
ajaxField user.manager_, (5)
this.&selectUserM2O as MC
field user.password_
}
section "Coords", {
field user.businessUnit_
field user.mail_
field user.subsidiary_
}
section "Status", {
field user.enabled_
field user.accountExpired_
field user.accountLocked_
field user.passwordExpired_
}
formAction this.&saveUser as MC, (6)
user.id
}
UiBlockSpecifier b = new UiBlockSpecifier() (7)
b.ui {
modal {
form f, BlockSpec.Width.MAX
}
}
taackUiService.show(b) (8)
}
1 | Créer le formulaire |
2 | Passer l’objet à éditer et la spécification du formulaire |
3 | Section appelée utilisateur |
4 | Champ de base, se terminant par un trait de soulignement, ces symboles sont générés par Taack AST sur la classe avec l’annotation TaackFieldEnum |
5 | Relation Many-To-One, l’action selectUserM2O ouvrira une fenêtre contextuelle pour sélectionner le gestionnaire de l’utilisateur |
6 | Spécifier une action à laquelle le formulaire sera envoyé. Ici, c’est saveUser , cela va sauvegarder l’utilisateur |
7 | Créer le bloc dans une fenêtre modale |
8 | L’afficher… |
Figure 2. Formulaire dans une fenêtre modale.
Hiérarchie des symboles DSL
Figure 3. Diagramme de hiérarchie des symboles pour le formulaire DSL
Éléments DSL
Entrées
-
hiddenField
: ajouter une entrée de type hidden dans le formulaire. -
field
: ajouter une entrée avec une étiquette. -
ajaxField
: ajouter un champ many 2 many ou many à un champ. La MethodClosure doit pointer vers un bloc affichant une fenêtre modale
Structure
-
section
: ajouter une section de formulaire, éventuellement Largeur de la section -
col
: permet de diviser la section en colonnes
Action
-
formAction
: libellé, action appelée, paramètres de l’action (id et map), est ajax