Un changement de digit implique de grandes nouveautés, nous allons nous atteler à détailler les plus importantes au sein de ce billet de blog. Asseyez-vous confortablement la ligne Simplicité fait un stop à la station « Bonne Nouvelle ».
La première nouveauté de cette V5 concerne le versioning. Exit les patchlevels, dorénavant les versions sont appelées plus communément 5.X.Y . Cette façon de nommer doit nous permettre d’améliorer la lisibilité des nouvelles versions que nous livrons :
• Le numéro (ici 5) est le numéro de la version majeure
• Le x correspond au numéro de version mineure (c’est l’équivalent des niveaux de patchlevel des anciennes versions)
• Le y correspond au numéro de révision, il n’existait pas dans les versions précédentes (le Git commit ID était utilisé pour suivre les révisions, ce qui n’était pas très intuitif), il sera augmenté à chaque fois qu’une révision.
À noter, nous profiterons de ce changement de versionning pour être plus dynamique sur la sortie des versions ainsi V 5.0 étant officielle, la V 5.1 sortira donc 1 à 2 mois seulement après, la version V 5.2 suivra la même temporalité. Il y aura des beta et de releases plus régulièrement ceci permettant de limiter les risques liés aux upgrades.
Changement très important en termes de plateforme technique : avec la version 5 il n’y a plus de support pour le JDK 1.8, pour faire tourner Simplicité il vous faut dorénavant être à minima sur une version 11. Mais comme toujours, il vaut mieux utiliser un JDK à jour, 15 au moment d’écrire ces lignes.
À noter également la fin des composants legacy (version 3.2 de Simplicité) et la dépréciation de “GrantHooks” au profit d’un nouveau script partagé “PlatformHooks”.
Fidèles à notre leitmotiv de mise à jour des composants que nous utilisons pour la UI (User Interface). Bootstrap 4, Fullcalendar 4 et Jquery 3.5.1 deviennent la norme.
S’il est toujours possible d’utiliser les anciennes versions de ces composants tiers (sauf pour jQuery) nous conseillons vivement de migrer vos développements sur ces nouvelles versions. Les anciennes versions de ces composants ne seront plus supportées dans la prochaine release majeure.
Il faut considérer ça comme une aide la transition, mais qui ne dispense pas de faire cette transition 🙂 .
Le diable se cache dans les détails, il faut aller voir du côté du CSS pour trouver le premier “gros” changement avec le passage à bootstrap 4, exit les “px” welcome les “rem” (1rem=16px). Cette unité de mesure offre une bien meilleure réactivité de l’affichage en fonction de la taille de l’écran. Ce qui nous a permis d’inclure une fonctionnalité d’accessibilité très pratique, un slider à la main de l’utilisateur permettant de zoomer à volonté.
Slide to zoom
Au titre des nouveautés apportées par Bootstrap 4 l’utilisation du “flex” en lieu et place des traditionnels “float” ceci nous a permis de développer un mode compact ou aéré. Très pratique pour les écrans contenant d’imposants formulaires puisque les libellés des champs passent à gauche et les marges se réduisent pour gagner un maximum de place.
Mode compact ou aéré
Un nouveau mode appelé “verrouillage” permet de bloquer l’ouverture d’un formulaire en mise à jour. En d’autres termes la première personne qui ouvre un formulaire pose automatiquement un verrou sur le formulaire. Les autres utilisateurs qui ouvrent ce même formulaire seront en lecture seule et verront la personne qui détient le verrou grâce à un petit cadenas au niveau de l’avatar en haut du formulaire.
Pour mémoire les autres “timestamp” sont :
C’était un besoin récurrent des utilisateurs de Simplicité, permettre l’upload de plusieurs documents sur un seul champ (de type document). Aujourd’hui rien de plus simple, en paramétrant un rendering de type “multi-doc” sur le champ document l’utilisateur peut uploader N documents en choisissant via le sélecteur du navigateur ou directement en drag’n’drop.
Petite cerise sur l’upload, il est également possible de choisir la preview qui sera faite : en liste ou en vignette.
À savoir qu’il est également possible de limiter types de fichiers (MIME-types ou extensions : pdf, image…) ainsi que de préciser des tailles minimales ou maximales.
Il était possible de créer des recherches prédéfinies et de les enregistrer pour que l’utilisateur final puisse les lancer. Dans la V5 “Bonne Nouvelle” nous avons fait une séparation entre la lecture et l’écriture. On peut ainsi créer des recherches qui sont publiques modifiables ou non.
Par défaut, le droit d’écriture et de lecture sont activés, mais il est désormais possible de ne rendre ces recherches disponibles qu’en lecture seule.
De nouveaux modes pour aider les designers à développer plus rapidement (et facilement).
C’est un “super utilisateur” qui permet de se reconnecter, sans password, à n’importe quel compte existant. Ce mode est très utile pour le développement, cela permet de changer de profil sans forcément avoir tous les mots de passes de tous les users. Il est possible de changer d’utilisateur en mettant seulement le login de ce dernier.
En production, cela peut servir pour les fonctions de supports pour prendre la main à distance et reproduire un problème.
Évidemment à réserver à des utilisateurs nommés, ce flag ne sera pas mis au niveau global sur la plateforme.
Nouvelle fonction permettant de se mettre à la place d’un utilisateur
Ce nouveau mode offre la possibilité de se connecter avec tous les comptes avec lesquels je me suis connecté sur le poste de travail (en local storage). C’est un usage normal que l’on peut faire en production si nous avons plusieurs casquettes au lieu de se déconnecter et de ressaisir le mot de passe.
La représentation d’un objet vers un autre évolue, la relation n’est plus forcément une liste, mais ici des vignettes sous forme de pillbox que l’on peut ajouter ou supprimer. L’action effectuée fera une mise à jour en base.
Ainsi il est désormais possible d’éditer et faire des recherches de cette relation N-N directement depuis la liste. Ce sera ici une recherche “fulltext” sur la clef fonctionnelle. Par exemple, ma clef fonctionnelle est une liste de pays, il me suffira de taper %Fra% pour trouver la France.
Autre évolution sur les listes, la possibilité de grouper les éléments d’une liste avec un compteur. L’usage ici sera typiquement de grouper des familles de produits (dans notre démonstration il s’agit de tablettes, ordinateurs, smartphones…).
Groupement des les items par catégories
Il arrive que les formulaires soient disposés sous forme d’onglets. De fait lorsqu’une erreur apparaissait sur un autre onglet du formulaire il était difficile de s’y retrouver.
Dorénavant un simple clique sur l’erreur remontée (sur le haut de page) permet d’y accéder grâce au focus qui sera fait. Simple comme Simplicité.
Gestion des erreurs simplifiée
Les spinners classiques laissent place à des chargements plus fluides de types skeleton (sur les listes, formulaires et treeview).
Chargement “skeleton” des interfaces
Également au titre des nouveautés sur les inputs ranges :
Nouveau rendering plus riche du notepad, tout est stocké dans un blob en base (au format JSON), mais sans habilitation particulière.
Il est ainsi possible d’avoir :
Le cas d’usage est typiquement pour faire du suivi opérationnel de dossier, de l’avancement de tâche ou du pilotage de dossiers.
Nouveau rendu du Notepad
Concernant les autres nouveautés :
Autosize des champs, Grille et Synthèse vocale
Historiquement les raccourcis allaient se loger dans le menu en haut à droite du header de l’application. Ce mode reste disponible, mais il est maintenant possible d’afficher en plus ces raccourcis en page d’accueil (comme une vue) de l’application.
Ces raccourcis supportent également les infobulles.
En V5, à l’upload ou au download de plusieurs fichiers tout peut être bufferisé et par définition asynchrone. Ce n’est pas le navigateur qui fait un download mais Simplicité qui gère en back-office.
Lorsque les utilisateurs font des traitements avec de gros fichiers, il n’y a plus d’éléments bloquants. Les instances d’exports sont isolées dans des espaces particuliers pour éviter tout conflit avec ce qu’il se passe à l’écran.
La nouvelle V5 de Simplicité intègre des API (class helper) qui permettent d’interagir avec Trello et Slack. À titre d’exemple ces API sont utilisés dans notre démo pour les alertes (sur transitions d’états). Les alertes anciennement envoyées via les emails par exemple peuvent l’être via Trello ou Slack. Ce sont des usages à adapter en fonction des problématiques de chaque application bien entendu.
Docusign est désormais un objet natif avec toutes les librairies à jour. Le processus de signature de document est porté nativement. Cela permet de mettre une enveloppe qui contient N-documents avec des paraphes et des espaces de signatures ainsi que des listes de destinataires qui peuvent être des utilisateurs connus de la plateforme ou des utilisateurs externes. Par la suite tout est envoyé chez Docusign, les webhooks implémentés permettent à Simplicité de savoir qui a signé, tout est stocké dans l’application.
Ce composant existé dans les précédentes versions de la plateforme, il est de retour dans la V5. Ainsi entre deux ressources, par exemple, une personne et un projet, il est possible d’affecter des tâches avec des données au sein de cette relation N-N. Cela permet typiquement d’imputer des temps en fonction de tâches décrites.
Le timesheet peut-être définit par jour / par semaine / par mois. Il est également possible de cliquer sur une tâche pour changer l’angle de vue par contraposée.
Ce composant permet de prévenir les utilisateurs :
À partir du moment où un tableau croisé à des lignes éditables il est possible d’en modifier les cellules en cliquant simplement dessus. Le cas ici sera typiquement pour des traductions. Il est ainsi possible nativement de cliquer dans une cellule à traduire pour directement éditer le texte et la valeur.
Le bouton de sauvegarde permet d’envoyer toutes les traductions “en masse”.
L’usage de cette fonctionnalité pour la matrice des traductions est un exemple qu’il est possible d’appliquer à d’autres cas bien entendu.
Toujours sur le principe de l’application hybride (Cordova) cette nouvelle application compatible V5 permet de faciliter grandement la gestion des Upgrades (toutes les ressources statiques sont téléchargées en local).
Elle se mettra à jours toute seule sans passer par le store. Toute application V5 de Simplicité peut se connecter avec les applications déployées dans l’Apple Store et le play Store.
Afin de limiter les problèmes d’incompatibilités de nos composants Simplicité. Il est dorénavant possible de charger les Classloaders de composants tiers dans un seul Classloader (stack de Classloader)… Pas de collision possible (par exemple avec le composant Docusign).
Le monitoring s’est doté d’un nouvel onglet “ClassLoaders” permettant de debuguer tous les Classloaders indépendamment les uns des autres.
Par ailleurs, il est à noter que le composant Monitoring n’est plus une Iframe, il est maintenant intégré nativement à Simplicité.
Pour les designers qui ne codent pas dans Éclipse, VScode ou tout autre IDE, l’éditeur de code s’est amélioré.
L’éditeur de code se dote d’une navigation facilitée pour accéder plus rapidement aux ressources des différents modules. La navigation en arbre permet aisément d’accéder aux différents objets.
À sa première connexion l’utilisateur choisi désormais ça langue de préférence parmi les langues connues par la plateforme.
Cette information est ensuite stockée au sein d’un champ (“langue préférée”) pour l’utilisateur. Il aura par la suite la possibilité de changer a volée et facilement cette langue au besoin.
C’est une ressource qu’il est possible de modifier si nécessaire pour ajuster ou masquer une des informations.
C’est une ressource qu’il est possible de modifier si nécessaire pour ajuster ou masquer une des informations.
Il y a dorénavant une vraie dichotomie entre les dépendances de modules et la hiérarchie. C’est dorénavant beaucoup plus clair pour les designer-administrateurs de s’y retrouver.
Et enfin une information plus clair au clear cache de session :
Voilà les plus grandes nouveautés de cette V5.0 – Bonne nouvelle, mais comme cette liste n’est pas exhaustive nous vous conseillons de lire la release note complète ici-même