From 57d74ec83d64daaf2efc6a3dad8adbcfe1f59415 Mon Sep 17 00:00:00 2001 From: lutangar Date: Wed, 22 Dec 2021 18:36:56 +0100 Subject: Add simple subtitle edition from video captions tab Introduce a new __Edit__ button on a subtitle. It opens a modal with simple textarea allowing the user to do quick corrections on a subtitle. --- client/src/app/shared/form-validators/video-captions-validators.ts | 7 +++++++ .../shared/shared-main/video-caption/video-caption-edit.model.ts | 4 +++- .../app/shared/shared-main/video-caption/video-caption.service.ts | 7 ++++++- 3 files changed, 16 insertions(+), 2 deletions(-) (limited to 'client/src/app/shared') diff --git a/client/src/app/shared/form-validators/video-captions-validators.ts b/client/src/app/shared/form-validators/video-captions-validators.ts index a16216422..e589fe934 100644 --- a/client/src/app/shared/form-validators/video-captions-validators.ts +++ b/client/src/app/shared/form-validators/video-captions-validators.ts @@ -14,3 +14,10 @@ export const VIDEO_CAPTION_FILE_VALIDATOR: BuildFormValidator = { required: $localize`Video caption file is required.` } } + +export const VIDEO_CAPTION_FILE_CONTENT_VALIDATOR: BuildFormValidator = { + VALIDATORS: [ Validators.required ], + MESSAGES: { + required: $localize`Caption content is required.` + } +} diff --git a/client/src/app/shared/shared-main/video-caption/video-caption-edit.model.ts b/client/src/app/shared/shared-main/video-caption/video-caption-edit.model.ts index 732f20158..129e80bc0 100644 --- a/client/src/app/shared/shared-main/video-caption/video-caption-edit.model.ts +++ b/client/src/app/shared/shared-main/video-caption/video-caption-edit.model.ts @@ -4,6 +4,8 @@ export interface VideoCaptionEdit { label?: string } - action?: 'CREATE' | 'REMOVE' + action?: 'CREATE' | 'REMOVE' | 'UPDATE' captionfile?: any } + +export type VideoCaptionWithPathEdit = VideoCaptionEdit & { captionPath?: string } diff --git a/client/src/app/shared/shared-main/video-caption/video-caption.service.ts b/client/src/app/shared/shared-main/video-caption/video-caption.service.ts index 97b79d842..67eb09e4d 100644 --- a/client/src/app/shared/shared-main/video-caption/video-caption.service.ts +++ b/client/src/app/shared/shared-main/video-caption/video-caption.service.ts @@ -8,6 +8,7 @@ import { VideoService } from '@app/shared/shared-main/video' import { peertubeTranslate } from '@shared/core-utils/i18n' import { ResultList, VideoCaption } from '@shared/models' import { VideoCaptionEdit } from './video-caption-edit.model' +import { environment } from '../../../../environments/environment' @Injectable() export class VideoCaptionService { @@ -57,7 +58,7 @@ export class VideoCaptionService { let obs: Observable = of(undefined) for (const videoCaption of videoCaptions) { - if (videoCaption.action === 'CREATE') { + if (videoCaption.action === 'CREATE' || videoCaption.action === 'UPDATE') { obs = obs.pipe(switchMap(() => this.addCaption(videoId, videoCaption.language.id, videoCaption.captionfile))) } else if (videoCaption.action === 'REMOVE') { obs = obs.pipe(switchMap(() => this.removeCaption(videoId, videoCaption.language.id))) @@ -66,4 +67,8 @@ export class VideoCaptionService { return obs } + + getCaptionContent ({ captionPath }: Pick) { + return this.authHttp.get(`${environment.originServerUrl}${captionPath}`, { responseType: 'text' }) + } } -- cgit v1.2.3