changeset 4868:008bc1ae8897

exception handling
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 17 Dec 2019 15:05:56 +0100
parents 5555b77b8c4e
children 6b054b91d9b2
files client/src/components/Bottlenecks.vue client/src/components/Login.vue client/src/components/Logs.vue client/src/components/Pdftool.vue client/src/components/Search.vue client/src/components/Sidebar.vue client/src/components/fairway/AvailableFairwayDepth.vue client/src/components/fairway/AvailableFairwayDepthDialogue.vue client/src/components/fairway/BottleneckDialogue.vue client/src/components/fairway/Fairwayprofile.vue client/src/components/gauge/Gauges.vue client/src/components/gauge/HydrologicalConditions.vue client/src/components/gauge/Waterlevel.vue client/src/components/importconfiguration/Import.vue client/src/components/importconfiguration/ScheduledImports.vue client/src/components/importconfiguration/types/ApprovedGaugeMeasurement.vue client/src/components/importconfiguration/types/Soundingresults.vue client/src/components/importoverview/ImportOverview.vue client/src/components/importoverview/LogEntry.vue client/src/components/importoverview/SectionDetails.vue client/src/components/importoverview/StretchDetails.vue client/src/components/layers/Layerselect.vue client/src/components/map/Map.vue client/src/components/sections/SectionForm.vue client/src/components/sections/Sections.vue client/src/components/stretches/StretchForm.vue client/src/components/stretches/Stretches.vue client/src/components/systemconfiguration/PDFTemplates.vue client/src/components/usermanagement/Userdetail.vue client/src/components/usermanagement/Usermanagement.vue
diffstat 30 files changed, 401 insertions(+), 149 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/components/Bottlenecks.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/Bottlenecks.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -186,10 +186,14 @@
             this.openBottleneck = bottleneck;
           })
           .catch(error => {
-            const { status, data } = error.response;
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           })
           .finally(() => (this.loading = null));
--- a/client/src/components/Login.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/Login.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -222,10 +222,14 @@
     resetPassword() {
       if (this.user) {
         HTTP.post("/users/passwordreset", { user: this.user }).catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
-            title: "Backend Error",
-            message: `${status}: ${data.message || data}`
+            title: this.$gettext("Backend Error"),
+            message: message
           });
         });
         this.togglePasswordReset();
--- a/client/src/components/Logs.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/Logs.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -157,11 +157,15 @@
           this.refreshed = new Date().toLocaleString();
           this.currentFile = file;
         })
