From 3a9efb4c5f0a08715413a14aaba7deb3963e56c0 Mon Sep 17 00:00:00 2001
From: Volker Schukai <volker.schukai@schukai.com>
Date: Tue, 18 Feb 2025 23:20:21 +0100
Subject: [PATCH] feat(datatable-status): add callbacks.onError

---
 source/components/datatable/status.mjs | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/source/components/datatable/status.mjs b/source/components/datatable/status.mjs
index 8f929c080..6ea1294cf 100644
--- a/source/components/datatable/status.mjs
+++ b/source/components/datatable/status.mjs
@@ -30,6 +30,7 @@ import "./datasource/rest.mjs";
 import "../form/popper.mjs";
 import "../form/context-error.mjs";
 import { StatusStyleSheet } from "./stylesheet/status.mjs";
+import {Formatter} from "../../text/formatter.mjs";
 
 export { DatasourceStatus };
 
@@ -82,6 +83,11 @@ class DatasourceStatus extends CustomElement {
 	 * @property {string} templates.main Main template
 	 * @property {Object} datasource Datasource configuration
 	 * @property {string} datasource.selector The selector of the datasource
+	 * @property {Object} callbacks Callbacks
+	 * @property {Function} callbacks.onError Callback function for error handling
+	 * @property {Object} timeouts Timeouts
+	 * @property {number} timeouts.message Timeout for the message
+	 * @property {Object} state State
 	 */
 	get defaults() {
 		return Object.assign({}, super.defaults, {
@@ -93,6 +99,11 @@ class DatasourceStatus extends CustomElement {
 				selector: null,
 			},
 
+			callbacks: {
+				onError: null
+			},
+
+
 			timeouts: {
 				message: 4000,
 			},
@@ -205,6 +216,12 @@ function initEventHandler() {
 				}
 			} catch (e) {
 			} finally {
+
+				const callback = self.getOption("callbacks.onError", null);
+				if (callback) {
+					msg = callback(msg);
+				}
+
 				self[errorElementSymbol].setErrorMessage(msg, timeout);
 			}
 		});
-- 
GitLab