import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { AuthGuard, AuthUpdateGuard, AuthenticatedGuard, AnonymousGuard } from './auth/auth.guard'; import { PageBookmarks } from './pages/bookmarks/bookmarks.page'; import { PageComment } from './pages/comment/comment.page'; import { PageEntryEdit } from './pages/entry/edit/edit.page'; import { PageEntry } from './pages/entry/entry.page'; import { PageLogin } from './pages/login/login.page'; import { PageModerationComments } from './pages/moderation/comments/moderation.comments.page'; import { PageModerationEntries } from './pages/moderation/entries/moderation.entries.page'; import { PageNotFound } from './pages/notfound/notfound.page'; import { PageSearch } from './pages/search/search.page'; import { PageSettings } from './pages/settings/settings.page'; import { PageUnavailable } from './pages/unavailable/unavailable.page'; import { PageUser } from './pages/user/user.page'; import { PageUserComments } from './pages/user/usercomments/usercomments.page'; import { PageUserEntries } from './pages/user/userentries/userentries.page'; import { PageUserPageEdit } from './pages/userpage/edit/edit.page'; import { PageUserPage } from './pages/userpage/userpage.page'; import { UiMain } from './ui/main/main.ui'; const routes: Routes = [ { path: '', component: UiMain, children: [ { path: '', redirectTo: "/p/TOP", pathMatch: 'full' }, { path: 'login', component: PageLogin, canActivate: [ AnonymousGuard ] }, { path: 'search', component: PageSearch, canActivate: [ AuthenticatedGuard ] }, { path: 'moderation/comments', component: PageModerationComments, canActivate: [ AuthenticatedGuard ] }, { path: 'moderation/entries', component: PageModerationEntries, canActivate: [ AuthenticatedGuard ] }, { path: 'bookmarks', component: PageBookmarks, canActivate: [ AuthenticatedGuard ] }, { path: 'settings', component: PageSettings, canActivate: [ AuthenticatedGuard ] }, { path: 'submit', component: PageEntryEdit, canActivate: [ AuthenticatedGuard ] }, { path: 'e/:id', component: PageEntry, canActivate: [ AuthenticatedGuard ] }, { path: 'e/:id/edit', component: PageEntryEdit, canActivate: [ AuthenticatedGuard ] }, { path: 'c/:id', component: PageComment, canActivate: [ AuthenticatedGuard ] }, { path: 'u/:username', component: PageUser, canActivate: [ AuthenticatedGuard ] }, { path: 'u/c/:username', component: PageUserComments, canActivate: [ AuthenticatedGuard ] }, { path: 'u/e/:username', component: PageUserEntries, canActivate: [ AuthenticatedGuard ] }, { path: 'unavailable', component: PageUnavailable }, { path: 'p', component: PageUserPageEdit, canActivate: [ AuthenticatedGuard ] }, { path: 'p/:name', component: PageUserPage, canActivate: [ AuthenticatedGuard ] }, { path: 'p/:name/edit', component: PageUserPageEdit, canActivate: [ AuthenticatedGuard ] }, { path: 'p/:name/:username', component: PageUserPage, canActivate: [ AuthenticatedGuard ] }, { path: '**', component: PageNotFound, pathMatch: 'full', canActivate: [ AuthUpdateGuard ] }, ] }, ]; @NgModule({ imports: [ RouterModule.forRoot(routes, { onSameUrlNavigation: 'reload', relativeLinkResolution: 'legacy' }) ], exports: [ RouterModule ] }) export class AppRoutingModule { }