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

hshpak pushed a commit to branch 
feat/DATALAB-2874/add-notification-pop-up-window-appears
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git

commit be4d0fdeb78ee3c6f58ea8d587f13056a9404229
Author: Hennadii_Shpak <[email protected]>
AuthorDate: Thu Jul 7 15:54:55 2022 +0300

     fixed logic by share image
---
 .../src/app/resources/images/images.component.ts   | 14 +++++------
 .../src/app/resources/images/images.service.ts     | 28 ++++++++++++++++++++++
 .../share-image/share-image.component.html         |  2 +-
 .../share-image/share-image.component.ts           | 17 +++++++++++++
 4 files changed, 53 insertions(+), 8 deletions(-)

diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.ts
 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.ts
index 7c1896bd5..1ec8e3f2d 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.ts
@@ -27,8 +27,8 @@ import { ImageModel, ProjectModel, ShareImageAllUsersParams } 
from './images.mod
 import { Image_Table_Column_Headers, Image_Table_Titles, Localstorage_Key, 
Shared_Status, Toaster_Message } from './images.config';
 import { MatDialog } from '@angular/material/dialog';
 import { ShareImageComponent } from 
'../../shared/modal-dialog/share-image/share-image.component';
-import { switchMap, tap } from 'rxjs/operators';
 import { Observable } from 'rxjs';
+import { ImagesService } from './images.service';
 
 @Component({
   selector: 'datalab-images',
@@ -61,6 +61,7 @@ export class ImagesComponent implements OnInit {
     public toastr: ToastrService,
     private userImagesPageService: UserImagesPageService,
     private dialog: MatDialog,
+    private imagesService: ImagesService
   ) { }
 
   ngOnInit(): void {
@@ -109,12 +110,11 @@ export class ImagesComponent implements OnInit {
       },
       panelClass: 'modal-sm'
     }).afterClosed()
-      .pipe(
-        switchMap(() => this.shareImageAllUsers(image)),
-        tap((imageListData: ProjectModel[]) => 
this.initImageTable(imageListData))
-      ).subscribe(
-      () => this.toastr.success(Toaster_Message.successShare, 'Success!')
-    );
+      .subscribe(() => {
+        if (this.imagesService.projectList) {
+          this.initImageTable(this.imagesService.projectList);
+        }
+      });
   }
 
   private getImageList(): ImageModel[] {
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.service.ts
 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.service.ts
new file mode 100644
index 000000000..3ac70b47c
--- /dev/null
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.service.ts
@@ -0,0 +1,28 @@
+import { Injectable } from '@angular/core';
+import { ImageModel, ProjectModel, ShareImageAllUsersParams } from 
'./images.model';
+import { Observable } from 'rxjs';
+import { UserImagesPageService } from '../../core/services';
+import { tap } from 'rxjs/operators';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class ImagesService {
+
+  projectList: ProjectModel[];
+
+  constructor(
+    private userImagesPageService: UserImagesPageService
+  ) { }
+
+  shareImageAllUsers(image: ImageModel): Observable<ProjectModel[]> {
+    const shareParams: ShareImageAllUsersParams = {
+      imageName: image.name,
+      projectName: image.project,
+      endpoint: image.endpoint
+    };
+    return this.userImagesPageService.shareImageAllUsers(shareParams).pipe(
+      tap((response: ProjectModel[]) => this.projectList = response)
+    );
+  }
+}
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/share-image/share-image.component.html
 
b/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/share-image/share-image.component.html
index ffda3db02..a6f1d1e2a 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/share-image/share-image.component.html
+++ 
b/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/share-image/share-image.component.html
@@ -32,7 +32,7 @@
     <div class="text-center m-top-30 m-bott-10">
       <button type="button" class="butt mat-raised-button" 
(click)="dialogRef.close()">No</button>
       <button type="button" class="butt butt-success mat-raised-button"
-              (click)="dialogRef.close(true)">Yes
+              (click)="onShare()">Yes
       </button>
     </div>
   </section>
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/share-image/share-image.component.ts
 
b/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/share-image/share-image.component.ts
index ce60e32a1..a62f0db3a 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/share-image/share-image.component.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/share-image/share-image.component.ts
@@ -19,6 +19,11 @@
 
 import { Component, Inject } from '@angular/core';
 import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import { ImagesService } from '../../../resources/images/images.service';
+import { UserImagesPageService } from '../../../core/services';
+import { Toaster_Message } from '../../../resources/images';
+import { ToastrService } from 'ngx-toastr';
+import { tap } from 'rxjs/operators';
 
 @Component({
   selector: 'datalab-share-image',
@@ -31,5 +36,17 @@ export class ShareImageComponent {
   constructor(
     public dialogRef: MatDialogRef<ShareImageComponent>,
     @Inject(MAT_DIALOG_DATA) public data: any,
+    private imagesService: ImagesService,
+    private userImagesPageService: UserImagesPageService,
+    private toastr: ToastrService,
   ) { }
+
+  onShare() {
+    this.dialogRef.close();
+    this.imagesService.shareImageAllUsers(this.data.image).pipe(
+      tap(response => this.imagesService.projectList = response)
+    ).subscribe(
+      () => this.toastr.success(Toaster_Message.successShare, 'Success!')
+    );
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to