blob: f84495d093cbd39bf8f60bbd1850ec9bcba1d765 [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<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 ellipsis"
matTooltip="{{node.item}}"
matTooltipPosition="above"
matTooltipShowDelay="1000"
[matTooltipClass]="'full-size-tooltip'"
>
{{node.item}}
</span>
</div>
</mat-tree-node>
</mat-tree>