Paginazione/Scroll infinito della coda di revisione dopo aver eseguito un'azione

Ho notato che, dopo aver gestito un elemento nella coda di revisione (ad esempio ‘Approva post’), non è più possibile scorrere ulteriormente (caricare altro tramite la paginazione a scorrimento infinito). Almeno nel mio caso, utilizzando l’opzione ‘Ordina per:’ con il valore ‘Data di creazione’.

Browser: Firefox desktop
Discourse: 2.5.0.beta5

1 Mi Piace

Sono abbastanza sicuro che abbiamo affinato questa pagina molto nell’ultimo anno e risolto il problema di caricamento.

Puoi segnalarla per riapertura se il problema persiste.

1 Mi Piace

@markersocial, hai nuovi dettagli da condividere? Sembra che il problema stia ancora verificandosi per te.

Sarebbe utile conoscere i filtri esatti che hai impostato, così da poter provare a riprodurlo.

2 Mi Piace

Certo :slight_smile:

Quindi ho testato di nuovo questa situazione sulla versione 2.8.0beta4 e il problema si verifica ancora per me con l’ordinamento predefinito (punteggio). Credo che accada lo stesso con qualsiasi altra opzione di ordinamento, come ho verificato in passato.

Per riprodurre il problema, è sufficiente avere almeno 11 elementi nella coda di revisione. Se gestisci un elemento in cima alla lista (approva/rifiuta, ecc.), dopo non sarà più possibile scorrere verso il basso e paginare fino all’ultimo elemento della lista. L’intera lista deve essere aggiornata per poter paginare nuovamente.

2 Mi Piace

Perfetto, grazie per i dettagli! @sam, riesco a riprodurlo. Riproduzione semplice, come suggerito da @markersocial: segnala almeno 11 post, apri la coda di revisione, gestisci il primo segnale, quindi scorri verso il basso.

3 Mi Piace

Innanzitutto, precisiamo che non sono molto familiare con Ember, quindi potrei usare termini non corretti di tanto in tanto.

Dopo aver risolto un reviewable, questo viene rimosso dall’elenco corrente dei reviewables chiamando reject:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/controllers/review-index.js#L107

reject restituisce un array. Quando la variabile reviewables viene impostata sull’array newList (riga 114), la classe con metodi aggiuntivi come loadMore() viene sostituita da un array base. (modifica: è per questo motivo che il caricamento funziona correttamente prima di risolvere un elemento, ma non dopo)

Una possibile soluzione consiste nel sostituire this.set("reviewables", newList); con this.reviewables.set("content", newList);.

3 Mi Piace

Questo ora è stato corretto qui :arrow_down:

5 Mi Piace