| <!-- |
| Copyright 2020 TATA ELXSI |
| |
| 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. |
| |
| Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in) |
| --> |
| <form [formGroup]="sdnControllerForm" (ngSubmit)="sdnControllerFormSubmit()" autocomplete="off"> |
| <div class="modal-header"> |
| <h4 class="modal-title" id="modal-basic-title">{{'PAGE.SDNCONTROLLER.NEWSDNCONTROLLER' | translate}}</h4> |
| <button class="button-xs" type="button" class="close" aria-label="Close" (click)="activeModal.close()"> |
| <i class="fas fa-times-circle text-danger"></i> |
| </button> |
| </div> |
| <div class="modal-body modal-body-custom-height"> |
| <div class="form-group row"> |
| <label class="col-sm-12 col-form-label mandatory-label" |
| [ngClass]="{'text-danger': sdnControllerForm.invalid === true && submitted === true}">{{'MANDATORYCHECK' | translate}}</label> |
| <label class="col-sm-4 col-form-label" for="name">{{'NAME' | translate}}*</label> |
| <div class="col-sm-8"> |
| <input autocomplete="off" class="form-control" placeholder="{{'NAME' | translate}}" type="text" |
| formControlName="name" id="name" [ngClass]="{ 'is-invalid': submitted && f.name.errors }" required> |
| </div> |
| </div> |
| <div class="form-group row"> |
| <label class="col-sm-4 col-form-label" for="sdn_type">{{'TYPE' | translate}}*</label> |
| <div class="col-sm-8"> |
| <ng-select [items]="sdnType" placeholder="{{'SELECT' | translate}}" bindLabel="title" bindValue="value" |
| formControlName="type" id="sdn_type" [(ngModel)]="sdnTypeMod" |
| [ngClass]="{ 'is-invalid': submitted && f.type.errors }" required> |
| </ng-select> |
| </div> |
| </div> |
| <div class="form-group row"> |
| <label class="col-sm-4 col-form-label" for="username">{{'USERNAME' | translate}}*</label> |
| <div class="col-sm-8"> |
| <input autocomplete="off" class="form-control" placeholder="{{'USERNAME' | translate}}" type="text" |
| formControlName="user" id="username" [ngClass]="{ 'is-invalid': submitted && f.user.errors }" |
| required> |
| </div> |
| </div> |
| <div class="form-group row"> |
| <label class="col-sm-4 col-form-label" for="password">{{'PASSWORD' | translate}}*</label> |
| <div class="col-sm-8"> |
| <input autocomplete="off" class="form-control" placeholder="{{'PASSWORD' | translate}}" type="password" |
| formControlName="password" id="password" |
| [ngClass]="{ 'is-invalid': submitted && f.password.errors }" required> |
| </div> |
| </div> |
| <div class="form-group row"> |
| <label class="col-sm-4 col-form-label" for="ip">{{'IP' | translate}}*</label> |
| <div class="col-sm-8"> |
| <input autocomplete="off" class="form-control" placeholder="{{'IP' | translate}}" type="text" |
| formControlName="ip" id="ip" [ngClass]="{ 'is-invalid': submitted && f.ip.errors }" required> |
| <div *ngIf="sdnControllerForm.invalid" class="invalid-feedback"> |
| <div *ngIf="f.ip.errors && f.ip.value">{{'DOMVALIDATIONS.INVALIDIPADDRESS' | translate}}</div> |
| </div> |
| </div> |
| </div> |
| <div class="form-group row"> |
| <label class="col-sm-4 col-form-label" for="port">{{'PORT' | translate}}*</label> |
| <div class="col-sm-8"> |
| <input autocomplete="off" class="form-control" placeholder="{{'PORT' | translate}}" type="text" |
| formControlName="port" id="port" [ngClass]="{ 'is-invalid': submitted && f.port.errors }" required> |
| <div *ngIf="sdnControllerForm.invalid" class="invalid-feedback"> |
| <div *ngIf="f.port.errors && f.port.value">{{'DOMVALIDATIONS.INVALIDPORTADDRESS' | translate}}</div> |
| </div> |
| </div> |
| </div> |
| <div class="form-group row"> |
| <label class="col-sm-4 col-form-label" for="dpid">{{'PAGE.SDNCONTROLLER.DPID' | translate}}*</label> |
| <div class="col-sm-8"> |
| <input autocomplete="off" class="form-control" |
| placeholder="{{'PAGE.SDNCONTROLLER.DPIDPLACEHOLDER' | translate}}" type="text" |
| formControlName="dpid" id="dpid" [ngClass]="{ 'is-invalid': submitted && f.dpid.errors }" required> |
| <div *ngIf="sdnControllerForm.invalid" class="invalid-feedback"> |
| <div *ngIf="f.dpid.errors && f.dpid.value">{{'DOMVALIDATIONS.INVALIDDPID' | translate}}</div> |
| </div> |
| </div> |
| </div> |
| <div class="form-group row"> |
| <label class="col-sm-4 col-form-label" for="version">{{'VERSION' | translate}}</label> |
| <div class="col-sm-8"> |
| <input autocomplete="off" class="form-control" placeholder="{{'VERSION' | translate}}" type="text" |
| formControlName="version" id="version"> |
| </div> |
| </div> |
| </div> |
| <div class="modal-footer"> |
| <button type="button" class="btn btn-danger" (click)="activeModal.close()">{{'CANCEL' | translate}}</button> |
| <button type="submit" class="btn btn-primary">{{'CREATE' | translate}}</button> |
| </div> |
| </form> |
| <app-loader [waitingMessage]="message" *ngIf="isLoadingResults"></app-loader> |