]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+admin/jobs/jobs-list/jobs-list.component.ts
remove unused imports
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / jobs / jobs-list / jobs-list.component.ts
index 88fe259fb4ca3e9cdba490aef5706d2d44f92c11..866ba1b234dd2aafa52cfbaca3f72d103911c172 100644 (file)
@@ -1,50 +1,69 @@
-import { Component } from '@angular/core'
+import { Component, OnInit } from '@angular/core'
+import { peertubeLocalStorage } from '@app/shared/misc/peertube-local-storage'
 import { NotificationsService } from 'angular2-notifications'
 import { SortMeta } from 'primeng/primeng'
 import { Job } from '../../../../../../shared/index'
+import { JobState } from '../../../../../../shared/models'
 import { RestPagination, RestTable } from '../../../shared'
 import { JobService } from '../shared'
-import { RestExtractor } from '../../../shared/rest/rest-extractor.service'
+import { I18n } from '@ngx-translate/i18n-polyfill'
 
 @Component({
   selector: 'my-jobs-list',
   templateUrl: './jobs-list.component.html',
-  styleUrls: [ ]
+  styleUrls: [ './jobs-list.component.scss' ]
 })
-export class JobsListComponent extends RestTable {
+export class JobsListComponent extends RestTable implements OnInit {
+  private static JOB_STATE_LOCAL_STORAGE_STATE = 'jobs-list-state'
+
+  jobState: JobState = 'waiting'
+  jobStates: JobState[] = [ 'active', 'completed', 'failed', 'waiting', 'delayed' ]
   jobs: Job[] = []
-  totalRecords = 0
+  totalRecords: number
   rowsPerPage = 10
-  sort: SortMeta = { field: 'createdAt', order: 1 }
+  sort: SortMeta = { field: 'createdAt', order: -1 }
   pagination: RestPagination = { count: this.rowsPerPage, start: 0 }
 
   constructor (
     private notificationsService: NotificationsService,
-    private restExtractor: RestExtractor,
-    private jobsService: JobService
+    private jobsService: JobService,
+    private i18n: I18n
   ) {
     super()
   }
 
+  ngOnInit () {
+    this.loadJobState()
+    this.loadSort()
+  }
+
+  onJobStateChanged () {
+    this.pagination.start = 0
+
+    this.loadData()
+    this.saveJobState()
+  }
+
   protected loadData () {
     this.jobsService
-      .getJobs(this.pagination, this.sort)
-      .map(res => this.restExtractor.applyToResultListData(res, this.formatJob.bind(this)))
+      .getJobs(this.jobState, this.pagination, this.sort)
       .subscribe(
         resultList => {
           this.jobs = resultList.data
           this.totalRecords = resultList.total
         },
 
-        err => this.notificationsService.error('Error', err.message)
+        err => this.notificationsService.error(this.i18n('Error'), err.message)
       )
   }
 
-  private formatJob (job: Job) {
-    const handlerInputData = JSON.stringify(job.handlerInputData)
+  private loadJobState () {
+    const result = peertubeLocalStorage.getItem(JobsListComponent.JOB_STATE_LOCAL_STORAGE_STATE)
+
+    if (result) this.jobState = result as JobState
+  }
 
-    return Object.assign(job, {
-      handlerInputData
-    })
+  private saveJobState () {
+    peertubeLocalStorage.setItem(JobsListComponent.JOB_STATE_LOCAL_STORAGE_STATE, this.jobState)
   }
 }