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.

vpn-status.component.ts 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 {VpnStatusViewModel} from '../../view-models/vpn/vpn-status.view-model';
  6. import {SiteStatusViewModel} from '../../view-models/vpn/site-status.view-model';
  7. import {HostStatusViewModel} from '../../view-models/vpn/host-status.view-model';
  8. @Component({
  9. selector: 'app-vpn-status',
  10. templateUrl: './vpn-status.component.html',
  11. styleUrls: [ './vpn-status.component.css' ]
  12. })
  13. export class VpnStatusComponent implements OnInit {
  14. promise = null;
  15. vpnStatus$: Observable<VpnStatusViewModel> = null;
  16. constructor(private appStateService: AppStateService, private statusService: StatusService) {
  17. this.vpnStatus$ = appStateService.onVpnStatusUpdated();
  18. this.appStateService.setUiStateTitle('VPN Status');
  19. this.appStateService.setUiStateToolbarTitle('VPN Status');
  20. }
  21. ngOnInit() {
  22. this.getStatus();
  23. }
  24. getStatus(): void {
  25. this.promise = this.statusService.getVpnStatus();
  26. }
  27. onclick(): void {
  28. this.getStatus();
  29. }
  30. trackSiteByName(index: number, site: SiteStatusViewModel): string {
  31. return site.name;
  32. }
  33. trackHostStatusByIp(index: number, hostStatus: HostStatusViewModel): string {
  34. return hostStatus.ip;
  35. }
  36. }