From 00be017de003fff859146035a03215b95ee56d77 Mon Sep 17 00:00:00 2001 From: Patrizio Bekerle <patrizio.bekerle@tugraz.at> Date: Tue, 10 Sep 2019 15:02:21 +0200 Subject: [PATCH] Add generic XHR error handling --- packages/common/error.js | 19 +++++++++++++++++++ packages/common/i18n.js | 6 ++++++ packages/common/i18n/de/translation.json | 6 ++++++ packages/common/i18n/en/translation.json | 6 ++++++ 4 files changed, 37 insertions(+) create mode 100644 packages/common/error.js create mode 100644 packages/common/i18n.js create mode 100644 packages/common/i18n/de/translation.json create mode 100644 packages/common/i18n/en/translation.json diff --git a/packages/common/error.js b/packages/common/error.js new file mode 100644 index 00000000..0bc393a6 --- /dev/null +++ b/packages/common/error.js @@ -0,0 +1,19 @@ +import {send as notify} from './notification'; +import {i18n} from "./i18n"; + +export const xhrError = (jqXHR, textStatus, errorThrown) => { + if (textStatus !== "abort") { + let body = jqXHR.responseJSON !== undefined && jqXHR.responseJSON["hydra:description"] !== undefined ? + jqXHR.responseJSON["hydra:description"] : textStatus; + + if (jqXHR.status === 0) { + body = i18n.t('error.connection-to-server-refused'); + } + + notify({ + "summary": i18n.t('error.summary'), + "body": body, + "type": "danger", + }); + } +}; diff --git a/packages/common/i18n.js b/packages/common/i18n.js new file mode 100644 index 00000000..dc0125f7 --- /dev/null +++ b/packages/common/i18n.js @@ -0,0 +1,6 @@ +import {createInstance} from './i18next.js'; + +import de from './i18n/de/translation.json'; +import en from './i18n/en/translation.json'; + +export const i18n = createInstance({en: en, de: de}, 'de', 'en'); \ No newline at end of file diff --git a/packages/common/i18n/de/translation.json b/packages/common/i18n/de/translation.json new file mode 100644 index 00000000..3664695d --- /dev/null +++ b/packages/common/i18n/de/translation.json @@ -0,0 +1,6 @@ +{ + "error": { + "summary": "Ein Fehler ist aufgetreten", + "connection-to-server-refused": "Verbindungs zum Server verweigert!" + } +} diff --git a/packages/common/i18n/en/translation.json b/packages/common/i18n/en/translation.json new file mode 100644 index 00000000..57a8fb3e --- /dev/null +++ b/packages/common/i18n/en/translation.json @@ -0,0 +1,6 @@ +{ + "error": { + "summary": "An error occurred", + "connection-to-server-refused": "Connection to server refused!" + } +} -- GitLab