From 29ffefaea18f234fe528b0516ea5391a52bbf904 Mon Sep 17 00:00:00 2001
From: Steffen Vogel <post@steffenvogel.de>
Date: Tue, 27 Nov 2018 19:20:47 +0100
Subject: [PATCH] improve sort algorithm in simulator view

---
 src/containers/simulators.js | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/src/containers/simulators.js b/src/containers/simulators.js
index 8868c15..a716b39 100644
--- a/src/containers/simulators.js
+++ b/src/containers/simulators.js
@@ -44,9 +44,34 @@ class Simulators extends Component {
     return [ UserStore, SimulatorStore ];
   }
 
+  static statePrio(state) {
+    switch (state) {
+      case 'running':
+      case 'starting':
+        return 1;
+      case 'paused':
+      case 'pausing':
+      case 'resuming':
+        return 2;
+      case 'idle':
+        return 3;
+      case 'shutdown':
+        return 4;
+      case 'error':
+        return 10;
+      default:
+        return 99;
+    }
+  }
+
   static calculateState() {
     const simulators = SimulatorStore.getState().sort((a, b) => {
-      return a.stateUpdatedAt < b.stateUpdatedAt;
+      if (a.state !== b.state)
+        return this.statePrio(a.state) > this.statePrio(b.state);
+      else if (a.name !== b.name)
+        return a.name < b.name;
+      else
+        return a.stateUpdatedAt < b.stateUpdatedAt;
     });
 
     return {