* Fixed regression in delivery deadline display update.
authorUrban Wallasch <urban.wallasch@freenet.de>
Mon, 12 Aug 2019 14:40:04 +0000 (16:40 +0200)
committerUrban Wallasch <urban.wallasch@freenet.de>
Mon, 12 Aug 2019 14:40:04 +0000 (16:40 +0200)
* Turned another magic number into a named constant.

dash.html

index 5281276da74d7cae214884f4936670ec67b554ff..b3e13c3151df4313d18b5a405d304344bb3aff17 100644 (file)
--- a/dash.html
+++ b/dash.html
@@ -307,6 +307,7 @@ function tnow() {
 // Version and flag constants:
 const TELE_VERSION = 1;
 const TELE_FLAG_ALIVE = 1;
+const MINUS_1_U32 = 4294967295;   // minus one as 32 bit unsigned int
 
 // Timestamp of last activity, used for NoSleep timeout:
 var last_active = tnow();
@@ -315,6 +316,9 @@ var last_active = tnow();
 var last_fuel = -1;
 var last_odometer = -1;
 
+// Used to check if delivery time needs update:
+var last_deltime = -1;
+
 // State of telemetry saved from the last update cycle:
 var last_tele = null;
 
@@ -456,14 +460,19 @@ function update_cb() {
       warn( next_rest, tele.next_rest < 60 ? 2 : tele.next_rest < 99 ? 1 : 0 );
     }
     // remaining time until job delivery date:
-    if ( !last_tele || last_tele.job_deltime != tele.job_deltime || last_tele.job_isvalid != tele.job_isvalid ) {
-      job_ttd.innerHTML =
-        tele.job_isvalid
-        ? tele.job_deltime != 4294967295
-          ? m2hm(tele.job_deltime - tele.game_time)
-          : '<span class="special">[external]</span>'
-        : '-'
+    if ( tele.job_isvalid ) {
+      if ( tele.job_deltime != MINUS_1_U32 ) {
+        var deltime = tele.job_deltime - tele.game_time;
+        if ( last_deltime != deltime ) {
+          job_ttd.innerHTML = m2hm( deltime );
+          last_deltime = deltime;
+        }
+      }
+      else if ( !last_tele || last_tele.job_deltime != tele.job_deltime )
+        job_ttd.innerHTML = '<span class="special">[external]</span>'
     }
+    else if ( !last_tele || last_tele.job_isvalid )
+      job_ttd.innerHTML = '-';
 
     //// "job" box