X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fshared%2Fvideo%2Fvideo-edit.model.ts;h=67d8e7711d550da06e9dae5a24b3ca98b964b058;hb=7b992a86b107fc2917b993127df8e95a66ae94db;hp=47703ff798b2cda015ccff1d19bf64ad559c600e;hpb=156c50af3085468a47b8ae73fe8cfcae46b42398;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/video/video-edit.model.ts b/client/src/app/shared/video/video-edit.model.ts index 47703ff79..67d8e7711 100644 --- a/client/src/app/shared/video/video-edit.model.ts +++ b/client/src/app/shared/video/video-edit.model.ts @@ -14,7 +14,7 @@ export class VideoEdit implements VideoUpdate { tags: string[] nsfw: boolean commentsEnabled: boolean - downloadingEnabled: boolean + downloadEnabled: boolean waitTranscoding: boolean channelId: number privacy: VideoPrivacy @@ -26,8 +26,17 @@ export class VideoEdit implements VideoUpdate { uuid?: string id?: number scheduleUpdate?: VideoScheduleUpdate + originallyPublishedAt?: Date | string - constructor (video?: Video & { tags: string[], commentsEnabled: boolean, downloadingEnabled: boolean, support: string, thumbnailUrl: string, previewUrl: string }) { + constructor ( + video?: Video & { + tags: string[], + commentsEnabled: boolean, + downloadEnabled: boolean, + support: string, + thumbnailUrl: string, + previewUrl: string + }) { if (video) { this.id = video.id this.uuid = video.uuid @@ -39,7 +48,7 @@ export class VideoEdit implements VideoUpdate { this.tags = video.tags this.nsfw = video.nsfw this.commentsEnabled = video.commentsEnabled - this.downloadingEnabled = video.downloadingEnabled + this.downloadEnabled = video.downloadEnabled this.waitTranscoding = video.waitTranscoding this.channelId = video.channel.id this.privacy = video.privacy.id @@ -48,17 +57,18 @@ export class VideoEdit implements VideoUpdate { this.previewUrl = video.previewUrl this.scheduleUpdate = video.scheduledUpdate + this.originallyPublishedAt = video.originallyPublishedAt ? new Date(video.originallyPublishedAt) : null } } - patch (values: Object) { + patch (values: { [ id: string ]: string }) { Object.keys(values).forEach((key) => { this[ key ] = values[ key ] }) // If schedule publication, the video is private and will be changed to public privacy if (parseInt(values['privacy'], 10) === VideoEdit.SPECIAL_SCHEDULED_PRIVACY) { - const updateAt = (values['schedulePublicationAt'] as Date) + const updateAt = new Date(values['schedulePublicationAt']) updateAt.setSeconds(0) this.privacy = VideoPrivacy.PRIVATE @@ -69,6 +79,17 @@ export class VideoEdit implements VideoUpdate { } else { this.scheduleUpdate = null } + + // Convert originallyPublishedAt to string so that function objectToFormData() works correctly + if (this.originallyPublishedAt) { + const originallyPublishedAt = new Date(values['originallyPublishedAt']) + this.originallyPublishedAt = originallyPublishedAt.toISOString() + } + + // Use the same file than the preview for the thumbnail + if (this.previewfile) { + this.thumbnailfile = this.previewfile + } } toFormPatch () { @@ -82,10 +103,11 @@ export class VideoEdit implements VideoUpdate { tags: this.tags, nsfw: this.nsfw, commentsEnabled: this.commentsEnabled, - downloadingEnabled: this.downloadingEnabled, + downloadEnabled: this.downloadEnabled, waitTranscoding: this.waitTranscoding, channelId: this.channelId, - privacy: this.privacy + privacy: this.privacy, + originallyPublishedAt: this.originallyPublishedAt } // Special case if we scheduled an update