This is an automated email from the ASF dual-hosted git repository. dgnatyshyn pushed a commit to branch bucket-browser-azure in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit 4965fef7506f70766bd7d771ad93ebbcde8e2e23 Author: Dmytro_Gnatyshyn <di1...@ukr.net> AuthorDate: Thu Jul 16 17:42:58 2020 +0300 [DLAB-1786]: Added changes for bucket browser on azure(UI) --- .../bucket-browser/bucket-browser.component.html | 1 + .../bucket-browser/bucket-browser.component.ts | 11 +++++++++ .../folder-tree/folder-tree.component.html | 1 + .../folder-tree/folder-tree.component.ts | 27 ++++++++++++---------- .../detail-dialog/detail-dialog.component.html | 2 +- .../detail-dialog/detail-dialog.component.ts | 2 +- .../resources-grid/resources-grid.component.ts | 10 +++++--- .../webapp/src/assets/styles/_dialogs.scss | 4 ++++ 8 files changed, 41 insertions(+), 17 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 449445f..bb769aa 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 @@ -127,6 +127,7 @@ (disableAll)=dissableAll($event) [folders]=folders [endpoint]=endpoint + [cloud]="cloud" > </dlab-folder-tree> </div> <div class="directory" [ngClass]="{'selection-opened': isSelectionOpened}" [hidden]="!path"> 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 fc8ed49..3ffcada 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 @@ -64,6 +64,7 @@ export class BucketBrowserComponent implements OnInit { public isFileUploading: boolean; public uploadingQueueLength: number = 4; public maxFileSize: number = 4294967296; + public cloud: string; @ViewChild(FolderTreeComponent, {static: true}) folderTreeComponent; @@ -88,6 +89,7 @@ export class BucketBrowserComponent implements OnInit { this.bucketDataService.refreshBucketdata(this.bucketName, this.endpoint); this.bucketStatus = this.data.bucketStatus; this.buckets = this.data.buckets; + this.cloud = this.getCloud(); } public getTokenValidTime() { @@ -343,6 +345,15 @@ export class BucketBrowserComponent implements OnInit { this.path = ''; this.bucketDataService.refreshBucketdata(this.bucketName, this.endpoint); this.isSelectionOpened = false; + this.cloud = this.getCloud(); + } + + private getCloud() { + return this.buckets.filter(v => v.children.some(bucket => { + console.log(bucket.name); + console.log(this.bucketName); + return bucket.name === this.bucketName; + }))[0].cloud.toLowerCase(); } public createFolder(folder) { diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html index 6f67609..2e8115f 100644 --- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html +++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html @@ -24,6 +24,7 @@ <mat-error *ngIf="folderFormControl.hasError('isDuplicate')"> Folder with this name already exists </mat-error> + <mat-hint *ngIf="cloud === 'azure'">If you do not upload any object to the folder, this folder will be removed on MS Azure</mat-hint> </mat-form-field> <button (click)="createFolder(node, itemValue.value)" [ngClass]="{'check': folderFormControl.valid && folderFormControl.dirty && !folderCreating}" 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 9400637..1684b26 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 @@ -29,7 +29,8 @@ export class FolderTreeComponent implements OnDestroy { @Output() showFolderContent: EventEmitter<any> = new EventEmitter(); @Output() disableAll: EventEmitter<any> = new EventEmitter(); @Input() folders; - @Input() endpoint; + @Input() endpoint: string; + @Input() cloud: string; private folderTreeSubs; private path = []; @@ -213,19 +214,15 @@ private addNewItem(node: TodoItemFlatNode, file, isFile) { } const path = `${ flatParent.object && flatObject !== '/' ? flatObject : ''}${itemValue}/`; const bucket = flatParent.object ? flatParent.object.bucket : flatParent.item; - // const formData = new FormData(); - // formData.append('file', ''); - // formData.append('object', path); - // formData.append('bucket', bucket); - // formData.append('endpoint', this.endpoint); this.bucketDataService.emptyFolder = null; - this.bucketBrowserService.createFolder({ - 'bucket': bucket, - 'folder': path.replace(/ا/g, ''), - 'endpoint': this.endpoint - }) - .subscribe(_ => { + if (this.cloud !== 'azure') { + this.bucketBrowserService.createFolder({ + 'bucket': bucket, + 'folder': path.replace(/ا/g, ''), + 'endpoint': this.endpoint + }) + .subscribe(_ => { this.bucketDataService.insertItem(flatParent, itemValue, false); this.toastr.success('Folder successfully created!', 'Success!'); this.folderCreating = false; @@ -234,6 +231,12 @@ private addNewItem(node: TodoItemFlatNode, file, isFile) { this.folderCreating = false; this.toastr.error(error.message || 'Folder creation error!', 'Oops!'); }); + } else { + this.bucketDataService.insertItem(flatParent, itemValue, false); + this.toastr.success('Folder successfully created!', 'Success!'); + this.folderCreating = false; + this.removeItem(node); + } } private resetForm() { 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 b408d98..409e3ae 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 @@ -139,7 +139,7 @@ matTooltipPosition="above" [matTooltipClass]="'bucket-item-tooltip'" [ngClass]="{'not-allow': !this.bucketStatus.view || !this.data.buckets.length}" - (click)="bucketBrowser(notebook.bucket_name, notebook.endpoint, this.bucketStatus.view && this.data.buckets.length)" + (click)="bucketBrowser(notebook.cloud_provider !== 'azure' ? notebook.bucket_name : notebook.account_name + '.' + notebook.bucket_name, notebook.endpoint, this.bucketStatus.view && this.data.buckets.length)" > Open bucket browser </span> 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 bf55dc6..a3f55ff 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 @@ -140,7 +140,7 @@ export class DetailDialogComponent implements OnInit { if (!permition) { return; } - bucketName = this.isBucketAllowed ? this.notebook.bucket_name : this.data.buckets[0].children[0].name; + bucketName = this.isBucketAllowed ? bucketName : this.data.buckets[0].children[0].name; // bucketName = 'ofuks-1304-pr2-local-bucket'; 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 e299d04..810304b 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 @@ -49,6 +49,8 @@ export interface SharedEndpoint { user_own_bucket_name?: string | null; user_container_name?: string | null; user_own_bicket_name?: string | null; + shared_storage_account_name?: string | null; + user_storage_account_name?: string | null; } export interface ProjectEndpoint { @@ -64,6 +66,7 @@ export interface BucketList { name: string; children: Bucket[]; length?: number; + cloud: string; } export interface Bucket { @@ -256,11 +259,12 @@ export class ResourcesGridComponent implements OnInit { project.endpoints.forEach((endpoint: ProjectEndpoint) => { if (endpoint.status === 'ACTIVE') { const currEndpoint: SharedEndpoint = project.projectEndpoints[endpoint.name]; - const edgeItem: BucketList = {name: `${project.project} (${endpoint.name})`, children: []}; + const edgeItem: BucketList = {name: `${project.project} (${endpoint.name})`, children: [], cloud: endpoint.cloudProvider}; const projectBucket: string = currEndpoint.user_own_bicket_name || currEndpoint.user_own_bucket_name - || currEndpoint.user_container_name; - const sharedBucket: string = currEndpoint.shared_bucket_name || currEndpoint.shared_container_name; + || currEndpoint.user_container_name ? currEndpoint.user_storage_account_name + '.' + currEndpoint.user_container_name : null; + const sharedBucket: string = currEndpoint.shared_bucket_name || + currEndpoint.shared_container_name ? currEndpoint.shared_storage_account_name + '.' + currEndpoint.shared_container_name : null; if (projectBucket && currEndpoint.status !== 'terminated' && currEndpoint.status !== 'terminating' && currEndpoint.status !== 'failed') { edgeItem.children.push({name: projectBucket, endpoint: endpoint.name}); 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 91881da..c00dd14 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 @@ -422,6 +422,10 @@ mat-dialog-container { } } +.add-folder-form .mat-hint{ + color: #00bcd4; +} + @media screen and (max-width: 1280px) { .modal-fullscreen { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org