diff options
Diffstat (limited to 'client/src/app/videos')
3 files changed, 18 insertions, 21 deletions
diff --git a/client/src/app/videos/video-list/video-list.component.ts b/client/src/app/videos/video-list/video-list.component.ts index 0c36e5b08..4ac539960 100644 --- a/client/src/app/videos/video-list/video-list.component.ts +++ b/client/src/app/videos/video-list/video-list.component.ts | |||
@@ -1,5 +1,6 @@ | |||
1 | import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core' | 1 | import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core' |
2 | import { ActivatedRoute, Router } from '@angular/router' | 2 | import { ActivatedRoute, Router } from '@angular/router' |
3 | import { Subscription } from 'rxjs/Subscription' | ||
3 | import { BehaviorSubject } from 'rxjs/BehaviorSubject' | 4 | import { BehaviorSubject } from 'rxjs/BehaviorSubject' |
4 | 5 | ||
5 | import { NotificationsService } from 'angular2-notifications' | 6 | import { NotificationsService } from 'angular2-notifications' |
@@ -30,8 +31,8 @@ export class VideoListComponent implements OnInit, OnDestroy { | |||
30 | videos: Video[] = [] | 31 | videos: Video[] = [] |
31 | 32 | ||
32 | private search: Search | 33 | private search: Search |
33 | private subActivatedRoute: any | 34 | private subActivatedRoute: Subscription |
34 | private subSearch: any | 35 | private subSearch: Subscription |
35 | 36 | ||
36 | constructor ( | 37 | constructor ( |
37 | private notificationsService: NotificationsService, | 38 | private notificationsService: NotificationsService, |
@@ -98,7 +99,7 @@ export class VideoListComponent implements OnInit, OnDestroy { | |||
98 | return !this.loading.getValue() && this.videos.length === 0 | 99 | return !this.loading.getValue() && this.videos.length === 0 |
99 | } | 100 | } |
100 | 101 | ||
101 | onPageChanged (event: any) { | 102 | onPageChanged (event: { page: number }) { |
102 | // Be sure the current page is set | 103 | // Be sure the current page is set |
103 | this.pagination.currentPage = event.page | 104 | this.pagination.currentPage = event.page |
104 | 105 | ||
@@ -113,21 +114,21 @@ export class VideoListComponent implements OnInit, OnDestroy { | |||
113 | 114 | ||
114 | private buildRouteParams () { | 115 | private buildRouteParams () { |
115 | // There is always a sort and a current page | 116 | // There is always a sort and a current page |
116 | const params: any = { | 117 | const params = { |
117 | sort: this.sort, | 118 | sort: this.sort, |
118 | page: this.pagination.currentPage | 119 | page: this.pagination.currentPage |
119 | } | 120 | } |
120 | 121 | ||
121 | // Maybe there is a search | 122 | // Maybe there is a search |
122 | if (this.search.value) { | 123 | if (this.search.value) { |
123 | params.field = this.search.field | 124 | params['field'] = this.search.field |
124 | params.search = this.search.value | 125 | params['search'] = this.search.value |
125 | } | 126 | } |
126 | 127 | ||
127 | return params | 128 | return params |
128 | } | 129 | } |
129 | 130 | ||
130 | private loadRouteParams (routeParams) { | 131 | private loadRouteParams (routeParams: { [ key: string ]: any }) { |
131 | if (routeParams['search'] !== undefined) { | 132 | if (routeParams['search'] !== undefined) { |
132 | this.search = { | 133 | this.search = { |
133 | value: routeParams['search'], | 134 | value: routeParams['search'], |
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 12ddf3eef..6bd6c1f7e 100644 --- a/client/src/app/videos/video-watch/video-watch.component.ts +++ b/client/src/app/videos/video-watch/video-watch.component.ts | |||
@@ -32,7 +32,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
32 | loading = false | 32 | loading = false |
33 | numPeers: number | 33 | numPeers: number |
34 | player: videojs.Player | 34 | player: videojs.Player |
35 | playerElement: Element | 35 | playerElement: HTMLMediaElement |
36 | uploadSpeed: number | 36 | uploadSpeed: number |
37 | userRating: UserVideoRateType = null | 37 | userRating: UserVideoRateType = null |
38 | video: Video = null | 38 | video: Video = null |
@@ -41,7 +41,6 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
41 | private errorTimer: number | 41 | private errorTimer: number |
42 | private paramsSub: Subscription | 42 | private paramsSub: Subscription |
43 | private errorsSub: Subscription | 43 | private errorsSub: Subscription |
44 | private warningsSub: Subscription | ||
45 | private torrentInfosInterval: number | 44 | private torrentInfosInterval: number |
46 | 45 | ||
47 | constructor ( | 46 | constructor ( |
@@ -82,8 +81,10 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
82 | self.player = this | 81 | self.player = this |
83 | }) | 82 | }) |
84 | 83 | ||
85 | this.errorsSub = this.webTorrentService.errors.subscribe(err => this.notificationsService.error('Error', err.message)) | 84 | this.errorsSub = this.webTorrentService.errors.subscribe(err => { |
86 | this.warningsSub = this.webTorrentService.errors.subscribe(err => this.notificationsService.alert('Warning', err.message)) | 85 | const message = typeof err === 'string' ? err : err.message |
86 | this.notificationsService.error('Error', message) | ||
87 | }) | ||
87 | } | 88 | } |
88 | 89 | ||
89 | ngOnDestroy () { | 90 | ngOnDestroy () { |
@@ -102,7 +103,6 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
102 | // Unsubscribe subscriptions | 103 | // Unsubscribe subscriptions |
103 | this.paramsSub.unsubscribe() | 104 | this.paramsSub.unsubscribe() |
104 | this.errorsSub.unsubscribe() | 105 | this.errorsSub.unsubscribe() |
105 | this.warningsSub.unsubscribe() | ||
106 | } | 106 | } |
107 | 107 | ||
108 | loadVideo () { | 108 | loadVideo () { |
@@ -117,7 +117,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
117 | // So we create a timer to inform the user the load is abnormally long | 117 | // So we create a timer to inform the user the load is abnormally long |
118 | this.errorTimer = window.setTimeout(() => this.loadTooLong(), VideoWatchComponent.LOADTIME_TOO_LONG) | 118 | this.errorTimer = window.setTimeout(() => this.loadTooLong(), VideoWatchComponent.LOADTIME_TOO_LONG) |
119 | 119 | ||
120 | this.webTorrentService.add(this.video.magnetUri, (torrent) => { | 120 | this.webTorrentService.add(this.video.magnetUri, torrent => { |
121 | // Clear the error timer | 121 | // Clear the error timer |
122 | window.clearTimeout(this.errorTimer) | 122 | window.clearTimeout(this.errorTimer) |
123 | // Maybe the error was fired by the timer, so reset it | 123 | // Maybe the error was fired by the timer, so reset it |
diff --git a/client/src/app/videos/video-watch/webtorrent.service.ts b/client/src/app/videos/video-watch/webtorrent.service.ts index 211894bfd..8819e17d4 100644 --- a/client/src/app/videos/video-watch/webtorrent.service.ts +++ b/client/src/app/videos/video-watch/webtorrent.service.ts | |||
@@ -5,21 +5,17 @@ import * as WebTorrent from 'webtorrent' | |||
5 | 5 | ||
6 | @Injectable() | 6 | @Injectable() |
7 | export class WebTorrentService { | 7 | export class WebTorrentService { |
8 | errors = new Subject<Error>() | 8 | errors = new Subject<string | Error>() |
9 | warnings = new Subject<Error>() | ||
10 | 9 | ||
11 | // TODO: use WebTorrent @type | 10 | private client: WebTorrent.Instance |
12 | // private client: WebTorrent.Client | ||
13 | private client: any | ||
14 | 11 | ||
15 | constructor () { | 12 | constructor () { |
16 | this.client = new WebTorrent({ dht: false }) | 13 | this.client = new WebTorrent({ dht: false }) |
17 | 14 | ||
18 | this.client.on('error', (err) => this.errors.next(err)) | 15 | this.client.on('error', err => this.errors.next(err)) |
19 | this.client.on('warning', (err) => this.warnings.next(err)) | ||
20 | } | 16 | } |
21 | 17 | ||
22 | add (magnetUri: string, callback: Function) { | 18 | add (magnetUri: string, callback: (torrent: WebTorrent.Torrent) => any) { |
23 | return this.client.add(magnetUri, callback) | 19 | return this.client.add(magnetUri, callback) |
24 | } | 20 | } |
25 | 21 | ||