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 2e24372c8f049b1d7e624dec2bd7c3ec135b69ef..4767380305f5cd5f8d62379562185d16560163ef 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 f219149237a862e1965fc7ffb9444b5bb8877f81..150488fd8571ac0fbac6aeb5bde11d69b53a4d60 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') + } + }