Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
admin-keystore.component.html 3.69 KiB
<div id="admin-keystore-panel">
  <data-panel id="admin-keystore-data-panel"
              title="{{ 'admin.keystore.title' | translate }}"
              text="{{ 'admin.keystore.text' | translate }}"
              [labelColumnContent]="searchKeyCertificatePanel">
    <ng-template #noDataFound>
      <div class="empty-data-panel">{{ "admin.keystore.label.no.certificate.selected" | translate }}</div>
    </ng-template>
    <smp-warning-panel *ngIf="selected?.invalid;"
                       icon="error"
                       label="{{ 'admin.keystore.label.invalid.certificate' | translate: { reason: selected.invalidReason} }}">
    </smp-warning-panel>
    <certificate-panel [certificate]="selected"  *ngIf="selected;else noDataFound"></certificate-panel>
  </data-panel>
</div>

<ng-template #searchKeyCertificatePanel>
  <mat-form-field id="keystore-filter">
    <mat-label>{{ "admin.keystore.label.filter" | translate }}</mat-label>
    <input matInput #inputKeyAliasFilter (keyup)="applyKeyAliasFilter($event)" placeholder="{{ 'admin.keystore.placeholder.filter' | translate }}">
  </mat-form-field>

  <mat-toolbar class ="mat-elevation-z2">
    <mat-toolbar-row  class="smp-toolbar-row">
      <button mat-raised-button mat-flat-button color="primary"
              (click)="openImportKeystoreDialog()">{{ "admin.keystore.button.import.keystore" | translate }}
      </button>
      <button mat-raised-button
              [disabled]="!selected"
              color="primary"
              (click)="onDeleteSelectedCertificateClicked()">
        <mat-icon>delete</mat-icon>
        <span>{{ "admin.keystore.button.delete.key" | translate }}</span>
      </button>
    </mat-toolbar-row>
  </mat-toolbar>
  <table class="mat-elevation-z2" id="admin-keystore-table" mat-table [dataSource]="dataSource" matSort>

    <ng-container matColumnDef="alias" [matTooltip]="selected?.certificateId">
      <th mat-header-cell *matHeaderCellDef mat-sort-header class="keystore-table-cell-header">{{ "admin.keystore.label.alias" | translate }}</th>
      <td mat-cell *matCellDef="let row"
          [ngClass]="{'datatable-row-error': row.invalid}"
          [matTooltip]="row.certificateId">{{row.alias}}</td>
    </ng-container>

    <ng-container matColumnDef="entry-type">
      <th mat-header-cell *matHeaderCellDef class="keystore-table-cell-header">{{ "admin.keystore.label.type" | translate }}</th>
      <td mat-cell *matCellDef="let row"
          [ngClass]="{'datatable-row-error': row.invalid}"
          [matTooltip]="(row.containingKey ? 'admin.keystore.label.key.pair': 'admin.keystore.label.certificate') | translate">
        <span *ngIf="!!row.containingKey"><mat-icon>key</mat-icon></span>
        <span *ngIf="!row.containingKey"><mat-icon>article</mat-icon></span>
      </td>
    </ng-container>

    <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
    <tr mat-row *matRowDef="let odd = odd; let row; columns: displayedColumns;"
        (click)="certificateSelected(row)"
        [ngClass]="{'datatable-row-selected': row==selected,'datatable-row-odd': odd}"
    ></tr>

    <tr class="mat-row" *matNoDataRow>
      <td *ngIf="inputKeyAliasFilter.value;else noDataFound" class="mat-cell" colspan="2">
        {{ "admin.keystore.label.no.filter.results" | translate: { filterValue: inputKeyAliasFilter.value } }}
      </td>
      <ng-template #noDataFound>
        <td class="mat-cell" colspan="2">{{ "admin.keystore.label.no.data.found" | translate }}</td>
      </ng-template>
    </tr>
  </table>

  <mat-paginator class="mat-elevation-z2" id="extension-paginator"
                 [hidePageSize]="true"
                 [pageSize]="5" attr.aria-label="{{ 'admin.keystore.label.select.page' | translate }}"></mat-paginator>

</ng-template>