From df2deea3d68d534472ea2f0a26cba773cd897301 Mon Sep 17 00:00:00 2001 From: Wojciech Taisner <wtaisner@man.poznan.pl> Date: Tue, 21 Sep 2021 14:01:16 +0200 Subject: [PATCH] NMAAS-1040 add sorting with semver comparator --- .../app-management-list/appmanagementlist.component.html | 2 +- .../app-management-list/appmanagementlist.component.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.html b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.html index 2e24372c..47673803 100644 --- a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.html +++ b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.html @@ -42,7 +42,7 @@ </span> </td> </tr> - <ng-template ngFor let-version [ngForOf]="app.versions"> + <ng-template ngFor let-version [ngForOf]="app.versions.sort(appVersionCompare)"> <tr *ngIf="versionRowVisible[i]" class="table-row" [routerLink]="['/admin/apps/edit/version', version?.appVersionId]"> <td></td> <td></td> diff --git a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts index f2191492..150488fd 100644 --- a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts +++ b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts @@ -7,6 +7,7 @@ import {AppChangeStateModalComponent} from '../app-change-state-modal/appchanges import {ApplicationVersion} from '../../../model/application-version'; import {map} from 'rxjs/operators'; import {ApplicationBase} from '../../../model/application-base'; +import * as semver from 'semver' @Component({ selector: 'nmaas-appmanagementlist', @@ -77,4 +78,9 @@ export class AppManagementListComponent implements OnInit { return this.versionRowVisible.reduce((prev: boolean, curr: boolean, i: number, array: boolean[]) => prev && curr); } + public appVersionCompare(a: ApplicationVersion, b: ApplicationVersion): number { + // defaults version that cannot be parsed to `0.0.0` + return semver.compare(semver.coerce(a.version) || '0.0.0', semver.coerce(b.version) || '0.0.0') + } + } -- GitLab