clearml-web/src/app/app.routes.ts
shyallegro d9eed64770
release v1.14 (#66)
Co-authored-by: shallegro <shay@allego.ai>
2024-01-10 17:04:18 +02:00

110 lines
4.4 KiB
TypeScript
Executable File

import {Routes} from '@angular/router';
import {projectRedirectGuardGuard} from '@common/shared/guards/project-redirect.guard';
import {EntityTypeEnum} from '~/shared/constants/non-common-consts';
import {resetContextMenuGuard} from '@common/shared/guards/resetContextMenuGuard.guard';
export const routes: Routes = [
{path: '', redirectTo: 'dashboard', pathMatch: 'full'},
{
path: 'dashboard',
loadChildren: () => import('./features/dashboard/dashboard.module').then(m => m.DashboardModule),
data: {search: true, userFocus: true},
},
{
path: 'projects',
loadChildren: () => import('./features/projects/projects.module').then(m => m.ProjectsModule),
data: {search: true},
},
{path: 'login', loadChildren: () => import('./features/login/login.module').then(m => m.LoginModule)},
{
path: 'settings',
loadChildren: () => import('./features/settings/settings.module').then(m => m.SettingsModule),
data: {search: false, workspaceNeutral: false, },
},
{
path: 'projects',
data: {search: true},
children: [
{path: '', redirectTo: '*', pathMatch: 'full'},
{
path: ':projectId',
data: {search: true},
children: [
{path: '', pathMatch: 'full', children: [], canActivate: [projectRedirectGuardGuard]},
{path: '', redirectTo: '*', pathMatch: 'full'},
{
path: 'overview',
loadChildren: () => import('./webapp-common/project-info/project-info.module').then(m => m.ProjectInfoModule),
canDeactivate: [resetContextMenuGuard]
},
{path: 'projects', loadChildren: () => import('./features/projects/projects.module').then(m => m.ProjectsModule)},
{
path: 'experiments',
loadChildren: () => import('./features/experiments/experiments.module').then(m => m.ExperimentsModule),
canDeactivate: [resetContextMenuGuard]
},
{
path: 'models',
loadChildren: () => import('./webapp-common/models/models.module').then(m => m.ModelsModule),
canDeactivate: [resetContextMenuGuard]
},
{
path: 'compare-experiments',
loadChildren: () => import('./webapp-common/experiments-compare/experiments-compare.module').then(m => m.ExperimentsCompareModule),
data: {entityType: EntityTypeEnum.experiment},
},
{
path: 'compare-models',
data: {entityType: EntityTypeEnum.model},
loadChildren: () => import('./webapp-common/experiments-compare/experiments-compare.module').then(m => m.ExperimentsCompareModule)
},
]
},
]
},
{
path: 'pipelines',
// canActivate: [RolePermissionsGuard],
data: {search: true},
loadChildren: () => import('@common/pipelines/pipelines.module').then(m => m.PipelinesModule),
},
{
path: 'pipelines',
// canActivate: [RolePermissionsGuard],
data: {search: true},
children: [
{
path: ':projectId',
children: [
{path: 'pipelines', loadChildren: () => import('@common/pipelines/pipelines.module').then(m => m.PipelinesModule)},
{path: 'projects', loadComponent: () => import('@common/pipelines/nested-pipeline-page/nested-pipeline-page.component')
.then(m => m.NestedPipelinePageComponent)},
{
path: 'experiments', loadChildren: () => import('@common/pipelines-controller/pipelines-controller.module').then(m => m.PipelinesControllerModule)
},
{
path: 'compare-experiments',
data: {entityType: EntityTypeEnum.controller},
loadChildren: () => import('./webapp-common/experiments-compare/experiments-compare.module').then(m => m.ExperimentsCompareModule)
},
]
},
]
},
{
path: 'datasets',
data: {search: true},
loadChildren: () => import('./features/datasets/datasets.module').then(m => m.DatasetsModule)
},
{
path: 'reports',
loadChildren: () => import('./webapp-common/reports/reports.module').then(m => m.ReportsModule)
},
{path: 'workers-and-queues', loadChildren: () => import('./features/workers-and-queues/workers-and-queues.module').then(m => m.WorkersAndQueuesModule)},
{path: '404', loadChildren: () => import('./features/not-found/not-found.module').then(m => m.NotFoundModule)},
{path: '**', loadChildren: () => import('./features/not-found/not-found.module').then(m => m.NotFoundModule)},
];