diff options
Diffstat (limited to 'client/angular/videos')
4 files changed, 45 insertions, 15 deletions
diff --git a/client/angular/videos/components/add/videos-add.component.ts b/client/angular/videos/components/add/videos-add.component.ts index 97e3bb3b5..8ff6cfec8 100644 --- a/client/angular/videos/components/add/videos-add.component.ts +++ b/client/angular/videos/components/add/videos-add.component.ts | |||
@@ -1,9 +1,10 @@ | |||
1 | import {Component, ElementRef, Inject, OnInit} from 'angular2/core'; | 1 | import { Component, ElementRef, Inject, OnInit } from 'angular2/core'; |
2 | import {Router} from 'angular2/router'; | 2 | import { Router } from 'angular2/router'; |
3 | import {NgForm} from 'angular2/common'; | 3 | import { NgForm } from 'angular2/common'; |
4 | 4 | ||
5 | import {Video} from '../../models/video'; | 5 | import { Video } from '../../models/video'; |
6 | 6 | ||
7 | // TODO: import it with systemjs | ||
7 | declare var jQuery:any; | 8 | declare var jQuery:any; |
8 | 9 | ||
9 | @Component({ | 10 | @Component({ |
@@ -22,9 +23,10 @@ export class VideosAddComponent implements OnInit { | |||
22 | 23 | ||
23 | ngOnInit() { | 24 | ngOnInit() { |
24 | jQuery(this._elementRef.nativeElement).find('#input_video').fileupload({ | 25 | jQuery(this._elementRef.nativeElement).find('#input_video').fileupload({ |
26 | url: '/api/v1/videos', | ||
27 | dataType: 'json', | ||
25 | singleFileUploads: true, | 28 | singleFileUploads: true, |
26 | multipart: true, | 29 | multipart: true, |
27 | url: '/api/v1/videos', | ||
28 | autoupload: false, | 30 | autoupload: false, |
29 | 31 | ||
30 | add: (e, data) => { | 32 | add: (e, data) => { |
@@ -38,7 +40,8 @@ export class VideosAddComponent implements OnInit { | |||
38 | }, | 40 | }, |
39 | 41 | ||
40 | done: (e, data) => { | 42 | done: (e, data) => { |
41 | console.log('finished'); | 43 | console.log('Video uploaded.'); |
44 | |||
42 | // Print all the videos once it's finished | 45 | // Print all the videos once it's finished |
43 | this._router.navigate(['VideosList']); | 46 | this._router.navigate(['VideosList']); |
44 | } | 47 | } |
diff --git a/client/angular/videos/components/list/videos-list.component.ts b/client/angular/videos/components/list/videos-list.component.ts index e5af87448..eb23ed1ff 100644 --- a/client/angular/videos/components/list/videos-list.component.ts +++ b/client/angular/videos/components/list/videos-list.component.ts | |||
@@ -1,8 +1,8 @@ | |||
1 | import {Component, OnInit} from 'angular2/core'; | 1 | import { Component, OnInit } from 'angular2/core'; |
2 | import {ROUTER_DIRECTIVES} from 'angular2/router'; | 2 | import { ROUTER_DIRECTIVES, RouteParams } from 'angular2/router'; |
3 | 3 | ||
4 | import {VideosService} from '../../services/videos.service'; | 4 | import { VideosService } from '../../services/videos.service'; |
5 | import {Video} from '../../models/video'; | 5 | import { Video } from '../../models/video'; |
6 | 6 | ||
7 | @Component({ | 7 | @Component({ |
8 | selector: 'my-videos-list', | 8 | selector: 'my-videos-list', |
@@ -14,16 +14,29 @@ import {Video} from '../../models/video'; | |||
14 | export class VideosListComponent implements OnInit { | 14 | export class VideosListComponent implements OnInit { |
15 | videos: Video[]; | 15 | videos: Video[]; |
16 | 16 | ||
17 | private search: string; | ||
18 | |||
17 | constructor( | 19 | constructor( |
18 | private _videosService: VideosService | 20 | private _videosService: VideosService, |
19 | ) { } | 21 | routeParams: RouteParams |
22 | ) { | ||
23 | this.search = routeParams.get('search'); | ||
24 | } | ||
20 | 25 | ||
21 | ngOnInit() { | 26 | ngOnInit() { |
22 | this.getVideos(); | 27 | this.getVideos(); |
23 | } | 28 | } |
24 | 29 | ||
25 | getVideos() { | 30 | getVideos() { |
26 | this._videosService.getVideos().subscribe( | 31 | let observable = null; |
32 | |||
33 | if (this.search !== null) { | ||
34 | observable = this._videosService.searchVideos(this.search); | ||
35 | } else { | ||
36 | observable = this._videosService.getVideos() | ||
37 | } | ||
38 | |||
39 | observable.subscribe( | ||
27 | videos => this.videos = videos, | 40 | videos => this.videos = videos, |
28 | error => alert(error) | 41 | error => alert(error) |
29 | ); | 42 | ); |
diff --git a/client/angular/videos/components/watch/videos-watch.component.ts b/client/angular/videos/components/watch/videos-watch.component.ts index e3a973820..da7f942db 100644 --- a/client/angular/videos/components/watch/videos-watch.component.ts +++ b/client/angular/videos/components/watch/videos-watch.component.ts | |||
@@ -1,8 +1,9 @@ | |||
1 | /// <reference path='../../../../typings/browser/ambient/webtorrent/webtorrent.d.ts' /> | 1 | /// <reference path='../../../../typings/browser/ambient/webtorrent/webtorrent.d.ts' /> |
2 | 2 | ||
3 | import { Component, OnInit, ElementRef } from 'angular2/core'; | 3 | import { Component, OnInit, ElementRef } from 'angular2/core'; |
4 | import { RouteParams } from 'angular2/router'; | 4 | import { RouteParams, CanDeactivate, ComponentInstruction } from 'angular2/router'; |
5 | 5 | ||
6 | // TODO import it with systemjs | ||
6 | declare var WebTorrent: any; | 7 | declare var WebTorrent: any; |
7 | 8 | ||
8 | import { Video } from '../../models/video'; | 9 | import { Video } from '../../models/video'; |
@@ -14,7 +15,7 @@ import { VideosService } from '../../services/videos.service'; | |||
14 | styleUrls: [ 'app/angular/videos/components/watch/videos-watch.component.css' ] | 15 | styleUrls: [ 'app/angular/videos/components/watch/videos-watch.component.css' ] |
15 | }) | 16 | }) |
16 | 17 | ||
17 | export class VideosWatchComponent { | 18 | export class VideosWatchComponent implements OnInit, CanDeactivate { |
18 | video: Video; | 19 | video: Video; |
19 | 20 | ||
20 | private client: any; | 21 | private client: any; |
@@ -24,6 +25,7 @@ export class VideosWatchComponent { | |||
24 | private _routeParams: RouteParams, | 25 | private _routeParams: RouteParams, |
25 | private _elementRef: ElementRef | 26 | private _elementRef: ElementRef |
26 | ) { | 27 | ) { |
28 | // TODO: use a service | ||
27 | this.client = new WebTorrent({ dht: false }); | 29 | this.client = new WebTorrent({ dht: false }); |
28 | } | 30 | } |
29 | 31 | ||
@@ -47,4 +49,10 @@ export class VideosWatchComponent { | |||
47 | }) | 49 | }) |
48 | }) | 50 | }) |
49 | } | 51 | } |
52 | |||
53 | routerCanDeactivate(next: ComponentInstruction, prev: ComponentInstruction) : any { | ||
54 | console.log('Removing video from webtorrent.'); | ||
55 | this.client.remove(this.video.magnetUri); | ||
56 | return true; | ||
57 | } | ||
50 | } | 58 | } |
diff --git a/client/angular/videos/services/videos.service.ts b/client/angular/videos/services/videos.service.ts index 784eec68d..17ae89c8b 100644 --- a/client/angular/videos/services/videos.service.ts +++ b/client/angular/videos/services/videos.service.ts | |||
@@ -30,6 +30,12 @@ export class VideosService { | |||
30 | } | 30 | } |
31 | } | 31 | } |
32 | 32 | ||
33 | searchVideos(search: string) { | ||
34 | return this.http.get(this._baseVideoUrl + 'search/' + search) | ||
35 | .map(res => <Video> res.json()) | ||
36 | .catch(this.handleError); | ||
37 | } | ||
38 | |||
33 | private handleError (error: Response) { | 39 | private handleError (error: Response) { |
34 | console.error(error); | 40 | console.error(error); |
35 | return Observable.throw(error.json().error || 'Server error'); | 41 | return Observable.throw(error.json().error || 'Server error'); |