Masquer les sujets des utilisateurs ignorés

:information_source: Résumé Ce composant vous permet de masquer des sujets aux utilisateurs que vous avez ignorés.
:hammer_and_wrench: Dépôt GitHub - Lhcfl/discourse-hide-ignored-user-topics
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Nouveau sur les thèmes Discourse ? Guide pour débutants sur l’utilisation des thèmes Discourse

← Remplissez "repoName" et "repoURL" pour le bouton d’installation automatique →

Installer ce composant de thème

Inspirez-vous de ce message :

Ce composant vous permet de masquer des sujets aux utilisateurs que vous avez ignorés.

Il fait exactement ce qu’il dit, et son principe principal est très simple, je vais donc coller le code principal ci-dessous :

import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.8.0", (api) => {
  const user = api.getCurrentUser();
  if (user == null) return;
  api.registerValueTransformer(
    "topic-list-item-class",
    ({ value, context }) => {
      if (user.ignored_users.includes(context.topic.creator.username)) {
        value.push("hidden");
      }
      return value;
    }
  );
});
12 « J'aime »

@Lhc_fl,

Essentiellement, si la fonctionnalité de ce composant de thème pouvait être étendue pour inclure une option de masquage supplémentaire, un interrupteur.

Ignorer par défaut masquera les publications dudit utilisateur.

Une option pourrait-elle être ajoutée à ce composant pour masquer les réponses à un utilisateur ignoré. Car certaines personnes trop sensibles se plaignent de pouvoir toujours voir d’autres personnes répondre à l’utilisateur ignoré.

1 « J'aime »

Ce n’est pas difficile, mais je ne sais pas si c’est nécessaire…
Un utilisateur ignoré a posté. Il ne veut pas le voir. Ensuite, quelqu’un a répondu à cet utilisateur. Il ne veut pas non plus le voir. Ensuite, quelqu’un d’autre a répondu à cette réponse, puis une autre réponse à la réponse à la réponse… Ces éléments ne devraient-ils pas être vus ?

  • Cela entraîne l’effondrement des discussions. Très bien, vous mettez quelqu’un en sourdine, donc vous ne voyez « jamais » les publications de cette personne. Mais ensuite, un autre utilisateur que vous aimez cite l’utilisateur mis en sourdine dans sa publication, ou fait référence à son @nom, ou répond à sa publication. Supprimez-vous alors uniquement la section citée ? Supprimez-vous le @nom ? Supprimez-vous également toutes les réponses à leurs publications ? Cela laisse de grands trous dans la conversation et présente de nombreux défis techniques complexes. Avec suffisamment de mises en sourdine, de blocages et d’ignorances personnelles, toute conversation devient une étrange mosaïque de déclarations partiellement visibles.
3 « J'aime »

@Lhc_fl
Ceci est nécessaire…
Si A veut ignorer B, cela signifie que tous les sujets/messages, ce qui serait idéal

  1. Les sujets de B sont totalement ignorés, c’est bien/fait

  2. Dans les sujets des autres, B a répondu,
    2.1 Les messages de B doivent être masqués, fait
    2.2 L’avatar de B doit être supprimé de la page de liste des messages (les participants), cela ne semble pas difficile à faire ?
    2.3 Si le message de B est cité, je ne suis pas sûr si cette partie est facile à supprimer/masquer ?

Merci pour ces efforts considérables, c’est vraiment utile, j’espère que vous pourrez envisager 2.2 et 2.3 si c’est possible…

2 « J'aime »

Comme je l’ai dit ou écrit dans l’un de mes messages. Cela semble excessif à certains égards. En tant que membre, on devrait pouvoir ignorer les réponses. Malheureusement, certaines personnes semblent manquer de cette compétence.

Personnellement, je pense que des réponses directes suffiraient. Cependant, pour ces utilisateurs trop sensibles, l’origine à la destination pourrait avoir de la valeur.

Même en tant que composant séparé et supplémentaire. Juste quelque chose qui peut être utile non seulement à l’utilisateur trop sensible. Mais aussi à l’équipe de modération pour avoir 1 mal de tête potentiel en moins. Pourrait peut-être utiliser un champ utilisateur pour permettre à l’utilisateur d’activer/désactiver cela, peut-être ?

Dan

Dans mon cas particulier, la communauté a perdu un membre précieux parce qu’il ne pouvait pas ignorer les réponses qu’il lisait. Qui, selon lui, faisaient du “gaslighting” auprès des gens. Donc, dans son irritation, il m’a demandé de bannir l’utilisateur avec lequel il avait un problème.

Pour être clair, cet utilisateur (le trop sensible) n’a jamais posé de problème et a été un contributeur solide pendant 2 ou 3 ans en tant que membre.

Ce concept pourrait également être bénéfique pour les forums dédiés à aider les personnes ayant des problèmes de santé mentale.

Il y a beaucoup de défis à cela, et les choses peuvent mal tourner lorsqu’il y a des opinions divergentes sur ce qui constitue les problèmes primaires ou secondaires.

