mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
CE-1068 - Add recordOfValues, with display values for PVSes
This commit is contained in:
@ -23,6 +23,7 @@ package com.kingsrook.qqq.backend.core.model.dashboard.widgets;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||
|
||||
|
||||
@ -33,6 +34,12 @@ public class DynamicFormWidgetData extends QWidgetData
|
||||
{
|
||||
private List<QFieldMetaData> fieldList;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
// values for the fields - //
|
||||
// use a QRecord, so we can do "richer" things, like DisplayValues //
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
private QRecord recordOfFieldValues;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
// if there are no fields, what message to display //
|
||||
/////////////////////////////////////////////////////
|
||||
@ -147,4 +154,35 @@ public class DynamicFormWidgetData extends QWidgetData
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Getter for recordOfFieldValues
|
||||
*******************************************************************************/
|
||||
public QRecord getRecordOfFieldValues()
|
||||
{
|
||||
return (this.recordOfFieldValues);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Setter for recordOfFieldValues
|
||||
*******************************************************************************/
|
||||
public void setRecordOfFieldValues(QRecord recordOfFieldValues)
|
||||
{
|
||||
this.recordOfFieldValues = recordOfFieldValues;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Fluent setter for recordOfFieldValues
|
||||
*******************************************************************************/
|
||||
public DynamicFormWidgetData withRecordOfFieldValues(QRecord recordOfFieldValues)
|
||||
{
|
||||
this.recordOfFieldValues = recordOfFieldValues;
|
||||
return (this);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import com.kingsrook.qqq.backend.core.actions.dashboard.widgets.AbstractWidgetRenderer;
|
||||
import com.kingsrook.qqq.backend.core.actions.tables.GetAction;
|
||||
import com.kingsrook.qqq.backend.core.actions.values.QPossibleValueTranslator;
|
||||
import com.kingsrook.qqq.backend.core.context.QContext;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.logging.QLogger;
|
||||
@ -57,6 +58,7 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
|
||||
{
|
||||
private static final QLogger LOG = QLogger.getLogger(ReportValuesDynamicFormWidgetRenderer.class);
|
||||
|
||||
private QPossibleValueTranslator qPossibleValueTranslator;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
@ -104,6 +106,8 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
|
||||
return new RenderWidgetOutput(widgetData);
|
||||
}
|
||||
|
||||
QRecord recordOfFieldValues = new QRecord();
|
||||
|
||||
if(StringUtils.hasContent(savedReport.getQueryFilterJson()))
|
||||
{
|
||||
QQueryFilter queryFilter = SavedReportToReportMetaDataAdapter.getQQueryFilter(savedReport.getQueryFilterJson());
|
||||
@ -144,7 +148,23 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
|
||||
|
||||
if(defaultValues.containsKey(fieldName))
|
||||
{
|
||||
fieldMetaData.setDefaultValue(defaultValues.get(fieldName));
|
||||
String value = defaultValues.get(fieldName);
|
||||
|
||||
fieldMetaData.setDefaultValue(value);
|
||||
recordOfFieldValues.setValue(fieldName, value);
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// look up display values for possible value fields //
|
||||
//////////////////////////////////////////////////////
|
||||
if(StringUtils.hasContent(fieldMetaData.getPossibleValueSourceName()))
|
||||
{
|
||||
if(qPossibleValueTranslator == null)
|
||||
{
|
||||
qPossibleValueTranslator = new QPossibleValueTranslator();
|
||||
}
|
||||
String displayValue = qPossibleValueTranslator.translatePossibleValue(fieldMetaData, value);
|
||||
recordOfFieldValues.setDisplayValue(fieldName, displayValue);
|
||||
}
|
||||
}
|
||||
|
||||
fieldList.add(fieldMetaData);
|
||||
@ -156,6 +176,7 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
|
||||
///////////////////////////////////
|
||||
DynamicFormWidgetData widgetData = new DynamicFormWidgetData();
|
||||
widgetData.setFieldList(fieldList);
|
||||
widgetData.setRecordOfFieldValues(recordOfFieldValues);
|
||||
widgetData.setMergedDynamicFormValuesIntoFieldName("inputValues");
|
||||
|
||||
if(CollectionUtils.nullSafeIsEmpty(fieldList))
|
||||
|
Reference in New Issue
Block a user