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/28 16:57:41 UTC

[incubator-dlab] branch develop updated: [DLAB-1840]: Implemented set tasks concerning download (#768)

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 f731c4c  [DLAB-1840]: Implemented set tasks concerning download (#768)
f731c4c is described below

commit f731c4cd913e4141b71901cd5c63450f1260bb1b
Author: Dmytro Gnatyshyn <42...@users.noreply.github.com>
AuthorDate: Thu May 28 19:57:31 2020 +0300

    [DLAB-1840]: Implemented set tasks concerning download (#768)
    
    [DLAB-1840]: Implemented set tasks concerning download
---
 .../manage-environment-dilog.component.ts              |  1 -
 .../reporting-grid/reporting-grid.component.html       |  2 +-
 .../bucket-browser/bucket-browser.component.html       |  5 ++---
 .../bucket-browser/bucket-browser.component.scss       |  4 ++++
 .../bucket-browser/bucket-browser.component.ts         | 18 ++++++++++--------
 .../resources/bucket-browser/bucket-data.service.ts    | 18 ++++++++++++------
 .../buckets-tree/bucket-tree.component.ts              |  1 -
 .../folder-tree/folder-tree.component.ts               | 15 +++++----------
 .../cluster-details/cluster-details.component.ts       |  2 --
 .../detail-dialog/detail-dialog.component.ts           |  2 --
 .../resources-grid/resources-grid.component.ts         |  8 --------
 .../webapp/src/app/resources/resources.component.html  |  4 ++--
 12 files changed, 36 insertions(+), 44 deletions(-)

diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
index 5187fa0..0b405be 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
@@ -90,7 +90,6 @@ export class ManageEnvironmentComponent implements OnInit {
   }
 
   public setProjectsControl() {
-    console.log(this.data.projectsList);
     this.manageUsersForm.setControl('projects',
       this._fb.array((this.data.projectsList || []).map((x: any) => this._fb.group({
         project: x.name,
diff --git a/services/self-service/src/main/resources/webapp/src/app/reporting/reporting-grid/reporting-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/reporting/reporting-grid/reporting-grid.component.html
index 537cbb5..577e2d4 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reporting/reporting-grid/reporting-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/reporting/reporting-grid/reporting-grid.component.html
@@ -22,7 +22,7 @@
 
     <ng-container matColumnDef="name">
       <th mat-header-cell *matHeaderCellDef class="env_name label-header">
-        <div class="label"><span class="text"> Environment name</span></div>
+        <div class="label"><span class="text"> Resource name</span></div>
         <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
           <i class="material-icons">
             <span *ngIf="filteredReportData.dlab_id.length > 0; else dlab_id_filtered">filter_list</span>
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 8dcf4bd..7628c09 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
@@ -150,7 +150,7 @@
           </div>
         </div>
         <ul class="folder-tree">
-          <li *ngFor="let file of folderItems" class="folder-item" >
+          <li *ngFor="let file of folderItems" class="folder-item" [ngClass]="{'events-none': file.isDownloading }">
             <div class="folder-item-wrapper" *ngIf="file.children && file.item" (click)="showItem(file)">
               <div class="name name-folder">
 <!--                <span *ngIf="this.bucketStatus.delete" class="empty-checkbox" [ngClass]="{'checked': file.isFolderSelected}" (click)="toggleSelectedFile(file, 'folder');$event.stopPropagation()" >-->
@@ -173,14 +173,13 @@
             <div class="folder-item-wrapper"  (click)="toggleSelectedFile(file, 'file')" *ngIf="!file.children && file.item !== 'ا'">
               <div class="name name-file">
 
-                 <span class="empty-checkbox" [ngClass]="{'checked': file.isSelected}" (click)="toggleSelectedFile(file, 'file');$event.stopPropagation()" >
+                 <span class="empty-checkbox" [ngClass]="{'checked': file.isSelected, 'not-allowed': file.isDownloading}" (click)="toggleSelectedFile(file, 'file');$event.stopPropagation()" >
                     <span class="checked-checkbox" *ngIf="file.isSelected"></span>
                   </span>
                 <i class="material-icons folder-icon" >description</i>
 
                 <span
                   class="item-name name-wrap"
-
                   matTooltip="{{file.item}}"
                   matTooltipPosition="above"
                   matTooltipShowDelay="1000"
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 1787011..fbdf05b 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
@@ -661,6 +661,10 @@ input[type='file'] {
   }
 }
 
+.events-none{
+  pointer-events: none;
+}
+
 @media only screen and (max-height: 920px) {
   .bucket-wrapper {
     height: 55vh;
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 3172850..d08bdad 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
@@ -56,7 +56,8 @@ export class BucketBrowserComponent implements OnInit {
   public selectedItems;
   public searchValue: string;
   public isQueueFull: boolean;
-  public refreshTokenLimit = 300000;
+  // public refreshTokenLimit = 900000;
+  public refreshTokenLimit = 3580000;
   private isTokenRefreshing = false;
 
 
@@ -100,7 +101,8 @@ export class BucketBrowserComponent implements OnInit {
 
   private refreshToken() {
     this.isTokenRefreshing = true;
-    this.auth.refreshToken().subscribe(v => {
+    this.auth.refreshToken().subscribe(tokens => {
+      this.storage.storeTokens(tokens);
       this.isTokenRefreshing = false;
     });
     this.sendFile();
@@ -231,7 +233,7 @@ export class BucketBrowserComponent implements OnInit {
     }
     this.folderItems = event.element ? event.element.children : event.children;
     if (this.folderItems) {
-      this.folders = this.folderItems.filter(v => v.children).sort((a, b) => a.item > b.item ? 1 : -1);
+      this.folders = this.folderItems.filter(v => v.children);
       const files = this.folderItems.filter(v => !v.children).sort((a, b) => a.item > b.item ? 1 : -1);
       this.folderItems = [...this.folders, ...files];
       this.objectPath = event.pathObject;
@@ -293,6 +295,7 @@ export class BucketBrowserComponent implements OnInit {
     const uploading = this.addedFiles.filter(v => v.status === 'uploading');
     this.isQueueFull = !!waitUploading.length;
     this.isFileUploading = !!this.addedFiles.filter(v => v.status === 'uploading').length;
+    console.log((this.getTokenValidTime() / 1000 / 60 ).toFixed(0) + ' minutes');
     if ((this.refreshTokenLimit > this.getTokenValidTime()) && !this.isTokenRefreshing) {
       this.refreshToken();
     }
@@ -352,8 +355,11 @@ export class BucketBrowserComponent implements OnInit {
     const selected = this.folderItems.filter(item => item.isSelected);
     const folderSelected = this.folderItems.filter(item => item.isFolderSelected);
     if (action === 'download') {
-      const path = encodeURIComponent(`${this.pathInsideBucket}${this.selected[0].item}`);
+      this.clearSelection();
+      this.isActionsOpen = false;
+      const path = encodeURIComponent(`${this.pathInsideBucket}${selected[0].item}`);
       selected[0]['isDownloading'] = true;
+      this.folderItems.forEach(item => item.isSelected = false);
       this.bucketBrowserService.downloadFile(`/${this.bucketName}/object/${path}/endpoint/${this.endpoint}/download`)
         .subscribe(event =>  {
             if (event['type'] === HttpEventType.DownloadProgress) {
@@ -365,10 +371,7 @@ export class BucketBrowserComponent implements OnInit {
                 selected[0]['isDownloading'] = false;
                 selected[0].progress = 0;
               }, 1000);
-
-              this.folderItems.forEach(item => item.isSelected = false);
             }
-
         }, error => {
             this.toastr.error(error.message || 'File downloading error!', 'Oops!');
             selected[0]['isDownloading'] = false;
@@ -399,7 +402,6 @@ export class BucketBrowserComponent implements OnInit {
         });
       });
 
-
     }
   }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-data.service.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-data.service.ts
index 003e615..e6640a8 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-data.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-data.service.ts
@@ -44,7 +44,7 @@ export class BucketDataService {
 
      this.serverData = v;
      if (this.emptyFolder) {
-       copiedData.push(this.emptyFolder);
+       copiedData.unshift(this.emptyFolder);
      }
      backetData = this.convertToFolderTree(copiedData);
      const data = this.buildFileTree({[bucket]: backetData}, 0);
@@ -84,13 +84,19 @@ export class BucketDataService {
     }
 
   public insertItem(parent: TodoItemNode, name, isFile, emptyFolderObj?) {
-      if (parent.children) {
+    if (parent.children) {
         if (isFile) {
-          parent.children.push(name as TodoItemNode);
+          parent.children.unshift(name as TodoItemNode);
         } else {
-          parent.children.push({item: '', children: [], object: {}} as TodoItemNode);
-          this.emptyFolder = emptyFolderObj;
-          this._bucketData.next(this.data);
+          if (name) {
+            const child = {item: name, children: [], object: JSON.parse(JSON.stringify(parent.object))};
+            child.object.object = child.object.object.slice(0, -1) + child.item + '/';
+            parent.children.unshift(child as TodoItemNode);
+          } else {
+            parent.children.unshift({item: '', children: [], object: {}} as TodoItemNode);
+            this.emptyFolder = emptyFolderObj;
+            this._bucketData.next(this.data);
+          }
         }
       }
     }
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 3a21dce..ed222f6 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
@@ -53,7 +53,6 @@ export class BucketTreeComponent implements OnInit {
     this.activeBucketName = this.openedBucket || '';
     this.dataSource.data = this.buckets;
     this.setActiveBucket();
-    console.log(this.treeControl);
   }
 
   public openBucketData(bucket) {
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 93dabb7..7d69682 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
@@ -53,7 +53,6 @@ export class FolderTreeComponent implements OnDestroy {
     this.treeControl = new FlatTreeControl<TodoItemFlatNode>(this.getLevel, this.isExpandable);
     this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
     this.subscriptions.add(this.bucketDataService._bucketData.subscribe(data => {
-
       if (data) {
         this.dataSource.data = data;
         const subject = this.dataSource._flattenedData;
@@ -212,7 +211,7 @@ private addNewItem(node: TodoItemFlatNode, file, isFile) {
     if (flatObject.indexOf('ا') === flatObject.length - 1) {
       flatObject = flatObject.substring(0, flatParent.object.object.length - 1);
     }
-    const path = `${ flatParent.object ? flatObject : ''}${itemValue}/`;
+    const path = `${ flatParent.object && flatObject !== '/' ? flatObject : ''}${itemValue}/`;
     const bucket = flatParent.object ? flatParent.object.bucket : flatParent.item;
     const formData = new FormData();
     formData.append('file', '');
@@ -223,20 +222,16 @@ private addNewItem(node: TodoItemFlatNode, file, isFile) {
     this.bucketBrowserService.uploadFile(formData)
       .subscribe((event) => {
           if (event instanceof HttpResponse) {
-            this.bucketDataService.refreshBucketdata(bucket, this.endpoint);
+            this.bucketDataService.insertItem(flatParent, itemValue, false);
+            // this.bucketDataService.refreshBucketdata(bucket, this.endpoint);
             this.toastr.success('Folder successfully created!', 'Success!');
-            this.resetForm();
             this.folderCreating = false;
-            this.dataSource._flattenedData.getValue()
-              .splice(this.dataSource._flattenedData.getValue()
-                .indexOf(this.dataSource._flattenedData
-                  .getValue().filter(v => v.item === '')[0]));
+            this.removeItem(node);
           }
         }, error => {
           this.folderCreating = false;
           this.toastr.error(error.message || 'Folder creation error!', 'Oops!');
-        }
-      );
+        });
   }
 
   private resetForm() {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts
index 11002e1..6180f96 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts
@@ -57,8 +57,6 @@ export class DetailComputationalResourcesComponent implements OnInit {
 
   ngOnInit() {
     this.open(this.data.environment, this.data.resource);
-
-    console.log(this.PROVIDER);
   }
 
   public open(environment, resource): void {
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 9468157..211ab56 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
@@ -65,7 +65,6 @@ export class DetailDialogComponent implements OnInit {
   }
 
   ngOnInit() {
-    console.log(this.data.notebook);
     this.bucketStatus = this.data.bucketStatus;
     this.notebook = this.data.notebook;
     if (this.notebook) {
@@ -136,7 +135,6 @@ export class DetailDialogComponent implements OnInit {
   }
 
   public bucketBrowser(bucketName, endpoint, permition): void {
-    // bucketName = 'ofuks-1304-pr2-local-bucket';
     bucketName = this.isBucketAllowed ? this.notebook.bucket_name : this.data.buckets[0].children[0].name;
     permition && this.dialog.open(BucketBrowserComponent, { data:
         {bucket: bucketName, endpoint: endpoint, bucketStatus: this.bucketStatus, buckets: this.data.buckets},
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 9003974..83babee 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
@@ -110,13 +110,6 @@ export class ResourcesGridComponent implements OnInit {
   public getUserProjects() {
     this.projectService.getUserProjectsList(true).subscribe((projects: any) => {
       this.activeProjectsList = projects;
-      console.log(projects);
-      // console.log(projects);
-      // const activeProject = projects.find(item => item.name === this.resourceGrid.activeProject);
-      // if (this.resourceGrid.activeProject && activeProject) {
-      //   this.setEndpoints(activeProject);
-      //   this.createExploratoryForm.controls['project'].setValue(activeProject.name);
-      // }
     });
   }
 
@@ -271,7 +264,6 @@ export class ResourcesGridComponent implements OnInit {
 
     if (filteredData.length) this.filtering = true;
     if (config) {
-      console.log(config);
       this.activeProject = config.project;
       filteredData = filteredData
         .filter(project => config.project ? project.project === config.project : project)
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 50c91c2..d028240 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
@@ -23,12 +23,12 @@
       <span
         matTooltip="{{!healthStatus?.projectAssigned ? 'You are not assigned to any project' : 'You have not any active project'}}"
         matTooltipPosition="above"
-        matTooltipDisabled="{{healthStatus?.projectAssigned && resourcesGrid.activeProjectsList.length}}"
+        matTooltipDisabled="{{healthStatus?.projectAssigned && resourcesGrid.activeProjectsList?.length}}"
         [matTooltipClass]="'bucket-item-tooltip'"
       >
         <span>{{resourcesGrid.activeProject}}</span>
       <button mat-raised-button class="butt butt-create" (click)="createEnvironment()"
-        [disabled]="!healthStatus?.projectAssigned || !resourcesGrid.activeProjectsList.length">
+        [disabled]="!healthStatus?.projectAssigned || !resourcesGrid.activeProjectsList?.length">
         <i class="material-icons">add</i>Create new
       </button>
       </span>


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