Improve Team-indeling dashboard UI and cache invalidation

- Replace 'TEAM' label with Type attribute (Business/Enabling/Staf) in team blocks
- Make Type labels larger (text-sm) and brighter colors
- Make SUBTEAM label less bright (indigo-300) and smaller (text-[10px])
- Add 'FTE' suffix to bandbreedte values in header and application blocks
- Add Platform and Connected Device labels to application blocks
- Show Platform FTE and Workloads FTE separately in Platform blocks
- Add spacing between Regiemodel letter and count value
- Add cache invalidation for Team Dashboard when applications are updated
- Enrich team references with Type attribute in getSubteamToTeamMapping
This commit is contained in:
2026-01-10 02:16:55 +01:00
parent ea1c84262c
commit ca21b9538d
54 changed files with 13444 additions and 1789 deletions

View File

@@ -9,6 +9,9 @@ export interface User {
}
interface AuthConfig {
// The configured authentication method
authMethod: 'pat' | 'oauth' | 'none';
// Legacy fields (for backward compatibility)
oauthEnabled: boolean;
serviceAccountEnabled: boolean;
jiraHost: string;

View File

@@ -11,7 +11,7 @@ interface SearchState {
setGovernanceModel: (value: 'all' | 'filled' | 'empty') => void;
setDynamicsFactor: (value: 'all' | 'filled' | 'empty') => void;
setComplexityFactor: (value: 'all' | 'filled' | 'empty') => void;
setApplicationCluster: (value: 'all' | 'filled' | 'empty') => void;
setApplicationSubteam: (value: 'all' | 'filled' | 'empty' | string) => void;
setApplicationType: (value: 'all' | 'filled' | 'empty') => void;
setOrganisation: (value: string | undefined) => void;
setHostingType: (value: string | undefined) => void;
@@ -40,7 +40,7 @@ const defaultFilters: SearchFilters = {
governanceModel: 'all',
dynamicsFactor: 'all',
complexityFactor: 'all',
applicationCluster: 'all',
applicationSubteam: 'all',
applicationType: 'all',
organisation: undefined,
hostingType: undefined,
@@ -88,9 +88,9 @@ export const useSearchStore = create<SearchState>((set) => ({
currentPage: 1,
})),
setApplicationCluster: (value) =>
setApplicationSubteam: (value) =>
set((state) => ({
filters: { ...state.filters, applicationCluster: value },
filters: { ...state.filters, applicationSubteam: value },
currentPage: 1,
})),