updated to handle (ignore) fields with empty strings when using goto dialog

This commit is contained in:
Tim Chamberlain
2025-04-07 16:50:01 -05:00
parent a6ee682671
commit 34c6f650b5
2 changed files with 20 additions and 15 deletions

1
.gitignore vendored
View File

@ -5,6 +5,7 @@
.yalc* .yalc*
yalc.lock yalc.lock
.env .env
/certs
# dependencies # dependencies
/node_modules /node_modules

View File

@ -20,6 +20,7 @@
*/ */
import {QFieldMetaData} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QFieldMetaData"; import {QFieldMetaData} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QFieldMetaData";
import {QFieldType} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QFieldType";
import {QInstance} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QInstance"; import {QInstance} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QInstance";
import {QTableMetaData} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QTableMetaData"; import {QTableMetaData} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QTableMetaData";
import {QTableVariant} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QTableVariant"; import {QTableVariant} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QTableVariant";
@ -35,12 +36,11 @@ import DialogTitle from "@mui/material/DialogTitle";
import Grid from "@mui/material/Grid"; import Grid from "@mui/material/Grid";
import Icon from "@mui/material/Icon"; import Icon from "@mui/material/Icon";
import TextField from "@mui/material/TextField"; import TextField from "@mui/material/TextField";
import {any} from "prop-types";
import React, {useState} from "react";
import {useNavigate} from "react-router-dom";
import {QCancelButton} from "qqq/components/buttons/DefaultButtons"; import {QCancelButton} from "qqq/components/buttons/DefaultButtons";
import MDButton from "qqq/components/legacy/MDButton"; import MDButton from "qqq/components/legacy/MDButton";
import Client from "qqq/utils/qqq/Client"; import Client from "qqq/utils/qqq/Client";
import React, {useState} from "react";
import {useNavigate} from "react-router-dom";
interface Props interface Props
{ {
@ -186,14 +186,14 @@ function GotoRecordDialog(props: Props): JSX.Element
{ {
anyFieldsInThisOptionHaveAValue = true; anyFieldsInThisOptionHaveAValue = true;
} }
}) });
if (!anyFieldsInThisOptionHaveAValue) if (!anyFieldsInThisOptionHaveAValue)
{ {
return (true); return (true);
} }
return (false); return (false);
} };
/*************************************************************************** /***************************************************************************
@ -207,9 +207,13 @@ function GotoRecordDialog(props: Props): JSX.Element
const queryStringParts: string[] = []; const queryStringParts: string[] = [];
options[optionIndex].forEach((field) => options[optionIndex].forEach((field) =>
{ {
criteria.push(new QFilterCriteria(field.name, QCriteriaOperator.EQUALS, [values[field.name]])) if (field.type == QFieldType.STRING && !values[field.name][0])
queryStringParts.push(`${field.name}=${encodeURIComponent(values[field.name])}`) {
}) return;
}
criteria.push(new QFilterCriteria(field.name, QCriteriaOperator.EQUALS, [values[field.name]]));
queryStringParts.push(`${field.name}=${encodeURIComponent(values[field.name])}`);
});
const filter = new QQueryFilter(criteria, null, null, "AND", null, 10); const filter = new QQueryFilter(criteria, null, null, "AND", null, 10);