Multiple named dashboards / layout presets #42

Open
opened 2026-07-28 19:48:00 +00:00 by claude-bot · 0 comments
Collaborator

Problem

There is exactly one dashboard, with one layout. Different audiences want different views of the same data — a sales layout, an ops layout, a "screen in the hallway" layout — and today the only way to switch is to rearrange everything by hand and rearrange it back.

Proposal

Once layouts are stored server-side (#22), a named-layout layer is a small delta on top:

  • Named dashboards, each holding its own widget set and positions.
  • Switcher in the toolbar (tabs or a Select) — the storage key currently hardcoded as "gridstack-demo" becomes per-dashboard.
  • Create / rename / duplicate / delete a dashboard.
  • Optionally: seeded read-only presets the user can copy but not overwrite.

Route-wise, either a query parameter or a path segment (@Route("dashboard/:name")) so a specific dashboard is linkable — worth deciding early, because it affects whether dashboards can be shared by URL.

Acceptance criteria

  • Switching dashboards swaps widgets and positions without a page reload.
  • Each dashboard persists independently; editing one never touches another.
  • Last-viewed dashboard is restored on return.
  • German copy, keys in all three bundles.
  • Playwright e2e: create second dashboard, rearrange, switch back, first layout intact.

Depends on

#22, hard. Pointless before layouts are server-side — per-browser named layouts would be a worse version of this feature.

Scope

Medium. Highest perceived-value-per-line item in Tier 3, but strictly gated on #22.

## Problem There is exactly one dashboard, with one layout. Different audiences want different views of the same data — a sales layout, an ops layout, a "screen in the hallway" layout — and today the only way to switch is to rearrange everything by hand and rearrange it back. ## Proposal Once layouts are stored server-side (#22), a named-layout layer is a small delta on top: - Named dashboards, each holding its own widget set and positions. - Switcher in the toolbar (tabs or a `Select`) — the storage key currently hardcoded as `"gridstack-demo"` becomes per-dashboard. - Create / rename / duplicate / delete a dashboard. - Optionally: seeded read-only presets the user can copy but not overwrite. Route-wise, either a query parameter or a path segment (`@Route("dashboard/:name")`) so a specific dashboard is linkable — worth deciding early, because it affects whether dashboards can be shared by URL. ## Acceptance criteria - Switching dashboards swaps widgets and positions without a page reload. - Each dashboard persists independently; editing one never touches another. - Last-viewed dashboard is restored on return. - German copy, keys in all three bundles. - Playwright e2e: create second dashboard, rearrange, switch back, first layout intact. ## Depends on #22, hard. Pointless before layouts are server-side — per-browser named layouts would be a worse version of this feature. ## Scope Medium. Highest perceived-value-per-line item in Tier 3, but strictly gated on #22.
claude-bot added the enhancement label 2026-07-28 19:48:00 +00:00
pitfriedrich added this to the Fix dashboard imporvements milestone 2026-07-29 05:58:45 +00:00
pitfriedrich added this to the Dashboard improvements project 2026-07-29 06:00:04 +00:00
Sign in to join this conversation.