ФУНКЦИЯ: Разрешить пользователю удалить ожидающую тему/сообщение на странице активности

Страница /activity/pending в настоящее время отображает все темы/сообщения, ожидающие модерации, но удалить можно только сообщения, перейдя в тему и нажав кнопку «Удалить» в блоке «ожидает одобрения». Пользователи не могут самостоятельно удалить свои темы, ожидающие модерации, без обращения к модераторам.

В данном коммите добавлена аналогичная кнопка «Удалить» непосредственно на страницу /activity/pending, что позволяет пользователям самостоятельно удалять свои темы, ожидающие модерации, по аналогии с удалением сообщений, ожидающих модерации, до этого.

До:

После:

https://github.com/user-attachments/assets/606d9fdd-ee9e-4445-931a-9607f642e97a

Также добавлены спецификации для тестирования этой функции.

4 лайка

Выглядит круто! Просто пара мыслей…

  • почему удалённая тема остаётся в очереди, как на вашем скриншоте? Разве она не должна просто… отменяться?
  • было бы логичнее, на мой взгляд, добавить диалог подтверждения, вместо того чтобы делать деструктивное действие одним кликом
2 лайка

почему удаленная тема остается в очереди, как на вашем скриншоте? Разве она не должна просто… отменяться?

Логика остается такой же, как для сообщений, то есть, когда пользователь удаляет сообщение до того, как с ним поступит администратор, оно также остается в очереди, как указано выше (статус «Тема или сообщение удалены», поэтому это не повлияет на состояние ожидания).

Кроме того, я думаю, это имеет смысл: если пользователь случайно удалит ожидающую тему, он сможет обратиться к администраторам за восстановлением.

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

Хорошо, я добавлю всплывающее окно, чтобы пользователи могли подтвердить это.

2 лайка

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

3 лайка

Супер мило @small-lovely-cat!

Для меня это имеет смысл

Вау, это странно. Я только что попытался удалить тему, и меня вообще ничто не предупредило, даже будучи обычным пользователем. Теперь, когда я это сделал, всё стало понятно, но, возможно, я настолько привык к UX администратора, что забыл, что как пользователь система не запрашивает подтверждение, потому что, честно говоря, думал, что запрашивает. Однако это происходит в всплывающем окне ответа, что, как мне кажется, примерно то же самое.

В конце концов, я думаю, это дело вкуса, и я просто предпочитаю иметь быструю проверку, чтобы предотвратить случайные клики/касания.

1 лайк

Но в том случае содержимое сообщения было бы потеряно, чего не происходит в других примерах. Мне кажется, что в целом Discourse был создан с идеей, что пользователь знает, что делает, и предупреждает только в случае серьёзных последствий.

1 лайк

Вот именно, и это не обязательно специфично для Discourse, а просто общие лучшие практики UX: модальное окно/диалог — это элемент, который создает трение в пользовательском потоке, и его следует использовать только тогда, когда действие действительно деструктивно. Все, что легко восстановить или отменить, может быть выполнено без него.

3 лайка

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

1 лайк

Да, определение «простого» является предметом споров.

2 лайка

Изначальный метод удаления ожидающей публикации заключался в переходе к теме, прокрутке вниз и нажатии кнопки «Удалить». Этот процесс достаточно сложен, чтобы предотвратить случайные действия.

Однако, поскольку ожидающие публикации представлены в виде списка, пользователь может случайно нажать кнопку удаления не той строки, а затем ему придётся обращаться к модераторам для восстановления. Это может занять время и усилия. С точки зрения пользователя, я считаю, что это не так «просто», поэтому, возможно, здесь необходимо добавить диалог подтверждения.

P.S. Мой первоначальный коммит был направлен на сохранение той же логики, что и при удалении ожидающей публикации ранее, но, я думаю, здесь также стоит добавить предупреждение для пользователя.

1 лайк