-        .catch(e => {
-          const { status, data } = e.response;
+        .catch(error => {
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status} ${data.message || data}`
+            message: message
           });
         });
     },
--- a/client/src/components/Pdftool.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/Pdftool.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -240,11 +240,15 @@
               }
             );
           })
-          .catch(e => {
-            const { status, data } = e.response;
+          .catch(error => {
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
       } else {
@@ -825,11 +829,15 @@
           this.templateData = this.form.template;
         }
       })
-      .catch(e => {
-        const { status, data } = e.response;
+      .catch(error => {
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
           title: this.$gettext("Backend Error"),
-          message: `${status}: ${data.message || data}`
+          message: message
         });
       });
   }
--- a/client/src/components/Search.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/Search.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -255,10 +255,14 @@
         })
         .then(() => {})
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -294,10 +298,14 @@
           this.searchResults = response.data;
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
 
--- a/client/src/components/Sidebar.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/Sidebar.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -158,10 +158,14 @@
             }
           })
           .catch(error => {
-            const { status, data } = error.response;
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
-              title: "Backend Error",
-              message: `${status}: ${data.message || data}`
+              title: this.$gettext("Backend Error"),
+              message: message
             });
           });
       }
--- a/client/src/components/fairway/AvailableFairwayDepth.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/fairway/AvailableFairwayDepth.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -171,11 +171,15 @@
           this.applyChange();
         }
       })
-      .catch(e => {
-        const { status, data } = e.response;
+      .catch(error => {
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
           title: this.$gettext("Backend Error"),
-          message: `${status}: ${data.message || data}`
+          message: message
         });
       });
   },
@@ -359,11 +363,15 @@
               }
             );
           })
-          .catch(e => {
-            const { status, data } = e.response;
+          .catch(error => {
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
       }
--- a/client/src/components/fairway/AvailableFairwayDepthDialogue.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/fairway/AvailableFairwayDepthDialogue.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -768,10 +768,14 @@
           );
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         })
         .finally(() => {
@@ -809,10 +813,14 @@
           this.$store.commit("application/paneSetup", "AVAILABLEFAIRWAYDEPTH");
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         })
         .finally(() => {
--- a/client/src/components/fairway/BottleneckDialogue.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/fairway/BottleneckDialogue.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -756,10 +756,14 @@
           });
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -811,10 +815,14 @@
   },
   mounted() {
     this.$store.dispatch("usermanagement/loadUsers").catch(error => {
-      const { status, data } = error.response;
+      let message = "Problems with backend";
+      if (error.response) {
+        const { status, data } = error.response;
+        message = `${status}: ${data.message || data}`;
+      }
       displayError({
         title: this.$gettext("Backend Error"),
-        message: `${status}: ${data.message || data}`
+        message: message
       });
     });
     this.$store.dispatch("bottlenecks/loadBottlenecksList");
--- a/client/src/components/fairway/Fairwayprofile.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/fairway/Fairwayprofile.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -400,11 +400,15 @@
               }
             );
           })
-          .catch(e => {
-            const { status, data } = e.response;
+          .catch(error => {
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
       }
@@ -831,11 +835,15 @@
           this.applyChange();
         }
       })
-      .catch(e => {
-        const { status, data } = e.response;
+      .catch(error => {
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
           title: this.$gettext("Backend Error"),
-          message: `${status}: ${data.message || data}`
+          message: message
         });
       });
   },
--- a/client/src/components/gauge/Gauges.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/gauge/Gauges.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -204,10 +204,14 @@
         this.$store.dispatch("gauges/loadNashSutcliffe")
       ])
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
-            title: "Backend Error",
-            message: `${status}: ${data.message || data}`
+            title: this.$gettext("Backend Error"),
+            message: message
           });
         })
         .finally(() => {
@@ -231,10 +235,14 @@
         this.$store.dispatch("gauges/loadYearWaterlevels")
       ])
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
-            title: "Backend Error",
-            message: `${status}: ${data.message || data}`
+            title: this.$gettext("Backend Error"),
+            message: message
           });
         })
         .finally(() => {
--- a/client/src/components/gauge/HydrologicalConditions.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/gauge/HydrologicalConditions.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -319,11 +319,15 @@
               }
             );
           })
-          .catch(e => {
-            const { status, data } = e.response;
+          .catch(error => {
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
       }
@@ -1137,11 +1141,15 @@
           this.applyChange();
         }
       })
-      .catch(e => {
-        const { status, data } = e.response;
+      .catch(error => {
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
           title: this.$gettext("Backend Error"),
-          message: `${status}: ${data.message || data}`
+          message: message
         });
       });
   },
--- a/client/src/components/gauge/Waterlevel.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/gauge/Waterlevel.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -310,11 +310,15 @@
               }
             );
           })
-          .catch(e => {
-            const { status, data } = e.response;
+          .catch(error => {
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
       }
@@ -1290,11 +1294,15 @@
           this.applyChange();
         }
       })
-      .catch(e => {
-        const { status, data } = e.response;
+      .catch(error => {
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
           title: this.$gettext("Backend Error"),
-          message: `${status}: ${data.message || data}`
+          message: message
         });
       });
   },
--- a/client/src/components/importconfiguration/Import.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/importconfiguration/Import.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -125,10 +125,14 @@
       this.$store
         .dispatch("importschedule/loadSchedules")
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         })
         .finally(() => {
@@ -142,10 +146,14 @@
           this.$store.commit("importschedule/setEditMode");
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -161,10 +169,14 @@
           });
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -191,10 +203,14 @@
                 });
               })
               .catch(error => {
-                const { status, data } = error.response;
+                let message = "Problems with backend";
+                if (error.response) {
+                  const { status, data } = error.response;
+                  message = `${status}: ${data.message || data}`;
+                }
                 displayError({
                   title: this.$gettext("Backend Error"),
-                  message: `${status}: ${data.message || data}`
+                  message: message
                 });
               });
           }
@@ -272,10 +288,14 @@
         this.getSchedules();
       })
       .catch(error => {
-        const { status, data } = error.response;
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
           title: this.$gettext("Backend Error"),
-          message: `${status}: ${data.message || data}`
+          message: message
         });
       });
   },
--- a/client/src/components/importconfiguration/ScheduledImports.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/importconfiguration/ScheduledImports.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -833,18 +833,26 @@
           });
           this.closeDetailview();
           this.$store.dispatch("importschedule/loadSchedules").catch(error => {
-            const { status, data } = error.response;
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
-              title: this.gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              title: this.$gettext("Backend Error"),
+              message: message
             });
           });
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -913,10 +921,14 @@
           });
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         })
         .finally(() => {
@@ -995,18 +1007,26 @@
             this.$store
               .dispatch("importschedule/loadSchedules")
               .catch(error => {
-                const { status, data } = error.response;
+                let message = "Problems with backend";
+                if (error.response) {
+                  const { status, data } = error.response;
+                  message = `${status}: ${data.message || data}`;
+                }
                 displayError({
-                  title: this.gettext("Backend Error"),
-                  message: `${status}: ${data.message || data}`
+                  title: this.$gettext("Backend Error"),
+                  message: message
                 });
               });
           })
           .catch(error => {
-            const { status, data } = error.response;
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
       } else {
@@ -1025,18 +1045,26 @@
             this.$store
               .dispatch("importschedule/loadSchedules")
               .catch(error => {
-                const { status, data } = error.response;
+                let message = "Problems with backend";
+                if (error.response) {
+                  const { status, data } = error.response;
+                  message = `${status}: ${data.message || data}`;
+                }
                 displayError({
-                  title: this.gettext("Backend Error"),
-                  message: `${status}: ${data.message || data}`
+                  title: this.$gettext("Backend Error"),
+                  message: message
                 });
               });
           })
           .catch(error => {
-            const { status, data } = error.response;
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
       }
--- a/client/src/components/importconfiguration/types/ApprovedGaugeMeasurement.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/importconfiguration/types/ApprovedGaugeMeasurement.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -142,10 +142,14 @@
           this.back();
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     }
--- a/client/src/components/importconfiguration/types/Soundingresults.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/importconfiguration/types/Soundingresults.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -272,10 +272,14 @@
           this.initialState();
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -312,11 +316,14 @@
           this.messages = response.data.messages;
         })
         .catch(error => {
-          const { status, data } = error.response;
-          const messages = data.messages ? data.messages.join(", ") : "";
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${messages}`
+            message: message
           });
         });
     },
