Skip to main content

Nouveautés de la version 4.7

1. Mise à jour du socle technique

Migration vers WildFly 38.

Les versions minimales des navigateurs supportés sont les mêmes que depuis la 4.3.

La version 25 LTS de Java est maintenant supportée en plus des versions 17 et 21.
La version 25 permet de réduire la mémoire occupée de quatre octets par objet instancié (soit environ 13 % de mémoire économisée sur le tas) si le paramètre -XX:+UseCompactObjectHeaders est activé (ce qui est le cas par défaut).

L’ancienne librairie JavaSysMon a été remplacée par la librairie OSHI qui nous permet d’afficher le débit réseau (avec graphique) dans la page de supervision de la plateforme.

Les conversions via LibreOffice ne sont plus appelées en ligne de commande, mais via le mode API par la librairie JODConverter ce qui permet de lancer LibreOffice en mode Listen et de manière anticipée pour gagner en performance. Cela permet désormais des conversions en parallèle ainsi que la mise à jour des tables des matières avant la conversion.

La librairie Puppeteer JavaScript a été remplacée par sa conversion Java nommée Jvppeteer permettant de gagner en performance.

En conséquence, NodeJS n’est plus utilisé par le Player, uniquement lors de l’édition des feuilles de styles CSS pour l’exécution de la librairie JavaScript autoprefixer. Par conséquent, la version 16 de NodeJS est de nouveau compatible avec la plateforme. Il est donc possible et recommandé de supprimer NodeJS des serveurs de production.

Chrome ou Chrome Headless Shell peuvent être utilisés à la place du Chromium installé par le système d'exploitation en récupérant la dernière version stable à cette adresse : https://googlechromelabs.github.io/chrome-for-testing/#stable.
Pour l’installer, il faut le décompresser dans le répertoire /opt/ontomantics puis faire un lien symbolique chromium pointant vers son dossier : la plateforme l’utilisera en priorité sur celui du système. Cela offre une alternative au paquet SNAP sous Ubuntu.

2. Gestion du mode sombre

La plateforme intègre deux nouveaux thèmes intégrant les jeux de couleur clair et sombre : 

  • lightdark
  • materiallightdark 

Ces deux styles peuvent être choisis dans l'éditeur de thème de l'application.

Dans ce cas, deux onglets apparaissent qui permettent de choisir les couleurs pour les modes clair et sombre. À la sauvegarde, la feuille de style ThemeRoller est créée avec les couleurs personnalisées.

Pour les styles personnalisés, il est possible ded'affecter facilement affecter des couleurs différentes selon les modes au moyen de la fonction CSS light-dark(couleur-mode-clair, couleur-mode-sombre).

La fonction light-dark() n'étant compatible qu'avec les navigateurs Chrome 123,123, Firefox 120 et Safari 17.5,5 et supérieures, à la sauvegarde, uneun media query @supports not (color: light-dark(white, black)) sera automatiquement généré (via l'exécution d'un script NodeJS si installé) pour assurer la compatibilité avec les navigateurs antérieurs.

Un nouveau type spécial d'élément de menu Thème est disponible pour les applications utilisant lesle thèmesms lightdark.lightdark.

Une nouvelle variable prédéfinifinie Thème est disponible pour afficher le mode actuel de l'application parmi light,light, dark,dark, auto light et auto dark. Elle est accessible en écriture pour ces mêmes applications.

Le Designer utilise lui-même le thème materiallightdark en mode thème du système par défautfaut. Un bouton menu (dans la partie droite de l'entête) permet de choisir le mode clair, le mode sombre ou le mode du système.

Il est aussi possible de changer de mode dans les préférences utilisateursutilisateur du désignerDesigner et des applis ayant lesle thèmesme lightdark.lightdark.

Les thèmes black ont aussi été revus.

3. Autres fonctionnalités

Les rapports PDF ont un mode performant disponible avec Chromium version 131 minimum (version minimale désormais recommandée). 
Ce mode permet de se passer de la librairie Pages.js qui s’occupait de découper le contenu HTML en pages avec des en-têtes et pied de pages complexes. Le mode performant évite certains bugs de mise en page, mais ne gère pas les fonctionnalités suivantes : 

  • Le code HTML dans les marges ;
  • Les composants qui ne sont pas des étiquettes dans les marges ;
  • Certains styles CSS ne sont pas supportés dans les marges ;
  • Les noms des chapitres en cours dans les marges ;
  • Les notes de bas de page (avec le style float: footnote;).

Les rapports PDF gèrent dorénavant les variables CSS suivantes : --page-header-text-color--page-header-bg-color, --page-footer-text-color et –page-footer-bg-color.

Sur le composant Carte :

  • Les types de tuiles GeoJSON et WMS ont été fusionnés avec le type Surimpression pour permettre de passer d’un type à l’autre plus facilement par comportement. Ils fonctionnent à présent également comme tuile de base.
  • Le support des fichiers de type ShapeFile a été retiré de la plateforme en raison de leur lourdeur les rendant souvent inutilisables. Il faut les convertir en fichier GeoJSON avec un outil tiers.

La librairie ComplexMail dispose d'une nouvelle fonction addAttendee() permettant de définir les participants d’une invitation avec les paramètres Rôles (parmi : CHAIR, REQ-PARTICIPANT, OPT-PARTICIPANT ou NON-PARTICIPANT) et Statuts (parmi : NEEDS-ACTION, ACCEPTED, DECLINED ou TENTATIVE).

Les fonctions durationToString() et les champs de jeux de données de type Durée acceptent des patterns avec des parenthèses qui seront supprimées si la valeur à l’intérieur est 0 :
(y ‘année(s)’) (M ‘moi(s)’) d ‘jour(s)’ renverra les années et les mois seulement s'ils ne sont pas à 0 et les jours dans tous les cas.
Une version des fonctions durationToString() avec le paramètre supplémentaire locale a été ajouté afin que, si la locale est fr, le s des patterns (s) soit retiré pour la valeur 0.

Possibilité de créer des colonnes supplémentaires sur les Tableaux Croisés, Plannings et GANTTs. Ces nouvelles colonnes peuvent être soit :

  • D’un type spécial où il est possible de choisir le type de valeur parmi Nom de la ligne, Date de début et Date de fin ;
  • D’un type simple (lié à un champ d’un jeu de données) mais qui nécessite de sélectionner un agrégat au cas où il y ait plusieurs lignes du jeu de données pour une ligne de tableau parmi Première valeur, MIN, MAX, AVG, SUM.

Possibilité de contrôler l’état déplié / replié des lignes d’un planning expansible via une colonne du jeu de données.

Une option permet d’afficher les dates de début et de fin sur les tâches des plannings et GANTTs.

Une nouvelle option est disponible sur les tableaux droits expansibles pour ne pas trier les groupes alphabétiquement par défaut et conserver l’ordre du jeu de données.

Les composants Tableau, Planning et GANTT ont un nouveau type de colonne Menu contextuel affichant un bouton ellipse déclenchant le menu contextuel de de la colonne ou de la ligne située derrière.

L’action Affectation de contrôle dispose d'une nouvelle propriété Affecter le focus qui fonctionne aussi sur les composants Conteneurs et qui a pour effet de faire défiler la page sur l’élément si nécessaire.

Lors de la création de requêtes sur plusieurs tables ayant plusieurs clés étrangères entre elles, une boîte de dialogue demande de choisir laquelle créer automatiquement.

Ajout d'une option dans les SSO OpenID Connect et SAML pour déconnecter du serveur SSO à la déconnexion de la plateforme.