This is an automated email from the ASF dual-hosted git repository. dgnatyshyn pushed a commit to branch DLAB-1738 in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/DLAB-1738 by this push: new 47ada98 [DLAB-1738]: Added bucket browser to resource page 47ada98 is described below commit 47ada989df9a3337d950fa3882db95252e30a62a Author: Dmytro Gnatyshyn <di1...@ukr.net> AuthorDate: Thu May 14 19:28:30 2020 +0300 [DLAB-1738]: Added bucket browser to resource page --- .../bucket-browser/bucket-browser.component.html | 13 ++++++------- .../buckets-tree/bucket-tree.component.html | 10 ++++++++-- .../buckets-tree/bucket-tree.component.ts | 2 ++ .../detail-dialog/detail-dialog.component.html | 4 ++-- .../resources-grid/resources-grid.component.ts | 17 ++++++++++++----- .../webapp/src/app/resources/resources.component.html | 8 +++++++- .../webapp/src/app/resources/resources.component.ts | 13 ++++++++++--- 7 files changed, 47 insertions(+), 20 deletions(-) diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.html index d8c109e..f920928 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.html +++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.html @@ -28,7 +28,7 @@ <div class="submit m-bott-10 m-top-10"> <div class="left-side-butts"> <span [matTooltip]="'You have not permission to upload data'" matTooltipPosition="above" matTooltipDisabled="{{this.bucketStatus.upload}}"> - <button mat-raised-button type="button" class="butt first-btn" [disabled]="!this.bucketStatus.upload || allDisable || isSelectionOpened || !path" (click)="handleFileInput($event)"> + <button mat-raised-button type="button" class="butt first-btn" [disabled]="!this.bucketStatus.upload || allDisable || isSelectionOpened || !path || isSelectionOpened" (click)="handleFileInput($event)"> <input [ngClass]="{'not-allowed': !this.bucketStatus.upload}" type="file" (change)="handleFileInput($event)" title="" multiple> Upload files </button> @@ -39,7 +39,7 @@ type="button" class="butt" (click)="createFolder(selectedFolder)" - [disabled]="!this.bucketStatus.upload || allDisable || !path" + [disabled]="!this.bucketStatus.upload || allDisable || !path || isSelectionOpened" > Create folder </button> @@ -50,7 +50,7 @@ class="butt" mat-raised-button (click)="fileAction('delete')" - [disabled]="(!selected?.length && !selectedFolderForAction?.length) || !this.bucketStatus.delete || allDisable || !path" + [disabled]="(!selected?.length && !selectedFolderForAction?.length) || !this.bucketStatus.delete || allDisable || !path || isSelectionOpened" > Delete </button> @@ -60,7 +60,7 @@ <button type="button" class="butt actions-btn" mat-raised-button - [disabled]=" selectedItems?.length !== 1 || allDisable || !path" + [disabled]=" selectedItems?.length !== 1 || allDisable || !path || isSelectionOpened" (click)="toogleActions();$event.stopPropagation()" > Actions <i class="material-icons" >{{ !isActionsOpen ? 'expand_more' : 'expand_less' }}</i> @@ -70,7 +70,7 @@ <button type="button" class="butt action-menu-item" mat-raised-button - [disabled]=" !selected?.length || this.selectedItems?.length > 1 || !this.bucketStatus.download || allDisable " + [disabled]=" !selected?.length || this.selectedItems?.length > 1 || !this.bucketStatus.download || allDisable || isSelectionOpened" (click)="fileAction('download');$event.stopPropagation()" > Download @@ -152,7 +152,6 @@ <div class="date"><span class="th_date">Last modified</span></div> </div> </div> -<!-- <ul class="folder-tree" *ngIf="!addedFiles.length">--> <ul class="folder-tree"> <li *ngFor="let file of folderItems" class="folder-item" > <div class="folder-item-wrapper" *ngIf="file.children && file.item" (click)="showItem(file)"> @@ -204,7 +203,7 @@ </div> <div class="loading-block" *ngIf="!path"> <div class="uploading"> - <p>Please wait until DLab loads bucket: <span class="strong">{{data.bucket}}</span>...</p> + <p>Please wait until DLab loads bucket: <span class="strong">{{bucketName}}</span>...</p> <mat-progress-bar mode="indeterminate"></mat-progress-bar> </div> </div> diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.html index d80891d..8d5e04b 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.html +++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.html @@ -3,9 +3,15 @@ *matTreeNodeDef="let node" matTreeNodePadding matTreeNodePaddingIndent="17" (click)="openBucketData(node)" - [ngClass]="{'active-item': activeBacket === node, 'd-none': !node.name}"> + [ngClass]="{'active-item': activeBacket === node}"> <button mat-icon-button disabled></button> - {{node.name}} + <div + class="ellipsis" + matTooltip="{{node.name}}" + matTooltipPosition="above" + matTooltipShowDelay="1000" + [matTooltipClass]="'bucket-item-tooltip'" + >{{node.name}}</div> </mat-tree-node> <mat-tree-node *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding matTreeNodePaddingIndent="17"> <button mat-icon-button matTreeNodeToggle diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.ts index b093a84..2b3006b 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.ts +++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.ts @@ -54,7 +54,9 @@ export class BucketTreeComponent implements OnInit { this.dataSource.data = this.buckets; this.setActiveBucket(); } + public openBucketData(bucket) { + this.dataSource['_treeControl'].collapseAll(); this.setActiveBucket(bucket); this.emitActiveBucket.emit(bucket); } diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html index 024bb1e..e8b0ad1 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html +++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html @@ -66,7 +66,7 @@ > <span [matTooltip]="!this.bucketStatus.view - ? 'You have not permission to open project bucket' + ? 'You have not permission to open bucket' : 'The bucket ' + notebook.bucket_name + ' is deleted. To start working with data choose available bucket.'" matTooltipDisabled="{{this.bucketStatus.view && this.isBucketAllowed}}" matTooltipPosition="above" @@ -79,7 +79,7 @@ </div> <p>Shared endpoint bucket: </p> <div class="links_block" (click)="bucketBrowser(notebook.shared_bucket_name, notebook.endpoint, this.bucketStatus.view)" - [matTooltip]="'You have not permission to open shared endpoint bucket'" + [matTooltip]="'You have not permission to open bucket'" matTooltipDisabled="{{this.bucketStatus.view}}" matTooltipPosition="above" [matTooltipClass]="'bucket-item-tooltip'" diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts index 4aa1fa1..2a2c49f 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts +++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts @@ -338,13 +338,20 @@ export class ResourcesGridComponent implements OnInit { return Object.keys(project.projectEndpoints).map(key => { const currEndpoint = project.projectEndpoints[key]; const provider: string = project.endpoints.filter(endpoint => endpoint['name'] === key)[0]['cloudProvider']; - return {name: `${project.project}(${key})`, children: [ - {name: currEndpoint[this.DICTIONARY[provider.toLowerCase()].bucket_name], endpoint: key}, - {name: currEndpoint[DICTIONARY[provider.toLowerCase()].shared_bucket_name], endpoint: key} - ]}; + const edgeItem = {name: `${project.project}(${key})`, children: []}; + const projectBucket = currEndpoint[this.DICTIONARY[provider.toLowerCase()].bucket_name]; + const sharedBucket = currEndpoint[this.DICTIONARY[provider.toLowerCase()].shared_bucket_name]; + if (projectBucket) { + edgeItem.children.push({name: projectBucket, endpoint: key}); + } + if (sharedBucket) { + edgeItem.children.push({name: sharedBucket, endpoint: key}); + } + return edgeItem; }); }); - this.bucketsList = SortUtils.flatDeep(bucketsList, 1); + this.bucketsList = SortUtils.flatDeep(bucketsList, 1).filter(v => v.children.length); + console.log(this.bucketsList.filter(v => v.children.length)); } private getUserPreferences(): void { diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html index 06c6f7f..2eda7db 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html +++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html @@ -46,9 +46,15 @@ </div> <div> - <button mat-raised-button class="butt butt-tool" (click)="bucketBrowser('ofuks-1304-pr2-local-bucket', 'local', true)"> + <span matTooltip="{{!this.bucketStatus?.view ? 'You have not permission to open bucket browser' : 'You have not any buckets'}}" + matTooltipPosition="above" + matTooltipDisabled="{{resourcesGrid.bucketsList?.length > 0 || !this.bucketStatus?.view}}" + [matTooltipClass]="'bucket-item-tooltip'" + > + <button mat-raised-button class="butt butt-tool" (click)="bucketBrowser(this.bucketStatus?.view)" [disabled]="!this.bucketStatus?.view || resourcesGrid.bucketsList?.length === 0"> <i class="material-icons"></i>Bucket browser </button> + </span> <button mat-raised-button class="butt butt-tool" (click)="manageUngit()"> <i class="material-icons"></i>Git credentials </button> diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts index 50b6c9d..3878b33 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts +++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts @@ -41,7 +41,7 @@ export class ResourcesComponent implements OnInit { projects: Project[] = []; @ViewChild(ResourcesGridComponent, { static: true }) resourcesGrid: ResourcesGridComponent; - private bucketStatus: ((bucketName, endpoint, permition) => void) | Object; + private bucketStatus; constructor( public toastr: ToastrService, @@ -82,9 +82,15 @@ export class ResourcesComponent implements OnInit { .afterClosed().subscribe(() => this.refreshGrid()); } - public bucketBrowser(bucketName, endpoint, permition): void { + public bucketBrowser(permition): void { + const defaultBucket = this.resourcesGrid.bucketsList[0].children[0]; permition && this.dialog.open(BucketBrowserComponent, { data: - {bucket: this.resourcesGrid.bucketsList[0].children[0].name, endpoint: endpoint, bucketStatus: this.bucketStatus, buckets: this.resourcesGrid.bucketsList}, + { + bucket: defaultBucket.name, + endpoint: defaultBucket.endpoint, + bucketStatus: this.bucketStatus, + buckets: this.resourcesGrid.bucketsList + }, panelClass: 'modal-fullscreen' }) .afterClosed().subscribe(); } @@ -113,6 +119,7 @@ export class ResourcesComponent implements OnInit { this.healthStatus = result; this.resourcesGrid.healthStatus = this.healthStatus; this.bucketStatus = this.healthStatus.bucketBrowser; + console.log(this.bucketStatus); }, error => this.toastr.error(error.message, 'Oops!')); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org