nakedobjects.spa
Version:
Single Page Application client for a Naked Objects application.
153 lines (148 loc) • 6.25 kB
text/typescript
import { LogoffComponent } from 'nakedobjects.spa';
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from 'nakedobjects.spa';
import { RecentComponent } from 'nakedobjects.spa';
import { ApplicationPropertiesComponent } from 'nakedobjects.spa';
import { AttachmentComponent } from 'nakedobjects.spa';
import { MultiLineDialogComponent } from 'nakedobjects.spa';
import { DynamicObjectComponent } from 'nakedobjects.spa';
import { ViewType } from 'nakedobjects.spa';
import { DynamicListComponent } from 'nakedobjects.spa';
import { DynamicErrorComponent } from 'nakedobjects.spa';
import { CiceroComponent } from 'nakedobjects.spa';
import { AuthService } from 'nakedobjects.spa';
const routes: Routes = [
{
path: '',
redirectTo: '/gemini/home',
canActivate: [AuthService],
pathMatch: 'full'
},
{
path: 'gemini/home',
component: HomeComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" },
children: [
{ path: "home", component: HomeComponent, data: { pane: 2, paneType: "split" } },
{ path: "object", component: DynamicObjectComponent, data: { pane: 2, paneType: "split" } },
{ path: "list", component: DynamicListComponent, data: { pane: 2, paneType: "split" } },
{ path: "attachment", component: AttachmentComponent, data: { pane: 2, paneType: "split" } },
{ path: "recent", component: RecentComponent, data: { pane: 2, paneType: "split" } }
]
},
{
path: 'gemini/object',
component: DynamicObjectComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single", dynamicType: ViewType.Object },
children: [
{ path: "home", component: HomeComponent, data: { pane: 2, paneType: "split" } },
{ path: "object", component: DynamicObjectComponent, data: { pane: 2, paneType: "split" } },
{ path: "list", component: DynamicListComponent, data: { pane: 2, paneType: "split" } },
{ path: "attachment", component: AttachmentComponent, data: { pane: 2, paneType: "split" } },
{ path: "recent", component: RecentComponent, data: { pane: 2, paneType: "split" } }
]
},
{
path: 'gemini/list',
component: DynamicListComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" },
children: [
{ path: "home", component: HomeComponent, data: { pane: 2, paneType: "split" } },
{ path: "object", component: DynamicObjectComponent, data: { pane: 2, paneType: "split" } },
{ path: "list", component: DynamicListComponent, data: { pane: 2, paneType: "split" } },
{ path: "attachment", component: AttachmentComponent, data: { pane: 2, paneType: "split" } },
{ path: "recent", component: RecentComponent, data: { pane: 2, paneType: "split" } }
]
},
{
path: 'gemini/attachment',
component: AttachmentComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" },
children: [
{ path: "home", component: HomeComponent, data: { pane: 2, paneType: "split" } },
{ path: "object", component: DynamicObjectComponent, data: { pane: 2, paneType: "split" } },
{ path: "list", component: DynamicListComponent, data: { pane: 2, paneType: "split" } },
{ path: "attachment", component: AttachmentComponent, data: { pane: 2, paneType: "split" } },
{ path: "recent", component: RecentComponent, data: { pane: 2, paneType: "split" } }
]
},
{
path: 'gemini/recent',
component: RecentComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" },
children: [
{ path: "home", component: HomeComponent, data: { pane: 2, paneType: "split" } },
{ path: "object", component: DynamicObjectComponent, data: { pane: 2, paneType: "split" } },
{ path: "list", component: DynamicListComponent, data: { pane: 2, paneType: "split" } },
{ path: "attachment", component: AttachmentComponent, data: { pane: 2, paneType: "split" } },
{ path: "recent", component: RecentComponent, data: { pane: 2, paneType: "split" } }
]
},
{
path: 'gemini/error',
component: DynamicErrorComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" }
},
{
path: 'gemini/applicationProperties',
component: ApplicationPropertiesComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" }
},
{
path: 'gemini/multiLineDialog',
component: MultiLineDialogComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" }
},
{
path: 'gemini/logoff',
component: LogoffComponent,
canActivate: [AuthService],
canDeactivate: [AuthService],
data: { pane: 1, paneType: "single" }
},
{
path: 'cicero/home',
component: CiceroComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" }
},
{
path: 'cicero/object',
component: CiceroComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" }
},
{
path: 'cicero/list',
component: CiceroComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" }
},
{
path: 'cicero/error',
component: CiceroComponent,
canActivate: [AuthService],
data: { pane: 1, paneType: "single" }
},
{
path: '**',
redirectTo: '/gemini/home',
canActivate: [AuthService],
pathMatch: 'full'
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
providers: []
})
export class RoutingModule { }