diff --git a/src/qqq/components/widgets/misc/FilterAndColumnsSetupWidget.tsx b/src/qqq/components/widgets/misc/FilterAndColumnsSetupWidget.tsx
index 79194bd..4a22fe9 100644
--- a/src/qqq/components/widgets/misc/FilterAndColumnsSetupWidget.tsx
+++ b/src/qqq/components/widgets/misc/FilterAndColumnsSetupWidget.tsx
@@ -43,6 +43,7 @@ import QQueryColumns, {Column} from "qqq/models/query/QQueryColumns";
import RecordQuery from "qqq/pages/records/query/RecordQuery";
import Client from "qqq/utils/qqq/Client";
import FilterUtils from "qqq/utils/qqq/FilterUtils";
+import TableUtils from "qqq/utils/qqq/TableUtils";
import React, {useContext, useEffect, useRef, useState} from "react";
interface FilterAndColumnsSetupWidgetProps
@@ -102,6 +103,7 @@ export default function FilterAndColumnsSetupWidget({isEditable: isEditableProp,
const [columnsFieldName] = useState(widgetData?.columnsFieldName ?? "columnsJson");
const [alertContent, setAlertContent] = useState(null as string);
+ const [warning, setWarning] = useState(null as string);
const [widgetFailureAlertContent, setWidgetFailureAlertContent] = useState(null as string);
//////////////////////////////////////////////////////////////////////////////////////////////////
@@ -217,11 +219,28 @@ export default function FilterAndColumnsSetupWidget({isEditable: isEditableProp,
setTableMetaData(tableMetaData);
const queryFilterForFrontend = Object.assign({}, queryFilter);
+
+ let warnings: string[] = [];
+ for (let i = 0; i < queryFilterForFrontend?.criteria?.length; i++)
+ {
+ const criteria = queryFilter.criteria[i];
+ let [field, fieldTable] = TableUtils.getFieldAndTable(tableMetaData, criteria.fieldName);
+ if(!field)
+ {
+ warnings.push("Removing non-existing filter field: " + criteria.fieldName);
+ queryFilterForFrontend.criteria.splice(i, 1);
+ i--;
+ }
+ }
+
await FilterUtils.cleanupValuesInFilerFromQueryString(qController, tableMetaData, queryFilterForFrontend);
setFrontendQueryFilter(queryFilterForFrontend);
+
+ setWarning(warnings.join("; "));
}
catch (e)
{
+ console.log(e);
//@ts-ignore e.message
setWidgetFailureAlertContent("Error preparing filter widget: " + (e.message ?? "Details not available."));
}
@@ -417,6 +436,9 @@ export default function FilterAndColumnsSetupWidget({isEditable: isEditableProp,
setAlertContent(null)}>{alertContent}
+
+ setWarning(null)}>{warning}
+
{label ?? "Query Filter"}