# HG changeset patch # User Markus Kottlaender # Date 1561047008 -7200 # Node ID f180de37903cf88fe27938c9fef1881114d816ac # Parent ed4820efb7e63cc699000cef23d275526e00c1eb client: hydrological conditions diagram: handle gauges without reference waterlevels diff -r ed4820efb7e6 -r f180de37903c client/src/components/gauge/HydrologicalConditions.vue --- a/client/src/components/gauge/HydrologicalConditions.vue Thu Jun 20 18:04:53 2019 +0200 +++ b/client/src/components/gauge/HydrologicalConditions.vue Thu Jun 20 18:10:08 2019 +0200 @@ -543,7 +543,9 @@ updaters.push(this.drawWaterlevelLineChart("q75")); updaters.push(this.drawWaterlevelLineChart("mean", this.yearWaterlevels)); updaters.push(this.drawNowLines()); - this.drawRefLines(refWaterLevels); // static, doesn't need an updater + if (refWaterLevels) { + this.drawRefLines(refWaterLevels); // static, doesn't need an updater + } // INTERACTIONS @@ -673,23 +675,31 @@ return { width, mainHeight, navHeight, mainMargin, navMargin }; }, getExtent(refWaterLevels) { - const waterlevelsRelevantForExtent = []; + const waterlevelValues = []; this.longtermWaterlevels.forEach(wl => { - waterlevelsRelevantForExtent.push(wl.min, wl.max); + waterlevelValues.push(wl.min, wl.max); }); - waterlevelsRelevantForExtent.push( - refWaterLevels.HDC + (refWaterLevels.HDC - refWaterLevels.LDC) / 8, - Math.max( - refWaterLevels.LDC - (refWaterLevels.HDC - refWaterLevels.LDC) / 4, - 0 - ) - ); + if (refWaterLevels) { + waterlevelValues.push( + refWaterLevels.HDC + (refWaterLevels.HDC - refWaterLevels.LDC) / 8, + Math.max( + refWaterLevels.LDC - (refWaterLevels.HDC - refWaterLevels.LDC) / 4, + 0 + ) + ); + } else { + let delta = d3.max(waterlevelValues) - d3.min(waterlevelValues); + waterlevelValues.push( + d3.max(waterlevelValues) + delta * 0.1, + d3.min(waterlevelValues) - delta * 0.1 + ); + } return { // set min/max values for the date axis date: [startOfYear(new Date()), endOfYear(new Date())], // set min/max values for the waterlevel axis // including HDC (+ 1/8 HDC-LDC) and LDC (- 1/4 HDC-LDC) - waterlevel: d3.extent(waterlevelsRelevantForExtent) + waterlevel: d3.extent(waterlevelValues) }; }, getScale() {