ui: adds agent logs page in server show

This commit is contained in:
Aaron Greenspan
2021-02-04 12:40:59 -07:00
committed by Aiden McClelland
parent 327c79350e
commit a9735fd777
9 changed files with 206 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
import { Component, ViewChild } from '@angular/core'
import { ActivatedRoute } from '@angular/router'
import { ApiService } from 'src/app/services/api/api.service'
import { IonContent } from '@ionic/angular'
import { pauseFor } from 'src/app/util/misc.util'
import { markAsLoadingDuringP } from 'src/app/services/loader.service'
import { BehaviorSubject } from 'rxjs'
@Component({
selector: 'server-logs',
templateUrl: './server-logs.page.html',
styleUrls: ['./server-logs.page.scss'],
})
export class ServerLogsPage {
@ViewChild(IonContent, { static: false }) private content: IonContent
$loading$ = new BehaviorSubject(true)
error = ''
logs: string
constructor (
private readonly apiService: ApiService,
) { }
async ngOnInit () {
markAsLoadingDuringP(this.$loading$, Promise.all([
this.getLogs(),
pauseFor(600),
]))
}
async getLogs () {
this.logs = ''
this.$loading$.next(true)
try {
this.logs = await this.apiService.getServerLogs()
this.error = ''
setTimeout(async () => await this.content.scrollToBottom(100), 200)
} catch (e) {
console.error(e)
this.error = e.message
} finally {
this.$loading$.next(false)
}
}
}