aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/videos/video-watch
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/videos/video-watch')
-rw-r--r--client/src/app/videos/video-watch/video-watch.component.html12
-rw-r--r--client/src/app/videos/video-watch/video-watch.component.ts47
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;