Skip to main content

Effective default marker

The dashboard switcher sidebar marks the user's effective default dashboard — the one LaunchPad opens automatically when they visit /apps/launchpad/ cold — with a small ★ icon and a hover tooltip.

What you see​

A star icon between the dashboard's own icon and its label, on whichever sidebar row is the user's effective default:

Sidebar with star marker

The marker carries:

  • title="Default dashboard — opens automatically when you visit LaunchPad" — browser tooltip on hover
  • aria-label="Default dashboard" — for screen readers
  • color: var(--color-warning) — picks up Nextcloud theme overrides

"Effective default" — the chain​

The marker mirrors the resolver's first five steps (REQ-DASH-018):

1. defaultUuid (the user's pin) ← always wins
2. primary-group row with isDefault=1 ← admin-set group default
3. default-group row with isDefault=1 ← org-wide group default
4. first primary-group row ← when no flag
5. first default-group row ← when no flag
6. first personal dashboard ← intentionally NOT marked

Step 6 is excluded by design — silently starring an arbitrary personal dashboard the user never marked is more confusing than helpful. If no pin and no group default applies, no marker renders.

Setting / clearing the pin​

  1. Open the sidebar.
  2. Click the cog (⚙️) on the row you want as your default.
  3. Click Set as default.
  4. The marker appears next to that row immediately.

To clear: same flow, the menu entry now reads Default dashboard with a filled-star icon. Clicking it again clears the pin.

After clearing, the marker either disappears (if no group default applies) or moves to the resolver's group fallback.

Where in the code​

WhatFile
effectiveDefaultUuid computedDashboardSwitcherSidebar.vue
isDefaultDashboard() helpersame file
<span class="…__default-marker"> renderingsame file (3 row templates: primary-group, default-group, personal)
Pin persistence (server)setDefaultDashboardPreference() in dashboard.js store
Pin endpointPOST /api/dashboards/default

Tutorials​

Spec reference​

openspec/specs/effective-default-marker/spec.md — REQ-EDM-001 through REQ-EDM-005.