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 @@
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;
}