Add comments feeds popover in watch page

This commit is contained in:
Chocobozzz 2018-10-02 11:14:59 +02:00
parent d95fdb5af9
commit 53877968a6
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
4 changed files with 38 additions and 5 deletions

View File

@ -3,7 +3,7 @@ import { HttpClient, HttpParams } from '@angular/common/http'
import { Injectable } from '@angular/core'
import { lineFeedToHtml } from '@app/shared/misc/utils'
import { Observable } from 'rxjs'
import { ResultList } from '../../../../../../shared/models'
import { ResultList, FeedFormat } from '../../../../../../shared/models'
import {
VideoComment as VideoCommentServerModel,
VideoCommentCreate,
@ -18,6 +18,7 @@ import { VideoComment } from './video-comment.model'
@Injectable()
export class VideoCommentService {
private static BASE_VIDEO_URL = environment.apiUrl + '/api/v1/videos/'
private static BASE_FEEDS_URL = environment.apiUrl + '/feeds/video-comments.'
constructor (
private authHttp: HttpClient,
@ -88,6 +89,34 @@ export class VideoCommentService {
)
}
getVideoCommentsFeeds (videoUUID?: string) {
const feeds = [
{
format: FeedFormat.RSS,
label: 'rss 2.0',
url: VideoCommentService.BASE_FEEDS_URL + FeedFormat.RSS.toLowerCase()
},
{
format: FeedFormat.ATOM,
label: 'atom 1.0',
url: VideoCommentService.BASE_FEEDS_URL + FeedFormat.ATOM.toLowerCase()
},
{
format: FeedFormat.JSON,
label: 'json 1.0',
url: VideoCommentService.BASE_FEEDS_URL + FeedFormat.JSON.toLowerCase()
}
]
if (videoUUID !== undefined) {
for (const feed of feeds) {
feed.url += '?videoId=' + videoUUID
}
}
return feeds
}
private extractVideoComment (videoComment: VideoCommentServerModel) {
return new VideoComment(videoComment)
}

View File

@ -3,9 +3,8 @@
<div i18n class="title-page title-page-single">
Comments
</div>
<my-help
*ngIf="video.commentsEnabled === true" helpType="custom" i18n-customHtml
customHtml="You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@{{video.account.name}}@{{video.account.host}}</strong> and find back the video."></my-help>
<my-video-feed [syndicationItems]="syndicationItems"></my-video-feed>
</div>
<ng-template [ngIf]="video.commentsEnabled === true">

View File

@ -23,8 +23,9 @@
margin-right: 0;
}
my-help {
my-video-feed {
display: inline-block;
margin-left: 5px;
}
@media screen and (max-width: 600px) {

View File

@ -35,6 +35,8 @@ export class VideoCommentsComponent implements OnInit, OnChanges, OnDestroy {
threadComments: { [ id: number ]: VideoCommentThreadTree } = {}
threadLoading: { [ id: number ]: boolean } = {}
syndicationItems = []
private sub: Subscription
constructor (
@ -201,6 +203,8 @@ export class VideoCommentsComponent implements OnInit, OnChanges, OnDestroy {
this.componentPagination.currentPage = 1
this.componentPagination.totalItems = null
this.syndicationItems = this.videoCommentService.getVideoCommentsFeeds(this.video.uuid)
this.loadMoreComments()
}
}