From f70cb237d8174e1b828bd7f27627129e135987bf Mon Sep 17 00:00:00 2001 From: Loretta Date: Wed, 15 Jul 2026 15:20:44 +0200 Subject: [PATCH] Add quick-filter panel support to MgGridBase Introduced a FilterPanel slot and supporting components for per-field quick filtering in DevExpress Blazor grids. Added MgGridFilterPanelBase and MgTagBox for declarative, AND-combined field filters. Updated IMgGridBase and base classes to support SetFieldQuickFilter. Documented the extension in ADR 0004 and clarified SearchText handling. Registered DevExpress docs fetch domain and performed minor cleanups. --- .claude/settings.local.json | 3 ++- FruitBankHybrid.Shared/Components/MgGridBase.cs | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index df15baad..61e96f22 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -107,7 +107,8 @@ "Read(//h/Applications/Aycode/Source/AyCode.Core/AyCode.Services.Server/docs/**)", "Read(//h/Applications/Aycode/Source/AyCode.Core/AyCode.Services/SignalRs/**)", "Read(//h/Applications/Aycode/Source/AyCode.Core/AyCode.Services.Server/SignalRs/**)", - "WebFetch(domain:raw.githubusercontent.com)" + "WebFetch(domain:raw.githubusercontent.com)", + "WebFetch(domain:docs.devexpress.com)" ] } } diff --git a/FruitBankHybrid.Shared/Components/MgGridBase.cs b/FruitBankHybrid.Shared/Components/MgGridBase.cs index 7bafe0e5..73d0cb10 100644 --- a/FruitBankHybrid.Shared/Components/MgGridBase.cs +++ b/FruitBankHybrid.Shared/Components/MgGridBase.cs @@ -3,6 +3,7 @@ using AyCode.Core.Extensions; using AyCode.Core.Loggers; using AyCode.Utils.Extensions; using DevExpress.Blazor; +using DevExpress.Data.Filtering; using DevExpress.Data.Helpers; using DevExpress.Utils.Filtering.Internal; using FruitBank.Common.Models; @@ -57,6 +58,10 @@ public class MgGridBase : DxGrid, IMgGridBase // Not implemented in this legacy class - will be removed } + /// + public void SetFieldQuickFilter(string fieldName, CriteriaOperator? criteria) + => SetFieldFilterCriteria(fieldName, criteria); // legacy class - will be removed + [Inject] public required IEnumerable LogWriters { get; set; } [Inject] public required FruitBankSignalRClient FruitBankSignalRClient { get; set; } [Inject] public required LoggedInModel LoggedInModel { get; set; }