108 lines
5.4 KiB
HTML
108 lines
5.4 KiB
HTML
<div *ngIf="workbasket" id="wb-information">
|
|
|
|
<!-- ACCESS ITEMS -->
|
|
<div class="workbasket-access-items">
|
|
<form [formGroup]="AccessItemsForm">
|
|
<table formArrayName="accessItemsGroups" id="table-access-items" class="workbasket-access-items__table table-striped">
|
|
|
|
<!-- TITLE ROW -->
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th class="required-header">AccessID</th>
|
|
<th>Select all</th>
|
|
<th>Read</th>
|
|
<th>Open</th>
|
|
<th>Append</th>
|
|
<th>Transfer</th>
|
|
<th>Distribute</th>
|
|
<ng-container *ngFor="let customField of customFields$ | async">
|
|
<th *ngIf="customField.visible">{{customField.field}}</th>
|
|
</ng-container>
|
|
</tr>
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
<tr *ngFor="let accessItem of accessItemsGroups.controls; let index = index;" [formGroupName]="index">
|
|
<!-- REMOVE BUTTON -->
|
|
<td>
|
|
<button mat-button type="button" style="padding: 3px;" (click)="remove(index)" title="Remove">
|
|
<span class="material-icons md-24 red">clear</span>
|
|
</button>
|
|
</td>
|
|
|
|
<!-- ACCESS ID -->
|
|
<td *ngIf="(accessItemsCustomization$ | async)?.accessId.lookupField else accessIdInput"
|
|
class="workbasket-access-items__typeahead"
|
|
[ngClass]="{ 'has-warning': (accessItemsClone[index].accessId !== accessItem.value.accessId),
|
|
'has-error': !accessItem.value.accessId }">
|
|
|
|
<taskana-shared-type-ahead formControlName="accessId" placeHolderMessage="* Access id is required"
|
|
[validationValue]="toggleValidationAccessIdMap.get(index)"
|
|
[displayError]="!isFieldValid('accessItem.value.accessId', index)"
|
|
(selectedItem)="accessItemSelected($event, index)"
|
|
(inputField)="focusNewInput($event)">
|
|
</taskana-shared-type-ahead>
|
|
</td>
|
|
|
|
<ng-template #accessIdInput>
|
|
<td>
|
|
<div [ngClass]="{ 'has-warning': (accessItemsClone[index].accessId !== accessItem.value.accessId),
|
|
'has-error': !accessItem.value.accessId && formsValidatorService.formSubmitAttempt}">
|
|
<input matInput type="text" formControlName="accessId"
|
|
placeholder="{{accessItem.invalid ? '* Access id is required': ''}}"
|
|
[@validation]="toggleValidationAccessIdMap.get(index)" #htmlInputElement>
|
|
</div>
|
|
</td>
|
|
</ng-template>
|
|
|
|
<!-- SELECT ALL -->
|
|
<td>
|
|
<input class="workbasket-access-items__permission-checkbox" type="checkbox" id="checkbox-{{index}}-00" (change)="checkAll(index, $event)" aria-label="checkAll" aria-labelledby="checkAll">
|
|
</td>
|
|
|
|
<!-- READ -->
|
|
<td [ngClass]="{ 'has-changes': (accessItemsClone[index].permRead !== accessItem.value.permRead)}">
|
|
<input class="workbasket-access-items__permission-checkbox" type="checkbox" id="checkbox-{{index}}-0" formControlName="permRead" aria-label="permRead" aria-labelledby="permRead">
|
|
</td>
|
|
|
|
<!-- OPEN -->
|
|
<td [ngClass]="{ 'has-changes': (accessItemsClone[index].permOpen !== accessItem.value.permOpen)}">
|
|
<input class="workbasket-access-items__permission-checkbox" type="checkbox" id="checkbox-{{index}}-1" formControlName="permOpen" aria-label="permOpen" aria-labelledby="permOpen">
|
|
</td>
|
|
|
|
<!-- APPEND -->
|
|
<td [ngClass]="{ 'has-changes': (accessItemsClone[index].permAppend !== accessItem.value.permAppend)}">
|
|
<input class="workbasket-access-items__permission-checkbox" type="checkbox" id="checkbox-{{index}}-2" formControlName="permAppend" aria-label="permAppend" aria-labelledby="permAppend">
|
|
</td>
|
|
|
|
<!-- TRANSFER -->
|
|
<td [ngClass]="{ 'has-changes': (accessItemsClone[index].permTransfer !== accessItem.value.permTransfer)}">
|
|
<input class="workbasket-access-items__permission-checkbox" type="checkbox" id="checkbox-{{index}}-3" formControlName="permTransfer" aria-label="permTransfer" aria-labelledby="permTransfer">
|
|
</td>
|
|
|
|
<!-- DISTRIBUTE -->
|
|
<td [ngClass]="{ 'has-changes': (accessItemsClone[index].permDistribute !== accessItem.value.permDistribute)}">
|
|
<input class="workbasket-access-items__permission-checkbox" type="checkbox" id="checkbox-{{index}}-4" formControlName="permDistribute" aria-label="permDistribute" aria-labelledby="permDistribute">
|
|
</td>
|
|
|
|
<!-- CUSTOM FIELDS -->
|
|
<ng-container *ngFor="let customField of customFields$ | async; let customIndex = index">
|
|
<td *ngIf="customField.visible" [ngClass]="{ 'has-changes': accessItemsClone[index][getAccessItemCustomProperty(customIndex + 1)] !== accessItem.value[getAccessItemCustomProperty(customIndex+1)] }">
|
|
<input class="workbasket-access-items__permission-checkbox" type="checkbox" id="checkbox-{{index}}-{{customIndex + 5}}" formControlName="permCustom{{customIndex+1}}" aria-label="customField" aria-labelledby="customField">
|
|
</td>
|
|
</ng-container>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</form>
|
|
|
|
<!-- ADD ACCESS ITEM -->
|
|
<button mat-stroked-button type="button" class="workbasket-access-items__add-access" (click)="addAccessItem()" data-toggle="tooltip" title="Add new access">
|
|
<span class="material-icons md-20 green-blue">add</span>
|
|
<span>Add new access</span>
|
|
</button>
|
|
</div>
|
|
</div>
|