changeset 4951:9be18803268d fairway-marks-import

Merge default into fairway-marks-import branch.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 21 Feb 2020 11:08:36 +0100
parents 427f87ac96d6 (current diff) b65898de11ad (diff)
children 73652819c56e
files
diffstat 1 files changed, 34 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/components/fairway/Fairwayprofile.vue	Thu Feb 20 18:19:47 2020 +0100
+++ b/client/src/components/fairway/Fairwayprofile.vue	Fri Feb 21 11:08:36 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%");