From ad5db1044c8599eaaaa2a578b350777ae996b068 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 18 Nov 2021 14:35:08 +0100 Subject: Add ability to run transcoding jobs --- .../overview/videos/video-list.component.html | 4 +-- .../+admin/overview/videos/video-list.component.ts | 32 ++++++++++++++++++++-- 2 files changed, 31 insertions(+), 5 deletions(-) (limited to 'client/src/app/+admin') diff --git a/client/src/app/+admin/overview/videos/video-list.component.html b/client/src/app/+admin/overview/videos/video-list.component.html index 6e4fb4c6f..738bcedee 100644 --- a/client/src/app/+admin/overview/videos/video-list.component.html +++ b/client/src/app/+admin/overview/videos/video-list.component.html @@ -56,8 +56,8 @@ diff --git a/client/src/app/+admin/overview/videos/video-list.component.ts b/client/src/app/+admin/overview/videos/video-list.component.ts index 3c21adb44..4aed5221b 100644 --- a/client/src/app/+admin/overview/videos/video-list.component.ts +++ b/client/src/app/+admin/overview/videos/video-list.component.ts @@ -40,7 +40,8 @@ export class VideoListComponent extends RestTable implements OnInit { duplicate: true, mute: true, liveInfo: false, - removeFiles: true + removeFiles: true, + transcoding: true } loading = true @@ -89,16 +90,28 @@ export class VideoListComponent extends RestTable implements OnInit { } ], [ + { + label: $localize`Run HLS transcoding`, + handler: videos => this.runTranscoding(videos, 'hls'), + isDisplayed: videos => videos.every(v => v.canRunTranscoding(this.authUser)), + iconName: 'cog' + }, + { + label: $localize`Run WebTorrent transcoding`, + handler: videos => this.runTranscoding(videos, 'webtorrent'), + isDisplayed: videos => videos.every(v => v.canRunTranscoding(this.authUser)), + iconName: 'cog' + }, { label: $localize`Delete HLS files`, handler: videos => this.removeVideoFiles(videos, 'hls'), - isDisplayed: videos => this.authUser.hasRight(UserRight.MANAGE_VIDEO_FILES) && videos.every(v => v.hasHLS() && v.hasWebTorrent()), + isDisplayed: videos => videos.every(v => v.canRemoveFiles(this.authUser)), iconName: 'delete' }, { label: $localize`Delete WebTorrent files`, handler: videos => this.removeVideoFiles(videos, 'webtorrent'), - isDisplayed: videos => this.authUser.hasRight(UserRight.MANAGE_VIDEO_FILES) && videos.every(v => v.hasHLS() && v.hasWebTorrent()), + isDisplayed: videos => videos.every(v => v.canRemoveFiles(this.authUser)), iconName: 'delete' } ] @@ -226,4 +239,17 @@ export class VideoListComponent extends RestTable implements OnInit { error: err => this.notifier.error(err.message) }) } + + private runTranscoding (videos: Video[], type: 'hls' | 'webtorrent') { + this.videoService.runTranscoding(videos.map(v => v.id), type) + .subscribe({ + next: () => { + this.notifier.success($localize`Transcoding jobs created.`) + + this.reloadData() + }, + + error: err => this.notifier.error(err.message) + }) + } } -- cgit v1.2.3