DSL pour interface utilisateur

  • Efficacité lors du développement et maintenance

  • Mise en évidence des erreurs au moment du codage

  • Concision du code

Avantages

  • Plus expressif

  • Expressions statiques pour analyses

  • Pas de JavaScript / ni de HTML

Formulaires

        new UiFormSpecifier().ui user, {
            section "User", {
                field user.username_
                field user.firstName_
                field user.lastName_
                ajaxField user.manager_, this.&selectUserM2O
                field user.trigram_
                field user.password_
            }
        // [ . . . ]
        }

Composants graphiques

  • Table

  • Filtre

  • Formulaire

  • Détails

  • Graphiques

Composants étendus

  • Prévisualisation de fichiers

  • Recherche textuelle

  • Pilote JDBC pour interroger le modèle


Taack-UI est une extension de Grails, permettant de décrire l’interface utilisateur et la sécurité d’une application Grails via des DSL Groovy statiquement typées. Le cadre offert par cette extension propose également de simplifier (et tester statiquement par l’IDE) les fonctionnalités suivantes par rapport à une application Grails classique :

  • La sécurité :

    • Transformation et affichage des objets limités aux champs modifiables par l’utilisateur ;

    • Gestion du masquage des actions accessibles à l’utilisateur à un endroit unique ;

    • Le listage des données accessibles à l’utilisateur ;

  • PDF, Mails, CSV, autres peuvent être rendu avec le mème code ;

  • Le support de Solr pour la recherche textuelle :

    • Recherche et indexation textuelle des objets ;

    • Faceting

    • Ranking

  • Le filtrage, la pagination et le triage des données sans avoir besoin de composer des requêtes ou maintenir des données en session ;

  • Gestion des aperçus de fichiers extensibles (accessible plus tard, la prévisualisation des fichiers STEP, DWG et autres en plus des formats bureautiques communs)

  • Driver JDBC, permettant le requêtage d’objet via le langage TQL (Taack Query Language) limitant la portée de la requête aux objets autorisés. Utilisable avec DBeaver, Intellij ou LibreOffice Base, comme une base de données classique.

  • Partage de fichier (expérimental) via Ssh

    • Système de fichier virtuel par utilisateur composé par le serveur d’application via SFTP (voir Sftp file browser)

      • Par exemple le répertoire /<username>/crew/pictures contient les photos des utilisateurs du système, bien que le stockage des photos sur le disque dur n’ait pas cet agencement

      • Le fichier /<username>/crew/users.csv contient les données des utilisateurs actifs du système, bien que ce fichier ne soit généré qu’au moment de l’accès et soit non stocké ;

    • Accès à une partie du système de fichiers réels du serveur pour créer des espaces d’échange rapide ;

  • Shell (expérimental) via ssh permettant de définir des interfaces graphiques s’exécutant entièrement sur le serveur (voir Ssh server session)

screenshot ssh
Figure 1. Ssh server session
screenshot sftp
Figure 2. Sftp file browser