La récente mise à jour de Discourse a cassé la sortie du plugin d'une manière étrange

L’un des changements apportés à Discourse la semaine dernière environ a cassé mon plugin et je n’arrive pas à comprendre ce qui ne va pas ni comment le réparer. Le plugin fonctionne bien depuis des années jusqu’à présent.

Le plugin fait diverses choses, mais celle qui semble pertinente ici est l’ajout d’un bouton sur la page du profil utilisateur.

Maintenant, lorsque je visite cette page pour n’importe quel utilisateur, la majeure partie de la page ne s’affiche pas (y compris le bouton que mon plugin vise à ajouter) :

(Si je désactive le plugin via son bouton de paramètres, la page s’affiche correctement.)

La console Javascript de Chrome affiche l’exception et la trace de la pile suivantes à chaque actualisation de cette page :

Je ne sais pas quoi penser de cette erreur car ce n’est pas mon code, et le t qui est not a function n’est pas sur la ligne, ni quoi que ce soit à proximité, d’où provient l’exception. C’est assez déroutant. Mais je ne suis pas un expert en JS, donc peut-être que je rate quelque chose ici.

En déboguant avec le débogueur Chrome, le problème se produit à cette ligne lors du traitement du template de mon plugin, mais je ne peux pas voir ce qui cause réellement le problème, ou si c’est dû à quelque chose que je dois changer/mettre à jour ou à un bug dans Discourse lui-même.

Le code JS du plugin et le template HBS qui, je pense, sont impliqués se trouvent dans mon connecteur user-profile-primary, que vous pouvez trouver ici :

Je ne sais pas avec certitude, mais il semblait que ces commits récents de Discourse pourraient potentiellement être impliqués :

Toute suggestion serait très appréciée !

Salut @LeoDavidson - merci d’avoir soulevé ce problème. Vous avez presque certainement raison de penser que cela est lié à ces commits - je vais l’examiner et essayer de comprendre ce qui a changé. Je n’avais pas l’intention d’introduire de changements de comportement.

Mais en attendant, cette PR devrait résoudre le problème en déplaçant vos connecteurs de plugin vers une disposition de répertoire plus courante :

10 « J'aime »

Merci beaucoup ! Tant pour la PR que pour votre rapidité. Je viens de l’appliquer et tout semble bon maintenant !

4 « J'aime »

J’ai examiné ce qui a causé ce changement de comportement. Les connecteurs étaient situés comme suit :

assets/javascripts/discourse/templates/user/connectors/{outlet-name}/{unique-name}.js
assets/javascripts/discourse/templates/user/connectors/{outlet-name}/{unique-name}.hbs

Ce /user/ supplémentaire dans le chemin signifie qu’il n’est pas détecté par notre logique unColocateConnectors.

J’ai parcouru all-the-plugins et all-the-themes et je ne vois aucune autre occurrence de cette disposition de répertoire. Je vais donc laisser les choses telles quelles pour le moment, à moins que nous recevions d’autres rapports de problèmes.

4 « J'aime »

Ce sujet a été automatiquement fermé après 554 jours. Les nouvelles réponses ne sont plus autorisées.