Reorganize dashboard into subfolders
[portal/ric-dashboard.git] / dashboard / webapp-frontend / src / app / ac-xapp / ac-xapp.component.html
diff --git a/dashboard/webapp-frontend/src/app/ac-xapp/ac-xapp.component.html b/dashboard/webapp-frontend/src/app/ac-xapp/ac-xapp.component.html
new file mode 100644 (file)
index 0000000..5b55753
--- /dev/null
@@ -0,0 +1,60 @@
+<!--
+  ========================LICENSE_START=================================
+  O-RAN-SC
+  %%
+  Copyright (C) 2019 AT&T Intellectual Property
+  %%
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  ========================LICENSE_END===================================
+  -->
+<div class="ac__section">
+  <h3 class="rd-global-page-title">Admission Control xApp Policy</h3>
+
+  <form [formGroup]="acForm" novalidate autocomplete="off" (ngSubmit)="updateAc(acForm.value)">
+    <div name="enforce">
+      <mat-checkbox formControlName="enforce">Enforce</mat-checkbox>
+    </div>
+    <mat-form-field class="input-display-block">
+      <input matInput type="text" placeholder="Traffic class" formControlName="class">
+      <mat-hint align="end">Traffic class ID (1-256)</mat-hint>
+      <mat-error *ngIf="validateControl('window_length') && hasError('window_length', 'required')">Number is required
+      </mat-error>
+      <mat-error *ngIf="hasError('window_length', 'pattern')">Valid number is required</mat-error>
+    </mat-form-field>
+    <mat-form-field class="input-display-block">
+      <input matInput type="text" placeholder="Window length" formControlName="window_length">
+      <mat-hint align="end">Sliding window length in minutes (15-300)</mat-hint>
+      <mat-error *ngIf="validateControl('window_length') && hasError('window_length', 'required')">Number is required
+      </mat-error>
+      <mat-error *ngIf="hasError('window_length', 'pattern')">Valid number is required</mat-error>
+    </mat-form-field>
+    <mat-form-field class="input-display-block">
+      <input matInput type="text" placeholder="Blocking rate" formControlName="blocking_rate">
+      <mat-hint align="end">Connections to block when triggered (1-100)</mat-hint>
+      <mat-error *ngIf="validateControl('blocking_rate') && hasError('blocking_rate', 'required')">Number is required
+      </mat-error>
+      <mat-error *ngIf="hasError('blocking_rate', 'pattern')">Valid number is required</mat-error>
+    </mat-form-field>
+    <mat-form-field class="input-display-block">
+      <input matInput type="text" placeholder="Trigger threshold" formControlName="trigger_threshold">
+      <mat-hint align="end">Number of events in window to trigger blocking (min 1)</mat-hint>
+      <mat-error *ngIf="validateControl('trigger_threshold') && hasError('trigger_threshold', 'required')">Number is
+        required</mat-error>
+      <mat-error *ngIf="hasError('trigger_threshold', 'pattern')">Valid number is required</mat-error>
+    </mat-form-field>
+    <div class="input-display-block">
+      <button class="mat-raised-button mat-primary update-button" [disabled]="!acForm.valid">Update</button>
+    </div>
+</form>
+
+</div>