import { Component, OnInit } from '@angular/core'; import {StatusService} from '../../services/status.service'; import {AppStateService} from '../../services/app-state.service'; import {Observable} from 'rxjs'; import {DnsStatusViewModel} from '../../view-models/dns/by-zone/dns-status.view-model'; import {DnsZoneStatusViewModel} from '../../view-models/dns/by-zone/dns-zone-status.view-model'; import {DnsZoneServerStatusViewModel} from '../../view-models/dns/by-zone/dns-zone-server-status.view-model'; import {DnsViewStatusViewModel} from '../../view-models/dns/by-zone/dns-view-status.view-model'; import {UiDnsViewTypeViewModel} from '../../view-models/ui/ui-dns-view-type.view-model'; import {UiDnsViewTypeEnumViewModel} from '../../view-models/ui/ui-dns-view-type-enum.view-model'; import {DnsStatusPerServerViewModel} from '../../view-models/dns/by-server/dns-status-per-server.view-model'; import {DnsViewStatusPerServerViewModel} from '../../view-models/dns/by-server/dns-view-status-per-server.view-model'; import {DnsServerPerServerViewModel} from '../../view-models/dns/by-server/dns-server-per-server.view-model'; import {DnsServerZonePerServerViewModel} from '../../view-models/dns/by-server/dns-server-zone-per-server.view-model'; @Component({ selector: 'app-dns-status', templateUrl: './dns-status.component.html', styleUrls: [ './dns-status.component.css' ] }) export class DnsStatusComponent implements OnInit { promise = null; dnsStatus$: Observable = null; dnsStatusPerServer$: Observable = null; viewTypes: UiDnsViewTypeViewModel[] = [ { name: 'Zone', value: UiDnsViewTypeEnumViewModel.ByZone }, { name: 'Server', value: UiDnsViewTypeEnumViewModel.ByServer } ]; viewType: UiDnsViewTypeEnumViewModel = this.viewTypes[0].value; constructor(private appStateService: AppStateService, private statusService: StatusService) { this.dnsStatus$ = appStateService.onDnsStatusUpdated(); this.dnsStatusPerServer$ = appStateService.onDnsStatusPerServerUpdated(); this.appStateService.setUiStateTitle('DNS Status'); this.appStateService.setUiStateToolbarTitle('DNS Status'); } ngOnInit() { this.getStatus(); } getStatus(): void { this.promise = this.statusService.getDnsStatus(); } onclick(): void { this.getStatus(); } trackViewByName(index: number, view: DnsViewStatusViewModel): string { return view.name; } trackZoneByZone(index: number, zone: DnsZoneStatusViewModel): string { return zone.zone; } trackZoneServerByServer(index: number, server: DnsZoneServerStatusViewModel): string { return server.server; } trackViewPerServerByName(index: number, view: DnsViewStatusPerServerViewModel): string { return view.name; } trackServerByIp(index: number, server: DnsServerPerServerViewModel): string { return server.ip; } trackZonePerServerByZone(index: number, zone: DnsServerZonePerServerViewModel): string { return zone.zone; } }