Commit Graph

4 Commits

Author SHA1 Message Date
serversdown 80464c6f11 feat(projects): per-module stat breakdown on project cards
The single Locations/Units/Active row was confusing: "Active" collided with
the green Active status badge and actually meant sound recording sessions, so
vibration-only projects showed a meaningless "Active 0", and combined projects
lumped both modules together with no split.

Cards now show one stat line per module, each carrying its own identity +
status badge (so the separate chip row is dropped as redundant):
  Vibration   N locations · M units
  Sound       N NRLs · M units · K recording

- /list endpoint computes module_stats: locations (active, by type) and units
  counted via a join on the assigned location's type — so a module's unit
  count always reconciles with its location count (verified: sound+vibration
  units == total active assignments for every project).
- "recording" (active sessions) shows only under Sound, where it's meaningful.
- Projects with no modules fall back to a simple Locations/Units row.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015m9FuJvk65kJmmP3c9c6r1
2026-06-22 20:38:48 +00:00
serversdown f54c62b332 feat(projects): projects page overhaul — events, header, module toolbars, cards
Addresses a batch of projects-page UX issues:

1. Vibration Events sub-tab: add a Location filter + clickable column
   sorting (Timestamp/Location/Serial/Tran/Vert/Long/PVS/Mic). Events are
   cached client-side so location-filter and sort are instant (no SFM refetch).

3. Drop the misleading single-module "Sound Monitoring" subtitle on the
   Overview card (combined projects have multiple modules); show the
   project number · client identity instead.

4. Header cleanup: move the sound-only actions (Generate Combined Report,
   Night Report, Report Settings) and the Manual/Remote chip out of the
   global project header and into the Sound tab's module toolbar. The header
   now carries project-level concerns only (status, modules, merge). The
   Night Report / Report Settings modals stay defined in the header partial
   (global), so the relocated buttons still call them.

2. Per-module status UI: each module tab gets a status dropdown
   (active/on_hold/completed) wired to the new endpoint; the header module
   chips show a "✓ Done" / "On hold" badge.

5. Project cards redesigned: module mix accent strip, Sound/Vibration chips
   with per-module status, project number · client identity, and per-module
   "Sound"/"Vibration" quick-open buttons that deep-link into that module's
   tab (#sound / #vibration).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015m9FuJvk65kJmmP3c9c6r1
2026-06-22 20:24:40 +00:00
claude 65362bab21 feat: implement project status management with 'on_hold' state and associated UI updates
-feat: ability to hard delete projects, plus a soft delete with auto pruning.
2026-02-19 15:23:02 +00:00
claude 8a5fadb5df Move SLM control center groundwork onto dev 2026-01-12 18:07:26 +00:00