OP von Warnungen nicht mit Staff-Farbe hervorgehoben

Priorität/Schweregrad: normal

Plattform: mindestens auf Desktop & Mobilgeräten

Beschreibung: Wenn Moderatoren eine Warnung an einen Benutzer senden, erinnere ich mich, dass in der Discourse-Version vor mindestens 1 Jahr der OP der Warnung mit einem hervorgehobenen Hintergrund in Staff Color versehen sein sollte. Aber bei der Verwendung von Discourse v3.5.0.beta9 hat der OP den normalen Hintergrund.

Reproduzierbare Schritte: Senden Sie eine Warnung an einen Benutzer auf Discourse v3.5.0.beta9.

2 „Gefällt mir“

Gleiches Problem. Frage mich, ob es ein Fehler ist oder beabsichtigt.

1 „Gefällt mir“

Ich glaube, das könnte eine absichtliche Änderung gewesen sein. @hugh wüsste das wahrscheinlich.

1 „Gefällt mir“

Hallo zusammen,

ich habe untersucht, warum Warnungs-PMs nach der Migration zum Glimmer-Post-Stream ihre farbliche Hervorhebung für Mitarbeiter verloren haben, und möchte meine Erkenntnisse teilen – es sieht nach einer kleinen Übersehenheit aus, eher als nach einer beabsichtigten Änderung (zumindest auf der Code-Ebene).

Das Problem

In post.gjs (Zeile 436) wird die CSS-Klasse für Moderatoren basierend auf Folgendem angewendet:

(if
  (or @post.isModeratorAction (and @post.isWarning @post.firstPost))
  "post--moderator moderator"
  "post--regular regular"
)

@post.isModeratorAction funktioniert korrekt – es ist ein korrekter Getter im Post-Modell. Aber @post.isWarning existiert im Post-Modell überhaupt nicht.

Es gibt keine isWarning-Eigenschaft, keinen Getter oder kein getracktes Feld. Daher wird die Bedingung (and @post.isWarning @post.firstPost) immer als false ausgewertet, und die moderator-Klasse wird niemals auf erste Beiträge von Warnungs-PMs angewendet.

Wie es vorher funktionierte

Im alten Widget-System hat transformPost (transform-post.js) explizit das topic-Ebene-Flag auf die Post-Attribute abgebildet:

postAtts.isWarning = topic.is_warning;

Anschließend hat widgets/post.js geprüft, ob attrs.isWarning && attrs.firstPost, um die moderator-Klasse anzuwenden. Diese Brücke ging bei der Glimmer-Migration verloren.

Meine Einschätzung

Da post.gjs aktiv auf @post.isWarning verweist, scheint es so, als ob die Abschaftung dieses Verhaltens beabsichtigt war. Wenn das Entfernen der Mitarbeiterfarbe bei Warnungen beabsichtigt war, dann ist der Zweig (and @post.isWarning @post.firstPost) in post.gjs toter Code und könnte bereinigt werden. Wenn es ein Bug ist (was aufgrund des alten Widget-Codes wahrscheinlicher erscheint), wäre die Lösung ein kleiner Getter im Post-Modell:

get isWarning() {
  return this.topic?.is_warning;
}

Ich wollte wissen, was das Team dazu denkt – sieht das nach einer Übersehenheit bei der Glimmer-Migration aus, oder wurde es absichtlich weggelassen? Auf jeden Fall könnte die tote Referenz zu @post.isWarning in post.gjs angegangen werden.

Danke!

3 „Gefällt mir“

Interessant, wie der Code geschrieben wurde. Hoffentlich kann jemand aus dem Team dort auf deine Frage antworten, ob das ein Übersehen war oder aus einem anderen Grund so geschrieben wurde.

2 „Gefällt mir“

Toller Bericht, danke, es ist genau so, wie du es beschrieben hast. Ich wende hier einen Fix an:

2 „Gefällt mir“