Bug #11671
ferméUser zoom et identity card sur page d'accueil d'espace
100%
Description
User zoom et identity card sur page d'accueil d'espace ne sont pas "dynamiques".
En effet il manque les javascript correspondants :
<script type="text/javascript" src="/silverpeas/util/javaScript/silverpeas-userZoom.61.js" language="Javascript"></script>
<script type="text/javascript" src="/silverpeas/util/javaScript/silverpeas-identitycard.61.js" language="Javascript"></script>
Mis à jour par Nicolas Eysseric il y a environ 4 ans
- Statut changé de New à Feedback
Je ne reproduis pas ce problème.
Les scripts cités sont bien référencés dans toutes les pages de Silverpeas (tag looknfeel).
La page d'accueil d'espace de Aurora ne fait pas exception.
Mis à jour par Sebastien Vuillet il y a environ 4 ans
Et bien sur apivia c'est reproductible facilement...
Mis à jour par Sebastien Vuillet il y a environ 4 ans
Je viens de refaire un test et visiblement cela ne concerne que userZoom.
Voir sur apivia la page d'accueil de l'espace Bac à Sable
Mis à jour par Yohann Chastagnier il y a environ 4 ans
- Statut changé de Feedback à Assigned
- Assigné à mis à Yohann Chastagnier
Le problème vient du fait que le DOM est marqué comme déjà chargé, mais que les éléments du plugin identity-card de ckeditor ne sont pas encore dans le DOM.
Du coup, lorsque le traitement contenu dans silverpeas-identitycard.js s'exécute, il ne détecte aucun élément à gérer et donc aucun bloc userZoom à prendre en charge.
Il semble que cela dû à un effet de bord de l'utilisation de silverpeas-toggle
pour le bloc introduction de la page d'accueil d'espace.
En effet, ce plugin opère une translation du WYSIWYG dans un autre conteneur du DOM pendant que le plugin silverpeas-identity s'exécute...
Mis à jour par Nicolas Eysseric il y a environ 4 ans
Ah ouais ! Technique !
Merci Yohann pour ton investigation.
Il y aura donc une correction possible ?
Mis à jour par Yohann Chastagnier il y a environ 4 ans
Oui, je pense à un mécanisme qui pourrait prendre en charge ce genre de problématique.
Mis à jour par Yohann Chastagnier il y a environ 4 ans
- Statut changé de Assigned à In progress...
- Version cible mis à Version 6.1.1
Mis à jour par Yohann Chastagnier il y a environ 4 ans
- Statut changé de In progress... à Resolved
- % réalisé changé de 0 à 100
Le traitement réalisé par whenSilverpeasEntirelyLoaded
a évolué pour permettre à des modules/plugins techniques d'indiquer un délai supplémentaire avant qu'une page HTML soit considérée entièrement chargée.
Malgré cette évolution, tous les cas ne peuvent être pris en compte dans l'enchaînement de la prise en charge des différents modules/plugins utilisé par Silverpeas (cela pouvant également varier selon les navigateurs).
De ce fait, silverpeas-identitycard.js
a aussi évolué pour fonctionner dans un mode dégradé : le plugin est ré-exécuté 1 seconde après une première exécution en échec.
PR: https://github.com/Silverpeas/Silverpeas-Core/pull/1100
Un module/plugin qui a besoin d'indiquer un délai supplémentaire avant qu'une page HTML soit considérée comme entièrement chargée doit utiliser : silverpeasEntirelyLoadedDelayer
.silverpeasEntirelyLoadedDelayer
propose une méthode register()
qui retourne une promesse. Reste au module/plugin à résoudre la promesse quand son traitement est terminé.
Le premier plugin à utiliser cette mécanique est silverpeas-toggle
qui est une directive AngularJS. Elle est en charge de gérer l'affichage ou non d'un bouton permettant d'agrandir ou réduire une zone de la page. Pour cela, des opérations de mouvement d'éléments du DOM doit être effectuée au chargement de la page et ces manipulations peuvent être réalisée en arrière plan pendant que d'autres plugins s'exécutent (comme silverpeas-identitycard.js
par exemple).
Mis à jour par Nicolas Eysseric il y a environ 4 ans
- Statut changé de Resolved à Integration in progress...
Mis à jour par Nicolas Eysseric il y a environ 4 ans
- Projet changé de 132 à Silverpeas Core
- Catégorie mis à Look
- Statut changé de Integration in progress... à Closed
Validé et intégré en 6.1.1 et 6.2