129 lines
6 KiB
HTML
129 lines
6 KiB
HTML
<div class="row">
|
|
<div class="col-12">
|
|
<p class="font-weight-bold">Update SOA data for {{ domain.name }}</p>
|
|
</div>
|
|
</div>
|
|
<form [formGroup]="soaForm" (submit)="onSoaSubmit()">
|
|
<div class="row">
|
|
<div class="col-12 col-md-4 col-lg-3">
|
|
<div class="form-group">
|
|
<label>Primary</label>
|
|
<input type="text" class="form-control auto-invalid" formControlName="primary" />
|
|
<div class="invalid-feedback">
|
|
Primary can not be empty.
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>Email</label>
|
|
<input type="text" class="form-control auto-invalid" formControlName="email" />
|
|
<div class="invalid-feedback">
|
|
Must be a valid email address.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-md-3 col-lg-2 offset-lg-1">
|
|
<div class="form-group">
|
|
<label>Refresh</label>
|
|
<input type="text" class="form-control auto-invalid" formControlName="refresh" />
|
|
<div class="invalid-feedback">
|
|
Refresh must be positive integer.
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>Retry</label>
|
|
<input type="text" class="form-control auto-invalid" formControlName="retry" />
|
|
<div class="invalid-feedback">
|
|
Retry must be positive integer.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-md-3 col-lg-2 offset-lg-1">
|
|
<div class="form-group">
|
|
<label>Expire</label>
|
|
<input type="text" class="form-control auto-invalid" formControlName="expire" />
|
|
<div class="invalid-feedback">
|
|
Expire must be positive integer.
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>TTL</label>
|
|
<input type="text" class="form-control auto-invalid" formControlName="ttl" />
|
|
<div class="invalid-feedback">
|
|
TTL must be positive integer.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-md-2 col-lg-2 offset-lg-1">
|
|
<div class="form-group">
|
|
<label>Serial</label>
|
|
<input type="text" class="form-control auto-invalid" readonly formControlName="serial" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-12">
|
|
<button type="submit" class="btn btn-primary float-right float-md-left" [disabled]="!soaForm.valid || soaForm.pristine">Save</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<div class="row justify-content-end">
|
|
<div class="col-12 col-md-6 mt-2 mt-md-0">
|
|
<app-pagesize class="float-md-right" [pagesizes]="gs.pageSizes" [currentPagesize]="gs.pageSize" (pagesizeChange)="onPagesizeChange($event)"></app-pagesize>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="table-responsive-lg">
|
|
<table class="table table-hover table-layout-fixed table-triple">
|
|
<thead>
|
|
<tr>
|
|
<th class="w-6 align-middle">
|
|
<span>ID</span>
|
|
<app-sort field="id" [activeFields]="sortField" (sort)="onSortEvent($event)"></app-sort>
|
|
</th>
|
|
<th class="w-25 align-middle">
|
|
<div class="form-inline">
|
|
<span>Name</span>
|
|
<app-sort field="name" [activeFields]="sortField" (sort)="onSortEvent($event)"></app-sort>
|
|
<input class="form-control form-control-sm no-shadow" type="text" placeholder="Search" [formControl]="queryNameInput">
|
|
</div>
|
|
</th>
|
|
<th class="w-15 align-middle">
|
|
<div class="form-inline">
|
|
<span>Type</span>
|
|
<app-sort field="type" [activeFields]="sortField" (sort)="onSortEvent($event)"></app-sort>
|
|
<app-select class="w-60" [options]="gs.recordTypes" [formControl]="typeFilter" multiple></app-select>
|
|
</div>
|
|
</th>
|
|
<th class="align-middle">
|
|
<div class="form-inline">
|
|
<span>Content</span>
|
|
<app-sort field="content" [activeFields]="sortField" (sort)="onSortEvent($event)"></app-sort>
|
|
<input class="form-control form-control-sm no-shadow" type="text" placeholder="Search" [formControl]="queryContentInput">
|
|
</div>
|
|
</th>
|
|
<th class="w-10 align-middle">
|
|
<span>Priority</span>
|
|
<app-sort field="priority" [activeFields]="sortField" (sort)="onSortEvent($event)"></app-sort>
|
|
</th>
|
|
<th class="w-8 align-middle">
|
|
<span>TTL</span>
|
|
<app-sort field="ttl" [activeFields]="sortField" (sort)="onSortEvent($event)"></app-sort>
|
|
</th>
|
|
<th class="w-9 align-middle"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr app-edit-auth-line *ngFor="let record of recordList" [entry]="record" [domain]="domain" (recordUpdated)="updateSerial()"
|
|
(recordDeleted)="updateSerial(); loadRecords();"></tr>
|
|
</tbody>
|
|
<tfoot>
|
|
<tr app-edit-auth-add [domain]="domain" (recordAdded)="updateSerial(); loadRecords();"></tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<app-paging [pagingInfo]="pagingInfo" [pageWidth]="3" (pageChange)="onPageChange($event)"></app-paging> |