changeset 4125:0f69d256fa12

client: fix drawing of diagram in case reference waterlevels are missing
author Fadi Abbud <fadi.abbud@intevation.de>
date Thu, 01 Aug 2019 16:46:13 +0200
parents acd87a3d246b
children 52f7264265bb
files client/src/components/gauge/Waterlevel.vue
diffstat 1 files changed, 33 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/components/gauge/Waterlevel.vue	Thu Aug 01 15:53:22 2019 +0200
+++ b/client/src/components/gauge/Waterlevel.vue	Thu Aug 01 16:46:13 2019 +0200
@@ -554,32 +554,33 @@
         .style("font-size", "0.8em");
     },
     getExtent(refWaterLevels) {
+      let rest;
+      if (refWaterLevels) {
+        // set min/max values for the waterlevel axis
+        // including HDC (+ 1/8 HDC-LDC) and LDC (- 1/4 HDC-LDC)
+        rest = [
+          {
+            waterlevel:
+              refWaterLevels.HDC + (refWaterLevels.HDC - refWaterLevels.LDC) / 8
+          },
+          {
+            waterlevel: Math.max(
+              refWaterLevels.LDC -
+                (refWaterLevels.HDC - refWaterLevels.LDC) / 4,
+              0
+            )
+          }
+        ];
+      } else {
+        rest = [];
+      }
       return {
         // set min/max values for the date axis
         date: [
           this.waterlevels[0].date,
           endOfDay(this.waterlevels[this.waterlevels.length - 1].date)
         ],
-        // set min/max values for the waterlevel axis
-        // including HDC (+ 1/8 HDC-LDC) and LDC (- 1/4 HDC-LDC)
-        waterlevel: d3.extent(
-          [
-            ...this.waterlevels,
-            {
-              waterlevel:
-                refWaterLevels.HDC +
-                (refWaterLevels.HDC - refWaterLevels.LDC) / 8
-            },
-            {
-              waterlevel: Math.max(
-                refWaterLevels.LDC -
-                  (refWaterLevels.HDC - refWaterLevels.LDC) / 4,
-                0
-              )
-            }
-          ],
-          d => d.waterlevel
-        )
+        waterlevel: d3.extent([...this.waterlevels, ...rest], d => d.waterlevel)
       };
     },
     getScale({ dimensions, extent }) {
@@ -774,16 +775,18 @@
     },
     drawRefLines({ refWaterLevels, diagram, scale, dimensions, extent }) {
       // filling area between HDC and LDC
-      diagram
-        .append("rect")
-        .attr("class", "hdc-ldc-area")
-        .attr("x", 0)
-        .attr("y", scale.y(refWaterLevels.HDC))
-        .attr("width", dimensions.width)
-        .attr(
-          "height",
-          scale.y(refWaterLevels.LDC) - scale.y(refWaterLevels.HDC)
-        );
+      if (refWaterLevels) {
+        diagram
+          .append("rect")
+          .attr("class", "hdc-ldc-area")
+          .attr("x", 0)
+          .attr("y", scale.y(refWaterLevels.HDC))
+          .attr("width", dimensions.width)
+          .attr(
+            "height",
+            scale.y(refWaterLevels.LDC) - scale.y(refWaterLevels.HDC)
+          );
+      }
 
       const refWaterlevelLine = d3
         .line()