From c1d5e0bd0fac0f11105ee62cc9c4bec93f8b7eb8 Mon Sep 17 00:00:00 2001 From: Bastian Wagner Date: Tue, 21 Jul 2026 08:44:45 +0200 Subject: [PATCH] fracturing --- .../projects/furniture-grid.component.ts | 87 ++-- .../projects/furniture-section.component.html | 384 ++++++++++++++ .../projects/furniture-section.component.scss | 252 +++++++++ .../projects/furniture-section.component.ts | 484 ++++++++++++++++++ .../projects/project-workspace.page.ts | 27 +- .../frontend/src/app/layout/app-shell.spec.ts | 8 +- apps/frontend/src/app/layout/app-shell.ts | 4 +- apps/frontend/src/styles/_buttons.scss | 10 + 8 files changed, 1216 insertions(+), 40 deletions(-) create mode 100644 apps/frontend/src/app/features/projects/furniture-section.component.html create mode 100644 apps/frontend/src/app/features/projects/furniture-section.component.scss create mode 100644 apps/frontend/src/app/features/projects/furniture-section.component.ts diff --git a/apps/frontend/src/app/features/projects/furniture-grid.component.ts b/apps/frontend/src/app/features/projects/furniture-grid.component.ts index b43face..7772fd9 100644 --- a/apps/frontend/src/app/features/projects/furniture-grid.component.ts +++ b/apps/frontend/src/app/features/projects/furniture-grid.component.ts @@ -110,19 +110,21 @@ const deliveryStatuses: Record = { imports: [AgGridAngular, CurrencyPipe, FormsModule], template: `
-
- @for (entry of views; track entry.id) { - - } -
+ @if (!fixedView) { +
+ @for (entry of views; track entry.id) { + + } +
+ }
} @case ('moebel') { - + + } + @case ('bedarfe') { + + } + @case ('szenarien') { + } @case ('dokumente') {
diff --git a/apps/frontend/src/app/layout/app-shell.spec.ts b/apps/frontend/src/app/layout/app-shell.spec.ts index 90dffe9..45adae0 100644 --- a/apps/frontend/src/app/layout/app-shell.spec.ts +++ b/apps/frontend/src/app/layout/app-shell.spec.ts @@ -154,9 +154,9 @@ describe('AppShellComponent', () => { const host = fixture.nativeElement as HTMLElement; expect(host.querySelector('.project-tab')?.textContent).toContain('Wohnung Budapest'); expect(host.querySelector('.sidebar-context')?.textContent).toContain('Wohnung Budapest'); - expect(host.querySelector('.project-navigation')?.textContent).toContain('Möbel & Einrichtung'); - expect(host.querySelector('.project-navigation a.active')?.textContent).toContain( - 'Möbel & Einrichtung', - ); + expect(host.querySelector('.project-navigation')?.textContent).toContain('Möbel'); + expect(host.querySelector('.project-navigation')?.textContent).toContain('Bedarfe'); + expect(host.querySelector('.project-navigation')?.textContent).toContain('Szenarien'); + expect(host.querySelector('.project-navigation a.active')?.textContent).toContain('Möbel'); }); }); diff --git a/apps/frontend/src/app/layout/app-shell.ts b/apps/frontend/src/app/layout/app-shell.ts index a23eb05..099f79a 100644 --- a/apps/frontend/src/app/layout/app-shell.ts +++ b/apps/frontend/src/app/layout/app-shell.ts @@ -26,7 +26,9 @@ const projectSections = [ { id: 'aufgaben', label: 'Aufgaben' }, { id: 'zeitplan', label: 'Zeitplan' }, { id: 'budget', label: 'Budget' }, - { id: 'moebel', label: 'Möbel & Einrichtung' }, + { id: 'moebel', label: 'Möbel' }, + { id: 'bedarfe', label: 'Bedarfe' }, + { id: 'szenarien', label: 'Szenarien' }, { id: 'dokumente', label: 'Dokumente' }, { id: 'aktivitaeten', label: 'Aktivitäten' }, ] as const; diff --git a/apps/frontend/src/styles/_buttons.scss b/apps/frontend/src/styles/_buttons.scss index 1d5fa04..18d5d77 100644 --- a/apps/frontend/src/styles/_buttons.scss +++ b/apps/frontend/src/styles/_buttons.scss @@ -10,12 +10,22 @@ font-weight: var(--font-weight-semibold); line-height: 1; text-decoration: none; + color: var(--color-surface); + background: var(--color-primary); transition: background-color var(--transition-fast) ease, border-color var(--transition-fast) ease, color var(--transition-fast) ease; } +.ui-button:not(.ui-button--secondary, .ui-button--ghost, .ui-button--danger):hover { + background: var(--color-primary-hover); +} + +.ui-button:not(.ui-button--secondary, .ui-button--ghost, .ui-button--danger):active { + background: var(--color-primary-active); +} + .ui-button--primary { color: var(--color-surface); background: var(--color-primary);