# HG changeset patch # User Markus Kottlaender # Date 1561043018 -7200 # Node ID 916534d9d6f60a12e8d43a79c90dd8d92a4f3e8b # Parent 7431c6680b90a8066e9447ea0d31595b2ad507a3 client: waterlevel diagram: handle gauges without reference waterlevels diff -r 7431c6680b90 -r 916534d9d6f6 client/src/components/gauge/Waterlevel.vue --- a/client/src/components/gauge/Waterlevel.vue Thu Jun 20 15:26:17 2019 +0200 +++ b/client/src/components/gauge/Waterlevel.vue Thu Jun 20 17:03:38 2019 +0200 @@ -565,7 +565,9 @@ // static, don't need updater this.drawNavigationChart(); - this.drawRefLines(refWaterLevels); + if (refWaterLevels) { + this.drawRefLines(refWaterLevels); + } updaters.push(this.drawNashSutcliffe(72)); updaters.push(this.drawNashSutcliffe(48)); @@ -730,6 +732,23 @@ return { width, mainHeight, navHeight, mainMargin, navMargin }; }, getExtent(refWaterLevels) { + let waterlevelValues = [...this.waterlevels.map(wl => wl.waterlevel)]; + 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: [ @@ -738,24 +757,8 @@ ], // 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 - ) + // or, if no refWaterlevels exist, +-10% of delta between min and max wl + waterlevel: d3.extent(waterlevelValues) }; }, getScale() {