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]
