service-check-form.component.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <div [formGroup]="serviceCheckForm">
  2. <div class="row">
  3. <div class="col-8">
  4. <div class="row mb-2">
  5. <label class="col-3 col-form-label">Title</label>
  6. <div class="col-9">
  7. <input type="text" formControlName="title" class="form-control" />
  8. </div>
  9. </div>
  10. </div>
  11. <div class="col-4 h-100 overflow-auto">
  12. <div class="row mb-2 mt-2">
  13. <label class="form-check-label text-end">
  14. <input class="form-check-input" formControlName="active" type="checkbox" value="" />
  15. Active
  16. </label>
  17. </div>
  18. </div>
  19. </div>
  20. <div class="row border-top">
  21. <div class="col-12">
  22. <div class="row mb-2 mt-2">
  23. <label class="col-2 col-form-label">Url</label>
  24. <div class="col-10">
  25. <input type="text" formControlName="url" class="form-control" />
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. <div class="row border-top">
  31. <label class="col-lg-2 col-form-label mt-2">Settings</label>
  32. <div class="col-lg-10">
  33. <div class="row">
  34. <div class="col-lg-6">
  35. <div class="row mb-2 mt-2">
  36. <label class="col-2 col-lg-5 col-form-label">Interval:</label>
  37. <div class="col-10 col-lg-7">
  38. <div class="input-group">
  39. <input type="number" step="10" formControlName="interval" class="form-control" />
  40. <span class="input-group-text">s</span>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. <div class="col-lg-6">
  46. <div class="row mb-2 mt-2">
  47. <label class="col-2 col-lg-5 col-form-label">Timeout:</label>
  48. <div class="col-10 col-lg-7">
  49. <div class="input-group">
  50. <input type="number" step="100" formControlName="timeout" class="form-control" />
  51. <span class="input-group-text">ms</span>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="row border-top">
  60. <label class="col-lg-2 col-form-label mt-2">Notification</label>
  61. <div class="col-lg-10">
  62. <div class="row mb-2 mt-2">
  63. <label class="col-sm-3 col-form-label">
  64. <input type="checkbox" formControlName="notify" class="form-check-input" />
  65. Notify
  66. </label>
  67. <div class="col-sm-9">
  68. <div class="row">
  69. <label class="col-4 col-form-label text-end">Threshold:</label>
  70. <div class="col-8">
  71. <input type="number" formControlName="notifyThreshold" class="form-control" />
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. <div class="row border-top">
  79. <div class="col-12">
  80. <label class="mt-2">Check</label>
  81. <div class="mt-2 position-relative border p-0">
  82. <app-service-check-disjunction
  83. [model]="serviceCheck.checks"
  84. [sortVisible]="{ up: false, down: false }"
  85. [removable]="false"></app-service-check-disjunction>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. <ng-template #testModalContent let-modal>
  91. <div class="modal-header">
  92. <h4 class="modal-title">Test run of "{{ testRun?.config?.title }}"</h4>
  93. <button type="button" class="btn-close" aria-label="Close" (click)="modal.dismiss(0)"></button>
  94. </div>
  95. <div class="modal-body">
  96. <ng-container *ngIf="!testRun?.loading; else testRunLoading">
  97. <ng-container *ngIf="testRun?.result">
  98. <table class="table">
  99. <colgroup>
  100. <col width="180" />
  101. <col width="*" />
  102. </colgroup>
  103. <tbody>
  104. <tr [class]="testRun?.result | statusColor">
  105. <th scope="row" [rowSpan]="testRun?.result?.data?.length">{{ testRun?.result?.time | date : 'yyyy-MM-dd HH:mm:ss' }}</th>
  106. <td>{{ testRun?.result?.data?.[0]?.message }}</td>
  107. </tr>
  108. <tr *ngFor="let msg of testRun?.result?.data | slice : 1" [class]="testRun?.result | statusColor">
  109. <td>{{ msg.message }}</td>
  110. </tr>
  111. </tbody>
  112. </table>
  113. </ng-container>
  114. <ng-container *ngIf="testRun?.error">
  115. <div class="alert alert-danger">
  116. <pre>{{ testRun?.error | json }}</pre>
  117. </div>
  118. </ng-container>
  119. </ng-container>
  120. <ng-template #testRunLoading>
  121. <app-status-timeline-widget></app-status-timeline-widget>
  122. </ng-template>
  123. </div>
  124. <div class="modal-footer">
  125. <button type="button" class="btn btn-outline-primary" (click)="modal.close(true)">Close</button>
  126. </div>
  127. </ng-template>