Rename streaming playlists routes/directories
[oweals/peertube.git] / client / src / app / shared / users / user-notifications.component.html
1 <div *ngIf="componentPagination.totalItems === 0" class="no-notification" i18n>You don't have notifications.</div>
2
3 <div class="notifications" myInfiniteScroller [autoInit]="true" (nearOfBottom)="onNearOfBottom()">
4   <div *ngFor="let notification of notifications" class="notification" [ngClass]="{ unread: !notification.read }" (click)="markAsRead(notification)">
5
6     <ng-container [ngSwitch]="notification.type">
7       <ng-container i18n *ngSwitchCase="UserNotificationType.NEW_VIDEO_FROM_SUBSCRIPTION">
8         <img alt="" aria-labelledby="avatar" class="avatar" [src]="notification.video.channel.avatarUrl" />
9
10         <div class="message">
11           {{ notification.video.channel.displayName }} published a <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl">new video</a>
12         </div>
13       </ng-container>
14
15       <ng-container i18n *ngSwitchCase="UserNotificationType.UNBLACKLIST_ON_MY_VIDEO">
16         <my-global-icon iconName="undo"></my-global-icon>
17
18         <div class="message">
19           Your video <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl">{{ notification.video.name }}</a> has been unblacklisted
20         </div>
21       </ng-container>
22
23       <ng-container i18n *ngSwitchCase="UserNotificationType.BLACKLIST_ON_MY_VIDEO">
24         <my-global-icon iconName="no"></my-global-icon>
25
26         <div class="message">
27           Your video <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl">{{ notification.videoBlacklist.video.name }}</a> has been blacklisted
28         </div>
29       </ng-container>
30
31       <ng-container i18n *ngSwitchCase="UserNotificationType.NEW_VIDEO_ABUSE_FOR_MODERATORS">
32         <my-global-icon iconName="alert"></my-global-icon>
33
34         <div class="message">
35           <a (click)="markAsRead(notification)" [routerLink]="notification.videoAbuseUrl">A new video abuse</a> has been created on video <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl">{{ notification.videoAbuse.video.name }}</a>
36         </div>
37       </ng-container>
38
39       <ng-container i18n *ngSwitchCase="UserNotificationType.NEW_COMMENT_ON_MY_VIDEO">
40         <img alt="" aria-labelledby="avatar" class="avatar" [src]="notification.comment.account.avatarUrl" />
41
42         <div class="message">
43           <a (click)="markAsRead(notification)" [routerLink]="notification.accountUrl">{{ notification.comment.account.displayName }}</a> commented your video <a (click)="markAsRead(notification)" [routerLink]="notification.commentUrl">{{ notification.comment.video.name }}</a>
44         </div>
45       </ng-container>
46
47       <ng-container i18n *ngSwitchCase="UserNotificationType.MY_VIDEO_PUBLISHED">
48         <my-global-icon iconName="sparkle"></my-global-icon>
49
50         <div class="message">
51           Your video <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl">{{ notification.video.name }}</a> has been published
52         </div>
53       </ng-container>
54
55       <ng-container i18n *ngSwitchCase="UserNotificationType.MY_VIDEO_IMPORT_SUCCESS">
56         <my-global-icon iconName="cloud-download"></my-global-icon>
57
58         <div class="message">
59           <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl || notification.videoImportUrl">Your video import</a> {{ notification.videoImportIdentifier }} succeeded
60         </div>
61       </ng-container>
62
63       <ng-container i18n *ngSwitchCase="UserNotificationType.MY_VIDEO_IMPORT_ERROR">
64         <my-global-icon iconName="cloud-error"></my-global-icon>
65
66         <div class="message">
67           <a (click)="markAsRead(notification)" [routerLink]="notification.videoImportUrl">Your video import</a> {{ notification.videoImportIdentifier }} failed
68         </div>
69       </ng-container>
70
71       <ng-container i18n *ngSwitchCase="UserNotificationType.NEW_USER_REGISTRATION">
72         <my-global-icon iconName="user-add"></my-global-icon>
73
74         <div class="message">
75           User <a (click)="markAsRead(notification)" [routerLink]="notification.accountUrl">{{ notification.account.name }} registered</a> on your instance
76         </div>
77       </ng-container>
78
79       <ng-container i18n *ngSwitchCase="UserNotificationType.NEW_FOLLOW">
80         <img alt="" aria-labelledby="avatar" class="avatar" [src]="notification.actorFollow.follower.avatarUrl" />
81
82         <div class="message">
83           <a (click)="markAsRead(notification)" [routerLink]="notification.accountUrl">{{ notification.actorFollow.follower.displayName }}</a> is following
84
85           <ng-container *ngIf="notification.actorFollow.following.type === 'channel'">your channel {{ notification.actorFollow.following.displayName }}</ng-container>
86           <ng-container *ngIf="notification.actorFollow.following.type === 'account'">your account</ng-container>
87         </div>
88       </ng-container>
89
90       <ng-container i18n *ngSwitchCase="UserNotificationType.COMMENT_MENTION">
91         <img alt="" aria-labelledby="avatar" class="avatar" [src]="notification.comment.account.avatarUrl" />
92
93         <div class="message">
94           <a (click)="markAsRead(notification)" [routerLink]="notification.accountUrl">{{ notification.comment.account.displayName }}</a> mentioned you on <a (click)="markAsRead(notification)" [routerLink]="notification.commentUrl">video {{ notification.comment.video.name }}</a>
95         </div>
96       </ng-container>
97     </ng-container>
98
99     <div class="from-date">{{ notification.createdAt | myFromNow }}</div>
100   </div>
101 </div>