Nouveautés de la version 4.1
1. Mise à jour de WildFly et du socle technique
-
Migration vers WildFly 16.0.0 ;
-
Migration vers OpenJDK 11 (JDK 8 n’est plus supporté) ;
Nous utilisons désormais les versions sous licence GPL fournies par AdoptOpenJDK.net, au lieu de celles du site officiel Java.net, car ce dernier cesse de les fournir dès qu’une version majeure non-LTS est disponible. De plus, les versions officielles d’Oracle ne peuvent pas être redistribués ;
-
OpenJDK 11 n’étant plus disponible pour Linux 32 bits et Solaris, ces OS ne sont donc plus supportés ;
-
OpenJDK 11 pour Windows nécessite au minimum les versions Serveur 2012r2 ou 8.1 ;
-
Possibilité d’installer l’OpenJDK dans le répertoire /opt/ontomantics/java et utilisation de celui-ci en priorité si détecté, ce qui permet de les gérer plus facilement que via les paquets systèmes ;
-
Mise à jour de toutes les libraires utilisées ;
-
Script de mise à jour automatisé depuis la branche antérieure ;
-
Remplacement de l’application de capture d’écran par PhantomJS bien que n’étant plus développé. Les dépendances xvfb et libqtwebkit4 ne sont plus nécessaires ;
-
Correction d’un bug de cache lors d’imports de projets ;
2. Migration du Designer et du débogueur vers le framework OUI
La première étape a consisté à mettre à jour toutes les dépendances JAVA.
Migration du Designer et du débogueur vers le framework OUI et abandon définitif d'ICEfaces.
Le nouveau Designer en OUI arbore plusieurs améliorations :
-
-
Les 4 derniers accès (applications…),
-
4 chiffres clé (nombre d’utilisateurs uniques connectés, session ouvertes, session actives, uptime),
-
4 graphiques montrant les ressources consommées (CPU, mémoire physique, mémoire utilisé par le tas, espace de stockage) ;
-
Les 12 dernières news et tutoriels du centre d’aide d’ontomantics.com rafraîchi toutes les 6 heures ;
-
-
Ajout des Cards sur les projets (4 derniers utilisés) ;
-
Ajout dans l’édition d’écran d’un bouton + ouvrant la liste des composants entre chaque contrôle et chaque ligne pour insérer directement un composant ;
-
Support des boutons Précédent et Suivant du navigateur dans les applications ;
-
Affichage de graphiques en temps réel pour le CPU ;
-
Un menu Designer totalement repensé :
Le nouveau débogueur en OUI contient plusieurs nouvelles fonctionnalités :
-
De meilleures performances grâce aux arbres et au Push du framework OUI ;
-
Possibilité de déboguer plusieurs applications simultanément ;
-
Possibilité de lancer le débogueur directement sans passer par le Designer via une URL ;
-
Possibilité de lancer le débogueur sur une application sur un ancien navigateur non supporté par le Designer en copiant l’URL ;
-
Séparation verticale en bas à droite pour afficher les propriétés de contrôles dans un tableau éditable plutôt que dans l’arbre pour une meilleure lisibilité ;
-
Les paramètres retournés lors du débogage d’une méthode métier s’affichent dans un tableau filtrable et avec pagination ;
-
Remplacement des deux boutons par une barre d’onglet et outils même quand le débogueur est fermé ;
-
Ajout d'un badge sur la console avec le nombre d’erreurs ;
-
Affichage du temps d’exécution courant ou du dernier événement ;
-
Bouton pour sélectionner un contrôle à observer à la souris ;
-
Possibilité de définir des points d’arrêt en lecture et modification sur les variables et contrôles depuis leur panneau de propriétés ;
-
Ajout de Aller vers et Call hierarchy dans les menus contextuels des différends objets qui s’ouvrent sur le Designer et basculent sur cet onglet ;
-
Ajout de Réinitialiser dans les menus contextuels des écrans, contrôles et variables ;
-
Affichage, sur le panneau des propriétés des contrôles, lorsque la valeur d’une propriété est surchargée par un champ d’un jeu de données pour le layout Repeat ou pour les colonnes de tableau ;
-
Affichage également si les valeurs des propriétés Désactivé et Visible sont surchargées en raison de droits insuffisants ;
3. Navigateurs supportés pour la version 4.1
L’utilisation de l’API CSS Grid pour les formulaires du designer restreint la compatibilité de ce module à Firefox 52, Chrome 57, Opera 44, Safari 10.1 et Edge 41.
Internet Explorer et Edge < 15 supportent une ancienne version de cette spécification qui ne gère pas le placement automatique des éléments.
L’utilisation des CSS variables pour les thèmes restreint la compatibilité de la plateforme à Firefox 31, Chrome 49, Opera 36, Safari 9.1, Edge 40, iOS 9.3, Chrome sous Android et Firefox sous Android.
Les CSS variables ne fonctionnant pas sous Internet Explorer, ainsi que les trois premières versions d’Edge, leur support est donc abandonné. (Un pollyfill existe mais ne gère pas tous les cas et de plus, un contournement serait trop compliqué à implémenter dans le Theme Roller).
Les versions de Firefox antérieures à la 33 ne permettent pas de détecter lorsqu’un mot de passe a été rempli automatiquement par le navigateur et ont donc été rejetés.
Les versions minimales retenues pour la version 4.1 sont donc :
-
Mozilla Firefox 33 (52 pour le Designer)
-
Google Chrome 49 (57 pour le Designer)
-
Opera 36 (44 pour le Designer)
-
Apple Safari 9.1 (10.1 pour le Designer) (et donc nécessite au minium MacOS 10.9 Mavericks pour ce navigateur)
-
Microsoft Edge 40 (41 pour le Designer) (Correspondant aux versions 15 et 16 du moteur EdgeHTML)
-
Apple Safari sous iOS 9.3 (et donc nécessite au minium un iPhone 4s, iPhone SE, iPad 2, iPad mini, iPad Air, iPad Pro)
-
WebView iOS 9.3 (dont Chrome, Firefox et les autres navigateurs)
-
Google Chrome sous Android
-
Mozilla Firefox sous Android
-
Samsung Internet Browser 5 sous Android
-
WebView Android 5
4. Ré-implémentation des composants Liste
Ré-implémentation de tous les composants Listes plates, Listes déroulantes, Multi-sélection, Combo-box, Autocomplete, Liste à choix multiple, Liste de checkbox déroulante :
-
le regroupement des items ne fonctionne pas sur les listes plates à sélection multiple, car non géré sous Kendo UI ;
-
Il n’y a pas de filtre sur les listes plates à sélection multiple, les listes de checkboxes et de radio boutons ;
-
La liste plate à sélection simple est un hack de la liste déroulante pour les mêmes raisons que ci-dessus ;
-
Les items désactivés ne fonctionnent que grâce à un hack car non disponible sous Kendo UI ;
-
Les listes peuvent s’ouvrir en dehors de l’écran et on ne peut donc pas augmenter la taille de la liste déroulante ;
-
Les groupes font forcément trier par ordre alphabétique ;
-
La façon dont sont créés les groupes n’est pas idéale et leur style n'est pas très beau ;
-
L’icône de l’item sélectionné n’apparaît pas sur la liste déroulante comme en V3 ;
-
Le composant liste déroulante de checkbox n’est pas disponible ;
5. Système de contrôle de version
Ajout d’un système de gestion de version type SVN ou Git qui permet :
-
D’effectuer des commits (export de l’application en arrière-plan pour la stocker dans un répertoire de la plateforme) ;
-
D’afficher l’historique des changements ;
-
De restaurer un commit ;
-
De comparer les différences entre deux versions ;
-
Possibilité de programmer des commits automatiques
6. Révision du multi-entreprise
La gestion du multi-entrerpise a été revue.
Plusieurs modes sont désormais disponibles :
Le mode « Limité » comme aujourd’hui avec quelques modifications mineures :
-
Affichage « mutualisé » pour les CPU et la mémoire sur la page d’accueil ;
-
Corrections concernant le cloisonnement dans la supervision ;
-
Possibilité de charger une icône par instances et de la redimensionner automatiquement pour les différentes résolutions nécessaires pour iOS, Android et FavIcon Web et logo pour les pages Login, Connexion perdue, erreurs…
-
Ajout d'options dans l’entreprise pour limiter les ressources :
-
-
Le nombre de comptes pouvant être créés ;
-
Le nombre de sessions simultanées ;
-
Le mode Platform As A Service (PAAS) pour un hébergement mutualisé, mais totalement cloisonné :
-
Des logs séparés supplémentaires sont disponibles pour chaque entreprise ;
-
Chaque entreprise est obligatoirement liée à un ou plusieurs domaines ou sous-domaine unique ou port unique afin de déterminer dans quelle entreprise on est (grâce à l’entête HTTP Host).
-
Un compte avec le même identifiant est désormais possible dans chaque entreprise ;
-
Il est désormais possible d'avoir une application et un Web Service avec le même nom dans chaque entreprise ;
-
Les librairies de fonctions exclusives à une entreprise et stockées dans un sous-répertoire ayant l’ID de l’entreprise sont possibles ;
-
Chaque entreprise dispose de ses propres fichiers de configuration ontomanticsConfig.properties et ontomanticsLibraryConfig.properties qui permettent de surcharger certaines propriétés pour une entreprise donnée (notamment pour configurer des SMTP, Serveur mode, Timeouts, répertoires, etc. différents) ;
-
Les fichiers peuvent donc être stockés dans des répertoires spécifiques à chaque entreprise ;
-
Dans ce cas, les fichiers apparaissent filtrés dans l’administration de l’entreprise ;
-
Prise en compte sous Linux des quotas disque affecté via la commande setquota -g si un dossier est affecté à un autre groupe que celui de la plateforme avec le sticky bit ;
7. Refonte de la gestion des styles
Pour permettre aux utilisateurs de facilement modifier les thèmes, plusieurs améliorations ont été apportées :
-
Création d’un nouveau thème « dynamique » utilisant les CSS variables et simplifiant la configuration ;
-
Ajout d’un Theme Roller dans l’U.C. Style pour choisir les propriétés (couleur, polices…) à la manière du Theme Roller de jQuery : http://jqueryui.com/themeroller :
-
Affichage de toutes les variables CSS globales utilisées par le framework OUI avec pour chacune d’elle une liste pour choisir la valeur par défaut, la valeur d’une autre variable ou une valeur personnalisée activant une saisie texte ou un Color Picker ;
-
Affichage d’un aperçu avec un bouton pour désactiver les styles personnalisés ;
-
Possibilité de sélectionner, pour les variables Font family, la police de caractère utilisé par le système ;
8. Optimisation mobile et génération d'application PWA
Pour une utilisation optimale sur mobile, plusieurs corrections et améliorations ont été apportées :
-
Implémentation des technologies spécifiques au PWA :
-
-
Génération automatique du manifeste permettant au navigateur de proposer l’installation sur l’écran d’accueil du smartphone (pour les sites en HTTPS uniquement) ;
-
Création d’un Service worker devant, au minimum, mettre en cache une page Réseau indisponible lorsque le téléphone est hors ligne ;
-
Ajout d’un nouveau menu système Installer l’application qui utilisera l’événement beforeinstallprompt sur les navigateurs compatibles et le cas échéant, affichera un popup montrant dans quel menu créer le raccourci en fonction du navigateur ;
-
Possibilité de charger une icône pour l’application et la redimensionner automatiquement pour les différentes résolutions nécessaires pour iOS, Android et FavIcon Web et logo pour les pages Login, Connexion perdue…
-
Choix des couleurs de fond et d’entêtes nécessaires pour le manifeste via le Theme Roller ;
-
-
Optimisation de la communication entre le navigateur et le serveur via l’activation de l’extension permessage-deflate pour les requêtes en WebSocket ;
-
Ajout des nouveaux composants HTML5 natifs E-mail, Tel, URL et Nombre pour afficher le clavier virtuel adapté ;
-
Utilisation du composant Date et Heure native HTML5 qui ouvre le popup natif de sélection de date mieux adapté que celle sur navigateur de bureau ;
-
Support du paramètre Autocapitalize sur les saisies de texte permettant de passer le clavier virtuel en majuscule pour chaque caractère ou au début de chaque mot ou de chaque phrase si le convertisseur correspondant est attribué au contrôle ;
-
Ajout du convertisseur Capitaliser chaque phrase ;
-
Désactivation de la fonctionnalité par défaut pull-to-refresh qui rafraîchit la page en cas de défilement vers le bas ;
-
Possibilité de récupérer la position GPS d’un utilisateur avec une action Demander la localisation (avec en option la possibilité d’activer le suivi) qui provoquera un événement À la réception de la localisation sur l’application qui remplira les trois variables prédéfinies Latitude de l’emplacement actuel, Longitude de l’emplacement actuel et Précision de l’emplacement actuel. Une deuxième action Interrompre le suivi de la localisation est également disponible ;
-
Vérification de la compatibilité de chaque composant avec les doigts, dont (imitation au mieux du fonctionnement natif) :
-
-
Fermeture d’un popup avec un Touch down sur la partie modale ;
-
Sur smartphone, les listes déroulantes s’ouvrent en plein écran modal, idem pour le Color Picker ;
-
Sur smartphone, lorsqu’on entre un caractère dans le filtre d’un ComboBox, un Autocomplete ou un MultiSelect, lors de l’ouverture du popup des propositions, défiler la page vers le haut pour avoir le composant en haut afin d’avoir un maximum d’espace sur la liste ;
-
-
Implémentation du composant layout Répéter qui permet de répéter des composants grâce à l’utilisation d’un jeu de données :
-
-
Il est possible de définir plusieurs types d’élément différents avec style et menu contextuel différents ;
-
Les différentes propriétés de chaque composant peuvent être liées à une colonne du jeu de données via leur colonne Donnée ;
-
L’accès à ces propriétés du contrôle se retrouve alors surchargé par celles du jeu de données ;
-
Il est en plus possible d’activer un filtre global ; dans ce cas, sélectionner les champs du jeu de données concernés par ce filtre depuis l’onglet Donnée du contrôle Répéter ;
-
-
Implémentation du composant layout Disposition en frontière contenant des zones nord, sud, est, ouest, centre permettant de facilement afficher une barre de menu en pied page, ajout des classes sticky-bottom pour une zone pied de page toujours visible et bottomMenu pour un menu bar inclus dedans ;
-
Implémentation d'un composant de Capture de média (image, audio ou vidéo) :
-
-
La capture d’image sur Android et l’image, du son et de la vidéo sur iOS fonctionne via l’utilisation de l’application native de l’OS grâce à l’API HTML Media Capture.
Sur Android Go il n’y a pas d’application Magnétophone et l’application de capture de vidéo ne semble pas disposer de bouton de validation renvoyant le fichier au navigateur.
Cette API n’est pas non plus disponible sur PC de bureau. -
C’est pourquoi, la capture audio et vidéo sur Android ainsi que sur PC de bureau fonctionne via l’utilisation de l’API Media Recorder mais uniquement pour les sites HTTPS et pas encore sur Safari Mac et iOS ;
-
Demande, le cas échéant de sélectionner un fichier ;
-
Une option est disponible pour demander si l’on préfère utiliser la caméra frontale (mais ne fonctionne pas toujours avec l’API Media Capture, un bouton permettant de changer de caméra est disponible sur l’application native) ;
-
Conversion, à la volée, si le type d’image renvoyé n’est pas le bon ;
-
Fourniture d’une option pour indiquer les tailles maximales des images et vidéos ;
-
Redimensionnement, à la volée avant envoi, de l’image si elle est trop grande pour économiser du temps et de la donnée ;
-
-
Amélioration du panneau dépliable :
-
-
Sur mobile, l’ouverture du panneau réactif avec un mouvement depuis la gauche de l’écran si panneau défini à gauche ou depuis la droite de l’écran si panneau défini à droite et fermeture avec un mouvement opposé et clic sur un item de menu ;
-
Possibilité de mettre plusieurs panneaux par page ;
-
Possibilité de lier un ou plusieurs boutons réactifs à un panneau ;
-
Possibilité de définir s’il doit s’ouvrir à gauche, à droite, en bas ou en haut ;
-
Possibilité de contrôler l’ouverture initiale selon les résolutions ;
-
-
Gestion du bouton Retour :
-
-
Fermeture des popups ou annulation des Message Boxes ;
-
Fermeture du panneau réactif ;
-
Gestion du retour aux écrans précédents (via les écrans dits « accessibles », voir ci-dessous) ;
-
Cliquer une fois sur Précédent renvoie à l’accueil lorsqu’on n'est pas sur un écran accessible pour éviter qu’un simple clic sur le bouton Retour ne réduise l’application sur les mobiles (au cas où le Designer n’ait pas utilisé les écrans accessibles ou qu'il en ait oublié) ;
-
-
Optimisation de la taille des bulles d’aide sur smartphone et prise en compte des messages d’aide HTML «Title qui ne s’affichent pas sur les navigateurs mobiles ;
-
Page Navigateur non supporté spécifique à iOS ;
-
Options pour ouvrir un popup en plein écran selon les résolutions. Dans ce cas, sur mobile, le style du titre est remplacé par le style de l’entête de la page et le bouton de fermeture est remplacé une flèche Retour située à gauche ;
-
Implémentation des Notifications Push (qui s’affichent même lorsque l’application est hors ligne) :
-
-
Les notifications Push sont définies dans un U.C. Notification. Le titre, le message et les différentes options peuvent contenir des $variables au format Apache Velocity pour rendre leur valeur dynamique ;
-
Pour pouvoir envoyer une notification, la première étape consiste à utiliser une action pour demander la permission pour chaque navigateur de l’utilisateur et la stocker dans le référentiel ;
-
Ensuite, une action Envoyer la notification doit être appelée en sélectionnant si c'est un envoi pour tout le monde ou pour un utilisateur en particulier et en affectant les différentes variables nécessaires. Cette action lève une exception si aucune permission n’est enregistrée pour l’utilisateur en question ;
-
Les notifications Push nécessitent des clés publiques /privées VAPID qui sont générées automatiquement par la plateforme. Dans la configuration des propriétés générales, un bouton permet de les re-générer automatiquement ;
-
Les différents champs String du formulaire de la notification peuvent contenir des $variables qui seront remplies dans l’action d’appel ;
-
Un jeu de données prédéfini permet de voir les notifications en cours et si elles ont été affichées, fermées ou cliquées ;
-
Pour les utiliser, il faut un navigateur compatible ;
-
-
-
-
Les versions ESR de Firefox antérieures à la version 68 ont l’API désactivée ;
-
Non disponible si utilisées dans une VebView ;
-
Les notifications Push standard sont disponibles sur Safari Mac, mais uniquement à partir de la version 16.1 sur MacOS Ventura ;
-
Les notifications sont disponibles sur iOS, mais uniquement à partir de la version 16.4 et seulement pour les applications PWA installé sur l'écran d'accueil ;
-
-
- Meilleure gestion des coupures de connexions intermittentes ;
-
Implémentation du composant Media Player :
-
-
Intégration des vidéos Youtube, Dailymotion, Vimeo via leur URL ;
-
Support des documents PDF et des autres documents Office via conversion automatique en PDF ;
-
Support des formats audio et vidéo géré nativement par le navigateur ;
-
9. Refonte de l'UC des services web clients
Les Web services gérés par la plateforme V3 soufrent de plusieurs limitations et ne sont pas adaptés aux API Web Services REST modernes tel que :
- API Docker : https://docs.docker.com/engine/api/v1.37/
- API OVH : https://api.ovh.com/console/#/email/pro
Exemples possibles :
-
POST : http://mywebsite.com/books/ Ajoute un livre
titre=&type=policier&auteur=&annee=2016
return : { id = }
-
POST : http://mywebsite.com/books/ Ajoute un livre
{ titre=, type=policier, auteur=, annee=2016 }
return : { id = }
-
PUT : http://mywebsite.com/books/87 Met à jour un livre
reedition=2018
-
GET : http://mywebsite.com/books tous les livres
-
GET : http://mywebsite.com/books?filtre=policier&tri=asc les livres filtrés
-
GET : http://mywebsite.com/books/87 un livre
-
GET : http://mywebsite.com/books/87/comments tous les commentaires pour un livre
-
GET : http://mywebsite.com/books/87/comments/1568 un commentaire pour un livre
-
DELETE : http://mywebsite.com/books/87 Supprime un livre
L’U.C. d’appel des Web Services a donc été modifié comme suit :
-
Possibilité de créer les méthodes REST manuellement comme c’est le cas
cotécôté fourniture ; -
Possibilité de récupérer les en-têtes de la réponse (SOAP Header ainsi que HTTP headers pour
REST)REST) ; -
Support de plusieurs méthodes de même nom, mais avec des
Modesmodes HTTP différents :
-
-
GET : Accède à une ressource
-
POST : Ajoute une ressource
-
PUT : Met à jour une ressource complète en la remplaçant par une nouvelle version (dans 99 % des cas) (
dispo.disponible dans lav4.2)4.2) ; -
PATCH : Met à jour une partie d’une ressource en envoyant un différentiel (une sorte de
‘diff’diff) -
DELETE : Supprime une ressource
-
HEAD : Accède aux métadonnées d’une ressource (Pas d’
argumentsargument retournés))
-
-
Support du passage d’un objet JSON en mode
POST,POST, PUT et PATCH (argument complexe) ; -
Support des variables passées dans l’URL (y compris en mode
POST)POST) (avant ou après le nom de la méthode dans l’URL) ; -
Support du passage d’un fichier en mode POST et PUT ;
-
Support de la récupération d’un fichier en mode GET ;
10. Gestion des types binaires
Ajout du support des types binaires dans toute la plateforme :
-
Gestion des types
«BLOB»et«VARBINARY»pour les attributs du modèle de données ; -
Gestion du type
«base64Binary»dans les WebServices ; -
Support des
«byte[]»et«Collection<byte[]>»dans les librairies de fonctions ; -
Si affectation d’un attribut binary/blob d’une base avec un ID de fichier, automatiquement sauver le contenu ;
-
Si affectation d’un contrôle Image ou Champ de jeu de données de type
imageImage avec unbinary,binary, création automatique d'une image temporaire pour affichage ; -
Si affectation d’un binary sur un type String d’une librairie de fonction, méthode web…, passage de la valeur en Base64 ;
-
Si affectation sur un type File d’une librairie de fonction passage d'un fichier temporaire ;
11. Autres fonctionnalités
Le driver LDAP gère désormais le mode « preparedPrepared statements » ;
Ajout d’une option permettant, à la plupart des composants ayant une hauteur, de les agrandir automatiquement en hauteur en fonction de la place disponible à l’écran.
Pour le composant formulaire,Formulaire, affectation d'une marge de 15 px en base sur chaque composant plutôt que de se reposer sur une marge de 1em sur chaque ligne définitfinie par le thème afin queque, sis'il y a plusieurs inputs sur une ligne et que le second composant passe dessous, il ne soit pas collé au précédent comme actuellement.
Les invitations envoyées par la librairie complexeComplex mail contiennent des dates au format Zoulou afin de permettre la planification de réunions entre plusieurs fuseaux horaires et pour éviter un décalage des dates d’une ou deux heures dans certains cas avec Ms Exchange.Exchange. Support des dates sur une journée entière.
Popup de création de jeux de données avec sélection des fonctions accessibles depuis le bouton « Créer un jeu de donnée » de l’onglet « Données » dans les propriétés des contrôles.
Amélioration du composant caseCase à cocher : Optionoption pour activer un troisième état inconnu/indéfini et support du validateur requis.
Ajout du composant « Recherche ».
Ajout du composant listeListe d’image avec génération de miniatures d’images et de documents à la volée.
Ajout du composant captchaCaptcha.
Amélioration du composant Ccartearte :
-
Possibilité de définir plusieurs types d’élément de carte supplémentaire pour les différentes figures (Cercle, Rectangle, Ligne, Polygone) en plus des marqueurs ;
-
Utilisation du plugin
«Leaflet Draw»(licenceMIT)MIT) permettant d’afficher une barre d’outil pour dessiner des figures sur la carte ; -
Utilisation du plugin
«LeafLet MarkerCluster»(licenceMIT)MIT) pour regrouper lesmarquermarqueurs trop proches dans une zone ; -
Améliorer la gestion des couches de tuiles avec :
-
-
Possibilité de définir plusieurs couches de tuiles (de base ou en surimpression) et d’activer un bouton
«Couche de tuiles»pour les sélectionner ; -
Pouvoir désactiver les
overlaysOverlays ou sélectionner la couche de base avec une propriété« actiActif»; -
Support des layers GeoJSON ;
-
Support des layers ShapeFile via plugin
leaflet.Leaflet.
-
Possibilité, pour le composant graphique, de définir un nombre de séries illimitées via l’utilisation d’une colonne « léLégende ». Une colonne « couleur »Couleur disponible dans ce cas.
Il est désormais possible d’exporter une image PNG d’un composant graphique ou carte via la propriété du contrôle « Capturer une image ».
Ajout des opérateurs dates hours/minutes/seconds/days/weeks/months/yearsHours/Minutes/Seconds/Days/Weeks/Months/Years between.between.
Possibilité pour l’action sélectionner des lignes dans un jeu de données, de choisir un JDD prédéfini.
Améliorationliorations sur le tableau :
-
Nouveau type de colonne « statique » avec icônes ou texte qui ne changent jamais servant uniquement pour des colonnes cliquables ;
-
Option permettant d’afficher une liste déroulante à choix multiple permettant de choisir quelles colonnes afficher ou masquer (Pouvant être sauvé et restauré grâce au paramètre
«Configuration utilisateur»de la table) ; -
Option masquer le titre de la colonne ;
-
Possibilité d’affecter dynamiquement le pied de page d’une colonne ;
-
Possibilité d’affecter le style et le message d’aide sur les cellules d’une colonne groupé ;
-
Lorsque l'utilisateur n'a aucun droit sur les tableaux, on peut désormais choisir entre désactiver la modification et/ou la sélection ou masquer le tableau ;
-
Propriété permettant de sauvegarder et de restaurer la configuration du tableau au format
JSON.JSON.
Affichage dans les arbres et les listes du module conceptionConception du Ddesigneresigner des cinq derniers éléments accédéess..
Ajout de la propriété « déDésactivé » sur le composant menuMenu qui désactive tous ces éléments.
Ajout d’une option pour importer un fichier iCal dans l’agenda.
Support des SVG dans les icônes.
La documentation a été entièrement revue et possède un nouveau thème.
La documentation est désormais disponible en ligne avec la version PDF à l’adresse : https://docs.ontomantics.com/4.1/fr/
Le Drag & Drop a été amélioré et optimisé pour en réduire la latence :
-
Des
scrollbarsbarres de défilement apparaissent lors d’un déplacement alors que ce n’est pas nécessaire ; -
Prise en compte des marges pour des
dropsDrops zones plus larges ; -
Le menu Monter/Descendre ne fonctionne pas dans tous les cas ;
-
Les ordres ne se suivent plus forcément notamment en cas de suppression pour réduire le nombre de sauvegardes né
cessairecessaires ; -
Les numéros de lignes des grilles
resResponsive sont créés initialement de 10 en 10 et ne se suivent plus pour réduire le nombre de sauvegardes nécessaires en cas d’ajout entre deux lignes existantes ;
Afin d’affecter, dans les jeux de données, un type d’élément de carte, un type de nœud d’arbre, un type de cellule de tableau croisé ou un type de tâche de planning ou d’agenda, il faut affecter leur titre. Pour cela, ces types sont donc considérés comme des contrôles accessibles depuis l’opérande « Contrôle » et leur titre en est une propriété sélectionnable ce qui évite les problèmes en cas de renommage et de suppression.
Implémentation de la condition « Selon » pour éviter les sous-règles.
Implémentation dans le Player des composants « Recherche », « Sélection de couleur » et « Curseur ».
Gestion des transactions au niveau des règles.
Possibilité de créer facilement un nouveau jeu de données depuis le mode créCréation en sélectionnant « créCréer un jeu de donnée »es dans l’onglet « data »Data lors de l’édition d’un composant liste/tableau/graphique…Liste/Tableau/Graphique… Ce qui ouvre uneun pouppopup permettant de choisir quelles colonnes créer pour chaque fonction du composant et dans le cas d’un tableau, de trapper toutes les colonnes souhaitées.
L’export Excel du planning inclut désormais la description des tâches ainsi que leurs heures de début et de fin. Pour afficher le détail des tâches sous Excel,Excel, il faut, la première fois, faire un clic droit sur l’une d’entre elles, puis :
-
Soit
«Modifier le texte de remplacement…»sur Excel 365 ou 2019 et + ; -
Soit cliquer sur
«Format de la forme…»et ensuite cliquer sur la troisième icône«Taille et propriétés»puis déplier«Texte de remplacement»sur Excel 2016 et antérieurerieurs ; -
Soit cliquer sur
«Description»sur LibreOffice et OpenOffice ; -
Ensuite, un simple clic sur les autres tâches suffit.
Ajout d’une option permettant, lors de la déconnexion, de recharger l’application en cas d' accès anonyme ou d’afficher le login au lieu de la page « Vous êtes déconnecté ».
Possibilité d’activer un Captcha sur le login (reCAPTCHA V2 mode checkbox)Checkbox).
Possibilité d’activer la connexion automatique via un cookie sur le login via une checkbox « Se souvenir de moi ».
Ajout des filtres sur le tableau du débogueur de requêtes ainsi que de la possibilité d’agrandir lale popup.
Les modules Gestion des entreprises et Gestion de la plateforme ont été fusionnés dans le module Configuration / Paramètres.tres.
Possibilité de charger une icône et de la redimensionner automatiquement pour les différentes résolutions nécessaires pour iOS,iOS, Android et FavIcon Web et logo pour les pages lLogin,ogin, connexionConnexion perdue,perdue, erreurs…
Ajout d’un onglet Sauvegarde sur les sources de données PostgreSQL permettant de faire des Backups et Restore en locale ou via SSH et de les programmer automatiquement.
Possibilité de créer un autre schéma et sa source de donnée depuis une source de donnée existante.
Possibilité d’afficher le contenu des tables dans le modèle de donnée (onglet « Données ») et de les modifier.
Les fonctions SQL de type « agréAgrégat » sont désormais reconnues comme telles dans le modèle de données pour PostgreSQL (Carcar on ne pouvait les utiliser en raison la gestion des GROUP BY automatique dans les requêtes).
Propriétés « Lecture seule » et « Désactiver » sur le formulaire qui forcent les champs Input,Input, Upload,Upload, boutonBouton de validation et Ttableable éditable,ditable, se trouvant à l’intérieur, à passer en lecture seule ou à se désactiver.
Possibilité d’afficher les numéros de semaine sur le planning et d'afficher Matin/Matin/Après-Midi lorsque la journée est découpée en deux colonnes.
Options pour limiter l’intervalle sur les Time Picker.Picker.
Option pour afficher les numéros de semaine dans les Date Picker.
Possibilité de créer automatiquement des variables et des jeux de données en important un template de rapports.
Il est désormais possible de masquer certains jours de la semaine ainsi que les jours fériés sur le planning.
En cas d’erreur lors de la validation d’un formulaire, ou d’une table éditable, possibilité de placer le focus sur le premier composant en erreur et donc, de faire remonter sur le premier composant en erreur ;
La migration des projets V3 est désormais possible :
-
L’import tient compte, autant que possible, des différences introduites par la v4 et génèrent, à la fin, un rapport avec tous les points de détail qu’il n’a pas pu migrer et que le Designer devra vérifier manuellement ;
-
Les composants qui étaient alors en mode X/Y pourront être passés en mode Responsive soit via
coupéCoupé/colléCollé dans l’élément« main »Main de l’écran, soit via un clic droit / Remplacer le contrôle«Disposition libre»; -
Les fichiers peuvent être migrés via l’import/export dans l’administration, mais une requête devra être jouée en base sur toutes les colonnes contenant des ID de fichier pour les convertir au nouveau format ;
-
Une librairie de fonction
«Legacy»contenant toutes les fonctions dépréciées ou modifiées en V4 est alors requise pour en maintenir la compatibilité et devra être chargée sur la plateforme.
Pouvoir spécifier des écrans « accessibles » qui affichent leur chunk (configurable) dans l’URL du navigateur dès qu’on s’y rendra afin de pouvoir utiliser les boutons Précédent et Suivant du navigateur pour changer d’écran, mais également de permettre d’y accéder directement à la manière d’un site web au chargement d’une application sans passer par la page d’accueil.
Il faudra cependant veiller, dans ce cas, à ce que toutes les variables nécessaires soit bien initialisées et, le cas échéant, rediriger vers l’écran table ou l’écran d’accueil.
Cela nécessite l’ajout d’une option sur les popups pour qu’ils se ferment automatiquement au changement d’écran, car en cas de changement manuel d’URL, on pourrait se retrouver n’importe où dans l’application avec les popups d’un autre module.
Après une installation, lors de la première connexion, une page s’affiche qui permet de changer le mot de passe administrateur et de configurer les principaux paramètres de configuration : URL de connexion, mode dev/prod, timeout de session, e-mail (avec un bouton de test), politique de mot de passe, chemin des répertoires…