diff --git a/public/js/plugins/FhcAlert.js b/public/js/plugins/FhcAlert.js
index 5d84b1de9..f5870f1c0 100644
--- a/public/js/plugins/FhcAlert.js
+++ b/public/js/plugins/FhcAlert.js
@@ -111,19 +111,8 @@ const helperApp = Vue.createApp({
methods: {
mailToUrl(slotProps) {
let mailTo = FHC_JS_DATA_STORAGE_OBJECT.systemerror_mailto;
- let subject = 'Meldung%20Systemfehler';
- let body = `
- Danke, dass Sie uns den Fehler melden. %0D%0A %0D%0A
- Bitte beschreiben Sie uns ausführlich das Problem.%0D%0A
- Bsp: Ich habe X ausgewählt und Y angelegt. Beim Speichern erhielt ich die Fehlermeldung. [Optional: Ich habe den Browser Z verwendet.]%0D%0A
- -----------------------------------------------------------------------------------------------------------------------------------%0D%0A
- PROBLEM: ... %0D%0A %0D%0A %0D%0A
-
- -----------------------------------------------------------------------------------------------------------------------------------%0D%0A
- Fehler URL: ` + FHC_JS_DATA_STORAGE_OBJECT.called_path + '/' + FHC_JS_DATA_STORAGE_OBJECT.called_method + `%0D%0A
- Fehler Meldung: ` + slotProps.message.detail + `%0D%0A
- -----------------------------------------------------------------------------------------------------------------------------------%0D%0A %0D%0A
- Wir kümmern uns um eine rasche Behebung des Problems!`
+ let subject = slotProps.message.mailsubject;
+ let body = slotProps.message.mailbody;
return "mailto:" + mailTo + "?subject=" + subject + "&body=" + body;
},
@@ -155,7 +144,7 @@ const helperApp = Vue.createApp({
{{slotProps.message.summary}}
-
Sorry! Ein interner technischer Fehler ist aufgetreten.
+
{{slotProps.message.subtitle}}
@@ -216,23 +205,29 @@ export default {
alertWarning(message) {
if (Array.isArray(message))
return message.forEach(this.alertWarning);
- helperAppInstance.$refs.toast.add({ severity: 'warn', summary: 'Achtung', detail: message});
+ helperAppInstance.$refs.toast.add({ severity: 'warn', summary: Vue.computed(() => app.config.globalProperties.$p.t('alert/attention')), detail: message});
},
alertError(message) {
if (Array.isArray(message))
return message.forEach(this.alertError);
- helperAppInstance.$refs.toast.add({ severity: 'error', summary: 'Achtung', detail: message });
+ helperAppInstance.$refs.toast.add({ severity: 'error', summary: Vue.computed(() => app.config.globalProperties.$p.t('alert/attention')), detail: message });
},
alertSystemError(message) {
//TODO(Manu) for translation of content of template: restructure in data
//and update definitions with translations
-
if (Array.isArray(message))
return message.forEach(this.alertSystemError);
helperAppInstance.$refs.alert.add({
severity: 'error',
summary: Vue.computed(() => app.config.globalProperties.$p.t('alert/systemerror')),
- detail: message});
+ detail: message,
+ subtitle: Vue.computed(() => app.config.globalProperties.$p.t('alert/systemerrorsubtitle')),
+ showbutton: Vue.computed(() => app.config.globalProperties.$p.t('alert/systemerroranzeigen')),
+ mailbutton: Vue.computed(() => app.config.globalProperties.$p.t('alert/systemerrormelden')),
+ mailbody: Vue.computed(() => app.config.globalProperties.$p.t('alert', 'mailbody', {0: (FHC_JS_DATA_STORAGE_OBJECT.called_path + '/' + FHC_JS_DATA_STORAGE_OBJECT.called_method), 1: message})),
+ mailsubject: Vue.computed(() => app.config.globalProperties.$p.t('alert', 'mailsubject')),
+
+ });
},
confirmDelete() {
return new Promise((resolve, reject) => {
@@ -288,7 +283,7 @@ export default {
}
return false;
},
- handleSystemError(error) {
+ async handleSystemError(error) {
// don't show an error message to the user if the error was an aborted request
if(error.hasOwnProperty('name') && error.name.toLowerCase() === "AbortError".toLowerCase())
return;
@@ -304,36 +299,37 @@ export default {
// Error has been handled already
if (error.hasOwnProperty('handled') && error.handled)
return;
-
+
+ await app.config.globalProperties.$p.loadCategory('alert');
// Error is object
if (typeof error === 'object' && error !== null) {
let errMsg = '';
if (error.hasOwnProperty('response') && error.response?.data?.retval)
- errMsg += 'Error Message: ' + (error.response.data.retval.message || error.response.data.retval) + '\r\n';
+ errMsg += app.config.globalProperties.$p.t('alert/systemerrormsg') + ': ' + (error.response.data.retval.message || error.response.data.retval) + '\r\n';
else if (error.hasOwnProperty('message'))
- errMsg += 'Error Message: ' + error.message.toUpperCase() + '\r\n';
+ errMsg += app.config.globalProperties.$p.t('alert/systemerrormsg') + ': ' + error.message.toUpperCase() + '\r\n';
if (error.hasOwnProperty('config') && error.config.hasOwnProperty('url'))
- errMsg += 'Error ConfigURL: ' + error.config.url + '\r\n';
+ errMsg += app.config.globalProperties.$p.t('alert/error') + ' ConfigURL: ' + error.config.url + '\r\n';
if (error.hasOwnProperty('stack'))
- errMsg += 'Error Stack: ' + error.stack + '\r\n';
+ errMsg += app.config.globalProperties.$p.t('alert/error') + ' Stack: ' + error.stack + '\r\n';
// Fallback object error message
if (errMsg == '')
- errMsg = 'Error Message: ' + JSON.stringify(error) + '\r\n';
+ errMsg = app.config.globalProperties.$p.t('alert/systemerrormsg') + ': ' + JSON.stringify(error) + '\r\n';
- errMsg += 'Error Controller Path: ' + FHC_JS_DATA_STORAGE_OBJECT.called_path + '/' + FHC_JS_DATA_STORAGE_OBJECT.called_method;
+ errMsg += app.config.globalProperties.$p.t('alert/error') + ' Controller ' + app.config.globalProperties.$p.t('alert/path') + ': ' + FHC_JS_DATA_STORAGE_OBJECT.called_path + '/' + FHC_JS_DATA_STORAGE_OBJECT.called_method;
return $fhcAlert.alertSystemError(errMsg);
}
// Fallback
- $fhcAlert.alertSystemError('alertSystemError throws Generic Error\r\nError Controller Path: ' + FHC_JS_DATA_STORAGE_OBJECT.called_path + '/' + FHC_JS_DATA_STORAGE_OBJECT.called_method);
+ $fhcAlert.alertSystemError(app.config.globalProperties.$p.t('alert/errorfallback') + '\r\n'+ app.config.globalProperties.$p.t('alert/error') + ' Controller '+ app.config.globalProperties.$p.t('alert/path') +': ' + FHC_JS_DATA_STORAGE_OBJECT.called_path + '/' + FHC_JS_DATA_STORAGE_OBJECT.called_method);
},
- handleSystemMessage(message) {
+ async handleSystemMessage(message) {
// Message is string
if (typeof message === 'string')
return $fhcAlert.alertWarning(message);
@@ -367,8 +363,9 @@ export default {
return;
}
+ await app.config.globalProperties.$p.loadCategory('alert');
// Fallback
- $fhcAlert.alertSystemError('alertSystemError throws Generic Error\r\nError Controller Path: ' + FHC_JS_DATA_STORAGE_OBJECT.called_path + '/' + FHC_JS_DATA_STORAGE_OBJECT.called_method);
+ $fhcAlert.alertSystemError(app.config.globalProperties.$p.t('alert/errorfallback') + '\r\n'+ app.config.globalProperties.$p.t('alert/error') + ' Controller '+ app.config.globalProperties.$p.t('alert/path') +': ' + FHC_JS_DATA_STORAGE_OBJECT.called_path + '/' + FHC_JS_DATA_STORAGE_OBJECT.called_method);
},
resetFormValidation(form) {
const event = new Event('fhc-form-reset');
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 008ad8a8d..8f03adca7 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -48265,6 +48265,206 @@ and represent the current state of research on the topic. The prescribed citatio
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'alert',
+ 'phrase' => 'systemerrorsubtitle',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Sorry! Ein interner technischer Fehler ist aufgetreten.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Sorry! An internal technical error occurred.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'alert',
+ 'phrase' => 'systemerroranzeigen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler anzeigen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Show error',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'alert',
+ 'phrase' => 'systemerrormelden',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler melden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Report error',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'alert',
+ 'phrase' => 'systemerrormsg',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehlermeldung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error Message',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'alert',
+ 'phrase' => 'error',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'alert',
+ 'phrase' => 'path',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Pfad',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Path',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'alert',
+ 'phrase' => 'errorfallback',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'alertSystemError wirft generischen Fehler',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'alertSystemError throws Generic Error',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'alert',
+ 'phrase' => 'mailsubject',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Meldung%20Systemfehler',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'System%20Error%20Message',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'alert',
+ 'phrase' => 'mailbody',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Danke, dass Sie uns den Fehler melden. %0D%0A %0D%0A
+ Bitte beschreiben Sie uns ausführlich das Problem.%0D%0A
+ Bsp: Ich habe X ausgewählt und Y angelegt. Beim Speichern erhielt ich die Fehlermeldung. [Optional: Ich habe den Browser Z verwendet.]%0D%0A
+ -----------------------------------------------------------------------------------------------------------------------------------%0D%0A
+ PROBLEM: ... %0D%0A %0D%0A %0D%0A
+
+ -----------------------------------------------------------------------------------------------------------------------------------%0D%0A
+ Fehler URL: {0} %0D%0A
+ Fehler Meldung: {1} %0D%0A
+ -----------------------------------------------------------------------------------------------------------------------------------%0D%0A %0D%0A
+ Wir kümmern uns um eine rasche Behebung des Problems!',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Thank you for reporting this error. %0D%0A %0D%0A
+ Please describe the problem in detail.%0D%0A
+ Example: I selected X and created Y. When saving, I received the error message. [Optional: I used browser Z.]%0D%0A
+ -----------------------------------------------------------------------------------------------------------------------------------%0D%0A
+ PROBLEM: ... %0D%0A %0D%0A %0D%0A
+
+ -----------------------------------------------------------------------------------------------------------------------------------%0D%0A
+ Error URL: {0} %0D%0A
+ Error Message: {1} %0D%0A
+ -----------------------------------------------------------------------------------------------------------------------------------%0D%0A %0D%0A
+ We will make sure the problem is resolved quickly!',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'ui',