mirror of https://github.com/Squidex/squidex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
4.4 KiB
92 lines
4.4 KiB
<div class="file-drop" (sqxDropFile)="addFiles($event)" *ngIf="!isDisabled && (state.canCreate | async)">
|
|
<h3 class="file-drop-header">{{ 'assets.uploadByDrop' | sqxTranslate }}</h3>
|
|
|
|
<div class="file-drop-or">{{ 'common.or' | sqxTranslate }}</div>
|
|
|
|
<div class="file-drop-button">
|
|
<span class="btn btn-success" (click)="fileInput.click()">
|
|
<span>{{ 'assets.uploadByDialog' | sqxTranslate }})</span>
|
|
|
|
<input class="file-drop-button-input" type="file" (change)="addFiles($event.target.files)" #fileInput multiple>
|
|
</span>
|
|
</div>
|
|
|
|
<div class="file-drop-info">{{ 'assets.uploadHint' | sqxTranslate }}</div>
|
|
</div>
|
|
|
|
<sqx-list-view [isLoading]="(state.isLoading | async) && indicateLoading" overflow="true">
|
|
<ng-container topHeader>
|
|
<div cdkDropListGroup>
|
|
<div class="folders" *ngIf="state.pathAvailable | async">
|
|
<ng-container *ngIf="(state.assetFolders | async)?.length > 0 || (state.parentFolder | async)">
|
|
<h5>{{ 'common.folders' | sqxTranslate }}</h5>
|
|
</ng-container>
|
|
|
|
<div class="row no-gutters">
|
|
<div class="folder-container" *ngIf="state.parentFolder | async; let parent"
|
|
cdkDropList
|
|
[cdkDropListData]="parent?.id"
|
|
(cdkDropListDropped)="move($event)">
|
|
<div class="folder-container-over"></div>
|
|
|
|
<sqx-asset-folder [assetFolder]="parent"
|
|
(navigate)="state.navigate($event.id)">
|
|
</sqx-asset-folder>
|
|
</div>
|
|
|
|
<div class="folder-container" *ngFor="let assetFolder of state.assetFolders | async; trackBy: trackByAssetItem"
|
|
cdkDropList cdkDropListSortingDisabled
|
|
[cdkDropListData]="assetFolder.id"
|
|
(cdkDropListDropped)="move($event)"
|
|
[cdkDropListEnterPredicate]="canEnter">
|
|
<div class="folder-container-over"></div>
|
|
|
|
<sqx-asset-folder [assetFolder]="assetFolder"
|
|
cdkDrag
|
|
[cdkDragData]="assetFolder"
|
|
[cdkDragDisabled]="isDisabled || !assetFolder.canMove"
|
|
(navigate)="state.navigate($event.id)" (delete)="deleteAssetFolder($event)">
|
|
</sqx-asset-folder>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<ng-container *ngIf="state.assets | async; let assets">
|
|
<ng-container *ngIf="assets.length > 0 || newFiles.length > 0">
|
|
<h5>{{ 'common.files' | sqxTranslate }}</h5>
|
|
</ng-container>
|
|
|
|
<div class="row no-gutters" [class.unrow]="isListView" *ngIf="state.tagsNames | async; let tags" (paste)="addFiles($event)"
|
|
cdkDropList
|
|
cdkDropListSortingDisabled>
|
|
<sqx-asset *ngFor="let file of newFiles"
|
|
[assetFile]="file"
|
|
[assetsState]="state"
|
|
[isListView]="isListView"
|
|
(loadError)="remove(file)"
|
|
(load)="add(file, $event)">
|
|
</sqx-asset>
|
|
|
|
<sqx-asset *ngFor="let asset of assets; trackBy: trackByAssetItem"
|
|
cdkDrag
|
|
[cdkDragData]="asset"
|
|
[cdkDragDisabled]="isDisabled || !asset.canMove"
|
|
[asset]="asset"
|
|
[assetsState]="state"
|
|
[isListView]="isListView"
|
|
[isDisabled]="isDisabled"
|
|
[isSelectable]="!!selectedIds"
|
|
[isSelected]="isSelected(asset)"
|
|
[allTags]="tags"
|
|
(select)="select.emit(asset)" (delete)="deleteAsset(asset)"
|
|
(selectFolder)="selectFolder(asset)">
|
|
</sqx-asset>
|
|
</div>
|
|
</ng-container>
|
|
</div>
|
|
</ng-container>
|
|
</sqx-list-view>
|
|
|
|
<ng-container *ngIf="showPager">
|
|
<sqx-pager [autoHide]="true" [pager]="state.assetsPager | async" (pagerChange)="state.setPager($event)"></sqx-pager>
|
|
</ng-container>
|