Mercurial > gemma
changeset 4893:b65898de11ad
only accept numbers as valid data vor (ref)waterlevel
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Fri, 21 Feb 2020 10:08:32 +0100 |
parents | 0b10d3c68da0 |
children | 9be18803268d ff965141d085 8f421cd3c746 |
files | client/src/components/fairway/Fairwayprofile.vue |
diffstat | 1 files changed, 34 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/components/fairway/Fairwayprofile.vue Fri Feb 14 14:31:12 2020 +0100 +++ b/client/src/components/fairway/Fairwayprofile.vue Fri Feb 21 10:08:32 2020 +0100 @@ -108,6 +108,12 @@ <div v-if="!fairwayData"> <translate>No data available.</translate> </div> + <div v-if="!refWaterlevelValid"> + <translate>No valid reference waterlevel data available.</translate> + </div> + <div v-if="!waterlevelValid"> + <translate>No valid waterlevel data available.</translate> + </div> </div> </div> </div> @@ -164,6 +170,22 @@ const GROUND_COLOR = "#4A2F06"; const WATER_COLOR = "#005DFF"; +const isNumber = value => { + if (typeof value !== "number") { + return false; + } + + if (value !== Number(value)) { + return false; + } + + if (Number.isFinite(value) === false) { + return false; + } + + return true; +}; + export default { mixins: [diagram, pdfgen, templateLoader], name: "fairwayprofile", @@ -213,13 +235,15 @@ : "Current"; if (this.additionalSurvey) dates.push(this.additionalSurvey.date_info); dates.map(d => this.$options.filters.dateTime(d, true)); + const waterlevelMeasurement = + this.waterlevelValid && this.refWaterlevelValid + ? `${this.$options.filters.waterlevel(this.waterlevel)} m` + : this.$gettext("No valid value available"); return `${this.$gettext("Fairwayprofile")}: ${ this.selectedBottleneck } (${dates.join( ", " - )}) WL: ${waterlevelLabel} (${this.$options.filters.waterlevel( - this.waterlevel - )} m)`; + )}) WL: ${waterlevelLabel} ( ${waterlevelMeasurement} )`; }, currentData() { if ( @@ -253,6 +277,12 @@ if (!this.selectedSurvey) return 0; return this.selectedSurvey.waterlevel_value; }, + waterlevelValid() { + return isNumber(this.waterlevel); + }, + refWaterlevelValid() { + return isNumber(this.refWaterlevel); + }, fileName() { return this.downloadFilename( this.$gettext("Fairwayprofile"), @@ -516,6 +546,7 @@ }); }, renderTo({ element, dimensions }) { + if (!this.waterlevelValid || !this.refWaterlevelValid) return; let svg = d3.select(element).append("svg"); svg.attr("width", "100%"); svg.attr("height", "100%");