@@ -352,10 +359,14 @@
           this.initialState();
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     }
--- a/client/src/components/importoverview/ImportOverview.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/importoverview/ImportOverview.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -436,11 +436,15 @@
           }
         })
         .catch(error => {
-          const { status, data } = error.response;
           this.loading = false;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -505,10 +509,14 @@
                 });
               })
               .catch(error => {
-                const { status, data } = error.response;
+                let message = "Problems with backend";
+                if (error.response) {
+                  const { status, data } = error.response;
+                  message = `${status}: ${data.message || data}`;
+                }
                 displayError({
-                  title: "Backend Error",
-                  message: `${status}: ${data.message || data}`
+                  title: this.$gettext("Backend Error"),
+                  message: message
                 });
               });
           }
@@ -523,10 +531,14 @@
   mounted() {
     this.loadUpdatedLogs();
     this.$store.dispatch("usermanagement/loadUsers").catch(error => {
-      const { status, data } = error.response;
+      let message = "Problems with backend";
+      if (error.response) {
+        const { status, data } = error.response;
+        message = `${status}: ${data.message || data}`;
+      }
       displayError({
         title: this.$gettext("Backend Error"),
-        message: `${status}: ${data.message || data}`
+        message: message
       });
     });
     const { id } = this.$route.params;
--- a/client/src/components/importoverview/LogEntry.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/importoverview/LogEntry.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -162,10 +162,14 @@
             this.$store.commit("imports/setCurrentDetails", response.data);
           })
           .catch(error => {
-            const { status, data } = error.response;
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           })
           .finally(() => (this.loading = false));
