diff --git a/frontend/src/app/ui/plan/listing/plan-listing.component.html b/frontend/src/app/ui/plan/listing/plan-listing.component.html index 8cc675b8f..2bc2b7660 100644 --- a/frontend/src/app/ui/plan/listing/plan-listing.component.html +++ b/frontend/src/app/ui/plan/listing/plan-listing.component.html @@ -30,11 +30,11 @@
- - {{enumUtils.toRecentActivityOrderString(order.UpdatedAt)}} - {{enumUtils.toRecentActivityOrderString(order.PublishedAt)}} - {{enumUtils.toRecentActivityOrderString(order.Label)}} - {{enumUtils.toRecentActivityOrderString(order.Status)}} + + {{enumUtils.toRecentActivityOrderString(RecentActivityOrder.UpdatedAt)}} + {{enumUtils.toRecentActivityOrderString(RecentActivityOrder.PublishedAt)}} + {{enumUtils.toRecentActivityOrderString(RecentActivityOrder.Label)}} + {{enumUtils.toRecentActivityOrderString(RecentActivityOrder.Status)}}
diff --git a/frontend/src/app/ui/plan/listing/plan-listing.component.ts b/frontend/src/app/ui/plan/listing/plan-listing.component.ts index ed0839169..fd4cd67ca 100644 --- a/frontend/src/app/ui/plan/listing/plan-listing.component.ts +++ b/frontend/src/app/ui/plan/listing/plan-listing.component.ts @@ -42,6 +42,8 @@ import { PrincipalService } from '@app/core/services/http/principal.service'; import { BreadcrumbService } from '@app/ui/misc/breadcrumb/breadcrumb.service'; import { PlanFilterDialogComponent } from './filtering/plan-filter-dialog/plan-filter-dialog.component'; import { PlanListingFilters } from './filtering/plan-filter.component'; +import { Lookup } from '@common/model/lookup'; +import { MatSelectChange } from '@angular/material/select'; @Component({ selector: 'app-plan-listing-component', @@ -62,33 +64,27 @@ export class PlanListingComponent extends BaseListingComponent 0) { - - let ordering = this.lookup.order.items[0]; - let sortBy = ordering.substring(1, ordering.length); - - this.formGroup.get('order').setValue(this._getRecentActivityOrder(sortBy)); - ordering.charAt(0) == '-' ? this.sortDirection = SortDirection.Descending : this.sortDirection = SortDirection.Ascending; - } - + this.sortBy = this._getRecentActivityOrder(this.lookup.order.items[0]?.substring(1)) this.onPageLoad({ offset: this.lookup.page.offset / this.lookup.page.size } as PageLoadEvent); }); @@ -167,10 +155,6 @@ export class PlanListingComponent extends BaseListingComponent this.controlModified()); } public dashboardTour: GuidedTour = { @@ -286,21 +270,30 @@ export class PlanListingComponent extends BaseListingComponent(x => x.status)] }; - } else if (this.formGroup.get('order').value == RecentActivityOrder.Label) { - this.lookup.order = { items: [this.sortingDirectionPrefix + nameof(x => x.label)] }; - } else if (this.formGroup.get('order').value == RecentActivityOrder.PublishedAt){ - this.lookup.order = { items: [this.sortingDirectionPrefix + nameof(x => x.finalizedAt)] }; - }else { - this.lookup.order = { items: [this.sortingDirectionPrefix + nameof(x => x.updatedAt)] }; - } + orderByChanged($event: MatSelectChange) { + const value = $event.value as RecentActivityOrder; + const directionPrefix = this.isAscending ? '-' : '+'; + switch(value){ + case RecentActivityOrder.Status: { + this.lookup.order = { items: [directionPrefix + nameof(x => x.status)] }; + break; + } + case RecentActivityOrder.Label: { + this.lookup.order = { items: [directionPrefix + nameof(x => x.label)] }; + break; + } + case RecentActivityOrder.PublishedAt: { + this.lookup.order = { items: [directionPrefix + nameof(x => x.finalizedAt)] }; + } + default: { + this.lookup.order = { items: [directionPrefix + nameof(x => x.updatedAt)] }; + break; + } + } this.filterChanged(this.lookup); } controlModified(): void { - //this.lookup.like = this.lookup.like != '' ? this.lookup.like : null; this.lookup.page = { size: this.pageSize, offset: 0 }; this.filterChanged(this.lookup, true); } @@ -367,8 +360,10 @@ export class PlanListingComponent extends BaseListingComponent(x => x.updatedAt); + const sortDirection = this.isAscending ? '+' : '-'; + this.lookup.order.items = [`${sortDirection}${orderBy}`]; + this.filterChanged(this.lookup); } private _loadUserTenants(): Observable> {