You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by dg...@apache.org on 2020/05/14 16:29:03 UTC

[incubator-dlab] branch DLAB-1738 updated: [DLAB-1738]: Added bucket browser to resource page

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 <di...@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: &nbsp;</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-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org