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/20 15:17:34 UTC

[incubator-dlab] branch develop updated: [DLAB-1818]: Adjusted columns in bucket browser (#761)

This is an automated email from the ASF dual-hosted git repository.

dgnatyshyn pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/develop by this push:
     new f4765cb  [DLAB-1818]: Adjusted columns in bucket browser (#761)
f4765cb is described below

commit f4765cb80a69650cf50749b5b327c15caa83f3d0
Author: Dmytro Gnatyshyn <42...@users.noreply.github.com>
AuthorDate: Wed May 20 18:17:27 2020 +0300

    [DLAB-1818]: Adjusted columns in bucket browser (#761)
    
    [DLAB-1818]: Added uploading limitation, fixed small bugs, fixed date, adjust columns in bucket browser
---
 .../bucket-browser/bucket-browser.component.html   |  54 ++++++-----
 .../bucket-browser/bucket-browser.component.scss   | 105 +++++++++++---------
 .../bucket-browser/bucket-browser.component.ts     |  27 +++++-
 .../bucket-confirmation-dialog.component.html      |   2 +-
 .../folder-tree/folder-tree.component.ts           |   1 -
 .../detail-dialog/detail-dialog.component.html     | 107 +++++++++++----------
 .../detail-dialog/detail-dialog.component.scss     |   6 +-
 .../detail-dialog/detail-dialog.component.ts       |  16 +--
 .../webapp/src/assets/styles/_dialogs.scss         |   6 +-
 9 files changed, 193 insertions(+), 131 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 292620b..a64b3df 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
@@ -27,8 +27,8 @@
   <div class="dialog-content tabs">
     <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)">
+      <span [matTooltip]="isQueueFull ? 'Previous upload is still in progress, please wait.' : 'You have not permission to upload data'" matTooltipPosition="above" matTooltipDisabled="{{this.bucketStatus.upload && !isQueueFull}}">
+        <button mat-raised-button type="button" class="butt first-btn" [disabled]="!this.bucketStatus.upload || allDisable || isSelectionOpened || !path || isQueueFull" (click)="handleFileInput($event)">
           <input [ngClass]="{'not-allowed': !this.bucketStatus.upload}" type="file" (change)="handleFileInput($event)" title="" multiple>
           Upload files
         </button>
@@ -184,7 +184,9 @@
                 </span>
               </div>
               <div class="size">{{file.object?.size | convertFileSize}}</div>
-              <div class="date" *ngIf="!file.isDownloading">{{file.object?.lastModifiedDate }}</div>
+              <div class="date" *ngIf="!file.isDownloading">{{convertDate(file.object?.lastModifiedDate) | date: 'dd/MM/yyyy hh:mm:ss aa'  }}</div>
+<!--              <div class="date" *ngIf="!file.isDownloading">{{file.object?.lastModifiedDate }}</div>-->
+
               <div class="progress-wrapper" *ngIf="file.isDownloading">
                 <div class="progres">
                   <span class="progress-bar-text">{{file.progress || 0}}% Downloading...</span>
@@ -206,15 +208,21 @@
     <div class="upload-window" *ngIf="addedFiles.length">
       <header class="upload-header">
         <h4 class="modal-title">Upload files</h4>
-        <button type="button" class="close" (click)="closeUploadWindow()">&times;</button>
+        <span class="close" matTooltip="Upload is still in progress, please wait." matTooltipPosition="above" [ngClass]="{'not-allow': isFileUploading}" [matTooltipDisabled]="!isFileUploading">
+           <button type="button" class="close" (click)="closeUploadWindow()" [disabled]="isFileUploading" [ngClass]="{'not-allow': isFileUploading}" >&times;</button>
+        </span>
+
       </header>
       <ul class="upload-files">
         <li class="file upload-table-header" *ngIf="addedFiles.length">
           <div class="name ellipsis" >File</div>
-          <div class="upload-path ellipsis">Path</div>
-          <div class="size">Size</div>
-          <div class="state"></div>
-          <div class="remove"></div>
+          <div class="second-block">
+            <div class="upload-path ellipsis">Path</div>
+            <div class="size">Size</div>
+            <div class="state"></div>
+            <div class="remove"></div>
+          </div>
+
         </li>
         <li *ngFor="let file of addedFiles" class="file">
           <div class="name">
@@ -227,23 +235,25 @@
               {{file.name}}
             </span>
           </div>
-          <div class="upload-path">
-            <span class="ellipsis" matTooltip="{{file.path}}" matTooltipPosition="above" [matTooltipClass]="'bucket-item-tooltip'">{{file.path}}</span>
-          </div>
-          <div class="size">{{file.size | convertFileSize}} </div>
-          <div class="state">
-<!--           <button mat-raised-button (click)="uploadNewFile(file)" *ngIf="!file.isUploading && !file.uploaded && !file.errorUploading">Upload</button>-->
-           <mat-progress-bar mode="indeterminate" *ngIf="file.isUploading"></mat-progress-bar>
-            <span *ngIf="file.status === 'uploaded'" class="running">Uploaded</span>
-            <div class="progres" *ngIf="file.status === 'uploading'">
-              <span class="progress-bar-text">{{file.progress || 0}}% Uploading...</span>
-              <div class="bar" [ngStyle]="{width: file.progress + '%'}">
+          <div class="second-block">
+            <div class="upload-path">
+              <span class="ellipsis" matTooltip="{{file.path}}" matTooltipPosition="above" [matTooltipClass]="'bucket-item-tooltip'">{{file.path}}</span>
+            </div>
+            <div class="size">{{file.size | convertFileSize}} </div>
+            <div class="state">
+              <!--           <button mat-raised-button (click)="uploadNewFile(file)" *ngIf="!file.isUploading && !file.uploaded && !file.errorUploading">Upload</button>-->
+              <!--           <mat-progress-bar mode="indeterminate" *ngIf="file.isUploading"></mat-progress-bar>-->
+              <span *ngIf="file.status === 'uploaded'" class="running">Uploaded</span>
+              <div class="progres" *ngIf="file.status === 'uploading'">
+                <span class="progress-bar-text">{{file.progress || 0}}% Uploading...</span>
+                <div class="bar" [ngStyle]="{width: file.progress + '%'}">
+                </div>
               </div>
+              <span *ngIf="file.status === 'failed'" class="error">Failed</span>
+              <span *ngIf="file.status === 'waiting'" class="stopped">Waiting for uploading...</span>
             </div>
-            <span *ngIf="file.status === 'failed'" class="error">Failed</span>
-            <span *ngIf="file.status === 'waiting'" class="stopped">Waiting for uploading...</span>
+            <div class="remove"><i (click)="deleteAddedFile(file)" class="material-icons close">delete</i></div>
           </div>
-          <div class="remove"><i (click)="deleteAddedFile(file)" class="material-icons close">close</i></div>
         </li>
         <li id="upload-list"></li>
       </ul>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss
index aee697d..1042584 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss
@@ -294,7 +294,7 @@
       max-height: 100%;
 
       .name{
-        flex:2;
+        width: 60%;
         display: flex;
         align-items: center;
         overflow: hidden;
@@ -326,7 +326,7 @@
       }
 
       .size{
-        flex:1;
+        width: 15%;
 
         &-folder{
           padding-left: 4px;
@@ -334,7 +334,7 @@
       }
 
       .date{
-        flex:1;
+        width: 25%;
 
         .th_date{
           font-size: 13px;
@@ -579,9 +579,11 @@ input[type='file'] {
 
   }
   .upload-files{
-    padding: 5px;
+    padding: 5px 0;
     height: calc(100% - 30px);
     overflow: auto;
+    overflow-y: overlay;
+    width: 100%;
     .file{
       padding: 2px;
       display: flex;
@@ -593,58 +595,71 @@ input[type='file'] {
       }
 
       .name{
-        width: 38%;
-        padding-right: 5px;
-        overflow: hidden;
+        width: 33.3%;
+        padding-left: 5px;
+        position: relative;
         display: flex;
+        span{
+          position: absolute;
+          width: calc(100% + 30px);
+        }
       }
 
-      .upload-path{
-        width: 38%;
-        padding-right: 5px;
+      .second-block{
+        width: 66.7%;
         display: flex;
-      }
+        padding: 0 14px 0 17px;
+        .upload-path{
+          width: 60%;
+          padding-left: 24px;
+          padding-right: 1%;
+          display: flex;
+        }
 
-      .size{
-        width: 7%;
-      }
-      .state{
-        width: 14%;
-        display: flex;
-        align-items: center;
-        .mat-raised-button{
-          width: 60px;
-          padding: 5px;
-          border-radius: 0;
-          font-style: normal;
-          font-weight: 600;
-          font-size: 11px;
-          font-family: "Open Sans", sans-serif;
-          color: #577289;
-          line-height: 8px;
+        .size{
+          width: 15%;
         }
-      }
-      .remove{
-        display: flex;
-        align-items: center;
-        width: 3%;
-        position: relative;
-        .close{
-          color: #577289;
-          font-size: 12px;
-          cursor: pointer;
+        .state{
+          width: 22%;
+          display: flex;
+          align-items: center;
+          .mat-raised-button{
+            width: 60px;
+            padding: 5px;
+            border-radius: 0;
+            font-style: normal;
+            font-weight: 600;
+            font-size: 11px;
+            font-family: "Open Sans", sans-serif;
+            color: #577289;
+            line-height: 8px;
+          }
+        }
+        .remove{
+          display: flex;
+          align-items: center;
+          width: 5%;
           position: absolute;
-          top: 3px;
-          right: 0;
-          height: 18px;
-          width: 14px;
-          transition: all 0.45s ease-in-out;
+          right: 20px;
+          .close{
+            color: #577289;
+            font-size: 12px;
+            cursor: pointer;
+            position: absolute;
+            top: 3px;
+            right: 0;
+            height: 18px;
+            width: 14px;
+            transition: all 0.45s ease-in-out;
 
-          &:hover{
-            color: #f1696e;
+            &:hover{
+              color: #f1696e;
+            }
           }
         }
       }
+
+
     }
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts
index 846aeea..da40a18 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts
@@ -55,11 +55,15 @@ export class BucketBrowserComponent implements OnInit {
   public folders: any[];
   public selectedItems;
   public searchValue: string;
+  public isQueueFull: boolean;
+  date = new Date(2020, 2, 2, 10, 57, 2);
 
   @ViewChild(FolderTreeComponent, {static: true}) folderTreeComponent;
   public isSelectionOpened: any;
   isFilterVisible: boolean;
   public buckets;
+  private isFileUploading: boolean;
+
 
 
 
@@ -83,6 +87,8 @@ export class BucketBrowserComponent implements OnInit {
     this.endpoint = this.data.endpoint;
     this.bucketStatus = this.data.bucketStatus;
     this.buckets = this.data.buckets;
+    const time = [...'2-02-2020 10:57:02'.split(' ')[0].split('-').reverse(), ...'2-02-2020 10:57:02'.split(' ')[1].split(':')].map(v => + v);
+    this.convertDate('2020-05-19T18:47:10');
   }
 
   public showItem(item) {
@@ -229,6 +235,7 @@ export class BucketBrowserComponent implements OnInit {
     } else {
       this.addedFiles.splice(this.addedFiles.indexOf(file), 1);
     }
+   this.sendFile();
   }
 
   private uploadNewFile(file) {
@@ -244,16 +251,23 @@ export class BucketBrowserComponent implements OnInit {
     this.sendFile(file);
   }
 
-  public sendFile(file) {
+  public sendFile(file?) {
     const waitUploading = this.addedFiles.filter(v => v.status === 'waiting');
     const uploading = this.addedFiles.filter(v => v.status === 'uploading');
+    this.isFileUploading = !!uploading.length;
+    this.isQueueFull = this.addedFiles.filter(v => v.status === 'uploading').length >= 9;
+    console.log(this.addedFiles.filter(v => v.status === 'uploading').length);
     if (waitUploading.length && uploading.length < 10) {
+      if (!file) {
+        file = waitUploading[0];
+      }
       file.status = 'uploading';
-
+      this.isFileUploading = true;
+      this.isQueueFull = this.addedFiles.filter(v => v.status === 'uploading').length === 10;
       file.subscr =  file.request.subscribe((event: any) => {
           if (event.type === HttpEventType.UploadProgress) {
-            file.progress = Math.round(99 * event.loaded / event.total);
-          } else if (event instanceof HttpResponse) {
+            file.progress = Math.round(95 * event.loaded / event.total);
+          } else if (event['type'] === HttpEventType.Response) {
             console.log('upload response');
             file.status = 'uploaded';
             delete file.request;
@@ -368,6 +382,11 @@ export class BucketBrowserComponent implements OnInit {
     this.searchValue = '';
     this.filterObjects();
   }
+
+  public convertDate(date) {
+    const utcDate = new Date(date);
+    return new Date(utcDate.setTime( utcDate.getTime() - utcDate.getTimezoneOffset() * 60 * 1000 ));
+  }
 }
 
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.html
index 0e33887..642e1e6 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.html
@@ -51,7 +51,7 @@
                      matTooltipShowDelay="1000"
                      [matTooltipClass]="'bucket-item-tooltip'">{{object['item']}}</div>
               </div>
-              <div  class="size">{{object['children'] ? '-' : object['object'].size}}</div>
+              <div  class="size">{{object['children'] ? '-' : object['object'].size | convertFileSize}}</div>
             </mat-list-item>
 
           </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts
index b1d7530..0dffae3 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts
@@ -221,7 +221,6 @@ export class FolderTreeComponent implements OnDestroy {
             this.resetForm();
             this.folderCreating = false;
             this.folderCreationParent = null;
-            // this.dataSource._flattenedData.getValue().slice()this.dataSource._flattenedData.getValue().filter(v => v.item === '')[0]
             this.dataSource._flattenedData.getValue().splice(this.dataSource._flattenedData.getValue().indexOf(this.dataSource._flattenedData.getValue().filter(v => v.item === '')[0]));
           }
         }, error => {
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 9f146c0..59cdba2 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
@@ -61,9 +61,7 @@
 
             <p class="m-top-30">{{ DICTIONARY[PROVIDER].personal_storage }}: &nbsp;</p>
             <!--                 (click)="bucketBrowser(notebook.bucket_name, notebook.endpoint, this.bucketStatus.view)"-->
-            <div class="links_block"
-                 (mouseleave)="isCopyIconVissible.project = false"
-            >
+            <div class="links_block" (mouseleave)="hideCopyIcon()">
               <span
                 [matTooltip]="!this.bucketStatus.view
                  ? 'You have not permission to open bucket'
@@ -76,68 +74,79 @@
                   <span
                     class="bucket-info bucket-link"
                     [ngClass]="{'not-allow': !this.bucketStatus.view || !this.isBucketAllowed}"
-                    (mouseover)="showCopyIcon('project')"
-                    (click)="bucketBrowser(notebook.account_name, notebook.endpoint, this.bucketStatus.view && this.isBucketAllowed)"
+                    (mouseover)="showCopyIcon()"
                   >
                     {{ notebook.account_name}}
                   </span>
-                  <span *ngIf="isCopyIconVissible.project" class="link-icon" (click)="copyBucketName(notebook.bucket_name)">
-                    <span class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>
+                  <span *ngIf="isCopyIconVissible" class="link-icon" (click)="copyBucketName(notebook.account_name)">
+                    <span class="material-icons" [matTooltip]="isCopied" matTooltipPosition="above">content_copy</span>
                   </span>
                 </p>
                 <p *ngIf="notebook.bucket_name">{{ DICTIONARY[PROVIDER].container }}
                   <span
-                    class="bucket-info bucket-link" [ngClass]="{'not-allow': !this.bucketStatus.view || !this.isBucketAllowed}"
-                    (mouseover)="showCopyIcon('project')"
-                    (click)="bucketBrowser(notebook.bucket_name, notebook.endpoint, this.bucketStatus.view && this.isBucketAllowed)"
+                    class="bucket-info"
+                    (mouseover)="showCopyIcon()"
                   >
+<!--                    (click)="bucketBrowser('ofuks-1304-pr2-local-bucket', notebook.endpoint, this.bucketStatus.view && this.isBucketAllowed)"-->
                     {{ notebook.bucket_name }}
                 </span>
-                  <span *ngIf="isCopyIconVissible.project" class="link-icon" (click)="copyBucketName(notebook.bucket_name)">
-                    <span _ngcontent-xpv-c19="" class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>
+
+                  <span  *ngIf="isCopyIconVissible" [matTooltip]="isCopied ? 'Copy bucket name' : 'Copied'" matTooltipPosition="above">
+                    <span  class="link-icon" (click)="copyBucketName(notebook.bucket_name);$event.stopPropagation()" >
+                    <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
+                  </span>
                   </span>
+
                 </p>
               </span>
             </div>
-            <p>Shared endpoint bucket: &nbsp;</p>
-            <div class="links_block"
-                 [matTooltip]="'You have not permission to open bucket'"
-                 matTooltipDisabled="{{this.bucketStatus.view}}"
-                 matTooltipPosition="above"
-                 [matTooltipClass]="'bucket-item-tooltip'"
-                 (mouseleave)="isCopyIconVissible.shared = false"
-            >
-              <p *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'azure' && notebook.shared_account_name">{{ DICTIONARY[PROVIDER].account }}
-                <span class="bucket-info bucket-link" [ngClass]="{'not-allow': !this.bucketStatus.view}" (mouseover)="showCopyIcon('shared')">{{ notebook.shared_account_name}}</span>
-                <span *ngIf="isCopyIconVissible.shared" class="link-icon" (click)="copyBucketName(notebook.shared_account_name)">
-                  <span _ngcontent-xpv-c19="" class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>
-                </span>
-              </p>
-              <p *ngIf="notebook.shared_bucket_name">{{ DICTIONARY[PROVIDER].container }}
-                <span
-                  class="bucket-info bucket-link"
-                  [ngClass]="{'not-allow': !this.bucketStatus.view}"
-                  (mouseover)="showCopyIcon('shared')"
-                  (click)="bucketBrowser(notebook.shared_bucket_name, notebook.endpoint, this.bucketStatus.view)"
-                >
-                  {{ notebook.shared_bucket_name }}
-                </span>
-                <span *ngIf="isCopyIconVissible.shared" class="link-icon" (click)="copyBucketName(notebook.notebook.shared_bucket_name)">
-                  <span _ngcontent-xpv-c19="" class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>
-                </span>
-              </p>
+            <div class="bucket-info bucket-link">
+              <span></span>
+              <span class="description open-bucket"
+                 [ngClass]="{'not-allow': !this.bucketStatus.view || !this.isBucketAllowed}"
+                (click)="bucketBrowser(notebook.bucket_name, notebook.endpoint, this.bucketStatus.view && this.isBucketAllowed)"
+              >
+                Open bucket browser
+              </span>
             </div>
-            <br />
+<!--            <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 bucket'"-->
+<!--                 matTooltipDisabled="{{this.bucketStatus.view}}"-->
+<!--                 matTooltipPosition="above"-->
+<!--                 [matTooltipClass]="'bucket-item-tooltip'"-->
+<!--            >-->
+<!--              <p *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'azure' && notebook.shared_account_name">{{ DICTIONARY[PROVIDER].account }}-->
+<!--                <span class="bucket-info bucket-link" [ngClass]="{'not-allow': !this.bucketStatus.view}" (mouseover)="showCopyIcon('shared')">{{ notebook.shared_account_name}}</span>-->
+<!--                <span *ngIf="isCopyIconVissible.shared" class="link-icon" (click)="copyBucketName(notebook.shared_account_name)">-->
+<!--                  <span _ngcontent-xpv-c19="" class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>-->
+<!--                </span>-->
+<!--              </p>-->
+<!--              <p *ngIf="notebook.shared_bucket_name">{{ DICTIONARY[PROVIDER].container }}-->
+<!--                <span-->
+<!--                  class="bucket-info bucket-link"-->
+<!--                  [ngClass]="{'not-allow': !this.bucketStatus.view}"-->
+<!--                  (mouseover)="showCopyIcon('shared')"-->
+<!--                  (click)="bucketBrowser(notebook.shared_bucket_name, notebook.endpoint, this.bucketStatus.view)"-->
+<!--                >-->
+<!--                  {{ notebook.shared_bucket_name }}-->
+<!--                </span>-->
+<!--                <span *ngIf="isCopyIconVissible.shared" class="link-icon" (click)="copyBucketName(notebook.shared_bucket_name)">-->
+<!--                  <span _ngcontent-xpv-c19="" class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>-->
+<!--                </span>-->
+<!--              </p>-->
+<!--            </div>-->
+<!--            <br />-->
 
-            <div *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'azure' && notebook.datalake_name">
-              <p>Data Lake Store: &nbsp;</p>
-              <div class="links_block">
-                <p>Data Lake Store Account: &nbsp;<span class="bucket-info">{{ notebook.datalake_name }}</span></p>
-                <p>Personal folder: &nbsp;<span class="bucket-info">{{ notebook.datalake_directory }}</span></p>
-                <p>Collaboration folder: &nbsp;<span class="bucket-info">{{ notebook.datalake_shared_directory }}</span>
-                </p>
-              </div>
-            </div>
+<!--            <div *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'azure' && notebook.datalake_name">-->
+<!--              <p>Data Lake Store: &nbsp;</p>-->
+<!--              <div class="links_block">-->
+<!--                <p>Data Lake Store Account: &nbsp;<span class="bucket-info">{{ notebook.datalake_name }}</span></p>-->
+<!--                <p>Personal folder: &nbsp;<span class="bucket-info">{{ notebook.datalake_directory }}</span></p>-->
+<!--                <p>Collaboration folder: &nbsp;<span class="bucket-info">{{ notebook.datalake_shared_directory }}</span>-->
+<!--                </p>-->
+<!--              </div>-->
+<!--            </div>-->
 
             <!-- <p>
               <a href="#/help/accessnotebookguide" target="_blank">
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.scss
index 4efbc78..2779633 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.scss
@@ -85,11 +85,15 @@
   padding-left: 7px;
   font-weight: 600;
   color: $blue-grey-color;
-  cursor: pointer;
 }
 
 .bucket-link{
+  padding: 15px;
+  padding-left: 0;
   color: #35afd5;
+  .open-bucket{
+    cursor: pointer;
+  }
   &.not-allow{
     cursor: not-allowed;
     color: $blue-grey-color;
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
index 1ed64a1..b78ee1e 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
@@ -38,6 +38,7 @@ import {CopyPathUtils} from '../../../core/util/copyPathUtils';
 export class DetailDialogComponent implements OnInit {
   readonly DICTIONARY = DICTIONARY;
   readonly PROVIDER = this.data.notebook.cloud_provider;
+  private isCopied: boolean = true;
   notebook: any;
   upTimeInHours: number;
   upTimeSince: string = '';
@@ -45,15 +46,13 @@ export class DetailDialogComponent implements OnInit {
   config: Array<{}> = [];
   bucketStatus: object = {};
   isBucketAllowed = true;
-  isCopyIconVissible = {
-    project: false,
-    shared: false
-  };
+  isCopyIconVissible = false;
 
   public configurationForm: FormGroup;
 
   @ViewChild('configurationNode', { static: false }) configuration;
 
+
   constructor(
     @Inject(MAT_DIALOG_DATA) public data: any,
     private dataengineConfigurationService: DataengineConfigurationService,
@@ -142,12 +141,15 @@ export class DetailDialogComponent implements OnInit {
     .afterClosed().subscribe();
   }
 
-  protected showCopyIcon(bucket) {
-    this.isCopyIconVissible[bucket] = true;
+  protected showCopyIcon() {
+    this.isCopyIconVissible = true;
+  }
+  protected hideCopyIcon() {
+    this.isCopyIconVissible = false;
+    this.isCopied = true;
   }
 
   protected copyBucketName(copyValue) {
     CopyPathUtils.copyPath(copyValue);
-    this.toastr.success('Bucket name successfully copied!', 'Success!');
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss b/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss
index c5b0655..3dddb7d 100644
--- a/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss
+++ b/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss
@@ -372,7 +372,7 @@ mat-dialog-container {
   border: 1px solid rgba(0,0,0,.12);
   height: 17px;
   position: relative;
-  width: 100%;
+  width: 155px;
 
   .bar{
     position: absolute;
@@ -395,6 +395,10 @@ mat-dialog-container {
   }
 }
 
+.not-allow{
+  cursor: not-allowed !important;
+}
+
 
 @media screen and (max-width: 1280px) {
   .modal-fullscreen {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org