From 3eda651ebb945c935e0d3c5d2f4824d32bf5436c Mon Sep 17 00:00:00 2001 From: alphaeusmote <41258468-alphaeusmote@users.noreply.replit.com> Date: Wed, 9 Apr 2025 02:56:05 +0000 Subject: [PATCH] Enhance LDAP query builder with group conditions and display Replit-Commit-Author: Agent Replit-Commit-Session-Id: 705f2157-ef97-4fbd-89e4-8c7f2ecaea90 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7ed01c5f-a82d-405a-b728-b2e3d127c60c/7c09e00d-9224-4250-94a8-7eb880f1b264.jpg --- client/src/pages/ldap-query-builder-page.tsx | 236 ++++++++++++++++++- 1 file changed, 228 insertions(+), 8 deletions(-) diff --git a/client/src/pages/ldap-query-builder-page.tsx b/client/src/pages/ldap-query-builder-page.tsx index 444e848..6140b9c 100644 --- a/client/src/pages/ldap-query-builder-page.tsx +++ b/client/src/pages/ldap-query-builder-page.tsx @@ -75,7 +75,8 @@ const LdapQueryBuilderPage = () => { const [isActive, setIsActive] = useState(true); const [filterBuilder, setFilterBuilder] = useState({ operator: "and", - conditions: [{ attribute: "", operator: "equals", value: "" }] + conditions: [{ attribute: "", operator: "equals", value: "" }], + groups: [] }); // Query to get LDAP connections @@ -239,7 +240,8 @@ const LdapQueryBuilderPage = () => { // Reset filter builder to default state setFilterBuilder({ operator: "and", - conditions: [{ attribute: "", operator: "equals", value: "" }] + conditions: [{ attribute: "", operator: "equals", value: "" }], + groups: [] }); }; @@ -642,6 +644,7 @@ const LdapQueryBuilderPage = () => { + {/* Main conditions section */}
{filterBuilder.conditions.map((condition: any, index: number) => (
@@ -732,19 +735,190 @@ const LdapQueryBuilderPage = () => { }); }} > + Add Condition
+ {/* Condition groups section */} +
+
+ + +
+ + {filterBuilder.groups && filterBuilder.groups.map((group: any, groupIndex: number) => ( +
+
+
+ + +
+ +
+ +
+ {group.conditions.map((condition: any, condIndex: number) => ( +
+
+ { + const updatedGroups = [...filterBuilder.groups]; + updatedGroups[groupIndex].conditions[condIndex].attribute = e.target.value; + setFilterBuilder({ + ...filterBuilder, + groups: updatedGroups + }); + }} + /> +
+
+ +
+
+ { + const updatedGroups = [...filterBuilder.groups]; + updatedGroups[groupIndex].conditions[condIndex].value = e.target.value; + setFilterBuilder({ + ...filterBuilder, + groups: updatedGroups + }); + }} + /> +
+
+ +
+
+ ))} + + +
+
+ ))} +
+
+ + {filterQuery && ( +
+ + {filterQuery} +
+ )}