48 lines
1.4 KiB
HTML
48 lines
1.4 KiB
HTML
<h2 class="row-container space-between">
|
|
<span>Roles</span>
|
|
<a mat-button [routerLink]="['/roles', 'new']">
|
|
<mat-icon>add_box</mat-icon>
|
|
Add
|
|
</a>
|
|
</h2>
|
|
<mat-table #table [dataSource]="dataSource" aria-label="Elements">
|
|
<!-- Name Column -->
|
|
<ng-container matColumnDef="name">
|
|
<mat-header-cell *matHeaderCellDef>Name</mat-header-cell>
|
|
<mat-cell *matCellDef="let row"
|
|
><a [routerLink]="['/roles', row.id]">{{ row.name }}</a></mat-cell
|
|
>
|
|
</ng-container>
|
|
|
|
<!-- Included Roles Column (NEW) -->
|
|
<ng-container matColumnDef="includedRoles">
|
|
<mat-header-cell *matHeaderCellDef>Includes</mat-header-cell>
|
|
<mat-cell *matCellDef="let row">
|
|
@if (row.includedRoles?.length) {
|
|
<ul>
|
|
@for (r of row.includedRoles; track r) {
|
|
<li>{{ r }}</li>
|
|
}
|
|
</ul>
|
|
} @else {
|
|
<span>-</span>
|
|
}
|
|
</mat-cell>
|
|
</ng-container>
|
|
|
|
<!-- Permissions Column -->
|
|
<ng-container matColumnDef="permissions">
|
|
<mat-header-cell *matHeaderCellDef>Permissions</mat-header-cell>
|
|
<mat-cell *matCellDef="let row">
|
|
<ul>
|
|
@for (permission of row.permissions; track permission) {
|
|
<li>{{ permission }}</li>
|
|
}
|
|
</ul>
|
|
</mat-cell>
|
|
</ng-container>
|
|
|
|
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
|
|
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
|
|
</mat-table>
|