From ae36677855281a1f3342e772762a141b672c2c2a Mon Sep 17 00:00:00 2001
From: Volker Schukai <volker.schukai@schukai.com>
Date: Sun, 2 Feb 2025 17:04:57 +0100
Subject: [PATCH] feat(datatable): new feature flag preventSameQuery

---
 source/components/datatable/filter.mjs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/source/components/datatable/filter.mjs b/source/components/datatable/filter.mjs
index e268d4c87..aa73a5161 100644
--- a/source/components/datatable/filter.mjs
+++ b/source/components/datatable/filter.mjs
@@ -242,6 +242,7 @@ class Filter extends CustomElement {
 	 * @property {Object} features Feature definitions
 	 * @property {boolean} features.storedConfig Stored configuration, this replaces the setting `storedConfig.enabled` @since 3.97.0
 	 * @property {boolean} features.autoFilter Auto filter @since 3.100.0
+	 * @property {boolean} features.preventSameQuery Prevent same query @since 3.103.0
 	 * @property {Object} storedConfig Stored configuration
 	 * @property {boolean} storedConfig.enabled The store has been enabled, this option will no longer have any effect. @deprecated 20250101
 	 * @property {string} storedConfig.selector Selector
@@ -277,6 +278,7 @@ class Filter extends CustomElement {
 			features: {
 				storedConfig: false,
 				autoFilter: true,
+				preventSameQuery: false,
 			},
 
 			storedConfig: {
@@ -1061,7 +1063,8 @@ function doSearch({ showEffect } = { showEffect: true }) {
 				return Promise.reject(new Error(msg));
 			}
 
-			if (buildQuery === this.getOption("query")) {
+			if (this.getOption("features.preventSameQuery") &&
+				buildQuery === this.getOption("query")) {
 				const msg = this.getOption("labels.query-not-changed");
 
 				if (showEffect) {
-- 
GitLab