From 367a9dc69975a0db01962dbb7106635fb8eb1696 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 13 Sep 2022 12:00:13 +0200 Subject: Don't display remove file icon in some cases --- .../src/app/+admin/overview/videos/video-list.component.html | 2 ++ client/src/app/+admin/overview/videos/video-list.component.ts | 4 ++++ client/src/app/shared/shared-main/video/video.model.ts | 11 +++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) (limited to 'client/src/app') 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 06b9ab347..14bbb55e9 100644 --- a/client/src/app/+admin/overview/videos/video-list.component.html +++ b/client/src/app/+admin/overview/videos/video-list.component.html @@ -109,6 +109,7 @@ {{ file.resolution.label }}: {{ file.size | bytes: 1 }} @@ -124,6 +125,7 @@ {{ file.resolution.label }}: {{ file.size | bytes: 1 }} 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 ed7ec54a1..cb693ce12 100644 --- a/client/src/app/+admin/overview/videos/video-list.component.ts +++ b/client/src/app/+admin/overview/videos/video-list.component.ts @@ -166,6 +166,10 @@ export class VideoListComponent extends RestTable implements OnInit { return video.files.length !== 0 } + canRemoveOneFile (video: Video) { + return video.canRemoveOneFile(this.authUser) + } + getFilesSize (video: Video) { let files = video.files 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 2e4ab87d7..c9c6b979c 100644 --- a/client/src/app/shared/shared-main/video/video.model.ts +++ b/client/src/app/shared/shared-main/video/video.model.ts @@ -1,8 +1,8 @@ import { AuthUser } from '@app/core' import { User } from '@app/core/users/user.model' -import { durationToString, prepareIcu, getAbsoluteAPIUrl, getAbsoluteEmbedUrl } from '@app/helpers' +import { durationToString, getAbsoluteAPIUrl, getAbsoluteEmbedUrl, prepareIcu } from '@app/helpers' import { Actor } from '@app/shared/shared-main/account/actor.model' -import { buildVideoWatchPath } from '@shared/core-utils' +import { buildVideoWatchPath, getAllFiles } from '@shared/core-utils' import { peertubeTranslate } from '@shared/core-utils/i18n' import { ActorImage, @@ -240,6 +240,13 @@ export class Video implements VideoServerModel { return user && this.isLocal === true && (this.account.name === user.username || user.hasRight(UserRight.SEE_ALL_VIDEOS)) } + canRemoveOneFile (user: AuthUser) { + return this.isLocal && + user && user.hasRight(UserRight.MANAGE_VIDEO_FILES) && + this.state.id !== VideoState.TO_TRANSCODE && + getAllFiles(this).length > 1 + } + canRemoveFiles (user: AuthUser) { return this.isLocal && user && user.hasRight(UserRight.MANAGE_VIDEO_FILES) && -- cgit v1.2.3