Tickety maji zalozky, fronta umi prirazovat
Seznam ticketu mel dva prepinace, "Moje tickety" a "Ve fronte", schovane mezi ostatnimi filtry - splyvaly s nimi a vypadaly jako dalsi dva chipy. Jenze "co mam u sebe", "co jeste nikdo nema" a "co je ve firme" nejsou filtry, jsou to tri ruzne prace a kazda chce jinou tabulku. Tri zalozky: - Moje tickety, pro toho, kdo je veden jako resitel. Bez sloupce Resi, byl by tam porad on - Nezarazene, pro kazdeho. Radky s rychlym prirazenim - Vsechny tickety, jen pro toho, kdo vidi i cizi. Sloupec Resi a filtr na sekce Sloupec Resi je jen ve Vsech: v Mych by ve vsech radcich stalo tyz jmeno a ve fronte je z definice prazdny. Az v prehledu vsech ma smysl videt, kdo co ma u sebe. Zalozka Vsechny se nenabizi tomu, kdo vidi jen svoje - byl by to tentyz seznam. Rika to Access.seesOthers, a Access.visibleGroups k tomu prida sekce, ktere smi filtrovat: kdo vidi celou firmu vsechny, vedouci jen ty, ktere vede. Nova QuickAssign: u kazdeho ticketu ve fronte tlacitko Vzit si a dve roletky, komu a do ktere sekce. Prirazeni je ve fronte hlavni prace, ne jedna z mnoha veci na detailu - otevirat kvuli tomu kazdy ticket znamena u dvaceti ticketech ctyricet kliknuti navic. Dve roletky, ne jedna: clovek a sekce jsou dve ruzna rozhodnuti. Kdo nesmi rozdavat praci ostatnim, vidi jen Vzit si. Endpointy uz existovaly, nova je jen cesta k nim. Vychozi zalozka se odvodi z adresy: odkaz z widgetu nese assignee, takze unassigned otevre frontu a konkretni resitel nebo sekce pohled Vsechny. Bez toho by clovek prisel z dlazdice "fronta bez resitele" a koukal na svoje. Do navrhu 25 zapsano, ze hledani ma zapadnout do zalozky, ve ktere clovek stoji, ne ji obejit, a vysledek se ma vracet do te same zalozky. Overeno na bezici instanci: spravce platformy ma zalozku Vsechny a vsechny sekce ve filtru, Vomacka jako vedouci Servicedesku jen svoji sekci, Kriz jako radovy clen zalozku Vsechny nema. A cely pohyb ticketu frontou: admin preda TK-4819 do sekce, Kriz ho vidi ve fronte, vezme si ho a objevi se mu v Mych ticketech. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
52999a961b
commit
e701bc0e2c
@@ -102,6 +102,20 @@ export interface Access {
|
||||
nav: NavItem[];
|
||||
/** true = vidi napric firmami a smi platformni nastaveni. */
|
||||
platformAdmin: boolean;
|
||||
/**
|
||||
* Vidi i cizi tickety, ne jen svoje a frontu?
|
||||
*
|
||||
* Podle toho se nabizi zalozka "Vsechny tickety". Kdo vidi jen svoje,
|
||||
* nema co prepinat - zalozka by mu ukazala totez co ta prvni.
|
||||
*/
|
||||
seesOthers: boolean;
|
||||
/**
|
||||
* Sekce, na ktere clovek vidi. Filtr v zalozce "Vsechny tickety".
|
||||
*
|
||||
* Kdo vidi celou firmu, dostane vsechny. Vedouci jen ty, ktere vede -
|
||||
* nabidnout mu sekci, ze ktere stejne nic neuvidi, je jen matouci.
|
||||
*/
|
||||
visibleGroups: Array<{ id: string; name: string }>;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -133,6 +147,13 @@ export function accessFor(user: User, tenantId?: string | null): Access {
|
||||
const defaultTenantId = tenants[0]?.id ?? null;
|
||||
const activeTenant = tenantId ?? defaultTenantId;
|
||||
|
||||
const visibility = visibilityFor(user, activeTenant);
|
||||
const groups = activeTenant ? listGroups([activeTenant]) : [];
|
||||
const visibleGroups =
|
||||
visibility.kind === 'all'
|
||||
? groups
|
||||
: groups.filter((group) => visibility.groupIds.includes(group.id));
|
||||
|
||||
return {
|
||||
scopes,
|
||||
tenants: tenants.map((tenant) => ({ id: tenant.id, name: tenant.name })),
|
||||
@@ -145,6 +166,8 @@ export function accessFor(user: User, tenantId?: string | null): Access {
|
||||
permissions: [...permissionsOf(user, activeTenant)].sort(),
|
||||
nav: navFor(user, activeTenant),
|
||||
platformAdmin: user.platformAdmin,
|
||||
seesOthers: visibility.kind === 'all' || visibility.groupIds.length > 0,
|
||||
visibleGroups: visibleGroups.map((group) => ({ id: group.id, name: group.name })),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user