Verfahrensablauf columns: when side is 'Nicht festgelegt', label columns 'Proaktiv'/'Reaktiv' instead of 'Unsere Seite'/'Gegenseite' #127

Open
opened 2026-05-26 09:09:28 +00:00 by mAi · 1 comment
Collaborator

m's report (2026-05-26 11:08)

while the side of the litigation is not selected, we should not have 'Unsere Seite' and 'Gegenseite' but rather Proactive (left) and Reactive (right)

Scope

#88 (t-paliad-257) reframed the timeline columns from Proaktiv/Reaktiv to Unsere Seite / Gegenseite. m's correction: those user-perspective labels ONLY make sense once a side is picked. When the side is Nicht festgelegt/Undefined (the default after #120), the columns should fall back to the older Proaktiv (left) / Reaktiv (right) labels — semantic-neutral.

When a side IS picked: keep #88's behavior (Unsere Seite left, Gegenseite right; columns swap based on which side).

What to do

  1. In frontend/src/client/views/verfahrensablauf-core.ts (column header render), branch on the active side:
    • side === null (Nicht festgelegt) → headers: Proaktiv / Gericht / Reaktiv
    • side === 'claimant' or 'defendant' → headers: Unsere Seite / Gericht / Gegenseite (current #88 behavior)
  2. Update i18n keys accordingly — bring back column.proactive / column.reactive (may have been removed in #88; if so re-add).
  3. Update the test in verfahrensablauf-core.test.ts to cover both label modes.
  4. Document the rationale in a code comment so a future reader knows why the columns have two label modes.

Files most likely touched

  • frontend/src/client/views/verfahrensablauf-core.ts
  • frontend/src/client/views/verfahrensablauf-core.test.ts
  • frontend/src/client/i18n.ts + frontend/src/i18n-keys.ts

Hard rules

  • Don't change projection — same rules render in same columns; only the COLUMN HEADER label changes based on whether a side is picked.
  • The hint chip from #120 ("Wählen Sie eine Seite, um die Spalten zu fokussieren") stays — it remains relevant.
  • go build ./... && go test ./internal/... && cd frontend && bun run build clean.
  • Branch: mai/<worker>/column-labels-side-aware.

Out of scope

  • Re-introducing the Proaktiv/Reaktiv semantics in the projection (that was the wrong lens — #88 fixed it).
  • Renaming Klägerseite/Beklagtenseite chips.

Reporting

mai report completed with branch + SHAs + UX path: open Verfahrensablauf with no project context → side=Nicht festgelegt → confirm headers read Proaktiv/Gericht/Reaktiv. Pick a side → confirm headers swap to Unsere Seite/Gericht/Gegenseite.

## m's report (2026-05-26 11:08) > while the side of the litigation is not selected, we should not have 'Unsere Seite' and 'Gegenseite' but rather Proactive (left) and Reactive (right) ## Scope #88 (t-paliad-257) reframed the timeline columns from Proaktiv/Reaktiv to Unsere Seite / Gegenseite. m's correction: those user-perspective labels ONLY make sense once a side is picked. When the side is `Nicht festgelegt`/`Undefined` (the default after #120), the columns should fall back to the older **Proaktiv** (left) / **Reaktiv** (right) labels — semantic-neutral. When a side IS picked: keep #88's behavior (Unsere Seite left, Gegenseite right; columns swap based on which side). ## What to do 1. In `frontend/src/client/views/verfahrensablauf-core.ts` (column header render), branch on the active side: - `side === null` (Nicht festgelegt) → headers: `Proaktiv` / `Gericht` / `Reaktiv` - `side === 'claimant' or 'defendant'` → headers: `Unsere Seite` / `Gericht` / `Gegenseite` (current #88 behavior) 2. Update i18n keys accordingly — bring back `column.proactive` / `column.reactive` (may have been removed in #88; if so re-add). 3. Update the test in `verfahrensablauf-core.test.ts` to cover both label modes. 4. Document the rationale in a code comment so a future reader knows why the columns have two label modes. ## Files most likely touched - `frontend/src/client/views/verfahrensablauf-core.ts` - `frontend/src/client/views/verfahrensablauf-core.test.ts` - `frontend/src/client/i18n.ts` + `frontend/src/i18n-keys.ts` ## Hard rules - **Don't change projection** — same rules render in same columns; only the COLUMN HEADER label changes based on whether a side is picked. - The hint chip from #120 ("Wählen Sie eine Seite, um die Spalten zu fokussieren") stays — it remains relevant. - `go build ./... && go test ./internal/... && cd frontend && bun run build` clean. - Branch: `mai/<worker>/column-labels-side-aware`. ## Out of scope - Re-introducing the Proaktiv/Reaktiv semantics in the projection (that was the wrong lens — #88 fixed it). - Renaming Klägerseite/Beklagtenseite chips. ## Reporting `mai report completed` with branch + SHAs + UX path: open Verfahrensablauf with no project context → side=Nicht festgelegt → confirm headers read Proaktiv/Gericht/Reaktiv. Pick a side → confirm headers swap to Unsere Seite/Gericht/Gegenseite.
mAi self-assigned this 2026-05-26 09:09:28 +00:00
Author
Collaborator

Done — side-aware column headers

Branch: mai/hermes/gitster-verfahrensablauf
Commit: 15cc5e418c35

Change

renderColumnsBody (frontend/src/client/views/verfahrensablauf-core.ts) now picks header labels per the incoming side:

  • side === null (Nicht festgelegt / Undefined) → Proaktiv / Gericht / Reaktiv (semantic-neutral fallback).
  • side === 'claimant' | 'defendant'Unsere Seite / Gericht / Gegnerseite (the #88 user-perspective labels).

The bucketing primitive is untouched — only the column-header text changes. Same rules render in the same columns; the hint chip from #120 stays in place.

Files

  • frontend/src/client/views/verfahrensablauf-core.ts — branched the leftLabel / rightLabel pair on userSide; rationale documented inline.
  • frontend/src/client/i18n.ts — added deadlines.col.proactive (Proaktiv / Proactive) + deadlines.col.reactive (Reaktiv / Reactive) for DE + EN.
  • frontend/src/i18n-keys.ts — typed-key union extended.
  • frontend/src/client/views/verfahrensablauf-core.test.ts — new describe("renderColumnsBody — side-aware column header labels") block with four assertions: side=null (explicit), side=null (omitted opts), side=claimant, side=defendant.

Verification

  • bun test src/client/views/verfahrensablauf-core.test.ts33 pass / 0 fail (29 existing + 4 new).
  • bun run build → clean (2910 i18n keys, scan clean).
  • go build ./... → clean.
  • go test ./internal/... → all packages pass.

Fristenrechner shares renderColumnsBody and now picks up the same fallback when no perspective is picked — semantics stay consistent with the Verfahrensablauf intent.

UX path

  • Open /tools/verfahrensablauf with no project context → side=Nicht festgelegt → headers read Proaktiv / Gericht / Reaktiv.
  • Pick a side (Klägerseite or Beklagtenseite) → headers swap to Unsere Seite / Gericht / Gegnerseite.

Out of scope (per issue)

  • Did NOT change projection / bucketing.
  • Did NOT touch the #120 hint chip — still relevant when side is unset.
  • Did NOT rename Klägerseite / Beklagtenseite chips.
## Done — side-aware column headers **Branch:** `mai/hermes/gitster-verfahrensablauf` **Commit:** [`15cc5e418c35`](https://mgit.msbls.de/m/paliad/commit/15cc5e418c353c530cb2d11c8999a72743209a98) ### Change `renderColumnsBody` (`frontend/src/client/views/verfahrensablauf-core.ts`) now picks header labels per the incoming `side`: - `side === null` (Nicht festgelegt / Undefined) → **Proaktiv / Gericht / Reaktiv** (semantic-neutral fallback). - `side === 'claimant' | 'defendant'` → **Unsere Seite / Gericht / Gegnerseite** (the #88 user-perspective labels). The bucketing primitive is untouched — only the column-header text changes. Same rules render in the same columns; the hint chip from #120 stays in place. ### Files - `frontend/src/client/views/verfahrensablauf-core.ts` — branched the leftLabel / rightLabel pair on `userSide`; rationale documented inline. - `frontend/src/client/i18n.ts` — added `deadlines.col.proactive` (Proaktiv / Proactive) + `deadlines.col.reactive` (Reaktiv / Reactive) for DE + EN. - `frontend/src/i18n-keys.ts` — typed-key union extended. - `frontend/src/client/views/verfahrensablauf-core.test.ts` — new `describe("renderColumnsBody — side-aware column header labels")` block with four assertions: side=null (explicit), side=null (omitted opts), side=claimant, side=defendant. ### Verification - `bun test src/client/views/verfahrensablauf-core.test.ts` → **33 pass / 0 fail** (29 existing + 4 new). - `bun run build` → clean (2910 i18n keys, scan clean). - `go build ./...` → clean. - `go test ./internal/...` → all packages pass. Fristenrechner shares `renderColumnsBody` and now picks up the same fallback when no perspective is picked — semantics stay consistent with the Verfahrensablauf intent. ### UX path - Open `/tools/verfahrensablauf` with no project context → side=Nicht festgelegt → headers read **Proaktiv / Gericht / Reaktiv**. - Pick a side (Klägerseite or Beklagtenseite) → headers swap to **Unsere Seite / Gericht / Gegnerseite**. ### Out of scope (per issue) - Did NOT change projection / bucketing. - Did NOT touch the #120 hint chip — still relevant when side is unset. - Did NOT rename Klägerseite / Beklagtenseite chips.
mAi added the
done
label 2026-05-26 09:58:59 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: m/paliad#127
No description provided.