Mercurial > gemma
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()