You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

dns-status.component.ts 3.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { Component, OnInit } from '@angular/core';
  2. import {StatusService} from '../../services/status.service';
  3. import {AppStateService} from '../../services/app-state.service';
  4. import {Observable} from 'rxjs';
  5. import {DnsStatusViewModel} from '../../view-models/dns/by-zone/dns-status.view-model';
  6. import {DnsZoneStatusViewModel} from '../../view-models/dns/by-zone/dns-zone-status.view-model';
  7. import {DnsZoneServerStatusViewModel} from '../../view-models/dns/by-zone/dns-zone-server-status.view-model';
  8. import {DnsViewStatusViewModel} from '../../view-models/dns/by-zone/dns-view-status.view-model';
  9. import {UiDnsViewTypeViewModel} from '../../view-models/ui/ui-dns-view-type.view-model';
  10. import {UiDnsViewTypeEnumViewModel} from '../../view-models/ui/ui-dns-view-type-enum.view-model';
  11. import {DnsStatusPerServerViewModel} from '../../view-models/dns/by-server/dns-status-per-server.view-model';
  12. import {DnsViewStatusPerServerViewModel} from '../../view-models/dns/by-server/dns-view-status-per-server.view-model';
  13. import {DnsServerPerServerViewModel} from '../../view-models/dns/by-server/dns-server-per-server.view-model';
  14. import {DnsServerZonePerServerViewModel} from '../../view-models/dns/by-server/dns-server-zone-per-server.view-model';
  15. @Component({
  16. selector: 'app-dns-status',
  17. templateUrl: './dns-status.component.html',
  18. styleUrls: [ './dns-status.component.css' ]
  19. })
  20. export class DnsStatusComponent implements OnInit {
  21. promise = null;
  22. dnsStatus$: Observable<DnsStatusViewModel> = null;
  23. dnsStatusPerServer$: Observable<DnsStatusPerServerViewModel> = null;
  24. viewTypes: UiDnsViewTypeViewModel[] = [
  25. {
  26. name: 'Zone',
  27. value: UiDnsViewTypeEnumViewModel.ByZone
  28. },
  29. {
  30. name: 'Server',
  31. value: UiDnsViewTypeEnumViewModel.ByServer
  32. }
  33. ];
  34. viewType: UiDnsViewTypeEnumViewModel = this.viewTypes[0].value;
  35. constructor(private appStateService: AppStateService, private statusService: StatusService) {
  36. this.dnsStatus$ = appStateService.onDnsStatusUpdated();
  37. this.dnsStatusPerServer$ = appStateService.onDnsStatusPerServerUpdated();
  38. this.appStateService.setUiStateTitle('DNS Status');
  39. this.appStateService.setUiStateToolbarTitle('DNS Status');
  40. }
  41. ngOnInit() {
  42. this.getStatus();
  43. }
  44. getStatus(): void {
  45. this.promise = this.statusService.getDnsStatus();
  46. }
  47. onclick(): void {
  48. this.getStatus();
  49. }
  50. trackViewByName(index: number, view: DnsViewStatusViewModel): string {
  51. return view.name;
  52. }
  53. trackZoneByZone(index: number, zone: DnsZoneStatusViewModel): string {
  54. return zone.zone;
  55. }
  56. trackZoneServerByServer(index: number, server: DnsZoneServerStatusViewModel): string {
  57. return server.server;
  58. }
  59. trackViewPerServerByName(index: number, view: DnsViewStatusPerServerViewModel): string {
  60. return view.name;
  61. }
  62. trackServerByIp(index: number, server: DnsServerPerServerViewModel): string {
  63. return server.ip;
  64. }
  65. trackZonePerServerByZone(index: number, zone: DnsServerZonePerServerViewModel): string {
  66. return zone.zone;
  67. }
  68. }