Nascondi argomenti degli utenti ignorati

:information_source: Riepilogo Questo componente ti permette di nascondere argomenti dagli utenti che hai ignorato
:hammer_and_wrench: Repository GitHub - Lhcfl/discourse-hide-ignored-user-topics
:question: Guida all’installazione Come installare un tema o un componente tema
:open_book: Nuovo per i temi di Discourse? Guida per principianti all’uso dei temi di Discourse

Installa questo componente tema

Prendi ispirazione da questo post:

Questo componente ti permette di nascondere argomenti dagli utenti che hai ignorato.

Fa esattamente quello che dice il nome, e il suo principio principale è molto semplice, quindi incollerò il codice principale qui sotto:

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 Mi Piace

@Lhc_fl,

Essenzialmente, se la funzionalità di questo componente del tema potesse essere ampliata per includere un’opzione aggiuntiva per nascondere.

Ignora predefinito nasconderà i post di detto utente.

Potrebbe essere aggiunta un’opzione a questo componente per nascondere le risposte a un utente ignorato. Poiché alcune persone eccessivamente sensibili si lamentano di poter ancora vedere altre persone rispondere all’utente ignorato.

1 Mi Piace

Non è difficile, ma non so se sia necessario…
Un utente ignorato ha postato. Non vogliono vederlo. Poi qualcuno ha risposto a questo utente. Anche loro non vogliono vederlo. Poi qualcun altro ha risposto a questa risposta, e poi un’altra risposta alla risposta alla risposta… Non dovrebbero essere visti?

  • Causa il crollo delle discussioni. Va bene, silenzi qualcuno, quindi “non vedi mai” i post di quella persona. Ma poi un altro utente che ti piace cita l’utente silenziato nel suo post, o fa riferimento al suo @nome, o risponde al suo post. Sopprimi solo la sezione citata? Sopprimi il @nome? Sopprimi anche tutte le risposte ai loro post? Questo lascia grandi buchi nella conversazione e presenta molte difficili sfide tecniche. Date abbastanza silenzi, blocchi e ignorati personali, ogni conversazione diventa un strano patchwork di affermazioni parzialmente visibili.
3 Mi Piace

@Lhc_fl
questo è necessario…
se A vuole ignorare B, ciò significa che tutti gli argomenti/post, il che sarebbe l’ideale

  1. gli argomenti di B vengono ignorati totalmente, questo è buono/fatto

  2. negli argomenti altrui, B ha risposto,
    2.1 i post di B dovrebbero essere nascosti, fatto
    2.2 l’avatar di B dovrebbe essere rimosso dalla pagina dell’elenco dei post (i partecipanti), questo sembra non difficile da fare?
    2.3 se il post di B viene citato, non sono sicuro se quella parte sia facile da rimuovere/nascondere?

grazie per questi grandi sforzi, questo è davvero utile, spero che tu possa considerare 2.2 e 2.3 se possibile…

2 Mi Piace

Come ho detto o scritto in uno dei miei post. Per certi versi sembra eccessivo. Come membro si dovrebbe poter saltare le risposte. Sfortunatamente alcune persone sembrano mancare di questa abilità.

Personalmente penso che forse solo risposte dirette. Tuttavia per questi utenti eccessivamente sensibili l’origine del punto finale potrebbe avere valore.

Anche come componente supplementare separato. Solo qualcosa che possa avere valore non solo per l’utente eccessivamente sensibile. Ma anche per il team di moderatori per avere 1 mal di testa in meno. Potrebbe forse usare un campo utente per consentire all’utente di attivare/disattivare questa opzione?

Dan

Nel mio caso particolare la community ha perso un membro di valore perché non riusciva a sorvolare/saltare la lettura di risposte che, a suo parere, erano gaslighting. Quindi, nella sua irritazione, ha chiesto di bannare l’utente con cui aveva un problema.

Per essere chiari, questo utente (quello eccessivamente sensibile) in 2 o 3 anni di appartenenza non è mai stato un problema ed è stato un forte contributore.

Questo concetto potrebbe anche essere un beneficio per i forum dedicati ad aiutare le persone con problemi di salute mentale.

Ci sono molte sfide in questo, e le cose possono andare storte quando ci sono opinioni divergenti su quali siano i problemi primari o secondari.

