66 lines
2.7 KiB
HTML
66 lines
2.7 KiB
HTML
<h2>Vocabulary Editor</h2>
|
|
|
|
<p>
|
|
<b>Vocabulary ID: </b>{{voc?.id}}<br />
|
|
<b>Vocabulary Name: </b>{{voc?.name}}<br />
|
|
<b>Description: </b>{{voc?.description}}
|
|
</p>
|
|
|
|
<p>
|
|
<a mat-stroked-button color="primary" [routerLink]="['/adv_resources/vocabulary']">return to vocabulary list</a>
|
|
<button mat-stroked-button color="primary" (click)="newVocabularyTermDialog()">create a new term</button>
|
|
<a mat-stroked-button color="primary" href="/api/vocs/{{voc?.id}}/terms" target="_blank">Download</a>
|
|
</p>
|
|
|
|
<mat-form-field style="width: 100%; margin-top: 10px;">
|
|
<mat-label>Filter</mat-label>
|
|
<input matInput (keyup)="applyFilter($event)" placeholder="Filter..." #input />
|
|
</mat-form-field>
|
|
|
|
<table mat-table [dataSource]="termsDatasource" matSort class="mat-elevation-z8">
|
|
|
|
<ng-container matColumnDef="code">
|
|
<th mat-header-cell *matHeaderCellDef style="width: 15%;" mat-sort-header sortActionDescription="Sort by Code"> Code
|
|
</th>
|
|
<td mat-cell *matCellDef="let element"><b>{{element.code}}</b></td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="name">
|
|
<th mat-header-cell *matHeaderCellDef style="width: 15%;" mat-sort-header sortActionDescription="Sort by Name"> Name
|
|
</th>
|
|
<td mat-cell *matCellDef="let element"> {{element.name}} </td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="encoding">
|
|
<th mat-header-cell *matHeaderCellDef style="width: 10%;" mat-sort-header sortActionDescription="Sort by Encoding">
|
|
Encoding </th>
|
|
<td mat-cell *matCellDef="let element">{{element.encoding}}</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="synonyms">
|
|
<th mat-header-cell *matHeaderCellDef style="width: 40%;" mat-sort-header sortActionDescription="Sort by Synonyms">
|
|
Description </th>
|
|
<td mat-cell *matCellDef="let element" style="font-size: 0,7em;">
|
|
<span class="muted" *ngIf="element.synonyms.length == 0">0 synonym(s)</span>
|
|
<span *ngFor="let s of element.synonyms" class="badge-label badge-info">
|
|
{{s.term}}
|
|
</span>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="buttons">
|
|
<th mat-header-cell *matHeaderCellDef style="text-align: right;"></th>
|
|
<td mat-cell *matCellDef="let element" class="table-buttons">
|
|
<button mat-stroked-button color="primary" (click)="editVocabularyTermDialog(element)">edit</button>
|
|
<button mat-stroked-button color="warn" (click)="deleteVocabularyTerm(element)">delete</button>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<tr mat-header-row *matHeaderRowDef="colums"></tr>
|
|
<tr mat-row *matRowDef="let row; columns: colums;"></tr>
|
|
|
|
<!-- Row shown when there is no matching data. -->
|
|
<tr class="mat-row" *matNoDataRow>
|
|
<td class="mat-cell" colspan="5" style="padding: 0 16px;">No data matching the filter "{{input.value}}"</td>
|
|
</tr>
|
|
</table> |