blob: 2e8115f69e3ab135266c20942d707e3b894ce1f9 [file] [log] [blame]
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<mat-tree-node
*matTreeNodeDef="let node"
matTreeNodeToggle matTreeNodePadding
matTreeNodePaddingIndent="17"
[ngStyle]="{'display': 'none'}"
>
<button mat-icon-button disabled></button>
{{node.item}}
</mat-tree-node>
<mat-tree-node *matTreeNodeDef="let node; when: hasNoContent" matTreeNodePadding matTreeNodePaddingIndent="17" class="input-node">
<form class="add-folder-form" id="folder-form">
<mat-form-field>
<mat-label>New folder</mat-label>
<input matInput #itemValue [formControl]="folderFormControl" [errorStateMatcher]="matcher">
<mat-error *ngIf="!folderFormControl.hasError('required') && !folderFormControl.hasError('isDuplicate')">
The folder name can only contain Latin letters, numbers and special characters except for #, ?, /, \, "
</mat-error>
<mat-error *ngIf="folderFormControl.hasError('required')">
Folder name is <strong>required</strong>
</mat-error>
<mat-error *ngIf="folderFormControl.hasError('isDuplicate')">
Folder with this name already exists
</mat-error>
<mat-hint *ngIf="cloud === 'azure'">If you do not upload any object to the folder, this folder will be removed on MS Azure</mat-hint>
</mat-form-field>
<button (click)="createFolder(node, itemValue.value)"
[ngClass]="{'check': folderFormControl.valid && folderFormControl.dirty && !folderCreating}"
mat-icon-button class="btn action-btn"
[disabled]="!folderFormControl.valid || !folderFormControl.dirty"
matTooltip="Please wait! Folder is creating."
[matTooltipDisabled]="!folderCreating"
matTooltipPosition="above"
>
<span><i class="material-icons ">check</i></span></button>
<button (click)="removeItem(node)" mat-icon-button class="btn close action-btn"><span ><i class="material-icons ">close</i></span></button>
</form>
</mat-tree-node>
<mat-tree-node *matTreeNodeDef="let node; when: hasChild" matTreeNodePadding matTreeNodePaddingIndent="17" [ngClass]="{'cursor-not-allow': bucketDataService.emptyFolder}">
<button mat-icon-button matTreeNodeToggle
[attr.aria-label]="'toggle ' + node.filename" [ngClass]="{'not-allowed': bucketDataService.emptyFolder}">
<mat-icon class="mat-icon-rtl-mirror" [ngClass]="{'active-item': (selectedFolder === node && !bucketDataService.emptyFolder)}">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
</button>
<div
(click)="showItem(node)"
class="folder-item-line"
[ngClass]="{'active-item': (selectedFolder === node && !bucketDataService.emptyFolder), 'not-allowed': bucketDataService.emptyFolder}"
>
<i class="material-icons folder-icon">folder</i>
<span
class="folder"
matTooltip="{{node.item}}"
matTooltipPosition="above"
matTooltipShowDelay="1000"
[matTooltipClass]="'bucket-item-tooltip'"
>
{{node.item}}
</span>
</div>
</mat-tree-node>
</mat-tree>