Prepinac firmy do sidebaru a prepnuti prekresli obsah cely

Dodelavka. Tvrzeni "prepinac plati pro cely system" nebylo pravdive:
useApiQuery se na zmenu firmy zeptat umel, ale komponenty volajici
apiFetch primo - EntityAdmin, a tim cele Nastaveni a zalozky Resitele
a Skupiny v Lidech - o zmene nevedely a zustala na nich data predchozi
firmy. Presne ta vada, kvuli ktere se to delalo, jen o patro vedle.

- obsah dashboardu ma key podle vybrane firmy, takze prepnuti prestavi
  cely strom komponent. Zadny dotaz nemuze zustat stary, protoze zadna
  stara komponenta nezustane. Doplnovat zavislost do kazde komponenty
  zvlast je totez zapomenuti, jen o patro niz.
- prepinac je v sidebaru nad navigaci, ne v hlavicce, a vypada jako
  ovladaci prvek: ram, ikona firmy, sipka. Predchozi verze mela pruhledny
  ram a splyvala s popiskem.
- v hlavicce zustal jen nazev aktivni firmy. Driv tam stalo natvrdo
  tenants[0], takze po prepnuti ukazovala porad prvni firmu ze seznamu.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
JiriUhlir
2026-08-26 08:04:22 +02:00
co-authored by Claude Opus 5
parent 2e0b9456a9
commit 2e863c1f8b
3 changed files with 95 additions and 18 deletions
+14 -2
View File
@@ -48,8 +48,9 @@ muze mit vic. Bez `tenantId` se pouzije prvni.
## Prepinac firmy je nad celym portalem
Vybrana firma je **jedna hodnota pro cely dashboard** (`web/src/lib/tenant.ts`),
ne stav jedne stranky. Prepinac je v hlavicce nad obsahem a `apiFetch` doplnuje
`tenantId` do kazdeho dotazu na `/api/dashboard`.
ne stav jedne stranky. Prepinac je v sidebaru nad navigaci, tedy nad vsim, co se
pod nim kresli, a `apiFetch` doplnuje `tenantId` do kazdeho dotazu
na `/api/dashboard`.
Doplnuje se to v API vrstve schvalne, ne na strankach. Kdyz si to mela pridavat
kazda stranka sama, vetsina na to zapomnela a server sahnul po vychozi firme -
@@ -65,6 +66,17 @@ Vyjimky, kdy se nedoplnuje:
| Neni vybrano | server pouzije vychozi firmu uctu |
| Cesta mimo `/api/dashboard` | prihlaseni a verejny web s firmou nepracuji |
**Prepnuti prekresli obsah cely.** Obsah dashboardu ma `key` podle vybrane
firmy, takze jina firma znamena novy strom komponent.
Bez toho to nestacilo: `useApiQuery` se sice zeptat umi, ale komponenty, ktere
volaji `apiFetch` primo - `EntityAdmin`, a tim cele Nastaveni a zalozky
Resitele a Skupiny - o zmene nevi a zustala by na nich data predchozi firmy.
Doplnovat zavislost do kazde z nich je totez zapomenuti, jen o patro niz.
Ztrata rozepsaneho stavu je pritom spravne: filtr na cloveka z firmy A nema
ve firme B co znamenat.
Volba prezije obnoveni stranky (localStorage). Kdyz ulozena firma uz mezi
`access.tenants` neni - clovek z ni odesel, prihlasil se nekdo jiny na tomtez
pocitaci - spadne se na vychozi firmu uctu, aby kazdy dotaz nekoncil na 403.
+25
View File
@@ -2,6 +2,31 @@
Nejnovejsi nahore.
## 2026-08-26 - prepinac firmy: do sidebaru a prekresli obsah cely
Dodelavka predchoziho bodu. Tvrzeni "prepinac plati pro cely system" nebylo
pravdive: `useApiQuery` se na zmenu firmy zeptat umel, ale komponenty, ktere
volaji `apiFetch` primo - `EntityAdmin`, a tim cele Nastaveni a zalozky
Resitele a Skupiny v Lidech - o zmene nevedely a zustala na nich data
predchozi firmy.
### Opraveno
- **Obsah dashboardu ma `key` podle vybrane firmy**, takze prepnuti prestavi
cely strom komponent. Zadny dotaz nemuze zustat stary, protoze zadna stara
komponenta nezustane. Doplnovat zavislost do kazde komponenty zvlast je
totez zapomenuti, jen o patro niz.
### Zmeneno
- **Prepinac je v sidebaru nad navigaci**, ne v hlavicce. Vypada jako ovladaci
prvek: ram, ikona firmy, sipka. Predchozi verze mela pruhledny ram a splyvala
s popiskem - prepinac, ktery neni videt, je k nicemu.
- **V hlavicce zustal jen nazev aktivni firmy.** Driv tam stalo natvrdo
`tenants[0]`, takze po prepnuti ukazovala porad prvni firmu ze seznamu.
- Kdo patri do jedne firmy, vidi misto prepinace jeji nazev. Vyber z jedne
moznosti neni vyber.
## 2026-08-26 - prava plati za firmu, ne za cloveka
`permissionsOf(user)` scitalo role pres vsechna clenstvi. Kdo byl spravce