task_tracker/web/angular/src/app/project-perms/project-perms.component.html
2019-03-09 14:24:54 -05:00

77 lines
4.1 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="container">
<mat-card class="mat-elevation-z8">
<button mat-button [title]="'perms.refresh' | translate" style="float:right"
(click)="refresh()">
<mat-icon>refresh</mat-icon>
</button>
<mat-card-header>
<mat-card-title>{{"perms.title" | translate}}</mat-card-title>
<mat-card-subtitle>{{"perms.subtitle" | translate}}</mat-card-subtitle>
</mat-card-header>
<mat-card-content *ngIf="!(unauthorized || !auth.account)">
<h3>{{"perms.workers" | translate}}</h3>
<mat-list *ngIf="accesses && accesses.length>0">
<mat-list-item *ngFor="let wa of accesses" [class.request]="wa.request">
<mat-icon mat-list-icon *ngIf="wa.submit" [title]="'perms.assign'|translate">library_add</mat-icon>
<mat-icon mat-list-icon *ngIf="wa.assign" [title]="'perms.submit'|translate">get_app</mat-icon>
<h4 mat-line>{{wa.worker.alias}} {{wa.request ? ('perms.pending' | translate) : ''}}</h4>
<div mat-line>
Id=<span class="text-mono">{{wa.worker.id}}</span>, {{"perms.created" | translate}}
<span
class="text-mono">{{moment.unix(wa.worker.created).utc().format("UTC YYYY-MM-DD HH:mm:ss")}}</span>
</div>
<span style="flex: 1 1 auto;"></span>
<button mat-raised-button color="primary" [title]="'perms.grant' | translate"
*ngIf="wa.request" (click)="acceptRequest(wa)">
<mat-icon>check</mat-icon>
</button>
<button mat-raised-button color="warn"
[title]="wa.request ? ('perms.reject'|translate) : ('perms.remove'|translate)"
(click)="rejectRequest(wa)">
<mat-icon>close</mat-icon>
</button>
</mat-list-item>
</mat-list>
<p *ngIf="!accesses || accesses.length === 0">{{"perms.no_workers"|translate}}</p>
<h3>{{"perms.managers" | translate}}</h3>
<manager-select (managerChange)="onSelectManager($event)"></manager-select>
<mat-list>
<mat-list-item *ngFor="let m of managerRoles">
<mat-icon *ngIf="m.manager.tracker_admin">supervisor_account</mat-icon>
<mat-icon *ngIf="!m.manager.tracker_admin">person</mat-icon>
{{m.manager.username}}
<span class="spacer"></span>
<mat-checkbox [(ngModel)]="m.readRole"
(change)="onRoleChange(m)"
[disabled]="m.manager.id==auth.account.id"
>{{"perms.read"|translate}}</mat-checkbox>
<mat-checkbox [(ngModel)]="m.editRole"
(change)="onRoleChange(m)"
[disabled]="m.manager.id==auth.account.id"
>{{"perms.edit"|translate}}</mat-checkbox>
<mat-checkbox [(ngModel)]="m.manageRole"
(change)="onRoleChange(m)"
[disabled]="m.manager.id==auth.account.id"
>{{"perms.manage"|translate}}</mat-checkbox>
<mat-checkbox [(ngModel)]="m.secretRole"
(change)="onRoleChange(m)"
[disabled]="m.manager.id==auth.account.id"
>{{"perms.secret"|translate}}</mat-checkbox>
</mat-list-item>
</mat-list>
</mat-card-content>
<mat-card-content *ngIf="unauthorized">
<p class="unauthorized">
<mat-icon>block</mat-icon>
{{"perms.unauthorized" | translate}}
</p>
</mat-card-content>
<mat-card-actions>
<button mat-raised-button [routerLink]="'../'">{{"nav.back"|translate}}</button>
</mat-card-actions>
</mat-card>
</div>