From 53055a1124cbc2eaeeeeef21b19b0b46e96f23c5 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 18 Jun 2018 11:19:10 +0200 Subject: [PATCH] Handle markdown in account/video channel pages --- .../account-about/account-about.component.html | 2 +- .../account-about/account-about.component.ts | 12 +++++++++--- .../video-channel-about.component.html | 6 +++--- .../video-channel-about.component.ts | 15 ++++++++++++--- .../+video-watch/modal/video-support.component.ts | 6 +----- .../videos/+video-watch/video-watch.component.ts | 5 ----- client/src/app/videos/shared/markdown.service.ts | 6 ++++-- 7 files changed, 30 insertions(+), 22 deletions(-) diff --git a/client/src/app/+accounts/account-about/account-about.component.html b/client/src/app/+accounts/account-about/account-about.component.html index b178f5cc8..f857e5a52 100644 --- a/client/src/app/+accounts/account-about/account-about.component.html +++ b/client/src/app/+accounts/account-about/account-about.component.html @@ -1,7 +1,7 @@
Description
-
{{ getAccountDescription() }}
+
diff --git a/client/src/app/+accounts/account-about/account-about.component.ts b/client/src/app/+accounts/account-about/account-about.component.ts index c0e793754..2acf67a59 100644 --- a/client/src/app/+accounts/account-about/account-about.component.ts +++ b/client/src/app/+accounts/account-about/account-about.component.ts @@ -4,6 +4,7 @@ import { Account } from '@app/shared/account/account.model' import { AccountService } from '@app/shared/account/account.service' import { I18n } from '@ngx-translate/i18n-polyfill' import { Subscription } from 'rxjs' +import { MarkdownService } from '@app/videos/shared' @Component({ selector: 'my-account-about', @@ -12,19 +13,24 @@ import { Subscription } from 'rxjs' }) export class AccountAboutComponent implements OnInit, OnDestroy { account: Account + descriptionHTML = '' private accountSub: Subscription constructor ( private route: ActivatedRoute, private i18n: I18n, - private accountService: AccountService + private accountService: AccountService, + private markdownService: MarkdownService ) { } ngOnInit () { // Parent get the account for us this.accountSub = this.accountService.accountLoaded - .subscribe(account => this.account = account) + .subscribe(account => { + this.account = account + this.descriptionHTML = this.markdownService.textMarkdownToHTML(this.account.description) + }) } ngOnDestroy () { @@ -32,7 +38,7 @@ export class AccountAboutComponent implements OnInit, OnDestroy { } getAccountDescription () { - if (this.account.description) return this.account.description + if (this.descriptionHTML) return this.descriptionHTML return this.i18n('No description') } diff --git a/client/src/app/+video-channels/video-channel-about/video-channel-about.component.html b/client/src/app/+video-channels/video-channel-about/video-channel-about.component.html index b7125ff71..9655668d7 100644 --- a/client/src/app/+video-channels/video-channel-about/video-channel-about.component.html +++ b/client/src/app/+video-channels/video-channel-about/video-channel-about.component.html @@ -2,12 +2,12 @@
Description
-
{{ getVideoChannelDescription() }}
+
-
+
Support this channel
-
{{ videoChannel.support }}
+
diff --git a/client/src/app/+video-channels/video-channel-about/video-channel-about.component.ts b/client/src/app/+video-channels/video-channel-about/video-channel-about.component.ts index dc0893962..901c91de9 100644 --- a/client/src/app/+video-channels/video-channel-about/video-channel-about.component.ts +++ b/client/src/app/+video-channels/video-channel-about/video-channel-about.component.ts @@ -4,6 +4,7 @@ import { VideoChannelService } from '@app/shared/video-channel/video-channel.ser import { VideoChannel } from '@app/shared/video-channel/video-channel.model' import { I18n } from '@ngx-translate/i18n-polyfill' import { Subscription } from 'rxjs' +import { MarkdownService } from '@app/videos/shared' @Component({ selector: 'my-video-channel-about', @@ -12,19 +13,27 @@ import { Subscription } from 'rxjs' }) export class VideoChannelAboutComponent implements OnInit, OnDestroy { videoChannel: VideoChannel + descriptionHTML = '' + supportHTML = '' private videoChannelSub: Subscription constructor ( private route: ActivatedRoute, private i18n: I18n, - private videoChannelService: VideoChannelService + private videoChannelService: VideoChannelService, + private markdownService: MarkdownService ) { } ngOnInit () { // Parent get the video channel for us this.videoChannelSub = this.videoChannelService.videoChannelLoaded - .subscribe(videoChannel => this.videoChannel = videoChannel) + .subscribe(videoChannel => { + this.videoChannel = videoChannel + + this.descriptionHTML = this.markdownService.textMarkdownToHTML(this.videoChannel.description) + this.supportHTML = this.markdownService.enhancedMarkdownToHTML(this.videoChannel.support) + }) } ngOnDestroy () { @@ -32,7 +41,7 @@ export class VideoChannelAboutComponent implements OnInit, OnDestroy { } getVideoChannelDescription () { - if (this.videoChannel.description) return this.videoChannel.description + if (this.descriptionHTML) return this.descriptionHTML return this.i18n('No description') } diff --git a/client/src/app/videos/+video-watch/modal/video-support.component.ts b/client/src/app/videos/+video-watch/modal/video-support.component.ts index f805215b9..c515298a0 100644 --- a/client/src/app/videos/+video-watch/modal/video-support.component.ts +++ b/client/src/app/videos/+video-watch/modal/video-support.component.ts @@ -23,11 +23,7 @@ export class VideoSupportComponent { show () { this.modal.show() - if (this.video.support) { - this.videoHTMLSupport = this.markdownService.enhancedMarkdownToHTML(this.video.support) - } else { - this.videoHTMLSupport = '' - } + this.videoHTMLSupport = this.markdownService.enhancedMarkdownToHTML(this.video.support) } hide () { 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 6f6bd4e5d..8adf97d48 100644 --- a/client/src/app/videos/+video-watch/video-watch.component.ts +++ b/client/src/app/videos/+video-watch/video-watch.component.ts @@ -290,11 +290,6 @@ export class VideoWatchComponent implements OnInit, OnDestroy { } private setVideoDescriptionHTML () { - if (!this.video.description) { - this.videoHTMLDescription = '' - return - } - this.videoHTMLDescription = this.markdownService.textMarkdownToHTML(this.video.description) } diff --git a/client/src/app/videos/shared/markdown.service.ts b/client/src/app/videos/shared/markdown.service.ts index 681140087..14eeba777 100644 --- a/client/src/app/videos/shared/markdown.service.ts +++ b/client/src/app/videos/shared/markdown.service.ts @@ -23,14 +23,16 @@ export class MarkdownService { } textMarkdownToHTML (markdown: string) { - const html = this.textMarkdownIt.render(markdown) + if (!markdown) return '' + const html = this.textMarkdownIt.render(markdown) return this.avoidTruncatedLinks(html) } enhancedMarkdownToHTML (markdown: string) { - const html = this.enhancedMarkdownIt.render(markdown) + if (!markdown) return '' + const html = this.enhancedMarkdownIt.render(markdown) return this.avoidTruncatedLinks(html) } -- 2.25.1