diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2017-01-23 22:16:48 +0100 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2017-01-23 22:18:53 +0100 |
commit | 11ac88de40215783835cf6e6259ff0f6cee258dd (patch) | |
tree | 9bdb69c0a4e3621b9b185d30a8a63f1ac6e8fbfa /client/src/app/admin/video-abuses | |
parent | 4f8c0eb0e9356ee2782ea6eb12a92e4dc5f66127 (diff) | |
download | PeerTube-11ac88de40215783835cf6e6259ff0f6cee258dd.tar.gz PeerTube-11ac88de40215783835cf6e6259ff0f6cee258dd.tar.zst PeerTube-11ac88de40215783835cf6e6259ff0f6cee258dd.zip |
Client: add basic support to report video abuses
Diffstat (limited to 'client/src/app/admin/video-abuses')
7 files changed, 105 insertions, 0 deletions
diff --git a/client/src/app/admin/video-abuses/index.ts b/client/src/app/admin/video-abuses/index.ts new file mode 100644 index 000000000..7f5e65f91 --- /dev/null +++ b/client/src/app/admin/video-abuses/index.ts | |||
@@ -0,0 +1,3 @@ | |||
1 | export * from './video-abuse-list'; | ||
2 | export * from './video-abuses.component'; | ||
3 | export * from './video-abuses.routes'; | ||
diff --git a/client/src/app/admin/video-abuses/video-abuse-list/index.ts b/client/src/app/admin/video-abuses/video-abuse-list/index.ts new file mode 100644 index 000000000..3f2ed1714 --- /dev/null +++ b/client/src/app/admin/video-abuses/video-abuse-list/index.ts | |||
@@ -0,0 +1 @@ | |||
export * from './video-abuse-list.component'; | |||
diff --git a/client/src/app/admin/video-abuses/video-abuse-list/video-abuse-list.component.html b/client/src/app/admin/video-abuses/video-abuse-list/video-abuse-list.component.html new file mode 100644 index 000000000..46043577c --- /dev/null +++ b/client/src/app/admin/video-abuses/video-abuse-list/video-abuse-list.component.html | |||
@@ -0,0 +1,27 @@ | |||
1 | <h3>Video abuses list</h3> | ||
2 | |||
3 | <table class="table table-hover"> | ||
4 | <thead> | ||
5 | <tr> | ||
6 | <th class="cell-id">ID</th> | ||
7 | <th class="cell-reason">Reason</th> | ||
8 | <th>Reporter pod host</th> | ||
9 | <th>Reporter username</th> | ||
10 | <th>Video</th> | ||
11 | <th>Created at</th> | ||
12 | </tr> | ||
13 | </thead> | ||
14 | |||
15 | <tbody> | ||
16 | <tr *ngFor="let videoAbuse of videoAbuses"> | ||
17 | <td>{{ videoAbuse.id }}</td> | ||
18 | <td>{{ videoAbuse.reason }}</td> | ||
19 | <td>{{ videoAbuse.reporterPodHost }}</td> | ||
20 | <td>{{ videoAbuse.reporterUsername }}</td> | ||
21 | <td> | ||
22 | <a [routerLink]="buildVideoLink(videoAbuse)" title="Go to video">{{ videoAbuse.videoId }}</a> | ||
23 | </td> | ||
24 | <td>{{ videoAbuse.createdAt | date: 'medium' }}</td> | ||
25 | </tr> | ||
26 | </tbody> | ||
27 | </table> | ||
diff --git a/client/src/app/admin/video-abuses/video-abuse-list/video-abuse-list.component.scss b/client/src/app/admin/video-abuses/video-abuse-list/video-abuse-list.component.scss new file mode 100644 index 000000000..a094f74b8 --- /dev/null +++ b/client/src/app/admin/video-abuses/video-abuse-list/video-abuse-list.component.scss | |||
@@ -0,0 +1,7 @@ | |||
1 | .cell-id { | ||
2 | width: 40px; | ||
3 | } | ||
4 | |||
5 | .cell-reason { | ||
6 | width: 200px; | ||
7 | } | ||
diff --git a/client/src/app/admin/video-abuses/video-abuse-list/video-abuse-list.component.ts b/client/src/app/admin/video-abuses/video-abuse-list/video-abuse-list.component.ts new file mode 100644 index 000000000..de58bba3d --- /dev/null +++ b/client/src/app/admin/video-abuses/video-abuse-list/video-abuse-list.component.ts | |||
@@ -0,0 +1,31 @@ | |||
1 | import { setInterval } from 'timers' | ||
2 | import { Component, OnInit } from '@angular/core'; | ||
3 | |||
4 | import { VideoAbuseService, VideoAbuse} from '../../../shared'; | ||
5 | |||
6 | @Component({ | ||
7 | selector: 'my-video-abuse-list', | ||
8 | templateUrl: './video-abuse-list.component.html', | ||
9 | styleUrls: [ './video-abuse-list.component.scss' ] | ||
10 | }) | ||
11 | export class VideoAbuseListComponent implements OnInit { | ||
12 | videoAbuses: VideoAbuse[]; | ||
13 | |||
14 | constructor(private videoAbuseService: VideoAbuseService) { } | ||
15 | |||
16 | ngOnInit() { | ||
17 | this.getVideoAbuses(); | ||
18 | } | ||
19 | |||
20 | buildVideoLink(videoAbuse: VideoAbuse) { | ||
21 | return `/videos/${videoAbuse.videoId}`; | ||
22 | } | ||
23 | |||
24 | private getVideoAbuses() { | ||
25 | this.videoAbuseService.getVideoAbuses().subscribe( | ||
26 | res => this.videoAbuses = res.videoAbuses, | ||
27 | |||
28 | err => alert(err.text) | ||
29 | ); | ||
30 | } | ||
31 | } | ||
diff --git a/client/src/app/admin/video-abuses/video-abuses.component.ts b/client/src/app/admin/video-abuses/video-abuses.component.ts new file mode 100644 index 000000000..001f27e87 --- /dev/null +++ b/client/src/app/admin/video-abuses/video-abuses.component.ts | |||
@@ -0,0 +1,8 @@ | |||
1 | import { Component } from '@angular/core'; | ||
2 | |||
3 | @Component({ | ||
4 | template: '<router-outlet></router-outlet>' | ||
5 | }) | ||
6 | |||
7 | export class VideoAbusesComponent { | ||
8 | } | ||
diff --git a/client/src/app/admin/video-abuses/video-abuses.routes.ts b/client/src/app/admin/video-abuses/video-abuses.routes.ts new file mode 100644 index 000000000..26a761887 --- /dev/null +++ b/client/src/app/admin/video-abuses/video-abuses.routes.ts | |||
@@ -0,0 +1,28 @@ | |||
1 | import { Routes } from '@angular/router'; | ||
2 | |||
3 | import { VideoAbusesComponent } from './video-abuses.component'; | ||
4 | import { VideoAbuseListComponent } from './video-abuse-list'; | ||
5 | |||
6 | export const VideoAbusesRoutes: Routes = [ | ||
7 | { | ||
8 | path: 'video-abuses', | ||
9 | component: VideoAbusesComponent | ||
10 | , | ||
11 | children: [ | ||
12 | { | ||
13 | path: '', | ||
14 | redirectTo: 'list', | ||
15 | pathMatch: 'full' | ||
16 | }, | ||
17 | { | ||
18 | path: 'list', | ||
19 | component: VideoAbuseListComponent, | ||
20 | data: { | ||
21 | meta: { | ||
22 | titleSuffix: ' - Video abuses list' | ||
23 | } | ||
24 | } | ||
25 | } | ||
26 | ] | ||
27 | } | ||
28 | ]; | ||