mirror of
https://github.com/discourse/discourse.git
synced 2026-08-09 21:45:25 +08:00
Previously, the redesigned admin dashboard couldn't show how a community handles its support topics, and plugins had no way to contribute their own dashboard sections — only individual highlight KPIs. This change adds a register_admin_dashboard_section plugin API and uses it in discourse-solved to add a Support section for communities with at least one category where accepted answers are enabled. **Core: register_admin_dashboard_section** A new plugin API (mirroring the existing highlight-KPI registration) lets a plugin register a dashboard section with an id, an optional enabled gate, and a data loader; the JS api.registerAdminDashboardSection(id, component) supplies the matching client component. The section configuration, parallel loader, and dashboard component render registered sections dynamically alongside the core ones. Also in the core commit: the dev database pool is raised so the dashboard's parallel section loader isn't starved of connections with an extra section, and a stray db-section__row-block divider on mobile is fixed. **Support section (discourse-solved)** For the selected period, scoped to categories where "Allow topic owner and staff to mark a reply as the solution" is enabled, the section shows: - KPIs with previous-period deltas: resolution rate (drill-through to the accepted_solutions report), staff involvement, and average first-reply time. - Topic outcomes - resolved / in progress / unanswered. - Who's answering - a breakdown of repliers by trust level and staff. - Response time distribution - first-reply times bucketed into <1h, 1–4h, 4–24h, >24h, with a faster/slower trend. - A category filter when more than one support category exists. Screenshots: <img width="804" height="748" alt="Screenshot 2026-07-02 at 10 58 13 am" src="https://github.com/user-attachments/assets/8e938a5e-93df-446f-885c-3d779431ab9b" /> <img width="396" height="789" alt="Screenshot 2026-07-02 at 10 58 01 am" src="https://github.com/user-attachments/assets/9a9a171d-42d9-482c-950c-5daad055a746" /> --------- Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com>
17 lines
479 B
Ruby
Vendored
17 lines
479 B
Ruby
Vendored
# frozen_string_literal: true
|
|
|
|
DiscourseSolved::Engine.routes.draw do
|
|
post "/accept" => "answer#accept"
|
|
post "/unaccept" => "answer#unaccept"
|
|
|
|
post "/shared_issue" => "shared_issue#create"
|
|
|
|
get "/by_user" => "solved_topics#by_user"
|
|
end
|
|
|
|
Discourse::Application.routes.draw do
|
|
mount DiscourseSolved::Engine, at: "solution"
|
|
|
|
get "/admin/plugins/solved/dashboard-support" => "discourse_solved/admin_dashboard_support#index",
|
|
:constraints => StaffConstraint.new
|
|
end
|