]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Add comments feeds popover in watch page
authorChocobozzz <me@florianbigard.com>
Tue, 2 Oct 2018 09:14:59 +0000 (11:14 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 2 Oct 2018 09:19:12 +0000 (11:19 +0200)
client/src/app/videos/+video-watch/comment/video-comment.service.ts
client/src/app/videos/+video-watch/comment/video-comments.component.html
client/src/app/videos/+video-watch/comment/video-comments.component.scss
client/src/app/videos/+video-watch/comment/video-comments.component.ts

index 73526cb3e757414f4ffca33bd114299174a042a5..9bcb4b7de9bc42f77c3e6006759a8ebbcad2fd90 100644 (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)
   }
index 5aebd7f24459bf552ca727abfc710203569fe064..42e129d65bde6aa728d18c2dd1ef13d4c2a3f8f1 100644 (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">
index 04518e07996073d7f7c4318138e5d48df98da1b4..dbb44c66cde13b1c24f1e81149e3348852d94b37 100644 (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) {
index 3707a40948d528294efda9d27b948b328f78d5f7..c864d82b7072b9e8a5cf82f4f9a44bceeacde6ee 100644 (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()
     }
   }