diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/ProcessAlertWidget.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/AlertWidgetRenderer.java similarity index 94% rename from qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/ProcessAlertWidget.java rename to qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/AlertWidgetRenderer.java index 486f192c..ebf26e2d 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/ProcessAlertWidget.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/AlertWidgetRenderer.java @@ -40,9 +40,9 @@ import com.kingsrook.qqq.backend.core.model.metadata.dashboard.QWidgetMetaData; ** - alertType - name of entry in AlertType enum (ERROR, WARNING, SUCCESS) ** - alertHtml - html to display inside the alert (other than its icon) *******************************************************************************/ -public class ProcessAlertWidget extends AbstractWidgetRenderer implements MetaDataProducerInterface +public class AlertWidgetRenderer extends AbstractWidgetRenderer implements MetaDataProducerInterface { - public static final String NAME = "ProcessAlertWidget"; + public static final String NAME = "AlertWidgetRenderer"; 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 af63d1ac..e8f654ed 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 @@ -301,6 +301,9 @@ public class ChildRecordListRenderer extends AbstractWidgetRenderer } } + widgetData.setAllowRecordEdit(BooleanUtils.isTrue(ValueUtils.getValueAsBoolean(input.getQueryParams().get("allowRecordEdit")))); + widgetData.setAllowRecordDelete(BooleanUtils.isTrue(ValueUtils.getValueAsBoolean(input.getQueryParams().get("allowRecordDelete")))); + return (new RenderWidgetOutput(widgetData)); } catch(Exception e) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/AlertData.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/AlertData.java index 5c6567fb..b5cf3538 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/AlertData.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/AlertData.java @@ -22,6 +22,9 @@ package com.kingsrook.qqq.backend.core.model.dashboard.widgets; +import java.util.List; + + /******************************************************************************* ** Model containing datastructure expected by frontend alert widget ** @@ -40,8 +43,10 @@ public class AlertData extends QWidgetData - private String html; - private AlertType alertType; + private String html; + private AlertType alertType; + private Boolean hideWidget = false; + private List bulletList; @@ -139,4 +144,66 @@ public class AlertData extends QWidgetData return (this); } + + + /******************************************************************************* + ** Getter for hideWidget + *******************************************************************************/ + public boolean getHideWidget() + { + return (this.hideWidget); + } + + + + /******************************************************************************* + ** Setter for hideWidget + *******************************************************************************/ + public void setHideWidget(boolean hideWidget) + { + this.hideWidget = hideWidget; + } + + + + /******************************************************************************* + ** Fluent setter for hideWidget + *******************************************************************************/ + public AlertData withHideWidget(boolean hideWidget) + { + this.hideWidget = hideWidget; + return (this); + } + + + + /******************************************************************************* + ** Getter for bulletList + *******************************************************************************/ + public List getBulletList() + { + return (this.bulletList); + } + + + + /******************************************************************************* + ** Setter for bulletList + *******************************************************************************/ + public void setBulletList(List bulletList) + { + this.bulletList = bulletList; + } + + + + /******************************************************************************* + ** Fluent setter for bulletList + *******************************************************************************/ + public AlertData withBulletList(List bulletList) + { + this.bulletList = bulletList; + return (this); + } + } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/ChildRecordListData.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/ChildRecordListData.java index 1e8403ee..e3917b7d 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/ChildRecordListData.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/ChildRecordListData.java @@ -39,9 +39,13 @@ public class ChildRecordListData extends QWidgetData private QueryOutput queryOutput; private QTableMetaData childTableMetaData; + private String tableName; private String tablePath; private String viewAllLink; private Integer totalRows; + private Boolean disableRowClick = false; + private Boolean allowRecordEdit = false; + private Boolean allowRecordDelete = false; private boolean canAddChildRecord = false; private Map defaultValuesForNewChildRecords; @@ -352,4 +356,141 @@ public class ChildRecordListData extends QWidgetData return (this); } + + + /******************************************************************************* + ** Getter for tableName + *******************************************************************************/ + public String getTableName() + { + return (this.tableName); + } + + + + /******************************************************************************* + ** Setter for tableName + *******************************************************************************/ + public void setTableName(String tableName) + { + this.tableName = tableName; + } + + + + /******************************************************************************* + ** Fluent setter for tableName + *******************************************************************************/ + public ChildRecordListData withTableName(String tableName) + { + this.tableName = tableName; + return (this); + } + + + + /******************************************************************************* + ** Fluent setter for tablePath + *******************************************************************************/ + public ChildRecordListData withTablePath(String tablePath) + { + this.tablePath = tablePath; + return (this); + } + + + + /******************************************************************************* + ** Getter for disableRowClick + *******************************************************************************/ + public Boolean getDisableRowClick() + { + return (this.disableRowClick); + } + + + + /******************************************************************************* + ** Setter for disableRowClick + *******************************************************************************/ + public void setDisableRowClick(Boolean disableRowClick) + { + this.disableRowClick = disableRowClick; + } + + + + /******************************************************************************* + ** Fluent setter for disableRowClick + *******************************************************************************/ + public ChildRecordListData withDisableRowClick(Boolean disableRowClick) + { + this.disableRowClick = disableRowClick; + return (this); + } + + + + /******************************************************************************* + ** Getter for allowRecordEdit + *******************************************************************************/ + public Boolean getAllowRecordEdit() + { + return (this.allowRecordEdit); + } + + + + /******************************************************************************* + ** Setter for allowRecordEdit + *******************************************************************************/ + public void setAllowRecordEdit(Boolean allowRecordEdit) + { + this.allowRecordEdit = allowRecordEdit; + } + + + + /******************************************************************************* + ** Fluent setter for allowRecordEdit + *******************************************************************************/ + public ChildRecordListData withAllowRecordEdit(Boolean allowRecordEdit) + { + this.allowRecordEdit = allowRecordEdit; + return (this); + } + + + + /******************************************************************************* + ** Getter for allowRecordDelete + *******************************************************************************/ + public Boolean getAllowRecordDelete() + { + return (this.allowRecordDelete); + } + + + + /******************************************************************************* + ** Setter for allowRecordDelete + *******************************************************************************/ + public void setAllowRecordDelete(Boolean allowRecordDelete) + { + this.allowRecordDelete = allowRecordDelete; + } + + + + /******************************************************************************* + ** Fluent setter for allowRecordDelete + *******************************************************************************/ + public ChildRecordListData withAllowRecordDelete(Boolean allowRecordDelete) + { + this.allowRecordDelete = allowRecordDelete; + return (this); + } } + + + diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/QWidgetData.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/QWidgetData.java index 5b2768cf..d0b4df9e 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/QWidgetData.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/dashboard/widgets/QWidgetData.java @@ -31,7 +31,7 @@ import java.util.Map; ** Base class for the data returned by rendering a Widget. ** *******************************************************************************/ -public abstract class QWidgetData +public abstract class QWidgetData implements Serializable { private String label; private String sublabel; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/CountingHash.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/CountingHash.java index 8db0e364..e3abc974 100755 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/CountingHash.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/CountingHash.java @@ -94,6 +94,29 @@ public class CountingHash extends AbstractMap alwaysMutable = new CountingHash<>(Map.of("A", 5)); + alwaysMutable.put("A", 25); + assertEquals(25, alwaysMutable.get("A")); + alwaysMutable.put("A"); + assertEquals(26, alwaysMutable.get("A")); + } + +}