mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
For CE-1280 - add helpContent to process steps
This commit is contained in:
@ -43,6 +43,7 @@ import com.kingsrook.qqq.backend.core.model.metadata.help.HelpFormat;
|
|||||||
import com.kingsrook.qqq.backend.core.model.metadata.help.HelpRole;
|
import com.kingsrook.qqq.backend.core.model.metadata.help.HelpRole;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.help.QHelpContent;
|
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.help.QHelpRole;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.QProcessMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.processes.QProcessMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QFieldSection;
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.QFieldSection;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||||
@ -111,6 +112,7 @@ public class QInstanceHelpContentManager
|
|||||||
String processName = nameValuePairs.get("process");
|
String processName = nameValuePairs.get("process");
|
||||||
String fieldName = nameValuePairs.get("field");
|
String fieldName = nameValuePairs.get("field");
|
||||||
String sectionName = nameValuePairs.get("section");
|
String sectionName = nameValuePairs.get("section");
|
||||||
|
String stepName = nameValuePairs.get("step");
|
||||||
String widgetName = nameValuePairs.get("widget");
|
String widgetName = nameValuePairs.get("widget");
|
||||||
String slotName = nameValuePairs.get("slot");
|
String slotName = nameValuePairs.get("slot");
|
||||||
|
|
||||||
@ -145,7 +147,7 @@ public class QInstanceHelpContentManager
|
|||||||
}
|
}
|
||||||
else if(StringUtils.hasContent(processName))
|
else if(StringUtils.hasContent(processName))
|
||||||
{
|
{
|
||||||
processHelpContentForProcess(key, processName, fieldName, roles, helpContent);
|
processHelpContentForProcess(key, processName, fieldName, stepName, roles, helpContent);
|
||||||
}
|
}
|
||||||
else if(StringUtils.hasContent(widgetName))
|
else if(StringUtils.hasContent(widgetName))
|
||||||
{
|
{
|
||||||
@ -208,6 +210,10 @@ public class QInstanceHelpContentManager
|
|||||||
optionalSection.get().removeHelpContent(roles);
|
optionalSection.get().removeHelpContent(roles);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOG.info("Unrecognized key format for table help content", logPair("key", key));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -215,7 +221,7 @@ public class QInstanceHelpContentManager
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
private static void processHelpContentForProcess(String key, String processName, String fieldName, Set<HelpRole> roles, QHelpContent helpContent)
|
private static void processHelpContentForProcess(String key, String processName, String fieldName, String stepName, Set<HelpRole> roles, QHelpContent helpContent)
|
||||||
{
|
{
|
||||||
QProcessMetaData process = QContext.getQInstance().getProcess(processName);
|
QProcessMetaData process = QContext.getQInstance().getProcess(processName);
|
||||||
if(process == null)
|
if(process == null)
|
||||||
@ -244,6 +250,30 @@ public class QInstanceHelpContentManager
|
|||||||
optionalField.get().removeHelpContent(roles);
|
optionalField.get().removeHelpContent(roles);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(StringUtils.hasContent(stepName))
|
||||||
|
{
|
||||||
|
/////////////////////////////
|
||||||
|
// handle a process screen //
|
||||||
|
/////////////////////////////
|
||||||
|
QFrontendStepMetaData frontendStep = process.getFrontendStep(stepName);
|
||||||
|
|
||||||
|
if(frontendStep == null)
|
||||||
|
{
|
||||||
|
LOG.info("Unrecognized process step in help content", logPair("key", key));
|
||||||
|
}
|
||||||
|
else if(helpContent != null)
|
||||||
|
{
|
||||||
|
frontendStep.withHelpContent(helpContent);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
frontendStep.removeHelpContent(roles);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOG.info("Unrecognized key format for process help content", logPair("key", key));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,8 +26,12 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import com.kingsrook.qqq.backend.core.instances.QInstanceHelpContentManager;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.help.HelpRole;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.help.QHelpContent;
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
@ -43,6 +47,8 @@ public class QFrontendStepMetaData extends QStepMetaData
|
|||||||
private List<QFieldMetaData> recordListFields;
|
private List<QFieldMetaData> recordListFields;
|
||||||
private Map<String, QFieldMetaData> formFieldMap;
|
private Map<String, QFieldMetaData> formFieldMap;
|
||||||
|
|
||||||
|
private List<QHelpContent> helpContents;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
@ -340,4 +346,61 @@ public class QFrontendStepMetaData extends QStepMetaData
|
|||||||
return (rs);
|
return (rs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Getter for helpContents
|
||||||
|
*******************************************************************************/
|
||||||
|
public List<QHelpContent> getHelpContents()
|
||||||
|
{
|
||||||
|
return (this.helpContents);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Setter for helpContents
|
||||||
|
*******************************************************************************/
|
||||||
|
public void setHelpContents(List<QHelpContent> helpContents)
|
||||||
|
{
|
||||||
|
this.helpContents = helpContents;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Fluent setter for helpContents
|
||||||
|
*******************************************************************************/
|
||||||
|
public QFrontendStepMetaData withHelpContents(List<QHelpContent> helpContents)
|
||||||
|
{
|
||||||
|
this.helpContents = helpContents;
|
||||||
|
return (this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Fluent setter for adding 1 helpContent
|
||||||
|
*******************************************************************************/
|
||||||
|
public QFrontendStepMetaData withHelpContent(QHelpContent helpContent)
|
||||||
|
{
|
||||||
|
if(this.helpContents == null)
|
||||||
|
{
|
||||||
|
this.helpContents = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
QInstanceHelpContentManager.putHelpContentInList(helpContent, this.helpContents);
|
||||||
|
return (this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** remove a single helpContent based on its set of roles
|
||||||
|
*******************************************************************************/
|
||||||
|
public void removeHelpContent(Set<HelpRole> roles)
|
||||||
|
{
|
||||||
|
QInstanceHelpContentManager.removeHelpContentByRoleSetFromList(roles, this.helpContents);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -167,6 +167,36 @@ class QInstanceHelpContentManagerTest extends BaseTest
|
|||||||
QInstance qInstance = QContext.getQInstance();
|
QInstance qInstance = QContext.getQInstance();
|
||||||
new HelpContentMetaDataProvider().defineAll(qInstance, TestUtils.MEMORY_BACKEND_NAME, null);
|
new HelpContentMetaDataProvider().defineAll(qInstance, TestUtils.MEMORY_BACKEND_NAME, null);
|
||||||
|
|
||||||
|
HelpContent recordEntity = new HelpContent()
|
||||||
|
.withId(1)
|
||||||
|
.withKey("process:" + TestUtils.PROCESS_NAME_GREET_PEOPLE_INTERACTIVE + ";step:setup")
|
||||||
|
.withContent("v1")
|
||||||
|
.withRole(HelpContentRole.PROCESS_SCREEN.getId());
|
||||||
|
new InsertAction().execute(new InsertInput(HelpContent.TABLE_NAME).withRecordEntity(recordEntity));
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// now - post-insert customizer should have automatically added help content to the instance //
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
List<QHelpContent> helpContents = qInstance.getProcess(TestUtils.PROCESS_NAME_GREET_PEOPLE_INTERACTIVE).getFrontendStep("setup").getHelpContents();
|
||||||
|
assertEquals(1, helpContents.size());
|
||||||
|
assertEquals("v1", helpContents.get(0).getContent());
|
||||||
|
assertEquals(Set.of(QHelpRole.PROCESS_SCREEN), helpContents.get(0).getRoles());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
@Test
|
||||||
|
void testProcessStep() throws QException
|
||||||
|
{
|
||||||
|
/////////////////////////////////////
|
||||||
|
// get the instance from base test //
|
||||||
|
/////////////////////////////////////
|
||||||
|
QInstance qInstance = QContext.getQInstance();
|
||||||
|
new HelpContentMetaDataProvider().defineAll(qInstance, TestUtils.MEMORY_BACKEND_NAME, null);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////
|
||||||
// first, assert there's no help content on the section //
|
// first, assert there's no help content on the section //
|
||||||
//////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////
|
||||||
|
Reference in New Issue
Block a user