Catégoriser les gens comme étant trop sensibles ou ayant un problème de santé mentale peut être considéré comme une insulte envers eux, il peut être tragique de voir à quelle vitesse une conversation dégénère en dispute et quelqu’un est alors identifié comme un troll ou une personne problématique.

Il peut y avoir une grande valeur à avoir un espace où les gens peuvent argumenter librement sans crainte d’être censurés ou édités, mais cela peut nécessiter un type spécifique de forum ou d’endroit pour ne pas causer de problèmes inutiles aux autres.

2 « J'aime »

J’espérerais que ce ne soit pas un besoin courant, mais j’ai personnellement ressenti le besoin, et manqué des outils, pour éviter d’être rappelé à l’existence et aux opinions d’une personne qui m’a beaucoup troublé. On pourrait dire que j’ai été déclenché, on pourrait dire que j’ai été trollé, ou que l’on me provoquait. Mais j’ai eu une réponse physiologique très réelle et indésirable, et si je voulais continuer à être un membre actif du forum, j’aurais préféré ignorer cette personne. Au moins pendant un certain temps.

Donc, parfois nous sommes exclusivement en compagnie de personnes robustes, parfois nous sommes dans une sous-culture qui valorise grandement toutes les formes d’expression personnelle, mais parfois nous sommes des individus vulnérables qui ont encore besoin de participer ou de ressentir un sentiment d’appartenance.

Edit : cela m’est aussi arrivé dans la vie réelle, au travail, une personne avec qui j’étais toujours en désaccord, mon rythme cardiaque augmentait et j’éprouvais une réaction de combat ou de fuite s’il entrait même dans la pièce. Il n’était même pas agressif ou répréhensible - c’était ma réaction qui m’affectait.

7 « J'aime »

J’ai l’impression que bloquer (du moins ne pas pouvoir lire/avoir une suggestion constante de lire) les réponses directes à soi-même de l’utilisateur bloqué est une bonne chose

honnêtement, dans un certain sens, vous devriez pouvoir bloquer tout le contenu d’un utilisateur bloqué, je ne vois pas comment cela n’est pas justifié dans certains cas (trolling excessif et autres)

3 « J'aime »

Celui-ci masque-t-il la notification des nouveaux sujets des utilisateurs ignorés ? D’après le code, je suppose que la réponse est non ?

1 « J'aime »

Ceci est uniquement pour les nouveaux sujets, pas pour les publications.

2 « J'aime »

Oui, le réglage par défaut masque les publications et les réponses. Ceci ajoute de nouveaux sujets.

1 « J'aime »

Merci pour le plugin.
Malheureusement, il ne semble pas masquer les sujets de la vue de catégorie, lorsqu’il est configuré pour afficher les derniers sujets dans chaque catégorie.
Cela pourrait-il être corrigé ?

2 « J'aime »

Ce composant doit être mis à jour pour Tests-passés

3 « J'aime »

Ceci fonctionne mais uniquement pour le sujet, avez-vous des idées pour le cacher dans la ‘liste des sujets’ sur la page d’accueil?

script type="text/discourse-plugin" version="1.6.0"

const { alias } = require("@ember/object/computed");

api.modifyClass("component:topic-list-columns", {
    pluginId: "remove-ignored-users-topic",
    attributeBindings: ["data-topic-id", "role", "ariaLevel:aria-level", "data-creator-name"],
    "data-creator-name": alias("topic.creator.username"),
});

if (api.registerValueTransformer()) {
const s = document.createElement("style");

for (const u of api.registerValueTransformer()?.ignored_users) {
    s.innerHTML += `tr.topic-list-columns[data-creator-name="${u}"] { display: none; }`;
}

document.body.appendChild(s);
}

/script

1 « J'aime »

Mis à niveau, il sera désormais compatible avec la nouvelle liste de sujets Discourse

4 « J'aime »

Merci beaucoup @Lhc_fl d’avoir mis à jour ceci, je peux confirmer que cela fonctionne comme décrit.

Par ailleurs, cette fonctionnalité devrait vraiment faire partie du cœur de Discourse, au moins comme une option ou peut-être même comme comportement par défaut lorsqu’un utilisateur est ignoré, c’est juste ce qu’un utilisateur attendrait raisonnablement d’une fonction « ignorer ».

2 « J'aime »

Il semble qu’il y ait un petit bug ou une limitation, je ne suis pas sûr si c’est nouveau depuis que ce composant a été porté vers Glimmer, car auparavant j’utilisais un composant différent pour cette fonctionnalité.

Le problème est que lorsqu’un utilisateur ignoré publie dans un sujet surveillé/suivi, le (1) pour les nouveaux messages s’affiche toujours à côté de son titre dans la liste des sujets. Et comme le message est caché à l’utilisateur, même après avoir cliqué sur le sujet et fait défiler jusqu’en bas, la notification de nouveau message s’affiche toujours dans la liste des sujets. Je suppose que c’est parce que le nouveau message est invisible et n’est donc pas marqué comme lu.

Juste pour information : cela m’a donné un avertissement d’administrateur sur le frontend.

Salut Jagster, es-tu sûr que ce n’est pas ce composant similaire ?

Absolument certain.