diff options
Diffstat (limited to 'client/src/app/videos/video-watch')
-rw-r--r-- | client/src/app/videos/video-watch/video-watch.component.html | 12 | ||||
-rw-r--r-- | client/src/app/videos/video-watch/video-watch.component.ts | 47 |
2 files changed, 59 insertions, 0 deletions
diff --git a/client/src/app/videos/video-watch/video-watch.component.html b/client/src/app/videos/video-watch/video-watch.component.html index 19e9bd9ed..ed26b513e 100644 --- a/client/src/app/videos/video-watch/video-watch.component.html +++ b/client/src/app/videos/video-watch/video-watch.component.html | |||
@@ -96,6 +96,18 @@ | |||
96 | <span class="glyphicon glyphicon-alert"></span> Report | 96 | <span class="glyphicon glyphicon-alert"></span> Report |
97 | </a> | 97 | </a> |
98 | </li> | 98 | </li> |
99 | |||
100 | <li *ngIf="isVideoRemovable()" role="menuitem"> | ||
101 | <a class="dropdown-item" title="Delete this video" href="#" (click)="removeVideo($event)"> | ||
102 | <span class="glyphicon glyphicon-remove"></span> Delete | ||
103 | </a> | ||
104 | </li> | ||
105 | |||
106 | <li *ngIf="isVideoBlacklistable()" role="menuitem"> | ||
107 | <a class="dropdown-item" title="Blacklist this video" href="#" (click)="blacklistVideo($event)"> | ||
108 | <span class="glyphicon glyphicon-eye-close"></span> Blacklist | ||
109 | </a> | ||
110 | </li> | ||
99 | </ul> | 111 | </ul> |
100 | </div> | 112 | </div> |
101 | </div> | 113 | </div> |
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 e04626a67..f582df45c 100644 --- a/client/src/app/videos/video-watch/video-watch.component.ts +++ b/client/src/app/videos/video-watch/video-watch.component.ts | |||
@@ -169,6 +169,45 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
169 | ); | 169 | ); |
170 | } | 170 | } |
171 | 171 | ||
172 | removeVideo(event: Event) { | ||
173 | event.preventDefault(); | ||
174 | this.confirmService.confirm('Do you really want to delete this video?', 'Delete').subscribe( | ||
175 | res => { | ||
176 | if (res === false) return; | ||
177 | |||
178 | this.videoService.removeVideo(this.video.id) | ||
179 | .subscribe( | ||
180 | status => { | ||
181 | this.notificationsService.success('Success', `Video ${this.video.name} deleted.`) | ||
182 | // Go back to the video-list. | ||
183 | this.router.navigate(['/videos/list']) | ||
184 | }, | ||
185 | |||
186 | error => this.notificationsService.error('Error', error.text) | ||
187 | ); | ||
188 | } | ||
189 | ); | ||
190 | } | ||
191 | |||
192 | blacklistVideo(event: Event) { | ||
193 | event.preventDefault() | ||
194 | this.confirmService.confirm('Do you really want to blacklist this video ?', 'Blacklist').subscribe( | ||
195 | res => { | ||
196 | if (res === false) return; | ||
197 | |||
198 | this.videoService.blacklistVideo(this.video.id) | ||
199 | .subscribe( | ||
200 | status => { | ||
201 | this.notificationsService.success('Success', `Video ${this.video.name} had been blacklisted.`) | ||
202 | this.router.navigate(['/videos/list']) | ||
203 | }, | ||
204 | |||
205 | error => this.notificationsService.error('Error', error.text) | ||
206 | ) | ||
207 | } | ||
208 | ) | ||
209 | } | ||
210 | |||
172 | showReportModal(event: Event) { | 211 | showReportModal(event: Event) { |
173 | event.preventDefault(); | 212 | event.preventDefault(); |
174 | this.videoReportModal.show(); | 213 | this.videoReportModal.show(); |
@@ -192,6 +231,14 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
192 | this.authService.getUser().username === this.video.author; | 231 | this.authService.getUser().username === this.video.author; |
193 | } | 232 | } |
194 | 233 | ||
234 | isVideoRemovable() { | ||
235 | return this.video.isRemovableBy(this.authService.getUser()); | ||
236 | } | ||
237 | |||
238 | isVideoBlacklistable() { | ||
239 | return this.video.isBlackistableBy(this.authService.getUser()); | ||
240 | } | ||
241 | |||
195 | private checkUserRating() { | 242 | private checkUserRating() { |
196 | // Unlogged users do not have ratings | 243 | // Unlogged users do not have ratings |
197 | if (this.isUserLoggedIn() === false) return; | 244 | if (this.isUserLoggedIn() === false) return; |