diff options
Diffstat (limited to 'client')
27 files changed, 82 insertions, 68 deletions
diff --git a/client/e2e/src/po/my-account.ts b/client/e2e/src/po/my-account.ts index 61d42214d..9866953e9 100644 --- a/client/e2e/src/po/my-account.ts +++ b/client/e2e/src/po/my-account.ts | |||
@@ -61,7 +61,7 @@ export class MyAccountPage { | |||
61 | 61 | ||
62 | async goOnAssociatedPlaylistEmbed () { | 62 | async goOnAssociatedPlaylistEmbed () { |
63 | let url = await browser.getCurrentUrl() | 63 | let url = await browser.getCurrentUrl() |
64 | url = url.replace('/videos/watch/playlist/', '/video-playlists/embed/') | 64 | url = url.replace('/w/p/', '/video-playlists/embed/') |
65 | url = url.replace(':3333', ':9001') | 65 | url = url.replace(':3333', ':9001') |
66 | 66 | ||
67 | return browser.get(url) | 67 | return browser.get(url) |
diff --git a/client/e2e/src/po/video-upload.po.ts b/client/e2e/src/po/video-upload.po.ts index ad2acee7f..a248912ed 100644 --- a/client/e2e/src/po/video-upload.po.ts +++ b/client/e2e/src/po/video-upload.po.ts | |||
@@ -41,7 +41,7 @@ export class VideoUploadPage { | |||
41 | 41 | ||
42 | await this.getSecondStepSubmitButton().click() | 42 | await this.getSecondStepSubmitButton().click() |
43 | 43 | ||
44 | return browser.wait(browser.ExpectedConditions.urlContains('/watch/')) | 44 | return browser.wait(browser.ExpectedConditions.urlContains('/w/')) |
45 | } | 45 | } |
46 | 46 | ||
47 | private getSecondStepSubmitButton () { | 47 | private getSecondStepSubmitButton () { |
diff --git a/client/e2e/src/po/video-watch.po.ts b/client/e2e/src/po/video-watch.po.ts index b41fe0882..6d91d241e 100644 --- a/client/e2e/src/po/video-watch.po.ts +++ b/client/e2e/src/po/video-watch.po.ts | |||
@@ -43,7 +43,7 @@ export class VideoWatchPage { | |||
43 | 43 | ||
44 | async goOnAssociatedEmbed () { | 44 | async goOnAssociatedEmbed () { |
45 | let url = await browser.getCurrentUrl() | 45 | let url = await browser.getCurrentUrl() |
46 | url = url.replace('/watch/', '/embed/') | 46 | url = url.replace('/w/', '/embed/') |
47 | url = url.replace(':3333', ':9001') | 47 | url = url.replace(':3333', ':9001') |
48 | 48 | ||
49 | return browser.get(url) | 49 | return browser.get(url) |
@@ -65,7 +65,7 @@ export class VideoWatchPage { | |||
65 | await browser.wait(browser.ExpectedConditions.elementToBeClickable(video)) | 65 | await browser.wait(browser.ExpectedConditions.elementToBeClickable(video)) |
66 | await video.click() | 66 | await video.click() |
67 | 67 | ||
68 | await browser.wait(browser.ExpectedConditions.urlContains('/watch/')) | 68 | await browser.wait(browser.ExpectedConditions.urlContains('/w/')) |
69 | } | 69 | } |
70 | 70 | ||
71 | async clickOnFirstVideo () { | 71 | async clickOnFirstVideo () { |
@@ -78,7 +78,7 @@ export class VideoWatchPage { | |||
78 | const textToReturn = videoName.getText() | 78 | const textToReturn = videoName.getText() |
79 | await video.click() | 79 | await video.click() |
80 | 80 | ||
81 | await browser.wait(browser.ExpectedConditions.urlContains('/watch/')) | 81 | await browser.wait(browser.ExpectedConditions.urlContains('/w/')) |
82 | return textToReturn | 82 | return textToReturn |
83 | } | 83 | } |
84 | 84 | ||
diff --git a/client/e2e/src/videos.e2e-spec.ts b/client/e2e/src/videos.e2e-spec.ts index bcc810297..fc816d1bf 100644 --- a/client/e2e/src/videos.e2e-spec.ts +++ b/client/e2e/src/videos.e2e-spec.ts | |||
@@ -85,7 +85,7 @@ describe('Videos workflow', () => { | |||
85 | let videoNameToExcept = videoName | 85 | let videoNameToExcept = videoName |
86 | 86 | ||
87 | if (await isMobileDevice() || await isSafari()) { | 87 | if (await isMobileDevice() || await isSafari()) { |
88 | await browser.get('https://peertube2.cpy.re/videos/watch/122d093a-1ede-43bd-bd34-59d2931ffc5e') | 88 | await browser.get('https://peertube2.cpy.re/w/122d093a-1ede-43bd-bd34-59d2931ffc5e') |
89 | videoNameToExcept = 'E2E tests' | 89 | videoNameToExcept = 'E2E tests' |
90 | } else { | 90 | } else { |
91 | await videoWatchPage.clickOnVideo(videoName) | 91 | await videoWatchPage.clickOnVideo(videoName) |
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html b/client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html index 451e6a34a..03997ea40 100644 --- a/client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html +++ b/client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html | |||
@@ -489,7 +489,7 @@ | |||
489 | <ng-container i18n> | 489 | <ng-container i18n> |
490 | If your instance is explicitly allowed by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<br /> | 490 | If your instance is explicitly allowed by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<br /> |
491 | If the instance is not, we use an image link card that will redirect to your PeerTube instance.<br /><br /> | 491 | If the instance is not, we use an image link card that will redirect to your PeerTube instance.<br /><br /> |
492 | Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on | 492 | Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/w/blabla) on |
493 | <a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'>https://cards-dev.twitter.com/validator</a> | 493 | <a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'>https://cards-dev.twitter.com/validator</a> |
494 | to see if you instance is allowed. | 494 | to see if you instance is allowed. |
495 | </ng-container> | 495 | </ng-container> |
diff --git a/client/src/app/+my-library/my-video-imports/my-video-imports.component.ts b/client/src/app/+my-library/my-video-imports/my-video-imports.component.ts index 359535526..bb9d70524 100644 --- a/client/src/app/+my-library/my-video-imports/my-video-imports.component.ts +++ b/client/src/app/+my-library/my-video-imports/my-video-imports.component.ts | |||
@@ -55,7 +55,7 @@ export class MyVideoImportsComponent extends RestTable implements OnInit { | |||
55 | } | 55 | } |
56 | 56 | ||
57 | getVideoUrl (video: { uuid: string }) { | 57 | getVideoUrl (video: { uuid: string }) { |
58 | return '/videos/watch/' + video.uuid | 58 | return '/w/' + video.uuid |
59 | } | 59 | } |
60 | 60 | ||
61 | getEditVideoUrl (video: { uuid: string }) { | 61 | getEditVideoUrl (video: { uuid: string }) { |
diff --git a/client/src/app/+page-not-found/page-not-found.component.ts b/client/src/app/+page-not-found/page-not-found.component.ts index 695568898..639e5db78 100644 --- a/client/src/app/+page-not-found/page-not-found.component.ts +++ b/client/src/app/+page-not-found/page-not-found.component.ts | |||
@@ -2,8 +2,6 @@ import { Component, OnInit } from '@angular/core' | |||
2 | import { Title } from '@angular/platform-browser' | 2 | import { Title } from '@angular/platform-browser' |
3 | import { Router } from '@angular/router' | 3 | import { Router } from '@angular/router' |
4 | import { HttpStatusCode } from '@shared/core-utils/miscs/http-error-codes' | 4 | import { HttpStatusCode } from '@shared/core-utils/miscs/http-error-codes' |
5 | |||
6 | |||
7 | @Component({ | 5 | @Component({ |
8 | selector: 'my-page-not-found', | 6 | selector: 'my-page-not-found', |
9 | templateUrl: './page-not-found.component.html', | 7 | templateUrl: './page-not-found.component.html', |
diff --git a/client/src/app/+remote-interaction/remote-interaction.component.ts b/client/src/app/+remote-interaction/remote-interaction.component.ts index 3ebe62f49..6ddf5b58d 100644 --- a/client/src/app/+remote-interaction/remote-interaction.component.ts +++ b/client/src/app/+remote-interaction/remote-interaction.component.ts | |||
@@ -39,7 +39,7 @@ export class RemoteInteractionComponent implements OnInit { | |||
39 | if (videoResult.data.length !== 0) { | 39 | if (videoResult.data.length !== 0) { |
40 | const video = videoResult.data[0] | 40 | const video = videoResult.data[0] |
41 | 41 | ||
42 | redirectUrl = '/videos/watch/' + video.uuid | 42 | redirectUrl = '/w/' + video.uuid |
43 | } else if (channelResult.data.length !== 0) { | 43 | } else if (channelResult.data.length !== 0) { |
44 | const channel = new VideoChannel(channelResult.data[0]) | 44 | const channel = new VideoChannel(channelResult.data[0]) |
45 | 45 | ||
diff --git a/client/src/app/+search/video-lazy-load.resolver.ts b/client/src/app/+search/video-lazy-load.resolver.ts index d4fe6ed79..e43e0089b 100644 --- a/client/src/app/+search/video-lazy-load.resolver.ts +++ b/client/src/app/+search/video-lazy-load.resolver.ts | |||
@@ -28,7 +28,7 @@ export class VideoLazyLoadResolver implements Resolve<any> { | |||
28 | 28 | ||
29 | const video = result.data[0] | 29 | const video = result.data[0] |
30 | 30 | ||
31 | return this.router.navigateByUrl('/videos/watch/' + video.uuid) | 31 | return this.router.navigateByUrl('/w/' + video.uuid) |
32 | }) | 32 | }) |
33 | ) | 33 | ) |
34 | } | 34 | } |
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts index 8e035b6bb..727bbc32f 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts | |||
@@ -127,7 +127,7 @@ export class VideoGoLiveComponent extends VideoSend implements OnInit, AfterView | |||
127 | () => { | 127 | () => { |
128 | this.notifier.success($localize`Live published.`) | 128 | this.notifier.success($localize`Live published.`) |
129 | 129 | ||
130 | this.router.navigate(['/videos/watch', video.uuid]) | 130 | this.router.navigate(['/w', video.uuid]) |
131 | }, | 131 | }, |
132 | 132 | ||
133 | err => { | 133 | err => { |
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts index bca1b6eb6..e20f08879 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts | |||
@@ -244,7 +244,7 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy | |||
244 | this.isUploadingVideo = false | 244 | this.isUploadingVideo = false |
245 | 245 | ||
246 | this.notifier.success($localize`Video published.`) | 246 | this.notifier.success($localize`Video published.`) |
247 | this.router.navigate([ '/videos/watch', video.uuid ]) | 247 | this.router.navigate([ '/w', video.uuid ]) |
248 | }, | 248 | }, |
249 | 249 | ||
250 | err => { | 250 | err => { |
diff --git a/client/src/app/+videos/+video-edit/video-update.component.html b/client/src/app/+videos/+video-edit/video-update.component.html index 3ce3e623e..9629081e3 100644 --- a/client/src/app/+videos/+video-edit/video-update.component.html +++ b/client/src/app/+videos/+video-edit/video-update.component.html | |||
@@ -1,7 +1,7 @@ | |||
1 | <div class="margin-content"> | 1 | <div class="margin-content"> |
2 | <div class="title-page title-page-single"> | 2 | <div class="title-page title-page-single"> |
3 | <span class="mr-1" i18n>Update</span> | 3 | <span class="mr-1" i18n>Update</span> |
4 | <a [routerLink]="[ '/videos/watch', video.uuid ]">{{ video?.name }}</a> | 4 | <a [routerLink]="[ '/w', video.uuid ]">{{ video?.name }}</a> |
5 | </div> | 5 | </div> |
6 | 6 | ||
7 | <form novalidate [formGroup]="form"> | 7 | <form novalidate [formGroup]="form"> |
diff --git a/client/src/app/+videos/+video-edit/video-update.component.ts b/client/src/app/+videos/+video-edit/video-update.component.ts index 2973c6840..574669a23 100644 --- a/client/src/app/+videos/+video-edit/video-update.component.ts +++ b/client/src/app/+videos/+video-edit/video-update.component.ts | |||
@@ -156,7 +156,7 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { | |||
156 | this.isUpdatingVideo = false | 156 | this.isUpdatingVideo = false |
157 | this.loadingBar.useRef().complete() | 157 | this.loadingBar.useRef().complete() |
158 | this.notifier.success($localize`Video updated.`) | 158 | this.notifier.success($localize`Video updated.`) |
159 | this.router.navigate([ '/videos/watch', this.video.uuid ]) | 159 | this.router.navigate([ '/w', this.video.uuid ]) |
160 | }, | 160 | }, |
161 | 161 | ||
162 | err => { | 162 | err => { |
diff --git a/client/src/app/+videos/+video-watch/comment/video-comment.component.html b/client/src/app/+videos/+video-watch/comment/video-comment.component.html index fc0d66ffd..06548edc8 100644 --- a/client/src/app/+videos/+video-watch/comment/video-comment.component.html +++ b/client/src/app/+videos/+video-watch/comment/video-comment.component.html | |||
@@ -20,7 +20,7 @@ | |||
20 | </a> | 20 | </a> |
21 | </div> | 21 | </div> |
22 | 22 | ||
23 | <a [routerLink]="['/videos/watch', video.uuid, { 'threadId': comment.threadId }]" class="comment-date" [title]="comment.createdAt"> | 23 | <a [routerLink]="['/w', video.uuid, { 'threadId': comment.threadId }]" class="comment-date" [title]="comment.createdAt"> |
24 | {{ comment.createdAt | myFromNow }} | 24 | {{ comment.createdAt | myFromNow }} |
25 | </a> | 25 | </a> |
26 | </div> | 26 | </div> |
@@ -45,7 +45,7 @@ | |||
45 | <ng-container *ngIf="comment.isDeleted"> | 45 | <ng-container *ngIf="comment.isDeleted"> |
46 | <div class="comment-account-date"> | 46 | <div class="comment-account-date"> |
47 | <span class="comment-account" i18n>Deleted</span> | 47 | <span class="comment-account" i18n>Deleted</span> |
48 | <a [routerLink]="['/videos/watch', video.uuid, { 'threadId': comment.threadId }]" | 48 | <a [routerLink]="['/w', video.uuid, { 'threadId': comment.threadId }]" |
49 | class="comment-date">{{ comment.createdAt | myFromNow }}</a> | 49 | class="comment-date">{{ comment.createdAt | myFromNow }}</a> |
50 | </div> | 50 | </div> |
51 | 51 | ||
diff --git a/client/src/app/+videos/+video-watch/video-watch-routing.module.ts b/client/src/app/+videos/+video-watch/video-watch-routing.module.ts index cb77685c0..657fd10f8 100644 --- a/client/src/app/+videos/+video-watch/video-watch-routing.module.ts +++ b/client/src/app/+videos/+video-watch/video-watch-routing.module.ts | |||
@@ -4,7 +4,7 @@ import { VideoWatchComponent } from './video-watch.component' | |||
4 | 4 | ||
5 | const videoWatchRoutes: Routes = [ | 5 | const videoWatchRoutes: Routes = [ |
6 | { | 6 | { |
7 | path: 'playlist/:playlistId', | 7 | path: 'p/:playlistId', |
8 | component: VideoWatchComponent | 8 | component: VideoWatchComponent |
9 | }, | 9 | }, |
10 | { | 10 | { |
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.ts b/client/src/app/+videos/+video-watch/video-watch.component.ts index 88c5cef52..0acd44524 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.ts +++ b/client/src/app/+videos/+video-watch/video-watch.component.ts | |||
@@ -690,7 +690,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
690 | if (this.playlist) { | 690 | if (this.playlist) { |
691 | this.zone.run(() => this.videoWatchPlaylist.navigateToNextPlaylistVideo()) | 691 | this.zone.run(() => this.videoWatchPlaylist.navigateToNextPlaylistVideo()) |
692 | } else if (this.nextVideoUuid) { | 692 | } else if (this.nextVideoUuid) { |
693 | this.router.navigate([ '/videos/watch', this.nextVideoUuid ]) | 693 | this.router.navigate([ '/w', this.nextVideoUuid ]) |
694 | } | 694 | } |
695 | } | 695 | } |
696 | 696 | ||
diff --git a/client/src/app/+videos/videos-routing.module.ts b/client/src/app/+videos/videos-routing.module.ts index f9f476b18..926dfaab0 100644 --- a/client/src/app/+videos/videos-routing.module.ts +++ b/client/src/app/+videos/videos-routing.module.ts | |||
@@ -74,31 +74,6 @@ const videosRoutes: Routes = [ | |||
74 | key: 'local-videos-list' | 74 | key: 'local-videos-list' |
75 | } | 75 | } |
76 | } | 76 | } |
77 | }, | ||
78 | { | ||
79 | path: 'upload', | ||
80 | loadChildren: () => import('@app/+videos/+video-edit/video-add.module').then(m => m.VideoAddModule), | ||
81 | data: { | ||
82 | meta: { | ||
83 | title: $localize`Upload a video` | ||
84 | } | ||
85 | } | ||
86 | }, | ||
87 | { | ||
88 | path: 'update/:uuid', | ||
89 | loadChildren: () => import('@app/+videos/+video-edit/video-update.module').then(m => m.VideoUpdateModule), | ||
90 | data: { | ||
91 | meta: { | ||
92 | title: $localize`Edit a video` | ||
93 | } | ||
94 | } | ||
95 | }, | ||
96 | { | ||
97 | path: 'watch', | ||
98 | loadChildren: () => import('@app/+videos/+video-watch/video-watch.module').then(m => m.VideoWatchModule), | ||
99 | data: { | ||
100 | preload: 3000 | ||
101 | } | ||
102 | } | 77 | } |
103 | ] | 78 | ] |
104 | } | 79 | } |
diff --git a/client/src/app/app-routing.module.ts b/client/src/app/app-routing.module.ts index 444b6f134..e35f540be 100644 --- a/client/src/app/app-routing.module.ts +++ b/client/src/app/app-routing.module.ts | |||
@@ -36,16 +36,27 @@ const routes: Routes = [ | |||
36 | loadChildren: () => import('./+signup/+verify-account/verify-account.module').then(m => m.VerifyAccountModule), | 36 | loadChildren: () => import('./+signup/+verify-account/verify-account.module').then(m => m.VerifyAccountModule), |
37 | canActivateChild: [ MetaGuard ] | 37 | canActivateChild: [ MetaGuard ] |
38 | }, | 38 | }, |
39 | |||
40 | { | ||
41 | path: 'accounts', | ||
42 | redirectTo: 'a' | ||
43 | }, | ||
39 | { | 44 | { |
40 | path: 'a', | 45 | path: 'a', |
41 | loadChildren: () => import('./+accounts/accounts.module').then(m => m.AccountsModule), | 46 | loadChildren: () => import('./+accounts/accounts.module').then(m => m.AccountsModule), |
42 | canActivateChild: [ MetaGuard ] | 47 | canActivateChild: [ MetaGuard ] |
43 | }, | 48 | }, |
49 | |||
50 | { | ||
51 | path: 'video-channels', | ||
52 | redirectTo: 'c' | ||
53 | }, | ||
44 | { | 54 | { |
45 | path: 'c', | 55 | path: 'c', |
46 | loadChildren: () => import('./+video-channels/video-channels.module').then(m => m.VideoChannelsModule), | 56 | loadChildren: () => import('./+video-channels/video-channels.module').then(m => m.VideoChannelsModule), |
47 | canActivateChild: [ MetaGuard ] | 57 | canActivateChild: [ MetaGuard ] |
48 | }, | 58 | }, |
59 | |||
49 | { | 60 | { |
50 | path: 'about', | 61 | path: 'about', |
51 | loadChildren: () => import('./+about/about.module').then(m => m.AboutModule), | 62 | loadChildren: () => import('./+about/about.module').then(m => m.AboutModule), |
@@ -71,31 +82,60 @@ const routes: Routes = [ | |||
71 | loadChildren: () => import('./+search/search.module').then(m => m.SearchModule), | 82 | loadChildren: () => import('./+search/search.module').then(m => m.SearchModule), |
72 | canActivateChild: [ MetaGuard ] | 83 | canActivateChild: [ MetaGuard ] |
73 | }, | 84 | }, |
85 | |||
74 | { | 86 | { |
75 | path: 'videos', | 87 | path: 'videos/upload', |
76 | loadChildren: () => import('./+videos/videos.module').then(m => m.VideosModule), | 88 | loadChildren: () => import('@app/+videos/+video-edit/video-add.module').then(m => m.VideoAddModule), |
77 | canActivateChild: [ MetaGuard ] | 89 | data: { |
90 | meta: { | ||
91 | title: $localize`Upload a video` | ||
92 | } | ||
93 | } | ||
78 | }, | 94 | }, |
79 | { | 95 | { |
80 | path: 'remote-interaction', | 96 | path: 'videos/update/:uuid', |
81 | loadChildren: () => import('./+remote-interaction/remote-interaction.module').then(m => m.RemoteInteractionModule), | 97 | loadChildren: () => import('@app/+videos/+video-edit/video-update.module').then(m => m.VideoUpdateModule), |
98 | data: { | ||
99 | meta: { | ||
100 | title: $localize`Edit a video` | ||
101 | } | ||
102 | } | ||
103 | }, | ||
104 | |||
105 | { | ||
106 | path: 'videos/watch/playlist', | ||
107 | redirectTo: 'w/p' | ||
108 | }, | ||
109 | { | ||
110 | path: 'videos/watch', | ||
111 | redirectTo: 'w' | ||
112 | }, | ||
113 | { | ||
114 | path: 'w', | ||
115 | loadChildren: () => import('@app/+videos/+video-watch/video-watch.module').then(m => m.VideoWatchModule), | ||
116 | data: { | ||
117 | preload: 3000 | ||
118 | } | ||
119 | }, | ||
120 | { | ||
121 | path: 'videos', | ||
122 | loadChildren: () => import('./+videos/videos.module').then(m => m.VideosModule), | ||
82 | canActivateChild: [ MetaGuard ] | 123 | canActivateChild: [ MetaGuard ] |
83 | }, | 124 | }, |
84 | { | 125 | { |
85 | path: 'video-playlists/watch', | 126 | path: 'video-playlists/watch', |
86 | redirectTo: 'videos/watch/playlist' | 127 | redirectTo: 'videos/watch/playlist' |
87 | }, | 128 | }, |
129 | |||
88 | { | 130 | { |
89 | path: 'accounts', | 131 | path: 'remote-interaction', |
90 | redirectTo: 'a' | 132 | loadChildren: () => import('./+remote-interaction/remote-interaction.module').then(m => m.RemoteInteractionModule), |
91 | }, | 133 | canActivateChild: [ MetaGuard ] |
92 | { | ||
93 | path: 'video-channels', | ||
94 | redirectTo: 'c' | ||
95 | }, | 134 | }, |
135 | |||
136 | // Matches /@:actorName | ||
96 | { | 137 | { |
97 | matcher: (url): UrlMatchResult => { | 138 | matcher: (url): UrlMatchResult => { |
98 | // Matches /@:actorName | ||
99 | const regex = new RegExp(`^@(${USER_USERNAME_REGEX_CHARACTERS}+)$`) | 139 | const regex = new RegExp(`^@(${USER_USERNAME_REGEX_CHARACTERS}+)$`) |
100 | if (url.length !== 1) return null | 140 | if (url.length !== 1) return null |
101 | 141 | ||
@@ -113,6 +153,7 @@ const routes: Routes = [ | |||
113 | canActivate: [ ActorRedirectGuard ], | 153 | canActivate: [ ActorRedirectGuard ], |
114 | component: EmptyComponent | 154 | component: EmptyComponent |
115 | }, | 155 | }, |
156 | |||
116 | { | 157 | { |
117 | path: '', | 158 | path: '', |
118 | component: EmptyComponent // Avoid 404, app component will redirect dynamically | 159 | component: EmptyComponent // Avoid 404, app component will redirect dynamically |
diff --git a/client/src/app/shared/shared-main/users/user-notification.model.ts b/client/src/app/shared/shared-main/users/user-notification.model.ts index 002a01583..c80bc13b0 100644 --- a/client/src/app/shared/shared-main/users/user-notification.model.ts +++ b/client/src/app/shared/shared-main/users/user-notification.model.ts | |||
@@ -238,7 +238,7 @@ export class UserNotification implements UserNotificationServer { | |||
238 | } | 238 | } |
239 | 239 | ||
240 | private buildVideoUrl (video: { uuid: string }) { | 240 | private buildVideoUrl (video: { uuid: string }) { |
241 | return '/videos/watch/' + video.uuid | 241 | return '/w/' + video.uuid |
242 | } | 242 | } |
243 | 243 | ||
244 | private buildAccountUrl (account: { name: string, host: string }) { | 244 | private buildAccountUrl (account: { name: string, host: string }) { |
diff --git a/client/src/app/shared/shared-main/video/video.model.ts b/client/src/app/shared/shared-main/video/video.model.ts index 526d10e32..e7f739bfe 100644 --- a/client/src/app/shared/shared-main/video/video.model.ts +++ b/client/src/app/shared/shared-main/video/video.model.ts | |||
@@ -88,7 +88,7 @@ export class Video implements VideoServerModel { | |||
88 | pluginData?: any | 88 | pluginData?: any |
89 | 89 | ||
90 | static buildClientUrl (videoUUID: string) { | 90 | static buildClientUrl (videoUUID: string) { |
91 | return '/videos/watch/' + videoUUID | 91 | return '/w/' + videoUUID |
92 | } | 92 | } |
93 | 93 | ||
94 | constructor (hash: VideoServerModel, translations = {}) { | 94 | constructor (hash: VideoServerModel, translations = {}) { |
diff --git a/client/src/app/shared/shared-share-modal/video-share.component.ts b/client/src/app/shared/shared-share-modal/video-share.component.ts index e8760bfcc..2a73e6166 100644 --- a/client/src/app/shared/shared-share-modal/video-share.component.ts +++ b/client/src/app/shared/shared-share-modal/video-share.component.ts | |||
@@ -98,14 +98,14 @@ export class VideoShareComponent { | |||
98 | 98 | ||
99 | getVideoUrl () { | 99 | getVideoUrl () { |
100 | let baseUrl = this.customizations.originUrl ? this.video.originInstanceUrl : window.location.origin | 100 | let baseUrl = this.customizations.originUrl ? this.video.originInstanceUrl : window.location.origin |
101 | baseUrl += '/videos/watch/' + this.video.uuid | 101 | baseUrl += '/w/' + this.video.uuid |
102 | const options = this.getVideoOptions(baseUrl) | 102 | const options = this.getVideoOptions(baseUrl) |
103 | 103 | ||
104 | return buildVideoLink(options) | 104 | return buildVideoLink(options) |
105 | } | 105 | } |
106 | 106 | ||
107 | getPlaylistUrl () { | 107 | getPlaylistUrl () { |
108 | const base = window.location.origin + '/videos/watch/playlist/' + this.playlist.uuid | 108 | const base = window.location.origin + '/w/p/' + this.playlist.uuid |
109 | 109 | ||
110 | if (!this.includeVideoInPlaylist) return base | 110 | if (!this.includeVideoInPlaylist) return base |
111 | 111 | ||
diff --git a/client/src/app/shared/shared-thumbnail/video-thumbnail.component.ts b/client/src/app/shared/shared-thumbnail/video-thumbnail.component.ts index bdede17a3..d5583c29f 100644 --- a/client/src/app/shared/shared-thumbnail/video-thumbnail.component.ts +++ b/client/src/app/shared/shared-thumbnail/video-thumbnail.component.ts | |||
@@ -57,7 +57,7 @@ export class VideoThumbnailComponent { | |||
57 | getVideoRouterLink () { | 57 | getVideoRouterLink () { |
58 | if (this.videoRouterLink) return this.videoRouterLink | 58 | if (this.videoRouterLink) return this.videoRouterLink |
59 | 59 | ||
60 | return [ '/videos/watch', this.video.uuid ] | 60 | return [ '/w', this.video.uuid ] |
61 | } | 61 | } |
62 | 62 | ||
63 | onWatchLaterClick (event: Event) { | 63 | onWatchLaterClick (event: Event) { |
diff --git a/client/src/app/shared/shared-video-comment/video-comment.model.ts b/client/src/app/shared/shared-video-comment/video-comment.model.ts index 1a2fe03db..94d6c5fa8 100644 --- a/client/src/app/shared/shared-video-comment/video-comment.model.ts +++ b/client/src/app/shared/shared-video-comment/video-comment.model.ts | |||
@@ -85,7 +85,7 @@ export class VideoCommentAdmin implements VideoCommentAdminServerModel { | |||
85 | id: hash.video.id, | 85 | id: hash.video.id, |
86 | uuid: hash.video.uuid, | 86 | uuid: hash.video.uuid, |
87 | name: hash.video.name, | 87 | name: hash.video.name, |
88 | localUrl: '/videos/watch/' + hash.video.uuid | 88 | localUrl: '/w/' + hash.video.uuid |
89 | } | 89 | } |
90 | 90 | ||
91 | this.localUrl = this.video.localUrl + ';threadId=' + this.threadId | 91 | this.localUrl = this.video.localUrl + ';threadId=' + this.threadId |
diff --git a/client/src/app/shared/shared-video-miniature/video-miniature.component.ts b/client/src/app/shared/shared-video-miniature/video-miniature.component.ts index b58c118be..aac55a6e9 100644 --- a/client/src/app/shared/shared-video-miniature/video-miniature.component.ts +++ b/client/src/app/shared/shared-video-miniature/video-miniature.component.ts | |||
@@ -125,7 +125,7 @@ export class VideoMiniatureComponent implements OnInit { | |||
125 | 125 | ||
126 | buildVideoLink () { | 126 | buildVideoLink () { |
127 | if (this.videoLinkType === 'internal' || !this.video.url) { | 127 | if (this.videoLinkType === 'internal' || !this.video.url) { |
128 | this.videoRouterLink = [ '/videos/watch', this.video.uuid ] | 128 | this.videoRouterLink = [ '/w', this.video.uuid ] |
129 | return | 129 | return |
130 | } | 130 | } |
131 | 131 | ||
diff --git a/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.ts b/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.ts index 7c083ae26..86c281a1e 100644 --- a/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.ts +++ b/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.ts | |||
@@ -71,7 +71,7 @@ export class VideoPlaylistElementMiniatureComponent implements OnInit { | |||
71 | buildRouterLink () { | 71 | buildRouterLink () { |
72 | if (!this.playlist) return null | 72 | if (!this.playlist) return null |
73 | 73 | ||
74 | return [ '/videos/watch/playlist', this.playlist.uuid ] | 74 | return [ '/w/p', this.playlist.uuid ] |
75 | } | 75 | } |
76 | 76 | ||
77 | buildRouterQuery () { | 77 | buildRouterQuery () { |
diff --git a/client/src/app/shared/shared-video-playlist/video-playlist-miniature.component.ts b/client/src/app/shared/shared-video-playlist/video-playlist-miniature.component.ts index 6b0b1056f..9bbec6038 100644 --- a/client/src/app/shared/shared-video-playlist/video-playlist-miniature.component.ts +++ b/client/src/app/shared/shared-video-playlist/video-playlist-miniature.component.ts | |||
@@ -18,6 +18,6 @@ export class VideoPlaylistMiniatureComponent { | |||
18 | if (this.toManage) return [ '/my-library/video-playlists', this.playlist.uuid ] | 18 | if (this.toManage) return [ '/my-library/video-playlists', this.playlist.uuid ] |
19 | if (this.playlist.videosLength === 0) return null | 19 | if (this.playlist.videosLength === 0) return null |
20 | 20 | ||
21 | return [ '/videos/watch/playlist', this.playlist.uuid ] | 21 | return [ '/w/p', this.playlist.uuid ] |
22 | } | 22 | } |
23 | } | 23 | } |
diff --git a/client/src/assets/player/utils.ts b/client/src/assets/player/utils.ts index 1243526d2..2bb70d1fa 100644 --- a/client/src/assets/player/utils.ts +++ b/client/src/assets/player/utils.ts | |||
@@ -65,7 +65,7 @@ function buildVideoLink (options: { | |||
65 | 65 | ||
66 | const url = baseUrl | 66 | const url = baseUrl |
67 | ? baseUrl | 67 | ? baseUrl |
68 | : window.location.origin + window.location.pathname.replace('/embed/', '/watch/') | 68 | : window.location.origin + window.location.pathname.replace('/embed/', '/w/') |
69 | 69 | ||
70 | const params = generateParams(window.location.search) | 70 | const params = generateParams(window.location.search) |
71 | 71 | ||
@@ -101,7 +101,7 @@ function buildPlaylistLink (options: { | |||
101 | 101 | ||
102 | const url = baseUrl | 102 | const url = baseUrl |
103 | ? baseUrl | 103 | ? baseUrl |
104 | : window.location.origin + window.location.pathname.replace('/video-playlists/embed/', '/videos/watch/playlist/') | 104 | : window.location.origin + window.location.pathname.replace('/video-playlists/embed/', '/w/p/') |
105 | 105 | ||
106 | const params = generateParams(window.location.search) | 106 | const params = generateParams(window.location.search) |
107 | 107 | ||