--- a/client/src/components/importoverview/SectionDetails.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/importoverview/SectionDetails.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -103,10 +103,14 @@
           });
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     }
--- a/client/src/components/importoverview/StretchDetails.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/importoverview/StretchDetails.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -134,10 +134,14 @@
           });
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     }
--- a/client/src/components/layers/Layerselect.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/layers/Layerselect.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -175,9 +175,14 @@
           reader.readAsDataURL(response.data);
         })
         .catch(error => {
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${error.response.status}: ${error.response.statusText}`
+            message: message
           });
         });
     }
--- a/client/src/components/map/Map.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/map/Map.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -266,10 +266,14 @@
           })
           .catch(error => {
             this.mountMap();
-            const { status, data } = error.response;
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
       } else {
@@ -455,10 +459,14 @@
         this.loadStyles();
       })
       .catch(error => {
-        const { status, data } = error.response;
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
-          title: "Backend Error",
-          message: `${status}: ${data.message || data}`
+          title: this.$gettext("Backend Error"),
+          message: message
         });
       });
   },
--- a/client/src/components/sections/SectionForm.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/sections/SectionForm.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -334,10 +334,14 @@
             });
           })
           .catch(error => {
-            const { status, data } = error.response;
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
       }
--- a/client/src/components/sections/Sections.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/sections/Sections.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -174,20 +174,28 @@
                 });
               })
               .catch(error => {
-                const { status, data } = error.response;
+                let message = "Problems with backend";
+                if (error.response) {
+                  const { status, data } = error.response;
+                  message = `${status}: ${data.message || data}`;
+                }
                 displayError({
                   title: this.$gettext("Backend Error"),
-                  message: `${status}: ${data.message || data}`
+                  message: message
                 });
               })
               .finally(() => (this.loading = false));
           });
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -226,10 +234,14 @@
     this.$store
       .dispatch("imports/loadSections")
       .catch(error => {
-        const { status, data } = error.response;
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
           title: this.$gettext("Backend Error"),
-          message: `${status}: ${data.message || data}`
+          message: message
         });
       })
       .finally(() => (this.loading = false));
--- a/client/src/components/stretches/StretchForm.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/stretches/StretchForm.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -86,10 +86,14 @@
           this.initialState();
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     }
--- a/client/src/components/stretches/Stretches.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/stretches/Stretches.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -189,20 +189,28 @@
                 });
               })
               .catch(error => {
-                const { status, data } = error.response;
+                let message = "Problems with backend";
+                if (error.response) {
+                  const { status, data } = error.response;
+                  message = `${status}: ${data.message || data}`;
+                }
                 displayError({
                   title: this.$gettext("Backend Error"),
-                  message: `${status}: ${data.message || data}`
+                  message: message
                 });
               })
               .finally(() => (this.loading = false));
           });
         })
         .catch(error => {
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -241,10 +249,14 @@
     this.$store
       .dispatch("imports/loadStretches")
       .catch(error => {
-        const { status, data } = error.response;
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
           title: this.$gettext("Backend Error"),
-          message: `${status}: ${data.message || data}`
+          message: message
         });
       })
       .finally(() => (this.loading = false));
--- a/client/src/components/systemconfiguration/PDFTemplates.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/systemconfiguration/PDFTemplates.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -162,11 +162,15 @@
             );
             element.click();
           })
-          .catch(e => {
-            const { status, data } = e.response;
+          .catch(error => {
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           })
           .finally(() => {
@@ -287,11 +291,15 @@
         .then(response => {
           this.templates = response.data;
         })
-        .catch(e => {
-          const { status, data } = e.response;
+        .catch(error => {
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
--- a/client/src/components/usermanagement/Userdetail.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/usermanagement/Userdetail.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -325,19 +325,27 @@
         .then(() => {
           this.submitted = false;
           this.$store.dispatch("usermanagement/loadUsers").catch(error => {
-            const { status, data } = error.response;
+            let message = "Problems with backend";
+            if (error.response) {
+              const { status, data } = error.response;
+              message = `${status}: ${data.message || data}`;
+            }
             displayError({
               title: this.$gettext("Backend Error"),
-              message: `${status}: ${data.message || data}`
+              message: message
             });
           });
         })
         .catch(error => {
           this.submitted = false;
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
-            title: this.$gettext("Error while saving user"),
-            message: `${status}: ${data.message || data}`
+            title: this.$gettext("Backend Error"),
+            message: message
           });
         });
     }
--- a/client/src/components/usermanagement/Usermanagement.vue	Tue Dec 17 14:27:44 2019 +0100
+++ b/client/src/components/usermanagement/Usermanagement.vue	Tue Dec 17 15:05:56 2019 +0100
@@ -211,10 +211,14 @@
         })
         .catch(error => {
           this.loginFailed = true;
-          const { status, data } = error.response;
+          let message = "Problems with backend";
+          if (error.response) {
+            const { status, data } = error.response;
+            message = `${status}: ${data.message || data}`;
+          }
           displayError({
             title: this.$gettext("Backend Error"),
-            message: `${status}: ${data.message || data}`
+            message: message
           });
         });
     },
@@ -248,18 +252,26 @@
                 this.$store
                   .dispatch("usermanagement/loadUsers")
                   .catch(error => {
-                    const { status, data } = error.response;
+                    let message = "Problems with backend";
+                    if (error.response) {
+                      const { status, data } = error.response;
+                      message = `${status}: ${data.message || data}`;
+                    }
                     displayError({
                       title: this.$gettext("Backend Error"),
-                      message: `${status}: ${data.message || data}`
+                      message: message
                     });
                   });
               })
               .catch(error => {
-                const { status, data } = error.response;
+                let message = "Problems with backend";
+                if (error.response) {
+                  const { status, data } = error.response;
+                  message = `${status}: ${data.message || data}`;
+                }
                 displayError({
                   title: this.$gettext("Backend Error"),
-                  message: `${status}: ${data.message || data}`
+                  message: message
                 });
               });
           }
@@ -297,10 +309,14 @@
       .dispatch("usermanagement/loadUsers")
       .then(next)
       .catch(error => {
-        const { status, data } = error.response;
+        let message = "Problems with backend";
+        if (error.response) {
+          const { status, data } = error.response;
+          message = `${status}: ${data.message || data}`;
+        }
         displayError({
           title: this.$gettext("Backend Error"),
-          message: `${status}: ${data}`
+          message: message
         });
       });
   },