new UiFormSpecifier().ui user, {
section "User", {
field user.username_
field user.firstName_
field user.lastName_
ajaxField user.manager_,
this.&selectUser
}
formAction this.&saveUser
}Créez votre propre intranet avec un DSL (sans HTML ni JavaScript)
Taack-UI est un plugin Grails qui étend Grails en décrivant les interfaces utilisateur à l’aide d’un DSL Groovy (Domain Specific Language), typé statiquement.
Première application
Étape par étape : un tableau, un formulaire, un filtre, un menu.
Essayer les DSL
Chaque page de DSL ouvre ses exemples en direct, dans une fenêtre modale.
Du code à l’écran
Un formulaire tient en quelques lignes de Groovy. Les champs sont des symboles générés à partir de votre classe (username_), vérifiés par le compilateur ; les contraintes deviennent des messages d’erreur traduits.
def form() {
DslSampleUser u = new DslSampleUser()
taackUiService.show(new UiBlockSpecifier().ui {
modal {
form createForm(u, {
row {
col {
section 'User', {
field u.username_
field u.firstName_
field u.lastName_
}
}
col {
section 'Details', {
field u.age_
field u.birthday_
field u.city_
field u.status_
field u.enabled_
}
}
}
formAction this.&saveForm as MC
})
}
})
}
Fonctionnalités
Sécurité par champ
Les objets sont affichés et modifiés selon les droits de l’utilisateur sur chaque champ. Les liens et actions de formulaire que l’utilisateur ne peut pas exécuter sont automatiquement masqués.
Un seul DSL, tous les formats
La même description génère du HTML, du PDF, des e-mails et du CSV.
Traduit et validé
Les libellés proviennent des fichiers i18n, et les erreurs de validation sont traduites sans code supplémentaire.
Filtrer, trier, paginer
Des tableaux et des filtres sans écrire de requêtes ni conserver de données en session.
Recherche plein texte
Indexation Solr d’objets du domaine typés statiquement, avec facettes et classement. Les aperçus de fichiers sont extensibles.
JDBC sur votre modèle
Interrogez les objets du domaine avec TQL (Taack Query Language) depuis IntelliJ, DBeaver ou LibreOffice Base.
SSH & SFTP
Une interface shell s’exécutant dans le processus serveur et un système de fichiers virtuel par utilisateur, avec vérification des identifiants (module taack-ui-ssh).
Serveur Git
L’application Intercom sert Git via SSH : la documentation écrite en AsciiDoc est poussée via Git, puis rendue.
Pourquoi Taack ?
| Taack | Grails avec GSP | Front-end JavaScript | |
|---|---|---|---|
Interface écrite en |
DSL Groovy, typé statiquement |
Templates GSP, HTML, CSS |
JavaScript ou TypeScript, plus une API REST |
Noms des champs vérifiés |
À la compilation |
À l’exécution |
Dépend du contrat d’API |
Droits par champ et action |
Intégrés, liens masqués automatiquement |
Écrits à la main |
Écrits à la main, des deux côtés |
PDF, CSV, E-mails |
Même DSL que pour l’écran |
Code séparé |
Code séparé |
Langages à connaître |
Groovy |
Groovy, HTML, CSS, JavaScript |
Groovy ou Java, JavaScript, HTML, CSS |
Réalisé avec Taack
Collabora Editor : édition en ligne de pièces jointes bureautiques avec Collabora.
SSH & SFTP







