| Краткое описание | Компонент темы с лёгким весом, запрашивающий подтверждение перед удалением сообщения | |
| Репозиторий | GitHub - scavin/discourse-confirm-delete · GitHub | |
| Руководство по установке | Как установить тему или компонент темы | |
| Только начали разбираться в темах Discourse? | Руководство для начинающих по использованию тем Discourse |
Установить этот компонент темы
Делюсь небольшим компонентом темы, который добавляет шаг подтверждения перед удалением сообщения.
По умолчанию нажатие кнопки «Удалить» немедленно запускает стандартное действие удаления в Discourse. Этот компонент сначала показывает стандартный диалог подтверждения опасности от Discourse, помогая предотвратить случайные удаления.
Что он делает?
Когда пользователь нажимает кнопку Удалить на сообщении, компонент показывает диалог подтверждения:
Удалить сообщение
Вы уверены, что хотите удалить это сообщение?
Доступные действия:
- Отмена — закрывает диалог без каких-либо действий
- Удалить — продолжает выполнение исходного действия удаления Discourse
Ключевые особенности
Использует нативный интерфейс диалогов Discourse
Использует красную кнопку «Удалить» в стиле предупреждения
Сохраняет исходное поведение удаления Discourse
Не изменяет проверки разрешений
Не модифицирует ядро Discourse
Не требует плагина
Без jQuery или window.confirm()
Без имитации кликов DOM
Работает на десктопе и мобильных устройствах
Переводы на английский и упрощённый китайский
Для других языков используется английский по умолчанию
Администраторы могут переопределить текст через переводы темы
Как это работает
Компонент использует официальные API фронтенда Discourse:
apiInitializer- преобразователь значений
post-menu-buttons - встроенный сервис
dialog.deleteConfirm()
Он заменяет компонент кнопки «Удалить» в меню сообщения небольшим обёртывающим компонентом. После подтверждения обёртка вызывает исходное действие deletePost.
Это означает, что компонент не реализует удаление заново, не делает собственных запросов к API и не обходит существующую логику авторизации Discourse.
После установки:
- Откройте компонент в Админ → Настроить → Темы
- Добавьте его в темы, где он должен быть активирован
- Обновите страницу темы
- Нажмите кнопку «Удалить» на сообщении, чтобы протестировать диалог подтверждения
Переводы
В компоненте в настоящее время включены:
- Английский (
en) - Упрощённый китайский (
zh_CN)
Заголовок диалога, сообщение, кнопка «Отмена» и кнопка «Удалить» используют ключи переводов темы. Будем рады дополнительным переводам.
Совместимость
Разработан для текущих релизов Discourse с использованием современного меню сообщений Glimmer и Plugin API.
Надеюсь, этот небольшой компонент поможет предотвратить случайное удаление сообщений. Отзывы, сообщения об ошибках, переводы и предложения приветствуются! ![]()
