Skip to content

Commit 0bea38a

Browse files
committed
[KNOWAGE-9309] fix missing parameter in the title in DASHBOARD export
1 parent b8f5847 commit 0bea38a

3 files changed

Lines changed: 24 additions & 0 deletions

File tree

knowage-excel-export/src/main/java/it/eng/knowage/engine/api/excel/export/dashboard/exporters/DashboardPivotExporter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public int export() {
2929
JSONObject settings = widget.getJSONObject("settings");
3030
String dashboardSheetName = documentName != null ? documentName : "Dashboard";
3131
String widgetName = getDashboardWidgetName(widget);
32+
widgetName = replacePlaceholderIfPresent(widgetName);
3233
Sheet sheet = excelExporter.createUniqueSafeSheet(wb, widgetName, dashboardSheetName);
3334

3435
int offset = 0;

knowage-excel-export/src/main/java/it/eng/knowage/engine/api/excel/export/dashboard/exporters/DashboardTableExporter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public int export() {
2828
JSONObject settings = widget.getJSONObject("settings");
2929
String dashboardSheetName = documentName != null ? documentName : "Dashboard";
3030
String widgetName = getDashboardWidgetName(widget);
31+
widgetName = replacePlaceholderIfPresent(widgetName);
3132
Sheet sheet = excelExporter.createUniqueSafeSheet(wb, widgetName, dashboardSheetName);
3233
int offset = 0;
3334
int fetchSize = Integer.parseInt(SingletonConfig.getInstance().getConfigValue("SPAGOBI.API.DATASET.MAX_ROWS_NUMBER"));

knowage-excel-export/src/main/java/it/eng/knowage/engine/api/excel/export/dashboard/exporters/GenericDashboardWidgetExporter.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
package it.eng.knowage.engine.api.excel.export.dashboard.exporters;
2020

21+
import com.fasterxml.jackson.databind.node.ArrayNode;
2122
import it.eng.knowage.engine.api.excel.export.IWidgetExporter;
2223
import it.eng.knowage.engine.api.excel.export.dashboard.DashboardExcelExporter;
2324
import it.eng.knowage.engine.api.excel.export.dashboard.DatastoreUtils;
@@ -26,8 +27,10 @@
2627
import org.apache.poi.ss.usermodel.Sheet;
2728
import org.apache.poi.ss.usermodel.Workbook;
2829
import org.json.JSONArray;
30+
import org.json.JSONException;
2931
import org.json.JSONObject;
3032

33+
import java.util.LinkedHashMap;
3134
import java.util.Map;
3235

3336
class GenericDashboardWidgetExporter implements IWidgetExporter {
@@ -62,6 +65,7 @@ public int export() {
6265
JSONObject settings = widget.getJSONObject("settings");
6366
JSONObject dataStore = datastoreUtils.getDataStoreforDashboardSingleWidget(widget, selections, drivers, parameters);
6467
String widgetName = getDashboardWidgetName(widget);
68+
widgetName = replacePlaceholderIfPresent(widgetName);
6569
if (dataStore != null) {
6670
String dashboardSheetName = documentName != null ? documentName : "Dashboard";
6771
Sheet sheet = excelExporter.createUniqueSafeSheet(wb, widgetName, dashboardSheetName);
@@ -92,4 +96,22 @@ protected String getDashboardWidgetName(JSONObject widget) {
9296
private static String getWidgetGenericName(JSONObject widget) {
9397
return widget.optString("type").concat(" ").concat(widget.optString("id"));
9498
}
99+
100+
protected String replacePlaceholderIfPresent(String widgetName) {
101+
if (widgetName.contains("$P{")) {
102+
String placeholder = widgetName.substring(widgetName.indexOf("$P{") + 3, widgetName.indexOf("}"));
103+
if (drivers.has(placeholder)) {
104+
try {
105+
JSONArray valuesArray = drivers.getJSONArray(placeholder);
106+
if (valuesArray.length() > 0) {
107+
JSONObject value = valuesArray.getJSONObject(0);
108+
widgetName = widgetName.replace("$P{" + placeholder + "}", value.getString("value"));
109+
}
110+
} catch (JSONException e) {
111+
throw new SpagoBIRuntimeException("Unable to replace placeholder in widget name", e);
112+
}
113+
}
114+
}
115+
return widgetName;
116+
}
95117
}

0 commit comments

Comments
 (0)