You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datalab.apache.org by dg...@apache.org on 2021/01/22 15:45:41 UTC

[incubator-datalab] branch develop updated: [DATALAB-2254]: Fixed delete/upload action on bucket browser on Azure (#1047)

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-datalab.git


The following commit(s) were added to refs/heads/develop by this push:
     new 5b836bd  [DATALAB-2254]: Fixed delete/upload action on bucket browser on Azure (#1047)
5b836bd is described below

commit 5b836bdadd5f191ef7f3cb77260585f19a297b29
Author: Dmytro Gnatyshyn <42...@users.noreply.github.com>
AuthorDate: Fri Jan 22 17:45:33 2021 +0200

    [DATALAB-2254]: Fixed delete/upload action on bucket browser on Azure (#1047)
    
    [DATALAB-2254]: Fixed relocation after actions on bucket browser on Azure
---
 .../bucket-browser/bucket-data.service.ts          | 51 +++++++++++-----------
 .../folder-tree/folder-tree.component.ts           | 28 ++++++++----
 .../install-libraries.component.ts                 |  2 +-
 3 files changed, 47 insertions(+), 34 deletions(-)

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 8573105..bf168ca 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
@@ -146,8 +146,9 @@ export class BucketDataService {
           parent.children.unshift(name as TodoItemNode);
         } else {
           if (name) {
+            console.log('parentObject', parent.object);
             const child = {item: name, children: [], object: JSON.parse(JSON.stringify(parent.object))};
-            child.object.object = child.object.object.slice(0, -1) + child.item + '/';
+            child.object.object = child.object.object.replace(/ا/g, '') + child.item + '/';
             parent.children.unshift(child as TodoItemNode);
           } else {
             parent.children.unshift({item: '', children: [], object: {}} as TodoItemNode);
@@ -166,35 +167,35 @@ export class BucketDataService {
   public removeItem(parent, child) {
      parent.children.splice( parent.children.indexOf(child), 1);
      this._bucketData.next(this.data);
-    }
+  }
 
-    public processFiles = (files, target, object) => {
-      let pointer = target;
-      files.forEach((file) => {
-        if (!pointer[file]) {
-          pointer[file] = {};
-        }
-        pointer = pointer[file];
-        if (!pointer.obj) {
-          pointer.obj = object;
-        }
+  public processFiles = (files, target, object) => {
+    let pointer = target;
+    files.forEach((file) => {
+      if (!pointer[file]) {
+        pointer[file] = {};
+      }
+      pointer = pointer[file];
+      if (!pointer.obj) {
+        pointer.obj = object;
+      }
 
-      });
-    }
+    });
+  }
 
-    public processFolderArray = (acc, curr) => {
-      const files = curr.object.split('/');
-      this.processFiles(files, acc, curr);
+  public processFolderArray = (acc, curr) => {
+    const files = curr.object.split('/');
+    this.processFiles(files, acc, curr);
 
-      return acc;
-    }
+    return acc;
+  }
 
-    public convertToFolderTree = (data) => {
-      const finalData = data.reduce(this.processFolderArray, {});
-      if (Object.keys(finalData).length === 0) {
-        return '';
-      }
-      return finalData;
+  public convertToFolderTree = (data) => {
+    const finalData = data.reduce(this.processFolderArray, {});
+    if (Object.keys(finalData).length === 0) {
+      return '';
     }
+    return finalData;
+  }
 
 }
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 698491d..1721bbc 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
@@ -73,19 +73,26 @@ export class FolderTreeComponent implements OnDestroy {
     this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
     this.subscriptions.add(this.bucketDataService._bucketData.subscribe(data => {
       if (data) {
-        console.log('BeforeDATA', this.dataSource.data);
         this.dataSource.data = data;
-        console.log('AfterDATA', data);
         const subject = this.dataSource._flattenedData;
         const subjectData = subject.getValue();
-        console.log('selectedFolderBefore', this.selectedFolder);
-        console.log('subjectData', subjectData);
+        console.log('selected', this.selectedFolder);
+        console.log('data', subjectData);
           if (this.selectedFolder) {
-            console.log(this.cloud);
-            this.selectedFolder = subjectData.find(v => v.item === this.selectedFolder.item &&
-              v.level === this.selectedFolder.level && v.obj === this.selectedFolder.obj);
+            if (this.cloud !== 'azure') {
+              this.selectedFolder = subjectData.find(v => v.item === this.selectedFolder.item &&
+                v.level === this.selectedFolder.level && v.obj === this.selectedFolder.obj);
+            } else {
+              const selectedFolderPath = this.selectedFolder.obj.slice(0, this.selectedFolder.obj.lastIndexOf('/') + 1);
+              this.selectedFolder = subjectData.find(v => {
+                const objectPath = v.obj.slice(0, v.obj.lastIndexOf('/') + 1);
+                console.log('objectPath', selectedFolderPath);
+                console.log('selectedFolderPath', selectedFolderPath);
+                return v.item === this.selectedFolder.item &&
+                  v.level === this.selectedFolder.level && objectPath === selectedFolderPath;
+              });
+            }
           }
-          console.log('selectedFolderAfter', this.selectedFolder);
           this.expandAllParents(this.selectedFolder || subjectData[0]);
           this.showItem(this.selectedFolder || subjectData[0]);
           if (this.selectedFolder && !this.bucketDataService.emptyFolder) {
@@ -231,6 +238,9 @@ private addNewItem(node: TodoItemFlatNode, file, isFile) {
   public removeItem(node: TodoItemFlatNode) {
     const parentNode = this.flatNodeMap.get(this.getParentNode(node));
     const childNode = this.flatNodeMap.get(node);
+    if (this.cloud === 'azure') {
+      parentNode.object.object = parentNode.object.object.replace(/ا/g, '');
+    }
     this.bucketDataService.emptyFolder = null;
     this.bucketDataService.removeItem(parentNode!, childNode);
     this.resetForm();
@@ -264,6 +274,8 @@ private addNewItem(node: TodoItemFlatNode, file, isFile) {
           this.toastr.error(error.message || 'Folder creation error!', 'Oops!');
         });
     } else {
+      flatParent.object.object = flatParent.object.object.replace(/ا/g, '');
+      parent.obj = parent.obj.replace(/ا/g, '');
       this.bucketDataService.insertItem(flatParent, itemValue, false);
       this.toastr.success('Folder successfully created!', 'Success!');
       this.folderCreating = false;
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts
index acf060c..12154a9 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts
@@ -231,7 +231,7 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy {
   }
 
   public addLibrary(item): void {
-    if ((this.autoComplete === 'ENABLED' && !this.isLibSelected && !this.validity_format)
+    if ((this.autoComplete === 'ENABLED' && !this.isLibSelected && this.filteredList?.length)
       || (this.selectedLib && this.selectedLib.isInSelectedList) || this.isVersionInvalid || this.autoComplete === 'UPDATING') {
       return;
     }


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