忽略管理员的噪音!

:information_source: 简介 自动为管理员关闭各种用户菜单通知
:hammer_and_wrench: 代码仓库 https://github.com/Lillinator/dismiss-admin-noise
:question: 安装指南 如何安装主题或主题组件

安装此主题组件

:woman_technologist:t2: 概述

这是一个轻量级的 Discourse 主题组件,可自动关闭(隐藏)管理员用户菜单中的特定系统通知。

该组件旨在减少界面噪音和认知负荷——尤其适合神经多样性管理员(比如我),或者经常更新实例并通过 Meta 跟踪变更的管理员(比如我),亦或是那些在开发论坛中大胆尝试的“YOLO”型管理员!(同样比如我):grin:

:gear: 设置

以下通知可以在组件的管理设置中自动关闭:

设置项 说明
No new features notifications 隐藏新功能通知
No invitee accepted notifications 隐藏邀请被接受的通知
No membership accepted notifications 隐藏加入群组被接受的通知(注意:不影响群组通知的合并)
No granted badge notifications 隐藏获得徽章的通知
No upcoming change promoted notifications 隐藏自动提升的即将变更的通知
No review queue badges 如果管理员不是审核员组成员,则隐藏可审核标记的通知
设置截图

:light_bulb: 重要提示

  • 仅影响管理员用户;例如,无论此组件中启用了哪些设置,非管理员用户仍会收到其获得徽章或邀请被接受的通知。

  • 请注意,No review queue badges 设置仅在管理员不是审核员组成员时影响标记通知。标记计数仍会显示在审核队列侧边栏中,以便管理员仍能跟踪情况。

  • 这些设置会影响 所有 管理员用户。无法针对管理员组中的特定管理员进行细化设置。这需要将其开发为插件,将设置添加到管理员用户的 preferences/notification 标签页中,目前我并没有太多精力去开发——除非当然你有预算并愿意付费请我开发。:slight_smile:

  • 如果启用了组件的所有设置,根据论坛通知的繁忙程度,可能会导致 其他通知所有通知 标签页为空。

  • 管理员关于 即将变更 的通知现在可以通过 用户偏好设置 -> 通知 中的设置自动关闭。

  • 如果此组件导致你错过重要通知,我不承担任何责任!


查看我的其他 Discourse 作品
14 个赞

也许就是这种情况吧,哈哈。我已被诊断为 ADHD。真希望几分钟前能截个图,但醒来时收到了约 30 个已接受的邀请,通知栏里只能看到最后 15 个(真不想仅仅因为邀请占满了下拉菜单的槽位,就得去访问 /u/hydn/notifications)。至少,缺乏内置的管理方式确实让人感到有些困扰。

谢谢!

2 个赞

顺便提一下,如果你想在无需执行实际触发这些通知的操作的情况下测试该组件的设置(且你拥有 SSH 访问权限),可以在 Rails 控制台中使用以下命令来触发相应的事件通知(请使用适用于你组件设置的触发器):

cd /var/discourse
.launcher enter app
rails c
# 查找并设置你的用户变量
u = User.find_by_username("YOUR ADMIN USERNAME")

# 触发:新功能
Notification.create!(
  user: u,
  notification_type: Notification.types[:new_features],
  read: false,
  data: {}.to_json
)

# 触发:受邀者已接受
Notification.create!(
  user: u,
  notification_type: Notification.types[:invitee_accepted],
  read: false,
  data: { display_username: "awesome_new_user" }.to_json
)

# 触发:群组成员资格已接受
Notification.create!(
  user: u,
  notification_type: Notification.types[:membership_request_accepted],
  read: false,
  data: { group_name: "Trust_Level_4" }.to_json
)

# 触发:授予徽章
Notification.create!(
  user: u,
  notification_type: Notification.types[:granted_badge],
  read: false,
  data: { badge_name: "Great Topic", badge_id: 10 }.to_json
)

# 触发:即将进行的变更已自动提升
Notification.create!(
  user: u,
  notification_type: Notification.types[:upcoming_change_automatically_promoted],
  read: false,
  data: { 
    upcoming_change_humanized_name: "Experimental CSS",
    upcoming_change_name: "experimental_css"
  }.to_json
)

# 广播(在另一个窗口或标签页中观察你的浏览器,按下回车后!)
u.publish_notifications_state

测试的最佳方法是:在你想要测试的组件中禁用该设置,运行相关的 Rails 触发器命令,查看通知弹出;然后启用该设置并进行硬刷新,观察它们消失。

1 个赞

谢天谢地,我今天正急着找这个呢。感觉每天都有关于它的通知,我快被逼疯了!哈哈 :smiley:

2 个赞

我设想可以给予管理员(以及用户)更多的控制权,让他们决定接收或不接收哪些通知。

在此过渡期间,能有这样可用的示例供需要的人参考,实在是很棒的事。

3 个赞

我对批量通知(例如大量徽章被触发)进行了一些改进,并添加了一个新设置:如果管理员不是版主组的成员,则自动取消来自审核队列的待处理标记通知。标记计数仍会显示在侧边栏的审核队列部分,因此管理员仍然可以跟踪情况,但用户菜单中不会有通知噪音:

Screenshot 2026-07-07 at 8.26.03 PM

4 个赞