Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avertissement manquant quand incohérence localStorage vs server #6561

Closed
Arnaud-D opened this issue Dec 10, 2023 · 1 comment · Fixed by #6562
Closed

Avertissement manquant quand incohérence localStorage vs server #6561

Arnaud-D opened this issue Dec 10, 2023 · 1 comment · Fixed by #6562
Labels
S-BUG Corrige un problème

Comments

@Arnaud-D
Copy link
Contributor

Arnaud-D commented Dec 10, 2023

Description du bug

Dans certains cas, avec le nouvel éditeur, le local storage est utilisé au lieu de charger la dernière version du tutoriel et ce sans avertissement.

Comment reproduire ?

  1. Utiliser le nouvel éditeur
  2. Créer un tuto en tant que "user1" et inviter "user2" comme auteur
  3. Modifier l'introduction avec user1 et y écrire "user1", valider.
  4. Réouvrir l'intro et écrire "user1 pas normal". Ne pas valider, attendre une seconde pour que ça se sauvegarde dans le local storage, puis retourner sur une autre page sans valider.
  5. Se connecter avec user2 (utiliser la navigation privée)
  6. Modifier l'intro et y écrire "user2". Valider.
  7. Se reconnecter avec user1 et modifier l'intro.
  8. On voit écrit "user1 pas normal" alors qu'on devrait voir "user2".

On devrait voir un message signalant qu'on a une vieille version d'affichée (cf. le code de editor-new.js), mais je ne l'ai pas (Firefox, dernière version à l'heure où j'écris ces lignes).

@Arnaud-D Arnaud-D added the S-BUG Corrige un problème label Dec 10, 2023
@Arnaud-D
Copy link
Contributor Author

Arnaud-D commented Dec 10, 2023

J'ai investigué un peu.

Cette ligne me paraît douteuse : https://github.com/zestedesavoir/zds-site/blob/e0e78e2ca026898ed2cfd75dcc75977611cc0d38/assets/js/editor-new.js#L952C1-L952C1. Des tests rapides montrent qu'on ne rentre pas dans la condition à cause de la seconde partie. Je soupçonne le textarea.value ne semble pas être la valeur "serveur" du champ.

Ensuite, si on force l'entrée dans la condition citée ci-avant, j'ai l'impression que cette ligne-là à un souci :

$(easyMDE.element.parentElement).children('.editor-toolbar').before($alertbox)
. L'élément qu'on vise n'est pas à cette place dans la hiérarchie et je pense que le before se fait sur du vide, et donc l'encart n'est pas inséré.

Ensuite, dans cet encart, j'ai l'impression que le "en cliquant ici" ne marche pas correctement. Ça fait des choses, mais pas ce à quoi je m'attends. Probablement parce qu'il n'y a pas d'attribut value sur un textarea, et c'est ça qu'on essaie de copier. Ctrl-Z semble marcher, mais ça tombe en marche, vu que le code exécuté ne fait que la moitié du boulot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-BUG Corrige un problème
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant