Neues Discourse-Update hat den Plugin-Ausgang auf seltsame Weise kaputt gemacht

Einer der Änderungen an Discourse in der letzten Woche oder so hat mein Plugin beschädigt, und ich kann nicht herausfinden, was tatsächlich falsch ist oder wie ich es beheben kann. Das Plugin hat jahrelang einwandfrei funktioniert, bis zu diesem Zeitpunkt.

Das Plugin macht verschiedene Dinge, aber das hier scheint relevant zu sein: Es fügt der Benutzerprofilseite eine Schaltfläche hinzu.

Wenn ich diese Seite für einen beliebigen Benutzer besuche, wird der Großteil der Seite nicht gerendert (einschließlich der Schaltfläche, die mein Plugin hinzufügen soll):

(Wenn ich das Plugin über seine Einstellungs-Schaltfläche deaktiviere, wird die Seite korrekt gerendert.)

Die Javascript-Konsole in Chrome zeigt jedes Mal, wenn diese Seite aktualisiert wird, die folgende Ausnahme und den folgenden Stacktrace an:

Ich bin mir nicht sicher, was ich von diesem Fehler halten soll, da es nicht mein Code ist und das t, das not a function ist, nicht in der Zeile oder in deren Nähe steht, von der die Ausnahme ausgeht. Ziemlich verwirrend. Aber ich bin kein JS-Experte, vielleicht übersehe ich hier einfach etwas.

Beim Durchgehen mit dem Chrome-Debugger tritt das Problem in dieser Zeile auf, während mein Plugin-Template verarbeitet wird, aber ich kann nicht sehen, was tatsächlich das Problem verursacht oder ob es an etwas liegt, das ich ändern/aktualisieren muss, oder an einem Fehler in Discourse selbst.

Der Plugin-JS-Code und das HBS-Template, die meiner Meinung nach beteiligt sind, befinden sich in meinem user-profile-primary-Connector, der hier zu finden ist:

Ich weiß es nicht sicher, aber es schien, als könnten diese kürzlichen Discourse-Commits möglicherweise beteiligt sein:

Jeder Vorschlag wäre sehr willkommen!

Hallo @LeoDavidson – danke, dass Sie dieses Problem angesprochen haben. Sie haben mit ziemlicher Sicherheit Recht, dass es mit diesen Commits zusammenhängt – ich werde mich damit befassen und versuchen herauszufinden, was sich geändert hat. Ich hatte nicht vor, Verhaltensänderungen einzuführen.

In der Zwischenzeit sollte dieser PR das Problem beheben, indem Ihre Plugin-Konnektoren in ein gängigeres Verzeichnislayout verschoben werden:

10 „Gefällt mir“

Vielen, vielen Dank! Sowohl für den PR als auch dafür, dass Sie so schnell waren. Ich habe ihn gerade angewendet und jetzt sieht alles gut aus!

4 „Gefällt mir“

Ich habe untersucht, was diese Verhaltensänderung verursacht hat. Die Connectors befanden sich wie folgt:

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

Das zusätzliche /user/ im Pfad bedeutet, dass es von unserer unColocateConnectors-Logik nicht erkannt wird.

Ich habe all-the-plugins und all-the-themes durchsucht und sehe keine weiteren Vorkommen dieses Verzeichnishochlayouts. Daher werde ich die Dinge vorerst so belassen, es sei denn, wir erhalten weitere Berichte über Probleme.

4 „Gefällt mir“

Dieses Thema wurde nach 554 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.