Подтверждение удаления поста — добавление диалогового окна подтверждения перед удалением

:information_source: Краткое описание Компонент темы с лёгким весом, запрашивающий подтверждение перед удалением сообщения
:hammer_and_wrench: Репозиторий GitHub - scavin/discourse-confirm-delete · GitHub
:question: Руководство по установке Как установить тему или компонент темы
:open_book: Только начали разбираться в темах Discourse? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

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

По умолчанию нажатие кнопки «Удалить» немедленно запускает стандартное действие удаления в Discourse. Этот компонент сначала показывает стандартный диалог подтверждения опасности от Discourse, помогая предотвратить случайные удаления.

Что он делает?

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

Удалить сообщение
Вы уверены, что хотите удалить это сообщение?

Доступные действия:

  • Отмена — закрывает диалог без каких-либо действий
  • Удалить — продолжает выполнение исходного действия удаления Discourse

Ключевые особенности

:white_check_mark: Использует нативный интерфейс диалогов Discourse
:white_check_mark: Использует красную кнопку «Удалить» в стиле предупреждения
:white_check_mark: Сохраняет исходное поведение удаления Discourse
:white_check_mark: Не изменяет проверки разрешений
:white_check_mark: Не модифицирует ядро Discourse
:white_check_mark: Не требует плагина
:white_check_mark: Без jQuery или window.confirm()
:white_check_mark: Без имитации кликов DOM
:white_check_mark: Работает на десктопе и мобильных устройствах
:white_check_mark: Переводы на английский и упрощённый китайский
:white_check_mark: Для других языков используется английский по умолчанию
:white_check_mark: Администраторы могут переопределить текст через переводы темы

Как это работает

Компонент использует официальные API фронтенда Discourse:

  • apiInitializer
  • преобразователь значений post-menu-buttons
  • встроенный сервис dialog.deleteConfirm()

Он заменяет компонент кнопки «Удалить» в меню сообщения небольшим обёртывающим компонентом. После подтверждения обёртка вызывает исходное действие deletePost.

Это означает, что компонент не реализует удаление заново, не делает собственных запросов к API и не обходит существующую логику авторизации Discourse.

После установки:

  1. Откройте компонент в Админ → Настроить → Темы
  2. Добавьте его в темы, где он должен быть активирован
  3. Обновите страницу темы
  4. Нажмите кнопку «Удалить» на сообщении, чтобы протестировать диалог подтверждения

Переводы

В компоненте в настоящее время включены:

  • Английский (en)
  • Упрощённый китайский (zh_CN)

Заголовок диалога, сообщение, кнопка «Отмена» и кнопка «Удалить» используют ключи переводов темы. Будем рады дополнительным переводам.

Совместимость

Разработан для текущих релизов Discourse с использованием современного меню сообщений Glimmer и Plugin API.

Надеюсь, этот небольшой компонент поможет предотвратить случайное удаление сообщений. Отзывы, сообщения об ошибках, переводы и предложения приветствуются! :slight_smile:

6 лайков