diff options
author | Chocobozzz <me@florianbigard.com> | 2018-06-14 11:25:49 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2018-06-14 11:43:19 +0200 |
commit | bf079b7bfd7f0fb75ceb28e333bb4b74d8840dd4 (patch) | |
tree | b6d9c153eff0485f154311870a10dddc7f0fe14f /client/src/app/videos | |
parent | 4dae00e68b71ee3725a94eef891f3c43e10040b0 (diff) | |
download | PeerTube-bf079b7bfd7f0fb75ceb28e333bb4b74d8840dd4.tar.gz PeerTube-bf079b7bfd7f0fb75ceb28e333bb4b74d8840dd4.tar.zst PeerTube-bf079b7bfd7f0fb75ceb28e333bb4b74d8840dd4.zip |
Automatically jump to the highlighted thread
Diffstat (limited to 'client/src/app/videos')
4 files changed, 24 insertions, 10 deletions
diff --git a/client/src/app/videos/+video-watch/comment/video-comment-add.component.scss b/client/src/app/videos/+video-watch/comment/video-comment-add.component.scss index e586880fc..dbce744bf 100644 --- a/client/src/app/videos/+video-watch/comment/video-comment-add.component.scss +++ b/client/src/app/videos/+video-watch/comment/video-comment-add.component.scss | |||
@@ -28,7 +28,7 @@ form { | |||
28 | 28 | ||
29 | .submit-comment { | 29 | .submit-comment { |
30 | display: flex; | 30 | display: flex; |
31 | justify-content: end; | 31 | justify-content: flex-end; |
32 | 32 | ||
33 | button { | 33 | button { |
34 | @include peertube-button; | 34 | @include peertube-button; |
diff --git a/client/src/app/videos/+video-watch/comment/video-comments.component.html b/client/src/app/videos/+video-watch/comment/video-comments.component.html index 7278f7e57..8871980e9 100644 --- a/client/src/app/videos/+video-watch/comment/video-comments.component.html +++ b/client/src/app/videos/+video-watch/comment/video-comments.component.html | |||
@@ -3,7 +3,7 @@ | |||
3 | <div i18n class="title-page title-page-single"> | 3 | <div i18n class="title-page title-page-single"> |
4 | Comments | 4 | Comments |
5 | </div> | 5 | </div> |
6 | <my-help | 6 | <my-help |
7 | *ngIf="video.commentsEnabled === true" helpType="custom" i18n-customHtml | 7 | *ngIf="video.commentsEnabled === true" helpType="custom" i18n-customHtml |
8 | 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. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>."></my-help> | 8 | 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. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>."></my-help> |
9 | </div> | 9 | </div> |
@@ -24,8 +24,9 @@ | |||
24 | [autoLoading]="true" | 24 | [autoLoading]="true" |
25 | (nearOfBottom)="onNearOfBottom()" | 25 | (nearOfBottom)="onNearOfBottom()" |
26 | > | 26 | > |
27 | <div *ngIf="highlightedThread" id="highlighted-comment"> | 27 | <div #commentHighlightBlock id="highlighted-comment"> |
28 | <my-video-comment | 28 | <my-video-comment |
29 | *ngIf="highlightedThread" | ||
29 | [comment]="highlightedThread" | 30 | [comment]="highlightedThread" |
30 | [video]="video" | 31 | [video]="video" |
31 | [inReplyToCommentId]="inReplyToCommentId" | 32 | [inReplyToCommentId]="inReplyToCommentId" |
diff --git a/client/src/app/videos/+video-watch/comment/video-comments.component.ts b/client/src/app/videos/+video-watch/comment/video-comments.component.ts index 72f66ff09..274c32d31 100644 --- a/client/src/app/videos/+video-watch/comment/video-comments.component.ts +++ b/client/src/app/videos/+video-watch/comment/video-comments.component.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core' | 1 | import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild, ElementRef } from '@angular/core' |
2 | import { ActivatedRoute } from '@angular/router' | 2 | import { ActivatedRoute } from '@angular/router' |
3 | import { ConfirmService } from '@app/core' | 3 | import { ConfirmService } from '@app/core' |
4 | import { NotificationsService } from 'angular2-notifications' | 4 | import { NotificationsService } from 'angular2-notifications' |
@@ -19,6 +19,7 @@ import { I18n } from '@ngx-translate/i18n-polyfill' | |||
19 | styleUrls: ['./video-comments.component.scss'] | 19 | styleUrls: ['./video-comments.component.scss'] |
20 | }) | 20 | }) |
21 | export class VideoCommentsComponent implements OnInit, OnChanges, OnDestroy { | 21 | export class VideoCommentsComponent implements OnInit, OnChanges, OnDestroy { |
22 | @ViewChild('commentHighlightBlock') commentHighlightBlock: ElementRef | ||
22 | @Input() video: VideoDetails | 23 | @Input() video: VideoDetails |
23 | @Input() user: User | 24 | @Input() user: User |
24 | 25 | ||
@@ -76,7 +77,17 @@ export class VideoCommentsComponent implements OnInit, OnChanges, OnDestroy { | |||
76 | this.threadComments[commentId] = res | 77 | this.threadComments[commentId] = res |
77 | this.threadLoading[commentId] = false | 78 | this.threadLoading[commentId] = false |
78 | 79 | ||
79 | if (highlightThread) this.highlightedThread = new VideoComment(res.comment) | 80 | if (highlightThread) { |
81 | this.highlightedThread = new VideoComment(res.comment) | ||
82 | |||
83 | // Scroll to the highlighted thread | ||
84 | setTimeout(() => { | ||
85 | // -60 because of the fixed header | ||
86 | console.log(this.commentHighlightBlock.nativeElement.offsetTop) | ||
87 | const scrollY = this.commentHighlightBlock.nativeElement.offsetTop - 60 | ||
88 | window.scroll(0, scrollY) | ||
89 | }, 500) | ||
90 | } | ||
80 | }, | 91 | }, |
81 | 92 | ||
82 | err => this.notificationsService.error(this.i18n('Error'), err.message) | 93 | err => this.notificationsService.error(this.i18n('Error'), err.message) |
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 498542fff..a760c03e8 100644 --- a/client/src/app/videos/+video-watch/video-watch.component.ts +++ b/client/src/app/videos/+video-watch/video-watch.component.ts | |||
@@ -101,14 +101,13 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
101 | ) | 101 | ) |
102 | 102 | ||
103 | this.paramsSub = this.route.params.subscribe(routeParams => { | 103 | this.paramsSub = this.route.params.subscribe(routeParams => { |
104 | if (this.player) { | ||
105 | this.player.pause() | ||
106 | } | ||
107 | |||
108 | const uuid = routeParams[ 'uuid' ] | 104 | const uuid = routeParams[ 'uuid' ] |
109 | 105 | ||
110 | // Video did not change | 106 | // Video did not change |
111 | if (this.video && this.video.uuid === uuid) return | 107 | if (this.video && this.video.uuid === uuid) return |
108 | |||
109 | if (this.player) this.player.pause() | ||
110 | |||
112 | // Video did change | 111 | // Video did change |
113 | this.videoService | 112 | this.videoService |
114 | .getVideo(uuid) | 113 | .getVideo(uuid) |
@@ -469,7 +468,10 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
469 | } | 468 | } |
470 | 469 | ||
471 | private isAutoplay () { | 470 | private isAutoplay () { |
472 | // True by default | 471 | // We'll jump to the thread id, so do not play the video |
472 | if (this.route.snapshot.params['threadId']) return false | ||
473 | |||
474 | // Otherwise true by default | ||
473 | if (!this.user) return true | 475 | if (!this.user) return true |
474 | 476 | ||
475 | // Be sure the autoPlay is set to false | 477 | // Be sure the autoPlay is set to false |