From 0ef01efcaaf84d28de8a716039892846708cbb50 Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Tue, 19 Nov 2024 15:03:02 -0600 Subject: [PATCH] CE-1772: updates to alert widgets --- ...rtWidget.java => AlertWidgetRenderer.java} | 4 +- .../model/dashboard/widgets/AlertData.java | 71 ++++++++++++++++++- .../widgets/ChildRecordListData.java | 43 +++++++++++ .../model/dashboard/widgets/QWidgetData.java | 2 +- .../qqq/backend/core/utils/CountingHash.java | 23 ++++++ ...Test.java => AlertWidgetRendererTest.java} | 10 +-- .../backend/core/utils/CountingHashTest.java | 19 ++++- 7 files changed, 160 insertions(+), 12 deletions(-) rename qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/{ProcessAlertWidget.java => AlertWidgetRenderer.java} (94%) rename qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/dashboard/widgets/{ProcessAlertWidgetTest.java => AlertWidgetRendererTest.java} (94%) 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/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..9aba47d3 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,6 +39,7 @@ public class ChildRecordListData extends QWidgetData private QueryOutput queryOutput; private QTableMetaData childTableMetaData; + private String tableName; private String tablePath; private String viewAllLink; private Integer totalRows; @@ -352,4 +353,46 @@ 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); + } + } 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")); + } + +}