X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fapp-routing.module.ts;h=b5afc9c92fb4dc0d21d1768c0c1d4867250d1e7d;hb=3e6193313b1c082b68177c056121b733f9e7d31a;hp=444b6f13494b7e8ada2560aced9d7a7605ea63b2;hpb=012580d98f489e599d44a9a2a0bdc892b9455a90;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/app-routing.module.ts b/client/src/app/app-routing.module.ts index 444b6f134..b5afc9c92 100644 --- a/client/src/app/app-routing.module.ts +++ b/client/src/app/app-routing.module.ts @@ -3,7 +3,7 @@ import { RouteReuseStrategy, RouterModule, Routes, UrlMatchResult, UrlSegment } import { CustomReuseStrategy } from '@app/core/routing/custom-reuse-strategy' import { MenuGuards } from '@app/core/routing/menu-guard.service' import { POSSIBLE_LOCALES } from '@shared/core-utils/i18n' -import { MetaGuard, PreloadSelectedModulesList } from './core' +import { HomepageRedirectComponent, MetaGuard, PreloadSelectedModulesList } from './core' import { EmptyComponent } from './empty.component' import { USER_USERNAME_REGEX_CHARACTERS } from './shared/form-validators/user-validators' import { ActorRedirectGuard } from './shared/shared-main' @@ -36,16 +36,37 @@ const routes: Routes = [ loadChildren: () => import('./+signup/+verify-account/verify-account.module').then(m => m.VerifyAccountModule), canActivateChild: [ MetaGuard ] }, + + { + path: 'accounts', + redirectTo: 'a' + }, { path: 'a', loadChildren: () => import('./+accounts/accounts.module').then(m => m.AccountsModule), canActivateChild: [ MetaGuard ] }, + + { + path: 'video-channels', + redirectTo: 'c' + }, { path: 'c', loadChildren: () => import('./+video-channels/video-channels.module').then(m => m.VideoChannelsModule), canActivateChild: [ MetaGuard ] }, + { + path: 'manage', + loadChildren: () => import('./+manage/manage.module').then(m => m.ManageModule), + canActivateChild: [ MetaGuard ] + }, + { + path: 'p', + loadChildren: () => import('./+plugin-pages/plugin-pages.module').then(m => m.PluginPagesModule), + canActivateChild: [ MetaGuard ] + }, + { path: 'about', loadChildren: () => import('./+about/about.module').then(m => m.AboutModule), @@ -71,31 +92,60 @@ const routes: Routes = [ loadChildren: () => import('./+search/search.module').then(m => m.SearchModule), canActivateChild: [ MetaGuard ] }, + { - path: 'videos', - loadChildren: () => import('./+videos/videos.module').then(m => m.VideosModule), - canActivateChild: [ MetaGuard ] + path: 'videos/upload', + loadChildren: () => import('@app/+videos/+video-edit/video-add.module').then(m => m.VideoAddModule), + data: { + meta: { + title: $localize`Upload a video` + } + } }, { - path: 'remote-interaction', - loadChildren: () => import('./+remote-interaction/remote-interaction.module').then(m => m.RemoteInteractionModule), + path: 'videos/update/:uuid', + loadChildren: () => import('@app/+videos/+video-edit/video-update.module').then(m => m.VideoUpdateModule), + data: { + meta: { + title: $localize`Edit a video` + } + } + }, + + { + path: 'videos/watch/playlist', + redirectTo: 'w/p' + }, + { + path: 'videos/watch', + redirectTo: 'w' + }, + { + path: 'w', + loadChildren: () => import('@app/+videos/+video-watch/video-watch.module').then(m => m.VideoWatchModule), + data: { + preload: 5000 + } + }, + { + path: 'videos', + loadChildren: () => import('./+videos/videos.module').then(m => m.VideosModule), canActivateChild: [ MetaGuard ] }, { path: 'video-playlists/watch', redirectTo: 'videos/watch/playlist' }, + { - path: 'accounts', - redirectTo: 'a' - }, - { - path: 'video-channels', - redirectTo: 'c' + path: 'remote-interaction', + loadChildren: () => import('./+remote-interaction/remote-interaction.module').then(m => m.RemoteInteractionModule), + canActivateChild: [ MetaGuard ] }, + + // Matches /@:actorName { matcher: (url): UrlMatchResult => { - // Matches /@:actorName const regex = new RegExp(`^@(${USER_USERNAME_REGEX_CHARACTERS}+)$`) if (url.length !== 1) return null @@ -113,9 +163,10 @@ const routes: Routes = [ canActivate: [ ActorRedirectGuard ], component: EmptyComponent }, + { path: '', - component: EmptyComponent // Avoid 404, app component will redirect dynamically + component: HomepageRedirectComponent } ] @@ -123,7 +174,7 @@ const routes: Routes = [ for (const locale of POSSIBLE_LOCALES) { routes.push({ path: locale, - component: EmptyComponent + component: HomepageRedirectComponent }) } @@ -136,6 +187,7 @@ routes.push({ imports: [ RouterModule.forRoot(routes, { useHash: Boolean(history.pushState) === false, + // Redefined in app component scrollPositionRestoration: 'disabled', preloadingStrategy: PreloadSelectedModulesList, anchorScrolling: 'disabled'