updates from code review feedback
This commit is contained in:
1 parent
20f0d38dd1
commit
4f115e53c6
5 files changed
+37
-55
No files matched your search
@@ -23,7 +23,7 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<properties>
|
||||
<revision>0.3.0-SNAPSHOT</revision>
|
||||
<revision>0.113.0</revision>
|
||||
</properties>
|
||||
|
||||
<parent>
|
||||
|
||||
@@ -34,9 +34,9 @@ import com.kingsrook.qbits.workflows.execution.WorkflowTypeTesterInterface;
|
||||
import com.kingsrook.qqq.backend.core.instances.QInstanceEnricher;
|
||||
import com.kingsrook.qqq.backend.core.instances.QInstanceValidator;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.core.model.helpcontent.HelpContent;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReference;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.help.QHelpContent;
|
||||
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
||||
import com.kingsrook.qqq.backend.core.utils.StringUtils;
|
||||
|
||||
@@ -54,7 +54,7 @@ public class WorkflowType implements Serializable
|
||||
private QCodeReference executor;
|
||||
private QCodeReference tester;
|
||||
|
||||
protected Map<String, List<HelpContent>> helpContent;
|
||||
protected Map<String, List<QHelpContent>> helpContent;
|
||||
private ArrayList<WorkflowStepTypeCategory> stepTypeCategories;
|
||||
|
||||
|
||||
@@ -312,7 +312,7 @@ public class WorkflowType implements Serializable
|
||||
/*******************************************************************************
|
||||
** Getter for helpContent
|
||||
*******************************************************************************/
|
||||
public Map<String, List<HelpContent>> getHelpContent()
|
||||
public Map<String, List<QHelpContent>> getHelpContent()
|
||||
{
|
||||
return (this.helpContent);
|
||||
}
|
||||
@@ -322,7 +322,7 @@ public class WorkflowType implements Serializable
|
||||
/*******************************************************************************
|
||||
** Setter for helpContent
|
||||
*******************************************************************************/
|
||||
public void setHelpContent(Map<String, List<HelpContent>> helpContent)
|
||||
public void setHelpContent(Map<String, List<QHelpContent>> helpContent)
|
||||
{
|
||||
this.helpContent = helpContent;
|
||||
}
|
||||
@@ -332,7 +332,7 @@ public class WorkflowType implements Serializable
|
||||
/*******************************************************************************
|
||||
** Fluent setter for helpContent
|
||||
*******************************************************************************/
|
||||
public WorkflowType withHelpContent(Map<String, List<HelpContent>> helpContent)
|
||||
public WorkflowType withHelpContent(Map<String, List<QHelpContent>> helpContent)
|
||||
{
|
||||
this.helpContent = helpContent;
|
||||
return (this);
|
||||
@@ -343,7 +343,7 @@ public class WorkflowType implements Serializable
|
||||
/*******************************************************************************
|
||||
** Fluent setter for helpContent
|
||||
*******************************************************************************/
|
||||
public WorkflowType withHelpContent(String key, HelpContent helpContent)
|
||||
public WorkflowType withHelpContent(String key, QHelpContent helpContent)
|
||||
{
|
||||
if(this.helpContent == null)
|
||||
{
|
||||
|
||||
@@ -259,6 +259,17 @@ public class WorkflowsRegistry implements QSupplementalInstanceMetaData, QHelpCo
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(nameValuePairs.containsKey("workflow") && nameValuePairs.containsKey("field"))
|
||||
{
|
||||
if(workflowTypes != null)
|
||||
{
|
||||
for(String workflowTypeName : workflowTypes.keySet())
|
||||
{
|
||||
String key = "workflow:" + nameValuePairs.get("workflow") + ";field:" + nameValuePairs.get("field");
|
||||
workflowTypes.get(workflowTypeName).withHelpContent(key, helpContent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+13
-22
@@ -23,7 +23,6 @@ package com.kingsrook.qbits.workflows.implementations.recordworkflows;
|
||||
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
@@ -31,20 +30,18 @@ import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import com.kingsrook.qbits.workflows.definition.WorkflowStepType;
|
||||
import com.kingsrook.qbits.workflows.definition.WorkflowsRegistry;
|
||||
import com.kingsrook.qbits.workflows.implementations.WorkflowStepUtils;
|
||||
import com.kingsrook.qbits.workflows.model.WorkflowRevision;
|
||||
import com.kingsrook.qqq.backend.core.actions.tables.QueryAction;
|
||||
import com.kingsrook.qqq.backend.core.actions.values.SearchPossibleValueSourceAction;
|
||||
import com.kingsrook.qqq.backend.core.context.QContext;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.logging.QLogger;
|
||||
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.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.values.SearchPossibleValueSourceInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.values.SearchPossibleValueSourceOutput;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.core.model.helpcontent.HelpContent;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.code.InitializableViaCodeReference;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReference;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReferenceWithProperties;
|
||||
@@ -52,9 +49,6 @@ import com.kingsrook.qqq.backend.core.model.metadata.fields.FieldAndJoinTable;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.frontend.QFrontendFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.help.HelpFormat;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.help.QHelpContent;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.help.QHelpRole;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
||||
import com.kingsrook.qqq.backend.core.utils.StringUtils;
|
||||
@@ -144,23 +138,20 @@ public class UpdateInputRecordFieldMetaDataAdjuster implements FormAdjusterInter
|
||||
updatedField.setLabel("Value (" + fieldAndJoinTable.field().getLabel() + ")");
|
||||
}
|
||||
|
||||
/////////////////////////////////////
|
||||
// check for any help help content //
|
||||
/////////////////////////////////////
|
||||
String helpKey = "workflowStepType:updateInputRecordField;field:value";
|
||||
List<QRecord> helpContentRecords = QueryAction.execute(HelpContent.TABLE_NAME, new QQueryFilter(new QFilterCriteria("key", QCriteriaOperator.EQUALS, helpKey)));
|
||||
if(CollectionUtils.nullSafeHasContents(helpContentRecords))
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// check the workflow registry to see if there is help content for this field //
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
WorkflowsRegistry workflowsRegistry = WorkflowsRegistry.of(QContext.getQInstance());
|
||||
WorkflowStepType workflowStepType = workflowsRegistry.getWorkflowStepType(UpdateInputRecordFieldStep.NAME);
|
||||
if(workflowStepType != null)
|
||||
{
|
||||
List<QHelpContent> helpContents = new ArrayList<>();
|
||||
for(QRecord record : helpContentRecords)
|
||||
for(QFieldMetaData fieldMetaData : CollectionUtils.nonNullList(workflowStepType.getInputFields()))
|
||||
{
|
||||
HelpContent helpContent = new HelpContent(record);
|
||||
helpContents.add(new QHelpContent(helpKey)
|
||||
.withFormat(HelpFormat.valueOf(helpContent.getFormat()))
|
||||
.withContent(helpContent.getContent())
|
||||
.withRole(QHelpRole.valueOf(helpContent.getRole())));
|
||||
if(fieldMetaData.getName().equals("value"))
|
||||
{
|
||||
updatedField.setHelpContents(fieldMetaData.getHelpContents());
|
||||
}
|
||||
}
|
||||
updatedField.setHelpContents(helpContents);
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
|
||||
+6
-26
@@ -28,7 +28,6 @@ import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.kingsrook.qbits.workflows.definition.WorkflowStepType;
|
||||
import com.kingsrook.qbits.workflows.definition.WorkflowStepTypeCategory;
|
||||
@@ -37,14 +36,10 @@ import com.kingsrook.qbits.workflows.definition.WorkflowsRegistry;
|
||||
import com.kingsrook.qbits.workflows.model.Workflow;
|
||||
import com.kingsrook.qqq.backend.core.actions.processes.BackendStep;
|
||||
import com.kingsrook.qqq.backend.core.actions.tables.GetAction;
|
||||
import com.kingsrook.qqq.backend.core.actions.tables.QueryAction;
|
||||
import com.kingsrook.qqq.backend.core.context.QContext;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepOutput;
|
||||
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.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.core.model.helpcontent.HelpContent;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.MetaDataProducerInterface;
|
||||
@@ -53,6 +48,7 @@ import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReference;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.frontend.QFrontendFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.help.QHelpContent;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.permissions.PermissionLevel;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.permissions.QPermissionRules;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.QBackendStepMetaData;
|
||||
@@ -122,28 +118,12 @@ public class GetWorkflowTypeDefinitionProcess implements BackendStep, MetaDataPr
|
||||
throw new QException("Workflow type not found: " + workflowTypeName);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// save any help content on current workflow and put back after customization //
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
Map<String, List<QHelpContent>> helpContent = workflowType.getHelpContent();
|
||||
workflowType = workflowType.customizeBasedOnWorkflow(workflowRecord);
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
// look for any 'top level' help content for workflows //
|
||||
/////////////////////////////////////////////////////////
|
||||
QQueryFilter filter = new QQueryFilter(new QFilterCriteria("key", QCriteriaOperator.STARTS_WITH, "workflow:"));
|
||||
List<HelpContent> helpContents = QueryAction.execute(HelpContent.TABLE_NAME, HelpContent.class, filter);
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
// add these helps to the workflow type if present //
|
||||
/////////////////////////////////////////////////////
|
||||
if(CollectionUtils.nullSafeHasContents(helpContents))
|
||||
{
|
||||
Map<String, HelpContent> helpContentMap = helpContents.stream().collect(Collectors.toMap(h -> h.getKey(), h -> h));
|
||||
Map<String, List<HelpContent>> workflowTypeHelpContent = getWorkflowTypeHelpContent(helpContentMap);
|
||||
workflowType.setHelpContent(workflowTypeHelpContent);
|
||||
|
||||
///////////////////////////////////////////
|
||||
// reregister with the workflow registry //
|
||||
///////////////////////////////////////////
|
||||
WorkflowsRegistry.of(QContext.getQInstance()).registerWorkflowType(workflowType);
|
||||
}
|
||||
workflowType.setHelpContent(helpContent);
|
||||
runBackendStepOutput.addValue("workflowType", workflowType);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in new issue
Block a user