Пагинация/бесконечная прокрутка очереди ревью после выполнения действия

Я заметил, что после обработки элемента в очереди модерации (например, «Одобрить пост») становится невозможным прокрутить страницу дальше (загрузить больше через бесконечную прокрутку). По крайней мере, в моём случае при использовании опции «Сортировать по:» «Дата создания».

Браузер: Firefox для настольных ПК
Discourse: 2.5.0.beta5

1 лайк

Я почти уверен, что мы значительно доработали эту страницу за последний год и исправили проблему с загрузкой.

Если проблема всё ещё актуальна, пожалуйста, пометьте её для повторного открытия.

1 лайк

@markersocial, есть какие-то новые детали, которыми вы можете поделиться? Похоже, что проблема у вас всё ещё актуальна.

Будет полезно узнать точные фильтры, которые вы используете, чтобы мы могли попытаться воспроизвести это.

2 лайка

Конечно :slight_smile:

Я снова протестировал это в версии 2.8.0beta4, и проблема сохраняется для меня при сортировке по умолчанию (по баллам). Судя по предыдущим тестам, это касается и любых других вариантов сортировки.

Чтобы воспроизвести ошибку, достаточно наличия как минимум 11 элементов в очереди на проверку. Если обработать любой элемент в верхней части списка (одобрить, отклонить и т. д.), после этого прокрутить вниз и перейти на последнюю страницу списка станет невозможно. Чтобы снова получить возможность пагинации, необходимо полностью обновить весь список.

2 лайка

Отлично, спасибо за подробности! @sam, я могу это воспроизвести. Как предложил @markersocial, это просто: пометьте как минимум 11 постов, откройте очередь на проверку, обработайте первый флаг, а затем прокрутите страницу вниз.

3 лайка

Для начала скажу, что я не знаком с Ember, поэтому могу иногда использовать неправильные термины.

После разрешения reviewable он удаляется из текущего списка reviewables путём вызова reject:

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

reject возвращает массив. Когда переменная reviewables устанавливается в массив newList (строка 114), класс с дополнительными методами, такими как loadMore(), заменяется на обычный массив. (редактирование: именно поэтому загрузка работала корректно до разрешения элемента, но перестала работать после)

Возможное исправление — заменить this.set("reviewables", newList); на this.reviewables.set("content", newList);.

3 лайка

Теперь это исправлено здесь :arrow_down:

5 лайков