Categorizzare le persone come eccessivamente sensibili o con problemi di salute mentale può essere considerato un insulto per loro, può essere tragico quanto rapidamente una conversazione si trasforma in un litigio e poi qualcuno viene identificato come un troll o una persona problematica.

Può esserci un grande valore nell’avere uno spazio in cui le persone possano discutere liberamente senza timore di essere censurate o modificate, ma ciò potrebbe richiedere un tipo specifico di forum o luogo affinché ciò non causi problemi inutili ad altri.

2 Mi Piace

Spererei che non fosse un’esigenza comune, ma personalmente ho sentito il bisogno, e mi sono mancati gli strumenti, per evitare di essere ricordato dell’esistenza e delle opinioni di una persona che mi ha dato molto fastidio. Si potrebbe dire che sono stato “triggerato”, si potrebbe dire che sono stato trollato, o che mi stessero innervosendo. Ma ho avuto una risposta fisiologica molto reale e indesiderata, e se avessi voluto continuare ad essere un membro attivo del forum, avrei preferito non essere a conoscenza di quella persona. Almeno per un po’.

Quindi, a volte siamo esclusivamente in compagnia di persone robuste, a volte siamo in una sottocultura che apprezza molto tutte le forme di espressione personale, ma a volte siamo individui vulnerabili che hanno ancora bisogno di partecipare o di sentirsi parte di qualcosa.

Modifica: questo mi è successo anche nella vita reale, al lavoro, una persona con cui sarei sempre stato in disaccordo, il mio battito cardiaco aumentava e avrei avuto una risposta di “attacco o fuga” se fosse entrato anche solo nella stanza. Non era nemmeno aggressivo o sgradevole - era la mia risposta che mi stava influenzando.

7 Mi Piace

Ritengo che bloccare (almeno non poter leggere/avere un suggerimento costante a leggere) risposte dirette a sé stessi da parte dell’utente bloccato sia un buon passo

onestamente, in un certo senso, dovresti essere in grado di bloccare tutti i contenuti da un utente bloccato, non vedo come ciò non sia giustificato in alcuni casi (trolling eccessivo e simili)

3 Mi Piace

Questo nasconde la notifica di nuovi argomenti da utenti ignorati? Dal codice, immagino che la risposta sia no?

1 Mi Piace

Questo è solo per nuovi argomenti, non per post.

2 Mi Piace

Sì, l’impostazione predefinita nasconde post e risposte. Questo aggiunge nuovi argomenti.

1 Mi Piace

Grazie per il plugin.
Purtroppo, non sembra nascondere gli argomenti dalla vista della categoria, quando è configurato per mostrare gli ultimi argomenti in ogni categoria.
Potrebbe essere risolto?

2 Mi Piace

Questo componente necessita di un aggiornamento per Tests-passed

3 Mi Piace

Questo funziona ma solo sui temi, qualche idea per nascondere nella ‘lista dei temi’ alla home?

c script di tipo="text/discourse-plugin" versione="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 Mi Piace

Aggiornato, ora sarà compatibile con il nuovo elenco di argomenti di Discourse

4 Mi Piace

Grazie mille @Lhc_fl per aver aggiornato questo, posso confermare che funziona come descritto.

Come nota a margine, questa funzionalità dovrebbe davvero far parte del core di Discourse almeno come opzione o forse anche come comportamento predefinito quando un utente viene ignorato, è semplicemente ciò che un utente si aspetterebbe ragionevolmente da una funzione di “ignora”.

2 Mi Piace

Sembra che ci sia un piccolo bug o una limitazione, non sono sicuro se sia nuovo da quando questo componente è stato portato su Glimmer, perché in precedenza utilizzavo un componente diverso per questa funzionalità.

Il problema è che quando un utente ignorato pubblica in un argomento monitorato/tracciato, viene comunque visualizzato il (1) per i nuovi post accanto al suo titolo nell’elenco degli argomenti. E poiché il post è nascosto all’utente, anche dopo aver cliccato sull’argomento e aver scrollato fino in fondo, viene ancora visualizzata la notifica di nuovo post nell’elenco degli argomenti. Presumo sia perché il nuovo post è invisibile e quindi non viene contrassegnato come letto.

Solo per tua informazione: questo mi ha dato un avviso dell’amministratore sul frontend.

Ciao Jagster, sei sicuro che non sia questo componente simile?

Sono totalmente sicuro.