service-check-form.component.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { Component, Input, OnInit, ViewChild } from '@angular/core';
  2. import { FormControl, FormGroup, FormArray, FormBuilder } from '@angular/forms';
  3. import { faMinusSquare, faPlusSquare } from '@fortawesome/free-solid-svg-icons';
  4. import { deepCopy } from '../../../../../common/util/object-utils';
  5. import { ServiceCheckDisjunctionComponent } from 'src/app/components/service-check-editor/service-check-disjunction/service-check-disjunction.component';
  6. import { ServiceApiService } from 'src/app/services/service-api.service';
  7. @Component({
  8. selector: 'app-service-check-form',
  9. templateUrl: './service-check-form.component.html',
  10. styleUrls: ['./service-check-form.component.scss']
  11. })
  12. export class ServiceCheckFormComponent implements OnInit {
  13. @ViewChild(ServiceCheckDisjunctionComponent) checkEditor!: ServiceCheckDisjunctionComponent;
  14. @Input() serviceCheck!: HttpCheckConfig;
  15. public fa = { plus: faPlusSquare, delete: faMinusSquare };
  16. serviceCheckForm: FormGroup = this.formBuilder.group({
  17. id: -1, //constant for defaultValues
  18. title: '', //constant for defaultValues
  19. active: undefined, //constant for defaultValues
  20. url: '', //constant for defaultValues
  21. interval: 10, //constant for defaultValues
  22. timeout: 10, //constant for defaultValuess
  23. notify: true,
  24. notifyThreshold: 3
  25. });
  26. constructor(private formBuilder: FormBuilder, private serviceApi: ServiceApiService) {}
  27. ngOnInit(): void {
  28. this.serviceCheckForm.patchValue(this.serviceCheck);
  29. }
  30. async save() {
  31. try {
  32. this.serviceCheckForm.updateValueAndValidity();
  33. const copy = deepCopy(this.serviceCheckForm.value as HttpCheckConfig);
  34. copy.checks = this.checkEditor.collect();
  35. const savedCheck = await this.serviceApi.saveServiceCheck(this.serviceCheck.serverId as number, copy);
  36. this.serviceCheckForm.patchValue(savedCheck);
  37. this.serviceCheck = savedCheck;
  38. } catch (error: any) {
  39. console.error(error);
  40. }
  41. }
  42. }