diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/ChildRecordListRenderer.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/ChildRecordListRenderer.java index a73fcb09..adabbd3a 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/ChildRecordListRenderer.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/ChildRecordListRenderer.java @@ -45,6 +45,7 @@ import com.kingsrook.qqq.backend.core.model.actions.tables.get.GetInput; import com.kingsrook.qqq.backend.core.model.actions.tables.get.GetOutput; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QCriteriaOperator; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterCriteria; +import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterOrderBy; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryInput; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryOutput; @@ -195,14 +196,16 @@ public class ChildRecordListRenderer extends AbstractWidgetRenderer QTableMetaData leftTable = QContext.getQInstance().getTable(join.getLeftTable()); QTableMetaData rightTable = QContext.getQInstance().getTable(join.getRightTable()); + Map widgetMetaDataDefaultValues = input.getWidgetMetaData().getDefaultValues(); + Integer maxRows = null; if(StringUtils.hasContent(input.getQueryParams().get("maxRows"))) { maxRows = ValueUtils.getValueAsInteger(input.getQueryParams().get("maxRows")); } - else if(input.getWidgetMetaData().getDefaultValues().containsKey("maxRows")) + else if(widgetMetaDataDefaultValues.containsKey("maxRows")) { - maxRows = ValueUtils.getValueAsInteger(input.getWidgetMetaData().getDefaultValues().get("maxRows")); + maxRows = ValueUtils.getValueAsInteger(widgetMetaDataDefaultValues.get("maxRows")); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -235,7 +238,17 @@ public class ChildRecordListRenderer extends AbstractWidgetRenderer { filter.addCriteria(new QFilterCriteria(joinOn.getRightField(), QCriteriaOperator.EQUALS, List.of(primaryRecord.getValue(joinOn.getLeftField())))); } - filter.setOrderBys(join.getOrderBys()); + + Serializable orderBy = widgetMetaDataDefaultValues.get("orderBy"); + if(orderBy instanceof List orderByList && !orderByList.isEmpty() && orderByList.get(0) instanceof QFilterOrderBy) + { + filter.setOrderBys(orderByList); + } + else + { + filter.setOrderBys(join.getOrderBys()); + } + filter.setLimit(maxRows); QueryInput queryInput = new QueryInput(); @@ -284,11 +297,10 @@ public class ChildRecordListRenderer extends AbstractWidgetRenderer widgetData.setDefaultValuesForNewChildRecords(defaultValuesForNewChildRecords); - Map widgetValues = input.getWidgetMetaData().getDefaultValues(); - if(widgetValues.containsKey("disabledFieldsForNewChildRecords")) + if(widgetMetaDataDefaultValues.containsKey("disabledFieldsForNewChildRecords")) { @SuppressWarnings("unchecked") - Set disabledFieldsForNewChildRecords = (Set) widgetValues.get("disabledFieldsForNewChildRecords"); + Set disabledFieldsForNewChildRecords = (Set) widgetMetaDataDefaultValues.get("disabledFieldsForNewChildRecords"); widgetData.setDisabledFieldsForNewChildRecords(disabledFieldsForNewChildRecords); } else @@ -308,10 +320,10 @@ public class ChildRecordListRenderer extends AbstractWidgetRenderer } } - if(widgetValues.containsKey("defaultValuesForNewChildRecordsFromParentFields")) + if(widgetMetaDataDefaultValues.containsKey("defaultValuesForNewChildRecordsFromParentFields")) { @SuppressWarnings("unchecked") - Map defaultValuesForNewChildRecordsFromParentFields = (Map) widgetValues.get("defaultValuesForNewChildRecordsFromParentFields"); + Map defaultValuesForNewChildRecordsFromParentFields = (Map) widgetMetaDataDefaultValues.get("defaultValuesForNewChildRecordsFromParentFields"); widgetData.setDefaultValuesForNewChildRecordsFromParentFields(defaultValuesForNewChildRecordsFromParentFields); } } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/FilterAndColumnsSetupData.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/FilterAndColumnsSetupData.java index f35afbb3..a09817e9 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/FilterAndColumnsSetupData.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/FilterAndColumnsSetupData.java @@ -32,9 +32,11 @@ import java.util.List; public class FilterAndColumnsSetupData extends QWidgetData { private String tableName; - private Boolean allowVariables = false; - private Boolean hideColumns = false; - private Boolean hidePreview = false; + private Boolean allowVariables = false; + private Boolean hideColumns = false; + private Boolean hidePreview = false; + private Boolean hideSortBy = false; + private Boolean overrideIsEditable = false; private List filterDefaultFieldNames; private String filterFieldName = "queryFilterJson"; @@ -290,4 +292,66 @@ public class FilterAndColumnsSetupData extends QWidgetData return (this); } + + /******************************************************************************* + ** Getter for overrideIsEditable + *******************************************************************************/ + public Boolean getOverrideIsEditable() + { + return (this.overrideIsEditable); + } + + + + /******************************************************************************* + ** Setter for overrideIsEditable + *******************************************************************************/ + public void setOverrideIsEditable(Boolean overrideIsEditable) + { + this.overrideIsEditable = overrideIsEditable; + } + + + + /******************************************************************************* + ** Fluent setter for overrideIsEditable + *******************************************************************************/ + public FilterAndColumnsSetupData withOverrideIsEditable(Boolean overrideIsEditable) + { + this.overrideIsEditable = overrideIsEditable; + return (this); + } + + + + /******************************************************************************* + ** Getter for hideSortBy + *******************************************************************************/ + public Boolean getHideSortBy() + { + return (this.hideSortBy); + } + + + + /******************************************************************************* + ** Setter for hideSortBy + *******************************************************************************/ + public void setHideSortBy(Boolean hideSortBy) + { + this.hideSortBy = hideSortBy; + } + + + + /******************************************************************************* + ** Fluent setter for hideSortBy + *******************************************************************************/ + public FilterAndColumnsSetupData withHideSortBy(Boolean hideSortBy) + { + this.hideSortBy = hideSortBy; + return (this); + } + + } diff --git a/qqq-middleware-javalin/src/main/java/com/kingsrook/qqq/middleware/javalin/specs/v1/utils/ProcessSpecUtilsV1.java b/qqq-middleware-javalin/src/main/java/com/kingsrook/qqq/middleware/javalin/specs/v1/utils/ProcessSpecUtilsV1.java index e339d957..7387e0ed 100644 --- a/qqq-middleware-javalin/src/main/java/com/kingsrook/qqq/middleware/javalin/specs/v1/utils/ProcessSpecUtilsV1.java +++ b/qqq-middleware-javalin/src/main/java/com/kingsrook/qqq/middleware/javalin/specs/v1/utils/ProcessSpecUtilsV1.java @@ -163,7 +163,6 @@ public class ProcessSpecUtilsV1 JSONObject outputJsonObject = convertResponseToJSONObject(response); String json = outputJsonObject.toString(3); - System.out.println(json); context.result(json); } @@ -308,8 +307,8 @@ public class ProcessSpecUtilsV1 private static void archiveUploadedFile(String processName, QUploadedFile qUploadedFile) { String fileName = QValueFormatter.formatDate(LocalDate.now()) - + File.separator + processName - + File.separator + qUploadedFile.getFilename(); + + File.separator + processName + + File.separator + qUploadedFile.getFilename(); InsertInput insertInput = new InsertInput(); insertInput.setTableName(QJavalinImplementation.getJavalinMetaData().getUploadedFileArchiveTableName());