<div>
- <div class="title-page title-page-single">
- Comments
+ <div class="title-block">
+ <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. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>."></my-help>
</div>
- <my-video-comment-add
- *ngIf="isUserLoggedIn()"
- [video]="video"
- (commentCreated)="onCommentThreadCreated($event)"
- ></my-video-comment-add>
+ <ng-template [ngIf]="video.commentsEnabled === true">
+ <my-video-comment-add
+ *ngIf="isUserLoggedIn()"
+ [video]="video"
+ [user]="user"
+ (commentCreated)="onCommentThreadCreated($event)"
+ ></my-video-comment-add>
+
+ <div *ngIf="componentPagination.totalItems === 0 && comments.length === 0" i18n>No comments.</div>
- <div class="comment-threads">
- <div *ngFor="let comment of comments">
- <my-video-comment
- [comment]="comment"
- [video]="video"
- [inReplyToCommentId]="inReplyToCommentId"
- [commentTree]="threadComments[comment.id]"
- (wantedToReply)="onWantedToReply($event)"
- (resetReply)="onResetReply()"
- ></my-video-comment>
+ <div
+ class="comment-threads"
+ myInfiniteScroller
+ [autoLoading]="true"
+ (nearOfBottom)="onNearOfBottom()"
+ >
+ <div *ngIf="highlightedThread" id="highlighted-comment">
+ <my-video-comment
+ [comment]="highlightedThread"
+ [video]="video"
+ [inReplyToCommentId]="inReplyToCommentId"
+ [commentTree]="threadComments[highlightedThread.id]"
+ [highlightedComment]="true"
+ (wantedToReply)="onWantedToReply($event)"
+ (wantedToDelete)="onWantedToDelete($event)"
+ (threadCreated)="onThreadCreated($event)"
+ (resetReply)="onResetReply()"
+ ></my-video-comment>
+ </div>
- <div *ngIf="comment.totalReplies !== 0 && !threadComments[comment.id]" (click)="viewReplies(comment)" class="view-replies">
- View all {{ comment.totalReplies }} replies
+ <div *ngFor="let comment of comments">
+ <my-video-comment
+ *ngIf="!highlightedThread || comment.id !== highlightedThread.id"
+ [comment]="comment"
+ [video]="video"
+ [inReplyToCommentId]="inReplyToCommentId"
+ [commentTree]="threadComments[comment.id]"
+ (wantedToReply)="onWantedToReply($event)"
+ (wantedToDelete)="onWantedToDelete($event)"
+ (threadCreated)="onThreadCreated($event)"
+ (resetReply)="onResetReply()"
+ ></my-video-comment>
- <span *ngIf="!threadLoading[comment.id]" class="glyphicon glyphicon-menu-down"></span>
- <my-loader class="comment-thread-loading" [loading]="threadLoading[comment.id]"></my-loader>
+ <div *ngIf="comment.totalReplies !== 0 && !threadComments[comment.id]" (click)="viewReplies(comment.id)" class="view-replies">
+ <ng-container i18n>View all {{ comment.totalReplies }} replies</ng-container>
+
+ <span *ngIf="!threadLoading[comment.id]" class="glyphicon glyphicon-menu-down"></span>
+ <my-loader class="comment-thread-loading" [loading]="threadLoading[comment.id]"></my-loader>
+ </div>
</div>
</div>
+ </ng-template>
+
+ <div *ngIf="video.commentsEnabled === false" i18n>
+ Comments are disabled.
</div>
</div>