Skip to content
Snippets Groups Projects
syscheck-data.service.ts 1.65 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { CheckConfigData } from './backend.service';
    
    Martin Mechtel's avatar
    Martin Mechtel committed
    import { BehaviorSubject } from 'rxjs';
    import { Injectable } from '@angular/core';
    
    import { e } from '@angular/core/src/render3';
    
    Martin Mechtel's avatar
    Martin Mechtel committed
    
    @Injectable({
      providedIn: 'root'
    })
    export class SyscheckDataService {
    
    Martin Mechtel's avatar
    Martin Mechtel committed
      public pageTitle$ = new BehaviorSubject<string>('IQB-Testcenter - System-Check');
    
    
      public checkConfig$ = new BehaviorSubject<CheckConfigData>(null);
    
    Martin Mechtel's avatar
    Martin Mechtel committed
      public environmentData$ = new BehaviorSubject<ReportEntry[]>([]);
      public networkData$ = new BehaviorSubject<ReportEntry[]>([]);
      public questionnaireData$ = new BehaviorSubject<ReportEntry[]>([]);
    
    Martin Mechtel's avatar
    Martin Mechtel committed
    
      public unitcheckAvailable$ = new BehaviorSubject<boolean>(false);
      public questionnaireAvailable$ = new BehaviorSubject<boolean>(false);
    
      public unitcheckEnabled$ = new BehaviorSubject<boolean>(false);
      public questionnaireEnabled$ = new BehaviorSubject<boolean>(false);
      public reportEnabled$ = new BehaviorSubject<boolean>(false);
    
      public reportWithEmail$ = new BehaviorSubject<boolean>(false);
    
      constructor() {
        this.checkConfig$.subscribe(cDef => {
    
    Martin Mechtel's avatar
    Martin Mechtel committed
          this.networkData$.next([]);
    
    Martin Mechtel's avatar
    Martin Mechtel committed
          this.questionnaireData$.next([]);
    
          if (cDef === null) {
            this.reportWithEmail$.next(false);
            this.unitcheckAvailable$.next(false);
            this.questionnaireAvailable$.next(false);
          } else {
            this.reportWithEmail$.next(cDef.email);
            this.unitcheckAvailable$.next(cDef.unit.length > 0);
            this.questionnaireAvailable$.next(cDef.formdef.length > 0);
          }
        });
      }
    
    Martin Mechtel's avatar
    Martin Mechtel committed
    
    
    Martin Mechtel's avatar
    Martin Mechtel committed
      setPageTitle() {
        this.pageTitle$.next('IQB-Testcenter - System-Check');
      }
    
    export interface ReportEntry {
      label: string;
      value: string;