Problème d'affichage des onglets après enregistrement, rechargement ou zoom sur l’écran dans un objet avec sous-objets intégrés

Request description

Bonjour,

Je rencontre un problème d’affichage des onglets dans un objet lorsque certaines actions sont effectuées. Voici les détails :

Steps to reproduce

Contexte

  • Mon objet principal contient plusieurs onglets pour organiser les données.
  • Certains onglets intègrent des sous-objets.

This request concerns an up-to-date Simplicité instance
and these are the steps to reproduce it:

Problème observé

  1. Après un rechargement ou un enregistrement :

Si je navigue sur un onglet (par exemple, “Description du traitement”) puis que je clique sur “Recharger” ou “Enregistrer”, alors :

  • L’onglet “Informations générales” devient actif, ce qui n’est pas le comportement attendu (seul l’onglet actif avant le rechargement devrait rester affiché).
  • L’onglet “Description du traitement” reste en surbrillance et est toujours actif.

  • Les contenus des deux onglets (“Informations générales” et “Description du traitement”) apparaissent l’un au-dessus de l’autre sur le même écran, créant une confusion visuelle.
  1. Après un zoom ou dézoom de l’écran :
  • Le problème survient également lorsque je change le niveau de zoom (CTRL + molette de souris ou CTRL + “+/-”).
  • Les deux onglets sont alors simultanément en surbrillance, et leurs contenus respectifs s’affichent à la suite.
  1. Lorsque je retire les onglets contenant des sous-objets, le problème disparaît totalement, ce qui suggère probablement que le bug est lié à ces intégrations.

Voici les onglets contenant des sous-objets (Suivi de conformité et Notifications) :


Questions

  1. Avez-vous déjà rencontré ce type de comportement avec des sous-objets intégrés dans des onglets ?
  2. Existe-t-il une configuration ou un paramétrage natif pour forcer la gestion correcte des onglets après un rechargement ou un enregistrement ?
  3. Y a-t-il des préconisations spécifiques pour intégrer des sous-objets dans des onglets sans perturber le comportement standard ?

Merci d’avance pour vos retours et vos suggestions !

Cordialement,
Elyass

Technical information

Instance /health
[Platform]
Status=OK
Version=6.1.18
BuiltOn=2024-12-17 12:35
Git=6.1/835d2f827019bc362da1d12d58775e0744609213
Encoding=UTF-8
EndpointIP=100.88.11.45
EndpointURL=http://bca-71077-app-98d6b5d4b-9t6n5:8080
TimeZone=Europe/Paris
SystemDate=2025-01-20 18:01:24

[Application]
ApplicationVersion=1.0.0
ContextPath=
ContextURL=https://bcsi-legal-app.gke2.ope.gcp.renault.com
ActiveSessions=1
TotalUsers=13021
EnabledUsers=89
LastLoginDate=2025-01-20 17:50:27

[Server]
ServerInfo=Apache Tomcat/9.0.98
ServerType=WEB
ServerActiveSessions=1
ServerSessionTimeout=30
CronStarted=true

[OS]
Name=Linux
Architecture=amd64
Version=6.1.112+
DockerImageName=almalinux9
SystemEncoding=UTF-8

[JavaVM]
Version=21.0.5
Vendor=Eclipse Adoptium
VMName=OpenJDK 64-Bit Server VM
VMVersion=21.0.5+11-LTS
ScriptEngine=rhino
ScriptEngineVersion=Rhino 1.7.13 2020 09 02
HeapFree=314164
HeapSize=481280
HeapMaxSize=2068480
TotalFreeSize=1901364

[Cache]
ObjectCache=115
ObjectCacheMax=10000
ObjectCacheRatio=1
ProcessCache=0
ProcessCacheMax=10000
ProcessCacheRatio=0
APIGrantCache=0
APIGrantCacheMax=1000
APIGrantRatio=0

[Database]
Vendor=3
VendorName=postgresql
ProductName=PostgreSQL
ProductVersion=15.8
DriverName=PostgreSQL JDBC Driver
DriverVersion=42.7.4
DBDate=2025-01-20 18:01:24
DBDateOffset=0
DBPatchLevel=6;P01;c3f2592da7f3cdd9b86409daaf7631f5;18
UsingBLOBs=true

[Healthcheck]
Date=2025-01-20 18:01:25
ElapsedTime=21

Bonjour,

Non nous n’avons pas trace de ce genre de comportement bootstrap où 2 onglets sont actifs en même temps. Par défaut au reload (ou save ou zoom responsive qui fait aussi un reload), Simplicité recharge le dernier onglet ouvert, donc ici, il affiche l’onglet 2.

  • Avez vous des contraintes ou du code en front sur l’objet en question ou ses sous-objets ?
  • Par exemple du code qui force l’ouverture/focus sur le premier onglet ?
  • Il y a peut être du code qui ajoute la classe “active” sur l’onglet et la div content = les 2 deviennent visibles

Pour faire un toggle correct, il faut passer par $tools.setTabActive(tab, index).

/**
 * @param {jQuery} t Tabs
 * @param {number|string} index Tab index or tab data-key
 */
$tools.setTabActive(t, index);

ou alors y mettre un point d’arrêt, pour voir si les sous-objets ont aussi des onglets et que la UI s’emmêle les pinceaux entre les différents tabs/selectors. Essayez d’insérer vos 2 objets sans sous-tabs (l’un en dessous de l’autre dans l’onglet suivi) pour voir si c’est lié.

Bonjour,

Merci pour votre retour. Après investigation, j’ai identifié la cause du problème d’affichage des onglets.

Le bug se produit lorsque l’objet incorporé possède des relations visibles (au moins sous forme de panels par défaut). Dans ce cas, ces panels sont intégrés directement dans la zone d’attributs configurée dans l’objet parent.

C’est précisément ce rendu des panels “incorporés” qui provoque l’affichage simultané de plusieurs onglets dans l’objet parent lors d’un rechargement, d’un enregistrement ou d’un zoom/dézoom de l’écran.

Lorsque l’objet incorporé n’a pas de relations visibles (ou que celles-ci sont masquées), le problème ne se produit pas.

Pensez-vous qu’il s’agit d’un comportement attendu de Simplicité ou d’un bug ? Y aurait-il un moyen recommandé pour éviter ce souci tout en conservant les relations visibles dans l’objet incorporé ?

Merci d’avance pour votre aide.

Cordialement,
Elyass