From 348b16c06d00f562c9d5635496ce4607063628fa Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio.bekerle@tugraz.at>
Date: Mon, 12 Aug 2019 09:43:56 +0200
Subject: [PATCH] Add more error handling

---
 packages/person-select/src/i18n/de/translation.json |  3 ++-
 packages/person-select/src/i18n/en/translation.json |  3 ++-
 packages/person-select/src/person-select.js         | 12 ++++++++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/packages/person-select/src/i18n/de/translation.json b/packages/person-select/src/i18n/de/translation.json
index 85eb19d2..a2920972 100644
--- a/packages/person-select/src/i18n/de/translation.json
+++ b/packages/person-select/src/i18n/de/translation.json
@@ -1,5 +1,6 @@
 {
   "person-select": {
-    "placeholder": "Bitte wählen Sie eine Person aus"
+    "placeholder": "Bitte wählen Sie eine Person aus",
+    "error-summary": "Ein Fehler ist aufgetreten"
   }
 }
diff --git a/packages/person-select/src/i18n/en/translation.json b/packages/person-select/src/i18n/en/translation.json
index a9e21164..0d7ee4aa 100644
--- a/packages/person-select/src/i18n/en/translation.json
+++ b/packages/person-select/src/i18n/en/translation.json
@@ -1,5 +1,6 @@
 {
   "person-select": {
-    "placeholder": "Please select a person"
+    "placeholder": "Please select a person",
+    "error-summary": "An error occurred"
   }
 }
diff --git a/packages/person-select/src/person-select.js b/packages/person-select/src/person-select.js
index 3f8bb925..080c1eff 100644
--- a/packages/person-select/src/person-select.js
+++ b/packages/person-select/src/person-select.js
@@ -99,6 +99,18 @@ class PersonSelect extends VPULitElementJQuery {
                     return {
                         results: results
                     };
+                },
+                error: function (jqXHR, textStatus, errorThrown) {
+                    const body = jqXHR.responseJSON !== undefined && jqXHR.responseJSON["hydra:description"] !== undefined ?
+                        jqXHR.responseJSON["hydra:description"] : textStatus;
+
+                    if (textStatus !== "abort") {
+                        notify({
+                            "summary": i18n.t('person-select.error-summary'),
+                            "body": body,
+                            "type": "danger",
+                        });
+                    }
                 }
             }
         }).on("select2:select", function (e) {
-- 
GitLab