Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 2ae0c6b

Browse files
1 parent e0a585e commit 2ae0c6b

3 files changed

Lines changed: 14 additions & 2 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/i18n/Strings.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ public interface Strings {
158158
String entityUser = "entityUser";
159159
String epiWeek = "epiWeek";
160160
String errorAccessDenied = "errorAccessDenied";
161+
String errorCampaignDiagramTotalsCalculationError = "errorCampaignDiagramTotalsCalculationError";
161162
String errorCaseDuplicateDeletion = "errorCaseDuplicateDeletion";
162163
String errorCaseMerging = "errorCaseMerging";
163164
String errorDeletingDocumentTemplate = "errorDeletingDocumentTemplate";

sormas-api/src/main/resources/strings.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ errorFileNotFound = File '%s' not found
241241
errorReadingTemplate = Error reading template '%s'
242242
errorProcessingTemplate = Error processing template '%s'
243243
errorSormasToSormasNotEditable = Readonly data can not be shared.
244+
errorCampaignDiagramTotalsCalculationError = At least part of the percentage values for the diagram '%s' could not be calculated. Please check the diagram definitions for errors.
244245

245246
# headings
246247
headingAccessDenied = Access denied

sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/campaigns/CampaignDashboardDiagramComponent.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package de.symeda.sormas.ui.dashboard.campaigns;
22

3+
import static com.vaadin.ui.Notification.Type.ERROR_MESSAGE;
4+
35
import java.math.BigDecimal;
46
import java.math.RoundingMode;
57
import java.util.ArrayList;
@@ -13,13 +15,15 @@
1315

1416
import org.apache.commons.text.StringEscapeUtils;
1517

18+
import com.vaadin.ui.Notification;
1619
import com.vaadin.ui.VerticalLayout;
1720

1821
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramDataDto;
1922
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramDefinitionDto;
2023
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramSeries;
2124
import de.symeda.sormas.api.i18n.Captions;
2225
import de.symeda.sormas.api.i18n.I18nProperties;
26+
import de.symeda.sormas.api.i18n.Strings;
2327
import de.symeda.sormas.ui.highcharts.HighChart;
2428

2529
@SuppressWarnings("serial")
@@ -178,11 +182,17 @@ public void buildDiagramChart(String title) {
178182
for (Object axisKey : axisKeys) {
179183
if (seriesData.containsKey(axisKey)) {
180184
if (showPercentages && totalValuesMap != null) {
181-
double totalValue = totalValuesMap.get(
185+
Double totalValue = totalValuesMap.get(
182186
new CampaignDashboardTotalsReference(
183187
seriesData.get(axisKey).getGroupingKey(),
184188
totalValuesWithoutStacks ? null : series.getStack()));
185-
if (totalValue > 0) {
189+
if (totalValue == null) {
190+
Notification.show(
191+
String.format(
192+
I18nProperties.getString(Strings.errorCampaignDiagramTotalsCalculationError),
193+
diagramDefinition.getDiagramCaption()),
194+
ERROR_MESSAGE);
195+
} else if (totalValue > 0) {
186196
hcjs.append(
187197
BigDecimal.valueOf(seriesData.get(axisKey).getValueSum().doubleValue() / totalValue * 100)
188198
.setScale(2, RoundingMode.HALF_UP)

0 commit comments

Comments
 (0)