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

hshpak pushed a commit to branch 
feat/DATALAB-2881/filter-function-to-Images-page
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git

commit 50a7aa9cff9621cb4369077aeb6c07e9f9fd5d06
Author: Hennadii_Shpak <[email protected]>
AuthorDate: Tue Aug 2 19:10:30 2022 +0300

    minor fix
---
 .../webapp/src/app/resources/images/images.component.html         | 8 +++++---
 .../resources/webapp/src/app/resources/images/images.component.ts | 8 +++++++-
 .../resources/webapp/src/app/resources/images/images.service.ts   | 7 +++++++
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.html
 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.html
index 7f94371f0..064a2e4f8 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.html
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.html
@@ -145,7 +145,9 @@
     >
 
       <ng-container matColumnDef="project">
-        <td mat-cell *matCellDef="let element" [attr.colspan]="8" 
class="image-page__project"> {{ element.project }} </td>
+        <td mat-cell *matCellDef="let element" [attr.colspan]="8" 
class="image-page__project">
+          {{ element.project }}
+        </td>
       </ng-container>
 
       <ng-container matColumnDef="checkbox">
@@ -292,8 +294,8 @@
 
       <tr mat-header-row *matHeaderRowDef="displayedColumns;" 
class="header-row"></tr>
 
-      <tr mat-row *matRowDef="let element; columns: ['project']" 
class="element-row"></tr>
+      <tr mat-row [hidden]="!element.images.length" *matRowDef="let element; 
columns: ['project']" class="element-row"></tr>
       <tr mat-row *matRowDef="let row; columns: ['expandedDetail']" 
class="detail-row"></tr>
-      <tr [hidden]="(dataSource | async)?.length" mat-footer-row 
*matFooterRowDef="['placeholder']"></tr>
+      <tr [hidden]="!($isProjectListEmpty | async)" mat-footer-row 
*matFooterRowDef="['placeholder']"></tr>
     </table>
 </section>
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 5b38cb52e..82de426fa 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
@@ -73,6 +73,7 @@ export class ImagesComponent implements OnInit, OnDestroy {
   isFilterOpened: Observable<boolean>;
   $filterDropdownData: Observable<ImageFilterFormDropdownData>;
   $filterFormValue: Observable<ImageFilterFormValue>;
+  $isProjectListEmpty: Observable<boolean>;
   isShowActive: boolean = true;
   isFiltered: boolean = false;
 
@@ -93,6 +94,7 @@ export class ImagesComponent implements OnInit, OnDestroy {
     this.initFilterBtn();
     this.getDropdownList();
     this.getFilterFormValue();
+    this.getIsProjectListEmpty();
   }
 
   ngOnDestroy(): void {
@@ -226,10 +228,14 @@ export class ImagesComponent implements OnInit, OnDestroy 
{
     this.$filterDropdownData = this.imagesService.$filterDropdownData;
   }
 
-  getFilterFormValue(): void {
+  private getFilterFormValue(): void {
     this.$filterFormValue = this.imagesService.$filterFormValue;
   }
 
+  private getIsProjectListEmpty(): void {
+    this.$isProjectListEmpty = this.imagesService.$isProjectListEmpty;
+  }
+
   get isImageSelected(): boolean {
     return this.imagesService.isImageSelected();
   }
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 258045c50..fa11d3ab0 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 $$isProjectListEmpty: BehaviorSubject<boolean> = new 
BehaviorSubject<boolean>(false);
   private $$cashedProjectList: BehaviorSubject<ProjectModel[]> = new 
BehaviorSubject<ProjectModel[]>([]);
   private $$imageList: BehaviorSubject<ImageModel[]> = new 
BehaviorSubject<ImageModel[]>([]);
   private $$isFilterOpened: BehaviorSubject<boolean> = new 
BehaviorSubject<boolean>(false);
@@ -29,6 +30,7 @@ export class ImagesService {
   private dropdownStartValue: ImageFilterFormDropdownData;
 
   $projectList = this.$$projectList.asObservable();
+  $isProjectListEmpty = this.$$isProjectListEmpty.asObservable();
   $imageList = this.$$imageList.asObservable();
   $isFilterOpened = this.$$isFilterOpened.asObservable();
   $filterDropdownData = this.$$filterDropdownData.asObservable();
@@ -168,6 +170,11 @@ export class ImagesService {
     this.updateImageList(imageList);
     this.updateCashedProjectList(imagePageData);
     this.getDropdownDataList();
+    this.$$isProjectListEmpty.next(this.isProjectListEmpty(imagePageData));
+  }
+
+  private isProjectListEmpty(imagePageData: ProjectModel[]): boolean {
+    return imagePageData.every(({images}) => Boolean(!images.length));
   }
 
   private getImageList(imagePageData: ProjectModel[]): ImageModel[] {


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

Reply via email to