try to be a little more graceful with fields that don't exist (e.g., other api version use cases)

This commit is contained in:
2025-05-29 12:24:21 -05:00
parent 5ab906bcfe
commit 0a42b9d4f0
2 changed files with 15 additions and 4 deletions

View File

@ -117,6 +117,11 @@ export default class QQueryColumns
{
const [field, tableForField] = TableUtils.getFieldAndTable(table, fieldName)
if(!field)
{
console.warn(`Couldn't find field ${fieldName} in tableMetaData - so not adding a column for it`);
}
let column: Column;
if(tableForField.name == table.name)
{

View File

@ -108,6 +108,12 @@ class FilterUtils
const criteria = queryFilter.criteria[i];
let [field, fieldTable] = TableUtils.getFieldAndTable(tableMetaData, criteria.fieldName);
if(!field)
{
console.warn(`Field ${criteria.fieldName} not found in tableMetaData - unable to clean up values for it..`);
return;
}
let values = criteria.values;
let hasFilterVariable = false;
@ -401,21 +407,21 @@ class FilterUtils
{
const expression = new ThisOrLastPeriodExpression(value);
let startOfPrefix = "";
if (fieldMetaData.type == QFieldType.DATE_TIME || expression.timeUnit != "DAYS")
if (fieldMetaData?.type == QFieldType.DATE_TIME || expression.timeUnit != "DAYS")
{
startOfPrefix = "start of ";
}
labels.push(`${startOfPrefix}${expression.toString()}`);
}
else if (fieldMetaData.type == QFieldType.BOOLEAN)
else if (fieldMetaData?.type == QFieldType.BOOLEAN)
{
labels.push(value == true ? "yes" : "no");
}
else if (fieldMetaData.type == QFieldType.DATE_TIME)
else if (fieldMetaData?.type == QFieldType.DATE_TIME)
{
labels.push(ValueUtils.formatDateTime(value));
}
else if (fieldMetaData.type == QFieldType.DATE)
else if (fieldMetaData?.type == QFieldType.DATE)
{
labels.push(ValueUtils.formatDate(value));
}