Projet

Général

Profil

Actions

Bug #11671

fermé

User zoom et identity card sur page d'accueil d'espace

Ajouté par Sebastien Vuillet il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Closed
Priorité:
Normal
Assigné à:
Catégorie:
Look
Début:
02/09/2020
Echéance:
% réalisé:

100%

Temps estimé:
Navigateur:
Tous
Votre version de Silverpeas:
6.1
Système d'exploitation:
Votre base de données:
Toutes
Livraison en TEST:
Livraison en PROD:

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 plus de 3 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 plus de 3 ans

Et bien sur apivia c'est reproductible facilement...

Mis à jour par Sebastien Vuillet il y a plus de 3 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 plus de 3 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 plus de 3 ans

Ah ouais ! Technique !
Merci Yohann pour ton investigation.
Il y aura donc une correction possible ?

Mis à jour par Yohann Chastagnier il y a plus de 3 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 plus de 3 ans

  • Statut changé de Assigned à In progress...
  • Version cible mis à Version 6.1.1

Mis à jour par Yohann Chastagnier il y a plus de 3 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 plus de 3 ans

  • Statut changé de Resolved à Integration in progress...

Mis à jour par Nicolas Eysseric il y a plus de 3 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

Actions

Formats disponibles : Atom PDF