OP des avertissements non mis en évidence avec la couleur du personnel

Priorité/Gravité: normal

Plateforme: au moins sur ordinateur de bureau et mobile

Description: Lorsque les modérateurs envoient un avertissement à un utilisateur, je me souviens que dans la version Discourse, il y a au moins 1 an, l’OP de l’avertissement devait avoir un arrière-plan mis en surbrillance avec la couleur du personnel. Mais en utilisant Discourse v3.5.0.beta9, l’OP a l’arrière-plan normal.

Étapes reproductibles: Envoyez un avertissement à un utilisateur sur Discourse v3.5.0.beta9.

2 « J'aime »

Même problème. Je me demande si c’est un bug ou si c’est intentionnel.

1 « J'aime »

J’ai l’impression que cela pourrait avoir été un changement intentionnel, @hugh saurait probablement.

1 « J'aime »

Salut tout le monde,

J’ai enquêté pour comprendre pourquoi les premiers messages des MP d’avertissement perdaient leur style de couleur « staff » après la migration vers le flux de messages Glimmer, et je voulais partager ce que j’ai trouvé : cela ressemble à une petite omission plutôt qu’à un changement intentionnel (du moins au niveau du code).

Le problème

Dans post.gjs (ligne 436), la classe CSS de modérateur est appliquée en fonction de :

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

@post.isModeratorAction fonctionne correctement — c’est un getter approprié sur le modèle Post. Mais @post.isWarning n’existe tout simplement pas sur le modèle Post.

Aucune propriété, getter ou champ suivi isWarning n’y est défini. La condition (and @post.isWarning @post.firstPost) évalue donc toujours à false, et la classe moderator n’est jamais appliquée aux premiers messages des MP d’avertissement.

Comment cela fonctionnait avant

Dans l’ancien système de widgets, transformPost (transform-post.js) mappeait explicitement l’indicateur de niveau de sujet vers les attributs du message :

postAtts.isWarning = topic.is_warning;

Ensuite, widgets/post.js vérifiait attrs.isWarning && attrs.firstPost pour appliquer la classe moderator. Ce pont a été perdu lors de la migration vers Glimmer.

Mon analyse

Puisque post.gjs référence activement @post.isWarning, il semble que l’intention était de préserver ce comportement. Si la suppression de la couleur staff des avertissements était intentionnelle, alors la branche (and @post.isWarning @post.firstPost) dans post.gjs est du code mort et pourrait être nettoyée. S’il s’agit d’un bug (ce qui semble plus probable au vu de l’ancien code de widget), la correction consisterait à ajouter un petit getter sur le modèle Post :

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

Je voulais vérifier ce que pensait l’équipe : cela ressemble-t-il à une omission lors de la migration Glimmer, ou a-t-il été laissé de côté intentionnellement ? Dans tous les cas, la référence morte à @post.isWarning dans post.gjs mérite peut-être d’être traitée.

Merci !

3 « J'aime »

C’est intéressant, la manière dont le code a été écrit. J’espère que quelqu’un de l’équipe pourra répondre à ta question là-bas pour savoir s’il y avait une oversight ou s’il a été écrit ainsi pour une autre raison.

2 « J'aime »

Excellent rapport, merci, c’est exactement comme vous l’avez décrit. J’applique une correction ici :

2 « J'aime »