]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+videos/videos-routing.module.ts
Add video filters to common video pages
[github/Chocobozzz/PeerTube.git] / client / src / app / +videos / videos-routing.module.ts
index e0e877fc673eba0c3781ccfa6f7ba9e01af5d5f7..7db519615edfa51932e234574d2ddccd10e7c64a 100644 (file)
@@ -1,11 +1,8 @@
 import { NgModule } from '@angular/core'
-import { RouterModule, Routes } from '@angular/router'
-import { MetaGuard } from '@ngx-meta/core'
+import { RouterModule, Routes, UrlSegment } from '@angular/router'
+import { LoginGuard } from '@app/core'
+import { VideosListCommonPageComponent } from './video-list'
 import { VideoOverviewComponent } from './video-list/overview/video-overview.component'
-import { VideoLocalComponent } from './video-list/video-local.component'
-import { VideoMostLikedComponent } from './video-list/video-most-liked.component'
-import { VideoRecentlyAddedComponent } from './video-list/video-recently-added.component'
-import { VideoTrendingComponent } from './video-list/video-trending.component'
 import { VideoUserSubscriptionsComponent } from './video-list/video-user-subscriptions.component'
 import { VideosComponent } from './videos.component'
 
@@ -13,106 +10,58 @@ const videosRoutes: Routes = [
   {
     path: '',
     component: VideosComponent,
-    canActivateChild: [ MetaGuard ],
     children: [
       {
         path: 'overview',
         component: VideoOverviewComponent,
         data: {
           meta: {
-            title: 'Discover videos'
-          }
-        }
-      },
-      {
-        path: 'trending',
-        component: VideoTrendingComponent,
-        data: {
-          meta: {
-            title: 'Trending videos'
-          },
-          reuse: {
-            enabled: true,
-            key: 'trending-videos-list'
+            title: $localize`Discover videos`
           }
         }
       },
+
       {
+        // Old URL redirection
         path: 'most-liked',
-        component: VideoMostLikedComponent,
-        data: {
-          meta: {
-            title: 'Most liked videos'
-          },
-          reuse: {
-            enabled: true,
-            key: 'most-liked-videos-list'
-          }
-        }
+        redirectTo: 'trending?sort=most-liked'
       },
       {
-        path: 'recently-added',
-        component: VideoRecentlyAddedComponent,
+        matcher: (url: UrlSegment[]) => {
+          if (url.length === 1 && [ 'recently-added', 'trending', 'local' ].includes(url[0].path)) {
+            return {
+              consumed: url,
+              posParams: {
+                page: new UrlSegment(url[0].path, {})
+              }
+            }
+          }
+
+          return null
+        },
+
+        component: VideosListCommonPageComponent,
         data: {
-          meta: {
-            title: 'Recently added videos'
-          },
           reuse: {
             enabled: true,
-            key: 'recently-added-videos-list'
+            key: 'videos-list'
           }
         }
       },
+
       {
         path: 'subscriptions',
+        canActivate: [ LoginGuard ],
         component: VideoUserSubscriptionsComponent,
         data: {
           meta: {
-            title: 'Subscriptions'
+            title: $localize`Subscriptions`
           },
           reuse: {
             enabled: true,
             key: 'subscription-videos-list'
           }
         }
-      },
-      {
-        path: 'local',
-        component: VideoLocalComponent,
-        data: {
-          meta: {
-            title: 'Local videos'
-          },
-          reuse: {
-            enabled: true,
-            key: 'local-videos-list'
-          }
-        }
-      },
-      {
-        path: 'upload',
-        loadChildren: () => import('@app/+videos/+video-edit/video-add.module').then(m => m.VideoAddModule),
-        data: {
-          meta: {
-            title: 'Upload a video'
-          }
-        }
-      },
-      {
-        path: 'update/:uuid',
-        loadChildren: () => import('@app/+videos/+video-edit/video-update.module').then(m => m.VideoUpdateModule),
-        data: {
-          meta: {
-            title: 'Edit a video'
-          }
-        }
-      },
-      {
-        path: 'watch',
-        loadChildren: () => import('@app/+videos/+video-watch/video-watch.module').then(m => m.VideoWatchModule),
-        data: {
-          preload: 3000
-        }
       }
     ]
   }