Pagination/Défilement infini de la file d'attente de revue après une action

J’ai remarqué qu’après avoir traité un élément dans la file d’examen (par exemple, « Approuver le message »), il devient impossible de faire défiler davantage (charger plus via la pagination par défilement infini). Du moins dans mon cas, avec l’option « Trier par : » réglée sur « Date de création ».

Navigateur : Firefox sur ordinateur de bureau
Discourse : 2.5.0.beta5

1 « J'aime »

Je suis presque certain que nous avons considérablement affiné cette page au cours de l’année écoulée et résolu le problème de chargement.

Pourriez-vous signaler une réouverture si le problème persiste ?

1 « J'aime »

@markersocial, avez-vous de nouveaux détails à partager ? Il semble que cela se produise toujours pour vous.

Les filtres exacts que vous avez mis en place nous seraient utiles afin que nous puissions tenter de reproduire le problème.

2 « J'aime »

Bien sûr :slight_smile:

J’ai retesté cela sur la version 2.8.0beta4 et le problème persiste pour moi avec l’ordre de tri par défaut (score). D’après mes tests précédents, je pense que cela se produit avec n’importe quelle autre option de tri.

Pour reproduire le problème, il suffit d’avoir au moins 11 éléments dans la file d’examen. Si vous traitez un élément situé en haut de la liste (approuver, rejeter, etc.), il ne sera plus possible de faire défiler la liste vers le bas et de paginer jusqu’au dernier élément. Toute la liste doit être actualisée pour pouvoir paginer à nouveau.

2 « J'aime »

Parfait, merci pour les détails ! @sam, je peux reproduire ce problème. La reproduction est simple, comme suggéré par @markersocial : signalez au moins 11 publications, ouvrez la file d’attente de révision, traitez le premier signalement, puis faites défiler vers le bas.

3 « J'aime »

Commençons par préciser que je ne connais pas bien Ember, il est donc possible que j’utilise des termes inappropriés de temps à autre.

Une fois un reviewable résolu, il est retiré de la liste actuelle des reviewables en appelant reject :

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

reject retourne un tableau. Lorsque la variable reviewables est assignée au tableau newList (ligne 114), la classe contenant des méthodes supplémentaires comme loadMore() est remplacée par un tableau standard. (edit : c’est pourquoi le chargement fonctionne correctement avant la résolution d’un élément, mais pas après).

Une solution possible consiste à remplacer this.set("reviewables", newList); par this.reviewables.set("content", newList);.

3 « J'aime »

Ceci est maintenant corrigé ici :arrow_down:

5 « J'aime »