mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
CE-1887 - Update to return full icon object, not just name
This commit is contained in:
@ -26,6 +26,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppChildMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppChildMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppMetaData;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.layout.QIcon;
|
||||||
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.reporting.QReportMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.reporting.QReportMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||||
@ -45,7 +46,7 @@ public class AppTreeNode
|
|||||||
private String label;
|
private String label;
|
||||||
private List<AppTreeNode> children;
|
private List<AppTreeNode> children;
|
||||||
|
|
||||||
private String iconName;
|
private QIcon icon;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -82,7 +83,7 @@ public class AppTreeNode
|
|||||||
if(appChildMetaData.getIcon() != null)
|
if(appChildMetaData.getIcon() != null)
|
||||||
{
|
{
|
||||||
// todo - propagate icons from parents, if they aren't set here...
|
// todo - propagate icons from parents, if they aren't set here...
|
||||||
this.iconName = appChildMetaData.getIcon().getName();
|
this.icon = appChildMetaData.getIcon();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,7 +139,18 @@ public class AppTreeNode
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public String getIconName()
|
public String getIconName()
|
||||||
{
|
{
|
||||||
return iconName;
|
return (icon == null ? null : icon.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Getter for icon
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
public QIcon getIcon()
|
||||||
|
{
|
||||||
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
|||||||
import com.kingsrook.qqq.backend.core.model.actions.metadata.MetaDataOutput;
|
import com.kingsrook.qqq.backend.core.model.actions.metadata.MetaDataOutput;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppSection;
|
import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppSection;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.layout.QIcon;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.layout.QSupplementalAppMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.layout.QSupplementalAppMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
||||||
|
|
||||||
@ -45,7 +46,7 @@ public class QFrontendAppMetaData
|
|||||||
{
|
{
|
||||||
private String name;
|
private String name;
|
||||||
private String label;
|
private String label;
|
||||||
private String iconName;
|
private QIcon icon;
|
||||||
|
|
||||||
private List<String> widgets = new ArrayList<>();
|
private List<String> widgets = new ArrayList<>();
|
||||||
private List<AppTreeNode> children = new ArrayList<>();
|
private List<AppTreeNode> children = new ArrayList<>();
|
||||||
@ -56,6 +57,7 @@ public class QFrontendAppMetaData
|
|||||||
private Map<String, QSupplementalAppMetaData> supplementalAppMetaData;
|
private Map<String, QSupplementalAppMetaData> supplementalAppMetaData;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
@ -63,11 +65,7 @@ public class QFrontendAppMetaData
|
|||||||
{
|
{
|
||||||
this.name = appMetaData.getName();
|
this.name = appMetaData.getName();
|
||||||
this.label = appMetaData.getLabel();
|
this.label = appMetaData.getLabel();
|
||||||
|
this.icon = appMetaData.getIcon();
|
||||||
if(appMetaData.getIcon() != null)
|
|
||||||
{
|
|
||||||
this.iconName = appMetaData.getIcon().getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
List<String> filteredWidgets = CollectionUtils.nonNullList(appMetaData.getWidgets()).stream().filter(n -> metaDataOutput.getWidgets().containsKey(n)).toList();
|
List<String> filteredWidgets = CollectionUtils.nonNullList(appMetaData.getWidgets()).stream().filter(n -> metaDataOutput.getWidgets().containsKey(n)).toList();
|
||||||
if(CollectionUtils.nullSafeHasContents(filteredWidgets))
|
if(CollectionUtils.nullSafeHasContents(filteredWidgets))
|
||||||
@ -81,6 +79,10 @@ public class QFrontendAppMetaData
|
|||||||
List<String> filteredTables = CollectionUtils.nonNullList(section.getTables()).stream().filter(n -> metaDataOutput.getTables().containsKey(n)).toList();
|
List<String> filteredTables = CollectionUtils.nonNullList(section.getTables()).stream().filter(n -> metaDataOutput.getTables().containsKey(n)).toList();
|
||||||
List<String> filteredProcesses = CollectionUtils.nonNullList(section.getProcesses()).stream().filter(n -> metaDataOutput.getProcesses().containsKey(n)).toList();
|
List<String> filteredProcesses = CollectionUtils.nonNullList(section.getProcesses()).stream().filter(n -> metaDataOutput.getProcesses().containsKey(n)).toList();
|
||||||
List<String> filteredReports = CollectionUtils.nonNullList(section.getReports()).stream().filter(n -> metaDataOutput.getReports().containsKey(n)).toList();
|
List<String> filteredReports = CollectionUtils.nonNullList(section.getReports()).stream().filter(n -> metaDataOutput.getReports().containsKey(n)).toList();
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////
|
||||||
|
// only include the section if it has some contents //
|
||||||
|
//////////////////////////////////////////////////////
|
||||||
if(!filteredTables.isEmpty() || !filteredProcesses.isEmpty() || !filteredReports.isEmpty())
|
if(!filteredTables.isEmpty() || !filteredProcesses.isEmpty() || !filteredReports.isEmpty())
|
||||||
{
|
{
|
||||||
QAppSection clonedSection = section.clone();
|
QAppSection clonedSection = section.clone();
|
||||||
@ -174,18 +176,7 @@ public class QFrontendAppMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public String getIconName()
|
public String getIconName()
|
||||||
{
|
{
|
||||||
return iconName;
|
return (icon == null ? null : icon.getName());
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
** Setter for iconName
|
|
||||||
**
|
|
||||||
*******************************************************************************/
|
|
||||||
public void setIconName(String iconName)
|
|
||||||
{
|
|
||||||
this.iconName = iconName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -235,4 +226,15 @@ public class QFrontendAppMetaData
|
|||||||
{
|
{
|
||||||
return supplementalAppMetaData;
|
return supplementalAppMetaData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Getter for icon
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
public QIcon getIcon()
|
||||||
|
{
|
||||||
|
return icon;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
|
|||||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||||
import com.kingsrook.qqq.backend.core.actions.permissions.PermissionsHelper;
|
import com.kingsrook.qqq.backend.core.actions.permissions.PermissionsHelper;
|
||||||
import com.kingsrook.qqq.backend.core.model.actions.AbstractActionInput;
|
import com.kingsrook.qqq.backend.core.model.actions.AbstractActionInput;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.layout.QIcon;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData;
|
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.processes.QStateMachineStep;
|
import com.kingsrook.qqq.backend.core.model.metadata.processes.QStateMachineStep;
|
||||||
@ -48,7 +49,7 @@ public class QFrontendProcessMetaData
|
|||||||
private String tableName;
|
private String tableName;
|
||||||
private boolean isHidden;
|
private boolean isHidden;
|
||||||
|
|
||||||
private String iconName;
|
private QIcon icon;
|
||||||
|
|
||||||
private List<QFrontendStepMetaData> frontendSteps;
|
private List<QFrontendStepMetaData> frontendSteps;
|
||||||
private String stepFlow;
|
private String stepFlow;
|
||||||
@ -98,10 +99,7 @@ public class QFrontendProcessMetaData
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(processMetaData.getIcon() != null)
|
this.icon = processMetaData.getIcon();
|
||||||
{
|
|
||||||
this.iconName = processMetaData.getIcon().getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
hasPermission = PermissionsHelper.hasProcessPermission(actionInput, name);
|
hasPermission = PermissionsHelper.hasProcessPermission(actionInput, name);
|
||||||
}
|
}
|
||||||
@ -180,7 +178,7 @@ public class QFrontendProcessMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public String getIconName()
|
public String getIconName()
|
||||||
{
|
{
|
||||||
return iconName;
|
return icon == null ? null : icon.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -204,4 +202,15 @@ public class QFrontendProcessMetaData
|
|||||||
{
|
{
|
||||||
return stepFlow;
|
return stepFlow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Getter for icon
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
public QIcon getIcon()
|
||||||
|
{
|
||||||
|
return icon;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,7 @@ import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData;
|
|||||||
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
||||||
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.QHelpContent;
|
import com.kingsrook.qqq.backend.core.model.metadata.help.QHelpContent;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.layout.QIcon;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.sharing.ShareableTableMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.sharing.ShareableTableMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.Capability;
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.Capability;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.ExposedJoin;
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.ExposedJoin;
|
||||||
@ -61,7 +62,7 @@ public class QFrontendTableMetaData
|
|||||||
private String label;
|
private String label;
|
||||||
private boolean isHidden;
|
private boolean isHidden;
|
||||||
private String primaryKeyField;
|
private String primaryKeyField;
|
||||||
private String iconName;
|
private QIcon icon;
|
||||||
|
|
||||||
private Map<String, QFrontendFieldMetaData> fields;
|
private Map<String, QFrontendFieldMetaData> fields;
|
||||||
private List<QFieldSection> sections;
|
private List<QFieldSection> sections;
|
||||||
@ -156,10 +157,7 @@ public class QFrontendTableMetaData
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(tableMetaData.getIcon() != null)
|
this.icon = tableMetaData.getIcon();
|
||||||
{
|
|
||||||
this.iconName = tableMetaData.getIcon().getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
setCapabilities(backendForTable, tableMetaData);
|
setCapabilities(backendForTable, tableMetaData);
|
||||||
|
|
||||||
@ -275,7 +273,7 @@ public class QFrontendTableMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public String getIconName()
|
public String getIconName()
|
||||||
{
|
{
|
||||||
return iconName;
|
return (icon == null ? null : icon.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -397,4 +395,16 @@ public class QFrontendTableMetaData
|
|||||||
{
|
{
|
||||||
return helpContents;
|
return helpContents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Getter for icon
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
public QIcon getIcon()
|
||||||
|
{
|
||||||
|
return icon;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@ import com.kingsrook.qqq.middleware.javalin.schemabuilder.ToSchema;
|
|||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIDescription;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIDescription;
|
||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIExclude;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIExclude;
|
||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIListItems;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIListItems;
|
||||||
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIMapKnownEntries;
|
||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIMapValueType;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIMapValueType;
|
||||||
|
|
||||||
|
|
||||||
@ -91,10 +92,11 @@ public class AppMetaData implements ToSchema
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
**
|
**
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
@OpenAPIDescription("Name of an icon for the app, from the material UI icon set")
|
@OpenAPIDescription("Icon to display for the app.")
|
||||||
public String getIconName()
|
@OpenAPIMapKnownEntries(value = Icon.class, useRef = true)
|
||||||
|
public Icon getIcon()
|
||||||
{
|
{
|
||||||
return (this.wrapped.getIconName());
|
return (this.wrapped.getIcon() == null ? null : new Icon(this.wrapped.getIcon()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ import com.kingsrook.qqq.middleware.javalin.schemabuilder.ToSchema;
|
|||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIDescription;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIDescription;
|
||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIExclude;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIExclude;
|
||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIListItems;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIListItems;
|
||||||
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIMapKnownEntries;
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -60,6 +61,7 @@ public class AppTreeNode implements ToSchema
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
**
|
**
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
@ -70,6 +72,7 @@ public class AppTreeNode implements ToSchema
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
**
|
**
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
@ -91,6 +94,7 @@ public class AppTreeNode implements ToSchema
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
**
|
**
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
@ -102,4 +106,15 @@ public class AppTreeNode implements ToSchema
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
**
|
||||||
|
***************************************************************************/
|
||||||
|
@OpenAPIDescription("Icon to display for the item.")
|
||||||
|
@OpenAPIMapKnownEntries(value = Icon.class, useRef = true)
|
||||||
|
public Icon getIcon()
|
||||||
|
{
|
||||||
|
return (this.wrapped.getIcon() == null ? null : new Icon(this.wrapped.getIcon()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ import com.kingsrook.qqq.backend.core.model.metadata.frontend.QFrontendProcessMe
|
|||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.ToSchema;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.ToSchema;
|
||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIDescription;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIDescription;
|
||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIExclude;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIExclude;
|
||||||
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIMapKnownEntries;
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -117,10 +118,11 @@ public class ProcessMetaDataLight implements ToSchema
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
**
|
**
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
@OpenAPIDescription("Name of an icon for the process, from the material UI icon set")
|
@OpenAPIDescription("Icon to display for the process.")
|
||||||
public String getIconName()
|
@OpenAPIMapKnownEntries(value = Icon.class, useRef = true)
|
||||||
|
public Icon getIcon()
|
||||||
{
|
{
|
||||||
return (this.wrapped.getIconName());
|
return (this.wrapped.getIcon() == null ? null : new Icon(this.wrapped.getIcon()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ import com.kingsrook.qqq.middleware.javalin.schemabuilder.ToSchema;
|
|||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIDescription;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIDescription;
|
||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIExclude;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIExclude;
|
||||||
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIListItems;
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIListItems;
|
||||||
|
import com.kingsrook.qqq.middleware.javalin.schemabuilder.annotations.OpenAPIMapKnownEntries;
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -100,10 +101,11 @@ public class TableMetaDataLight implements ToSchema
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
**
|
**
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
@OpenAPIDescription("Name of an icon for the table, from the material UI icon set")
|
@OpenAPIDescription("Icon to display for the table")
|
||||||
public String getIconName()
|
@OpenAPIMapKnownEntries(value = Icon.class, useRef = true)
|
||||||
|
public Icon getIcon()
|
||||||
{
|
{
|
||||||
return (this.wrapped.getIconName());
|
return (this.wrapped.getIcon() == null ? null : new Icon(this.wrapped.getIcon()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user