Paginação/Rolagem Infinita da Fila de Revisão após Realizar uma Ação

Percebi que, após processar um item na fila de revisão, como ‘Aprovar Postagem’, torna-se impossível rolar mais (carregar mais via paginação com rolagem infinita). Pelo menos no meu caso, usando a opção ‘Ordenar por:’ de ‘Criado em’.

Navegador: Firefox para desktop
Discourse: 2.5.0.beta5

1 curtida

Tenho quase certeza de que refinamos bastante esta página ao longo do último ano e corrigimos o problema de carregamento.

Pode sinalizar para reabrir se isso ainda for um problema.

1 curtida

@markersocial, há algum novo detalhe que você possa compartilhar? Parece que isso ainda está acontecendo para você.

Os filtros exatos que você tem configurados seriam úteis, para que possamos tentar reproduzir isso.

2 curtidas

Claro :slight_smile:

Então, testei isso novamente na versão 2.8.0beta4 e o problema ainda ocorre para mim com a ordem padrão de classificação (score). Acredito que o mesmo acontece com qualquer outra opção de classificação, conforme testes anteriores.

Para reproduzir, é necessário ter pelo menos 11 itens na fila de revisão. Se você processar qualquer item no topo da lista (aprovar/rejeitar etc.), depois disso não será possível rolar para baixo e paginar até o último item da lista. Toda a lista precisa ser atualizada para que seja possível paginar novamente.

2 curtidas

Perfeito, obrigado pelos detalhes! @sam, consegui reproduzir isso. É fácil reproduzir, como sugerido por @markersocial: sinalize pelo menos 11 posts, abra a fila de revisão, resolva o primeiro sinal e depois role para baixo.

3 curtidas

Deixe-me começar dizendo que não estou familiarizado com o Ember, então posso usar os termos errados aqui e ali.

Após resolver um reviewable, ele é removido da lista atual de reviewables chamando reject:

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

reject retorna um array. Quando a variável reviewables é definida como o array newList (linha 114), a classe com métodos adicionais como loadMore() é substituída por um array básico. (edição: é por isso que o carregamento funciona corretamente antes de resolver um item, mas não depois)

Uma possível correção é substituir this.set("reviewables", newList); por this.reviewables.set("content", newList);.

3 curtidas

Isso agora está corrigido aqui :arrow_down:

5 curtidas