From fb6cef66efaa1275b6761614140f780176563344 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Wed, 15 Mar 2023 17:00:51 -0500 Subject: [PATCH] 2 bugs: clone the filter, and ignore empty-string in condition --- .../dashboard/nocode/IfInputVariableExistsFilter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/dashboard/nocode/IfInputVariableExistsFilter.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/dashboard/nocode/IfInputVariableExistsFilter.java index d4d1e803..d254079f 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/dashboard/nocode/IfInputVariableExistsFilter.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/dashboard/nocode/IfInputVariableExistsFilter.java @@ -27,6 +27,8 @@ import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterCriteria import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter; import com.kingsrook.qqq.backend.core.model.actions.widgets.RenderWidgetInput; import com.kingsrook.qqq.backend.core.utils.CollectionUtils; +import com.kingsrook.qqq.backend.core.utils.StringUtils; +import com.kingsrook.qqq.backend.core.utils.ValueUtils; import com.kingsrook.qqq.backend.core.utils.collections.MutableList; @@ -67,7 +69,7 @@ public class IfInputVariableExistsFilter extends AbstractConditionalFilter @Override public boolean testCondition(RenderWidgetInput renderWidgetInput) { - return (renderWidgetInput.getQueryParams().get(inputVariableName) != null); + return (StringUtils.hasContent(ValueUtils.getValueAsString(renderWidgetInput.getQueryParams().get(inputVariableName)))); } @@ -78,7 +80,8 @@ public class IfInputVariableExistsFilter extends AbstractConditionalFilter @Override public QQueryFilter getFilter(RenderWidgetInput renderWidgetInput) { - for(QFilterCriteria criterion : CollectionUtils.nonNullList(filter.getCriteria())) + QQueryFilter returnFilter = filter.clone(); + for(QFilterCriteria criterion : CollectionUtils.nonNullList(returnFilter.getCriteria())) { if(criterion.getValues() != null) { @@ -94,6 +97,6 @@ public class IfInputVariableExistsFilter extends AbstractConditionalFilter } } - return (filter); + return (returnFilter); } }