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

hshpak 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 0b4c51723 fixed show active btn
0b4c51723 is described below

commit 0b4c51723c4b6693a87bb10b10e168c740f64e03
Author: Hennadii_Shpak <[email protected]>
AuthorDate: Mon Aug 1 19:26:26 2022 +0300

    fixed show active btn
---
 .../src/app/resources/images/images.service.ts      | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

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
index a3c730690..15e79b0f9 100644
--- 
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
@@ -19,6 +19,7 @@ import { caseInsensitiveSortUtil } from '../../core/util';
 })
 export class ImagesService {
   private $$projectList: BehaviorSubject<ProjectModel[]> = new 
BehaviorSubject<ProjectModel[]>([]);
+  private $$cashedProjectList: BehaviorSubject<ProjectModel[]> = new 
BehaviorSubject<ProjectModel[]>([]);
   private $$imageList: BehaviorSubject<ImageModel[]> = new 
BehaviorSubject<ImageModel[]>([]);
   private $$isFilterOpened: BehaviorSubject<boolean> = new 
BehaviorSubject<boolean>(false);
   // tslint:disable-next-line:max-line-length
@@ -112,17 +113,24 @@ export class ImagesService {
   }
 
   showImage(flag: boolean, field: keyof ImageModel, comparedValue: string) {
-    const imageList = this.getImageList(this.$$projectList.getValue());
+    const projectList = this.$$cashedProjectList.getValue();
     if (flag) {
-      this.updateImageList(imageList);
+      this.updateProjectList(projectList);
     } else {
-      const filteredImageList = this.filterByCondition(imageList, field, 
comparedValue);
-      this.updateImageList(filteredImageList);
+      const filteredImageList = 
this.filterByCondition(this.$$projectList.getValue(), field, comparedValue);
+      this.updateProjectList(filteredImageList);
     }
   }
 
-  private filterByCondition(arr: ImageModel[], field: keyof ImageModel, 
comparedValue: string) {
-    return  arr.filter(item => item[field] === comparedValue);
+  private filterByCondition(arr: ProjectModel[], field: keyof ImageModel, 
comparedValue: string) {
+    return arr.map(item => {
+      const filteredImageList = item.images.filter(image => image[field] === 
comparedValue);
+      return {...item, images: filteredImageList};
+    });
+  }
+
+  private updateCashedProjectList(projectList: ProjectModel[]): void {
+    this.$$cashedProjectList.next(projectList);
   }
 
   private getDropdownDataList(): void {
@@ -155,6 +163,7 @@ export class ImagesService {
     const imageList = this.getImageList(imagePageData);
     this.updateProjectList(imagePageData);
     this.updateImageList(imageList);
+    this.updateCashedProjectList(imagePageData);
     this.getDropdownDataList();
   }
 


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

Reply via email to