import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { LoggedInGuard } from '../shared/guards/logged.in.guard'; import { SystemAdminGuard } from '../shared/guards/system.admin.guard'; import { HomeComponent } from './pages/home/home.component'; import { LogoutComponent } from './pages/logout/logout.component'; import { ProfileComponent } from './pages/profile/profile.component'; import { TournamentOrganiserComponent } from './pages/tournaments/tournament-organiser/tournament-organiser.component'; import { TournamentBuilderComponent } from './pages/tournaments/tournament-organiser/tournament-builder/tournament-builder.component'; import { SystemAdminComponent } from './pages/system-admin/system-admin.component'; import { SystemAdminImagesComponent } from './pages/system-admin/system-admin-images/system-admin-images.component'; import { SystemAdminUsersComponent } from './pages/system-admin/system-admin-users/system-admin-users.component'; import { SystemAdminLookupsComponent } from './pages/system-admin/system-admin-lookups/system-admin-lookups.component'; import { SystemAdminPricesComponent } from './pages/system-admin/system-admin-prices/system-admin-prices.component'; import { WhyUseTourneeComponent } from './pages/why-use-tournee/why-use-tournee.component'; import { TournamentManagerComponent } from './pages/tournaments/tournament-organiser/tournament-manager/tournament-manager.component'; import { SystemAdminAccessControlComponent } from './pages/system-admin/system-admin-access-control/system-admin-access-control.component'; import { SystemAdminViewLogsComponent } from './pages/system-admin/system-admin-view-logs/system-admin-view-logs.component'; import { TournamentAttendeeComponent } from './pages/tournaments/tournament-attendee/tournament-attendee.component'; import { TournamentViewComponent } from './pages/tournaments/tournament-attendee/tournament-view/tournament-view.component'; import { SystemAdminRestrictedtermsComponent } from './pages/system-admin/system-admin-restrictedterms/system-admin-restrictedterms.component'; import { EventManagerComponent } from './pages/tournaments/tournament-organiser/event-manager/event-manager.component'; import { DefaultAppComponent } from './default-app.component'; import { TournamentImportComponent } from './pages/tournaments/tournament-organiser/tournament-import/tournament-import.component'; import { PricingComponent } from './pages/pricing/pricing.component'; import { SystemAdminDiscountsComponent } from './pages/system-admin/system-admin-discounts/system-admin-discounts.component'; import { EventEditorComponent } from './pages/tournaments/tournament-organiser/event-editor/event-editor.component'; import { ForgottenpasswordComponent } from './pages/forgottenpassword/forgottenpassword.component'; import { CheckoutComponent } from '../shared/pages/checkout/checkout.component'; import { TicketComponent } from '../shared/pages/tickets/ticket/ticket.component'; import { SystemAdminTourneePaypalComponent } from './pages/system-admin/system-admin-tournee-paypal/system-admin-tournee-paypal.component'; import { SystemAdminBlogComponent } from './pages/system-admin/system-admin-blog/system-admin-blog.component'; import { BlogEntryComponent } from './pages/blog/blog-entry/blog-entry.component'; import { BlogComponent } from './pages/blog/blog.component'; import { LoggedOutTournamentOrganiserComponent } from './pages/tournaments/tournament-organiser/logged-out-tournament-organiser/logged-out-tournament-organiser.component'; import { ContactComponent } from './pages/contact/contact.component'; import { AttendeeTournamentsComponent } from './pages/tournaments/tournament-attendee/attendee-tournaments/attendee-tournaments.component'; import { AttendeeListsComponent } from './pages/tournaments/tournament-attendee/attendee-lists/attendee-lists.component'; import { AttendeeTournamentViewComponent } from './pages/tournaments/tournament-attendee/attendee-tournament-view/attendee-tournament-view.component'; import { TournamentOrganiserListsComponent } from './pages/tournaments/tournament-organiser/tournament-organiser-lists/tournament-organiser-lists.component'; import { TournamentOrganiserAttendeesComponent } from './pages/tournaments/tournament-organiser/tournament-organiser-attendees/tournament-organiser-attendees.component'; import { ToListReviewComponent } from './pages/tournaments/tournament-organiser/to-list-review/to-list-review.component'; import { BeforeNavigationGuard } from '../shared/guards/before.navigation.guard'; import { ToNextListReviewComponent } from './pages/tournaments/tournament-organiser/to-next-list-review/to-next-list-review.component'; const default_routes: Routes = [ { path: '', component: DefaultAppComponent, children: [ { path: '', component: HomeComponent}, { path: 'contact', component: ContactComponent }, { path: 'whyusetournee', component: WhyUseTourneeComponent }, { path: 'pricing', component: PricingComponent }, { path: 'forgottenpassword/:resetcode', component: ForgottenpasswordComponent }, { path: 'blog', children: [ { path: '', component: BlogComponent }, { path: ':blogid', component: BlogEntryComponent } ] }, { path: 'profile', component: ProfileComponent, canActivate: [LoggedInGuard] }, { path: 'tournament', children : [ { path: '', component: TournamentOrganiserComponent }, { path: 'organiser', canActivate: [LoggedInGuard], children :[ { path: '', component: TournamentOrganiserComponent, canActivate: [LoggedInGuard] }, { path: 'builder', component: TournamentBuilderComponent, canActivate: [LoggedInGuard] }, { path: 'import', component: TournamentImportComponent, canActivate: [LoggedInGuard] }, { path: 'manager/:tid', children: [ { path: '', component: TournamentManagerComponent, canActivate: [LoggedInGuard] }, { path: 'lists', children: [ { path: '', component: TournamentOrganiserListsComponent, canActivate: [LoggedInGuard]}, { path: 'review', children: [ { path: '', component: ToListReviewComponent, canActivate: [LoggedInGuard], canDeactivate: [BeforeNavigationGuard]}, { path: 'next', component: ToNextListReviewComponent, canActivate: [LoggedInGuard] } ]} ] }, { path: 'attendees', component: TournamentOrganiserAttendeesComponent, canActivate: [LoggedInGuard] } ] }, { path: 'events', children : [ { path: '', component: EventManagerComponent, canActivate: [LoggedInGuard] }, { path: ':eventid', component: EventEditorComponent, canActivate: [LoggedInGuard] }, ] } ] }, { path: 'attendee', children : [ { path: '', component: TournamentAttendeeComponent, canActivate: [LoggedInGuard] }, { path: 'mine', component: AttendeeTournamentsComponent, canActivate: [LoggedInGuard] }, { path: 'lists', component: AttendeeListsComponent, canActivate: [LoggedInGuard] }, { path: ':slug', children: [ { path: '', component: TournamentViewComponent }, { path: 'mine', component: AttendeeTournamentViewComponent, canActivate: [LoggedInGuard] } ] } ] } ] }, { path: 'ticket', children : [ { path: ':sold_ticket_id', component: TicketComponent, canActivate: [LoggedInGuard] } ] }, { path: 'logout', component: LogoutComponent, canActivate: [LoggedInGuard] }, { path: 'systemadmin', canActivate: [SystemAdminGuard], children : [ { path: '', component: SystemAdminComponent }, { path: 'blog', component: SystemAdminBlogComponent }, { path: 'lookups', component: SystemAdminLookupsComponent }, { path: 'prices', component: SystemAdminPricesComponent }, { path: 'images', component: SystemAdminImagesComponent }, { path: 'users', component: SystemAdminUsersComponent }, { path: 'accesscontrol', component: SystemAdminAccessControlComponent }, { path: 'logs', component: SystemAdminViewLogsComponent }, { path: 'restrictedterms', component: SystemAdminRestrictedtermsComponent }, { path: 'discounts', component: SystemAdminDiscountsComponent }, { path: 'tourneepaypal', component: SystemAdminTourneePaypalComponent } ] }, { path: 'checkout', component: CheckoutComponent, canActivate: [LoggedInGuard] } ] }, ]; @NgModule({ imports: [RouterModule.forChild(default_routes)], exports: [RouterModule] }) export class DefaultRoutingModule { }