diff --git a/webapp/frontend/src/app/layout/common/dashboard-settings/dashboard-settings.component.html b/webapp/frontend/src/app/layout/common/dashboard-settings/dashboard-settings.component.html index a90786b..39b82a3 100644 --- a/webapp/frontend/src/app/layout/common/dashboard-settings/dashboard-settings.component.html +++ b/webapp/frontend/src/app/layout/common/dashboard-settings/dashboard-settings.component.html @@ -4,7 +4,7 @@
- Display + Display Title Name Serial ID @@ -17,10 +17,7 @@ Sort By Status - Name - Serial ID - UUID - Label + Title
diff --git a/webapp/frontend/src/app/modules/dashboard/dashboard.component.html b/webapp/frontend/src/app/modules/dashboard/dashboard.component.html index 6fa33a6..e719d09 100644 --- a/webapp/frontend/src/app/modules/dashboard/dashboard.component.html +++ b/webapp/frontend/src/app/modules/dashboard/dashboard.component.html @@ -51,7 +51,7 @@

{{hostId.key}}

- +
diff --git a/webapp/frontend/src/app/shared/device-sort.pipe.ts b/webapp/frontend/src/app/shared/device-sort.pipe.ts index 57f2859..bc07c70 100644 --- a/webapp/frontend/src/app/shared/device-sort.pipe.ts +++ b/webapp/frontend/src/app/shared/device-sort.pipe.ts @@ -1,32 +1,59 @@ import { Pipe, PipeTransform } from '@angular/core'; +import {deviceDisplayTitle} from "app/layout/common/dashboard-device/dashboard-device.component"; @Pipe({ name: 'deviceSort' }) export class DeviceSortPipe implements PipeTransform { - numericalStatus(deviceSummary): number { - if(!deviceSummary.smart){ - return 0 - } else if (deviceSummary.device.device_status == 0){ - return 1 - } else { - return deviceSummary.device.device_status * -1 // will return range from -1, -2, -3 + statusCompareFn(a: any, b: any) { + function deviceStatus(deviceSummary): number { + if(!deviceSummary.smart){ + return 0 + } else if (deviceSummary.device.device_status == 0){ + return 1 + } else { + return deviceSummary.device.device_status * -1 // will return range from -1, -2, -3 + } } + + let left = deviceStatus(a) + let right = deviceStatus(b) + + return left - right; } + titleCompareFn(dashboardDisplay: string) { + return function (a: any, b: any){ + let _dashboardDisplay = dashboardDisplay + let left = deviceDisplayTitle(a.device, _dashboardDisplay) || deviceDisplayTitle(a.device, 'name') + let right = deviceDisplayTitle(b.device, _dashboardDisplay) || deviceDisplayTitle(b.device, 'name') - transform(deviceSummaries: Array, sortBy = ''): Array { - //failed, unknown/empty, passed - deviceSummaries.sort((a: any, b: any) => { + if( left < right ) + return -1; - let left = this.numericalStatus(a) - let right = this.numericalStatus(b) + if( left > right ) + return 1; - return left - right; - }); + return 0; + } + } + transform(deviceSummaries: Array, sortBy = 'status', dashboardDisplay = "name"): Array { + let compareFn = undefined + switch (sortBy) { + case 'status': + compareFn = this.statusCompareFn + break; + case 'title': + compareFn = this.titleCompareFn(dashboardDisplay) + break; + } + + //failed, unknown/empty, passed + deviceSummaries.sort(compareFn); + return deviceSummaries; }