import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router'
+import { Subscription } from 'rxjs/Subscription'
import { BehaviorSubject } from 'rxjs/BehaviorSubject'
import { NotificationsService } from 'angular2-notifications'
import {
SortField,
Video,
- VideoService
+ VideoService,
+ VideoPagination
} from '../shared'
import { AuthService, AuthUser } from '../../core'
-import { RestPagination, Search, SearchField } from '../../shared'
-import { SearchService } from '../../shared'
+import { Search, SearchField, SearchService } from '../../shared'
@Component({
selector: 'my-videos-list',
})
export class VideoListComponent implements OnInit, OnDestroy {
loading: BehaviorSubject<boolean> = new BehaviorSubject(false)
- pagination: RestPagination = {
+ pagination: VideoPagination = {
currentPage: 1,
itemsPerPage: 25,
totalItems: null
videos: Video[] = []
private search: Search
- private subActivatedRoute: any
- private subSearch: any
+ private subActivatedRoute: Subscription
+ private subSearch: Subscription
constructor (
private notificationsService: NotificationsService,
return !this.loading.getValue() && this.videos.length === 0
}
- onPageChanged (event: any) {
+ onPageChanged (event: { page: number }) {
// Be sure the current page is set
this.pagination.currentPage = event.page
private buildRouteParams () {
// There is always a sort and a current page
- const params: any = {
+ const params = {
sort: this.sort,
page: this.pagination.currentPage
}
// Maybe there is a search
if (this.search.value) {
- params.field = this.search.field
- params.search = this.search.value
+ params['field'] = this.search.field
+ params['search'] = this.search.value
}
return params
}
- private loadRouteParams (routeParams) {
+ private loadRouteParams (routeParams: { [ key: string ]: any }) {
if (routeParams['search'] !== undefined) {
this.search = {
value: routeParams['search'],
private navigateToNewParams () {
const routeParams = this.buildRouteParams()
- this.router.navigate(['/videos/list', routeParams])
+ this.router.navigate([ '/videos/list', routeParams ])
}
}