Skip to content

[Dashboard Modularization] Admin configuration UI: add/remove/reorder/resize widgets. #1425

Description

@armoredvortex

Implement the admin-only dashboard configuration UI described in the GSoC project plan (Deliverable 4).
Superusers will be able to customise the dashboard layout interactively.

Plan

  • src/stores/useDashboardStore.js : Zustand store (persisted to localStorage) holding widgetConfigs, layouts, isDirty, and savedVersion. All dashboard layout state now lives here instead of being hardcoded in defaultDashboardConfig.js.
  • src/components/dashboard/ConfigEditor.jsx : Admin editor accessible at /dashboard/config.
  • Dashboard.jsx — Reads widgetConfigs/layouts from the store; shows a Configure button for superusers.
  • Routes.jsx — Adds /dashboard/config to authRoutesLazy, wrapped in AuthGuard + SuperuserGuard.
  • AppHeader.jsx — Adds a Config nav item visible only when isSuperuser is true.
  • stores/index.js — Exports useDashboardStore.

Acceptance criteria

  • Admin can add a widget from the available panel
  • Admin can remove a widget via the X button
  • Admin can drag widgets to reorder
  • Admin can resize widgets using the corner handle
  • Reset restores the default layout

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions