mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-31 09:37:15 +01:00
✨ feat(navigation): implement title management and enhance tab system This commit introduces a comprehensive title management system and extends the tab functionality with subtitle support, improving navigation clarity and user experience across the application. Key changes: Title Management System: - Add @isa/common/title-management library with dual approach: - IsaTitleStrategy for route-based static titles - usePageTitle() for component-based dynamic titles - Implement TitleRegistryService for nested component hierarchies - Automatic ISA prefix addition and TabService integration - Comprehensive test coverage (1,158 lines of tests) Tab System Enhancement: - Add subtitle field to tab schema for additional context - Update TabService API (addTab, patchTab) to support subtitles - Extend Zod schemas with subtitle validation - Update documentation with usage examples Routing Modernization: - Consolidate route guards using ActivateProcessIdWithConfigKeyGuard - Replace 4+ specific guards with generic config-key-based approach - Add title attributes to 100+ routes across all modules - Remove deprecated ProcessIdGuard in favor of ActivateProcessIdGuard Code Cleanup: - Remove deprecated preview component and related routes - Clean up unused imports and exports - Update TypeScript path aliases Dependencies: - Update package.json and package-lock.json - Add @isa/common/title-management to tsconfig path mappings Refs: #5351, #5418, #5419, #5420
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { NgModule } from '@angular/core';
|
|
import { RouterModule, Routes } from '@angular/router';
|
|
import { PageTaskCalendarComponent } from './page-task-calendar.component';
|
|
import { CalendarComponent } from './pages/calendar/calendar.component';
|
|
import { CalendarModule } from './pages/calendar/calendar.module';
|
|
import { TaskSearchComponent } from './pages/task-search';
|
|
import { TasksComponent } from './pages/tasks/tasks.component';
|
|
import { TasksModule } from './pages/tasks/tasks.module';
|
|
|
|
const routes: Routes = [
|
|
{
|
|
path: '',
|
|
component: PageTaskCalendarComponent,
|
|
title: 'Tätigkeitskalender',
|
|
children: [
|
|
{ path: 'calendar', component: CalendarComponent },
|
|
{
|
|
path: 'tasks',
|
|
title: 'Tätigkeitskalender - Aufgaben',
|
|
component: TasksComponent,
|
|
},
|
|
{
|
|
path: 'search',
|
|
title: 'Tätigkeitskalender - Suche',
|
|
component: TaskSearchComponent,
|
|
},
|
|
{ path: '', pathMatch: 'full', redirectTo: 'tasks' },
|
|
],
|
|
},
|
|
];
|
|
|
|
@NgModule({
|
|
imports: [RouterModule.forChild(routes), CalendarModule, TasksModule],
|
|
exports: [RouterModule],
|
|
})
|
|
export class PageTaskCalendarRoutingModule {}
|