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} +
+ )}