mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-14 06:45:33 +00:00
* cli, core * material cdk * schematics * chore(deps): bump ngx-color from 7.3.3 to 8.0.2 in /console (#4228) Bumps [ngx-color](https://github.com/scttcper/ngx-color) from 7.3.3 to 8.0.2. - [Release notes](https://github.com/scttcper/ngx-color/releases) - [Commits](https://github.com/scttcper/ngx-color/compare/v7.3.3...v8.0.2) --- updated-dependencies: - dependency-name: ngx-color dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * eslint-plugin * chore(deps): bump moment from 2.29.3 to 2.29.4 in /console (#3926) Bumps [moment](https://github.com/moment/moment) from 2.29.3 to 2.29.4. - [Release notes](https://github.com/moment/moment/releases) - [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) - [Commits](https://github.com/moment/moment/compare/2.29.3...2.29.4) --- updated-dependencies: - dependency-name: moment dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump codemirror from 5.65.6 to 6.0.1 in /console (#3928) Bumps [codemirror](https://github.com/codemirror/basic-setup) from 5.65.6 to 6.0.1. - [Release notes](https://github.com/codemirror/basic-setup/releases) - [Changelog](https://github.com/codemirror/basic-setup/blob/main/CHANGELOG.md) - [Commits](https://github.com/codemirror/basic-setup/commits/6.0.1) --- updated-dependencies: - dependency-name: codemirror dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * lock * use codemirror 5 * remove redundant null undefined checks * i18n, undefined checks * remove redundant null and undefined checks * checks * fix: resolve null check warnings * commonjs deps Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Livio Spring <livio.a@gmail.com>
162 lines
6.7 KiB
HTML
162 lines
6.7 KiB
HTML
<div class="max-width-container">
|
|
<div class="project-grants-wrapper">
|
|
<div class="project-grants">
|
|
<cnsl-refresh-table
|
|
[loading]="dataSource.loading$ | async"
|
|
*ngIf="projectId"
|
|
(refreshed)="loadGrantsPage()"
|
|
[dataSize]="dataSource.totalResult"
|
|
[selection]="selection"
|
|
[timestamp]="dataSource.viewTimestamp"
|
|
(refreshed)="getRoleOptions(projectId)"
|
|
>
|
|
<div actions>
|
|
<a
|
|
[disabled]="(['project.grant.write$', 'project.grant.write:' + projectId] | hasRole | async) === false"
|
|
color="primary"
|
|
class="cnsl-action-button"
|
|
mat-raised-button
|
|
[routerLink]="['/projects', projectId, 'projectgrants', 'create']"
|
|
>
|
|
<mat-icon class="icon">add</mat-icon>
|
|
<span>{{ 'ACTIONS.NEW' | translate }}</span>
|
|
<cnsl-action-keys (actionTriggered)="gotoRouterLink(['/projects', projectId, 'projectgrants', 'create'])">
|
|
</cnsl-action-keys>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="table-wrapper">
|
|
<table mat-table multiTemplateDataRows class="table" aria-label="Elements" [dataSource]="dataSource">
|
|
<ng-container matColumnDef="select">
|
|
<th class="selection" mat-header-cell *matHeaderCellDef>
|
|
<mat-checkbox
|
|
[disabled]="(['project.grant.write$', 'project.grant.write:' + projectId] | hasRole | async) === false"
|
|
color="primary"
|
|
(change)="$event ? masterToggle() : null"
|
|
[checked]="selection.hasValue() && isAllSelected()"
|
|
[indeterminate]="selection.hasValue() && !isAllSelected()"
|
|
>
|
|
</mat-checkbox>
|
|
</th>
|
|
<td class="selection" mat-cell *matCellDef="let row">
|
|
<mat-checkbox
|
|
[disabled]="(['project.grant.write$', 'project.grant.write:' + projectId] | hasRole | async) === false"
|
|
color="primary"
|
|
(click)="$event.stopPropagation()"
|
|
(change)="$event ? selection.toggle(row) : null"
|
|
[checked]="selection.isSelected(row)"
|
|
>
|
|
</mat-checkbox>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="grantedOrgName">
|
|
<th mat-header-cell *matHeaderCellDef>{{ 'PROJECT.GRANT.GRANTEDORG' | translate }}</th>
|
|
<td
|
|
[routerLink]="['/projects', grant.projectId, 'projectgrants', grant.grantId]"
|
|
class="pointer"
|
|
mat-cell
|
|
*matCellDef="let grant"
|
|
>
|
|
{{ grant.grantedOrgName }}
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="creationDate">
|
|
<th mat-header-cell *matHeaderCellDef>{{ 'PROJECT.GRANT.CREATIONDATE' | translate }}</th>
|
|
<td
|
|
class="pointer"
|
|
mat-cell
|
|
*matCellDef="let grant"
|
|
[routerLink]="['/projects', grant.projectId, 'projectgrants', grant.grantId]"
|
|
>
|
|
<span>{{ grant.details.creationDate | timestampToDate | localizedDate: 'dd. MMM, HH:mm' }}</span>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="changeDate">
|
|
<th mat-header-cell *matHeaderCellDef>{{ 'PROJECT.GRANT.CHANGEDATE' | translate }}</th>
|
|
<td
|
|
class="pointer"
|
|
mat-cell
|
|
*matCellDef="let grant"
|
|
[routerLink]="['/projects', grant.projectId, 'projectgrants', grant.grantId]"
|
|
>
|
|
<span>{{ grant.details.changeDate | timestampToDate | localizedDate: 'dd. MMM, HH:mm' }}</span>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="state">
|
|
<th mat-header-cell *matHeaderCellDef>{{ 'PROJECT.GRANT.STATE' | translate }}</th>
|
|
<td
|
|
class="pointer"
|
|
mat-cell
|
|
*matCellDef="let grant"
|
|
[routerLink]="['/projects', grant.projectId, 'projectgrants', grant.grantId]"
|
|
>
|
|
<span
|
|
class="state"
|
|
[ngClass]="{
|
|
active: grant.state === ProjectGrantState.PROJECT_GRANT_STATE_ACTIVE,
|
|
inactive: grant.state === ProjectGrantState.PROJECT_GRANT_STATE_INACTIVE
|
|
}"
|
|
>
|
|
{{ 'PROJECT.GRANT.STATES.' + grant.state | translate }}
|
|
</span>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="roleNamesList">
|
|
<th mat-header-cell *matHeaderCellDef class="role-row">{{ 'PROJECT.GRANT.ROLENAMESLIST' | translate }}</th>
|
|
<td class="pointer role-row" mat-cell *matCellDef="let grant">
|
|
<div class="flex-row">
|
|
<cnsl-project-role-chip [roleName]="role" *ngFor="let role of grant.grantedRoleKeysList"
|
|
>{{ role }}
|
|
</cnsl-project-role-chip>
|
|
</div>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="actions" stickyEnd>
|
|
<th mat-header-cell *matHeaderCellDef class="role-table-actions"></th>
|
|
<td mat-cell *matCellDef="let grant" class="role-table-actions">
|
|
<cnsl-table-actions>
|
|
<button
|
|
actions
|
|
[disabled]="(['project.role.delete', 'project.role.delete:' + projectId] | hasRole | async) === false"
|
|
mat-icon-button
|
|
color="warn"
|
|
matTooltip="{{ 'ACTIONS.DELETE' | translate }}"
|
|
(click)="deleteGrant(grant)"
|
|
>
|
|
<i class="las la-trash"></i>
|
|
</button>
|
|
</cnsl-table-actions>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
|
<tr class="highlight" mat-row *matRowDef="let grant; columns: displayedColumns"></tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div *ngIf="(dataSource.loading$ | async) === false && !dataSource?.totalResult" class="no-content-row">
|
|
<i class="las la-exclamation"></i>
|
|
<span>{{ 'PROJECT.GRANT.EMPTY' | translate }}</span>
|
|
</div>
|
|
|
|
<cnsl-paginator
|
|
class="paginator"
|
|
#paginator
|
|
[pageSize]="50"
|
|
[timestamp]="dataSource.viewTimestamp"
|
|
[pageSizeOptions]="[25, 50, 100, 250]"
|
|
[length]="dataSource.totalResult"
|
|
(page)="loadGrantsPage($event.pageIndex, $event.pageSize)"
|
|
>
|
|
</cnsl-paginator>
|
|
</cnsl-refresh-table>
|
|
</div>
|
|
</div>
|
|
</div>
|