Aggiunta di nuove colonne alle liste degli utenti nei gruppi

È possibile aggiungere colonne aggiuntive agli elenchi utente nei gruppi? Ho un plugin a cui sto cercando di aggiungere funzionalità, che aggiunge una colonna all’elenco utenti nei gruppi che mostra se un utente è Attivo, Sospeso, Silenziato o Disattivato. Sembra che il template Handlebars di group-index e il controller di group-index siano ciò che devo prendere di mira per questo, ma non c’è un plugin outlet, quindi mi chiedo quale sia il modo corretto di aggiungere una nuova colonna, se ciò è possibile. Sono nuovo allo sviluppo di Discourse, quindi potrei perdermi qualcosa qui, ma apprezzerei molto qualsiasi suggerimento. Ho letto queste guide di sviluppo che sono ottime risorse, ma al momento sono bloccato.

1 Mi Piace

Ciao, benvenuto su meta :wave:
Puoi usare gli outlet group-index-table-header-after-username e group-index-table-row-after-username per inserire un’intestazione/riga accanto alla colonna del nome utente.

Ad esempio:

Per l’intestazione, puoi usare il componente TableHeaderToggle.
Per la riga, puoi usare ad esempio <div class="directory-table__cell directory-table__cell--status">{{this.args.member}}</div> – puoi accedere ai dati con {{this.args.member}}

Dovrai correggere il CSS della griglia per includere una nuova colonna.

.group-members--can-manage {
    grid-template-columns: 3fr repeat(5, minmax(min-content, 1fr)) 3em;
                                      ^
}

Se vuoi spostare la colonna, il posizionamento è un po’ complicato a causa di display: contents; tuttavia, usare order può funzionare.

A margine, potresti avere problemi a ottenere lo stato dell’utente. Nei miei test, i dati non venivano riflessi in member con un utente sospeso o silenziato (silencedTillDate o suspendedTillDate sono indefiniti). Non sono sicuro se ci sia un bug qui. Non ho scavato più a fondo, per ora!

Spero che questo aiuti.

5 Mi Piace

Ottimo, grazie! Questo aiuta molto. Mi rendo conto ora che non stavo vedendo le outlet group-index-table-header-after-username e group-index-table-row-after-username perché il sito sta utilizzando una versione obsoleta di Discourse (2.7).

1 Mi Piace

Prego!. 2.7! È piuttosto vecchio, in effetti. :smile:

Come nota a margine, ti incoraggerei vivamente a utilizzare questo componente: (deprecated) Plugin outlet locations theme component. Super utile! :+1:

4 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.