确认删除帖子 – 删除前添加确认对话框

:information_source: 简介 一个轻量级主题组件,在删除帖子前请求确认
:hammer_and_wrench: 代码仓库 GitHub - scavin/discourse-confirm-delete · GitHub
:question: 安装指南 如何安装主题或主题组件
:open_book: Discourse 主题新手? Discourse 主题使用入门指南

安装此主题组件

我分享一个小型主题组件,它在删除帖子前增加了一个确认步骤。

默认情况下,点击删除按钮会立即执行 Discourse 的标准删除操作。此组件首先显示 Discourse 原生的危险确认对话框,有助于防止意外删除。

它有什么作用?

当用户点击帖子上的 删除 按钮时,该组件会显示一个确认对话框:

删除帖子
您确定要删除此帖子吗?

可用的操作有:

  • 取消 — 关闭对话框,不执行任何操作
  • 删除 — 继续执行 Discourse 原有的删除操作

主要特性

:white_check_mark: 使用 Discourse 原生对话框 UI
: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: 管理员可通过主题翻译覆盖文本

工作原理

该组件使用 Discourse 官方前端 API:

  • apiInitializer
  • post-menu-buttons 值转换器
  • 内置的 dialog.deleteConfirm() 服务

它将帖子菜单中的删除按钮组件替换为一个小型包装器。确认后,包装器调用原始的 deletePost 操作。

这意味着该组件不重新实现删除功能,不发出自己的 API 请求,也不绕过 Discourse 现有的授权逻辑。

安装后:

  1. 管理 → 自定义 → 主题 中打开该组件
  2. 将其添加到需要启用的主题中
  3. 刷新主题页面
  4. 点击帖子上的删除按钮以测试确认对话框

翻译

该组件目前包含:

  • 英文 (en)
  • 简体中文 (zh_CN)

对话框标题、消息、取消按钮和删除按钮均使用主题翻译键。欢迎提供更多翻译。

兼容性

专为使用现代 Glimmer 帖子菜单和插件 API 的当前 Discourse 版本设计。

希望这个小组件能帮助防止意外删除帖子。欢迎反馈、错误报告、翻译和建议! :slight_smile:

6 个赞