@sapui5/sap.suite.ui.generic.template 1.145.0 → 1.146.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/suite/ui/generic/template/.library +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +62 -13
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n.properties +14 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_it.properties +2 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +13 -9
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_it.properties +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartChart.fragment.xml +9 -2
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTable.fragment.xml +2 -2
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +52 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartChart.fragment.xml +0 -1
- package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/designtime/controls/SmartTable.designtime.js +90 -10
- package/src/sap/suite/ui/generic/template/fragments/GridTableColumns.fragment.xml +1 -1
- package/src/sap/suite/ui/generic/template/genericUtilities/Link.js +26 -26
- package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +16 -1
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/BaseNoDataHandler.js +108 -0
- package/src/sap/suite/ui/generic/template/lib/ChartNoDataHandler.js +37 -0
- package/src/sap/suite/ui/generic/template/lib/TableNoDataHandler.js +24 -101
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +26 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +4 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +3 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +3 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +6 -4
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +3 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +4 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +7 -5
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +6 -4
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +12 -3
- package/src/sap/suite/ui/generic/template/library.js +1 -1
- package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +11 -2
- package/src/sap/suite/ui/generic/template/listTemplates/fragments/SmartChart.fragment.xml +11 -4
- package/src/sap/suite/ui/generic/template/themes/base/AnalyticalListPage.less +135 -98
- package/src/sap/suite/ui/generic/template/themes/base/ListReport.less +12 -5
- package/src/sap/suite/ui/generic/template/themes/base/ObjectPage.less +254 -223
- package/src/sap/suite/ui/generic/template/themes/base/QuickCreate.less +31 -9
- package/src/sap/suite/ui/generic/template/themes/base/QuickView.less +42 -21
- package/src/sap/suite/ui/generic/template/themes/sap_belize_base/ObjectPage.less +0 -1
- package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ObjectPage.less +0 -1
- package/src/sap/suite/ui/generic/template/themes/sap_fiori_3/ObjectPage.less +15 -11
- package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_dark/ObjectPage.less +13 -9
- package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcb/AnalyticalListPage.less +6 -2
- package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcb/ObjectPage.less +2 -2
- package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcw/AnalyticalListPage.less +6 -2
- package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcw/ObjectPage.less +2 -2
- package/src/sap/suite/ui/generic/template/themes/sap_hcb/base_ObjectPage.less +0 -1
- package/src/sap/suite/ui/generic/template/themes/sap_horizon/AnalyticalListPage.less +7 -2
- package/src/sap/suite/ui/generic/template/themes/sap_horizon/ObjectPage.less +11 -11
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_dark/AnalyticalListPage.less +7 -2
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_dark/ObjectPage.less +10 -10
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcb/AnalyticalListPage.less +4 -4
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcb/ObjectPage.less +2 -2
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcw/AnalyticalListPage.less +4 -4
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcw/ObjectPage.less +2 -2
package/package.json
CHANGED
package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js
CHANGED
|
@@ -28,12 +28,15 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
|
|
|
28
28
|
"sap/suite/ui/generic/template/genericUtilities/metadataAnalyser",
|
|
29
29
|
"sap/suite/ui/generic/template/genericUtilities/filterHelper",
|
|
30
30
|
"sap/suite/ui/generic/template/js/AnnotationHelperHiddenTermSupport",
|
|
31
|
+
"sap/m/IllustratedMessageType",
|
|
32
|
+
"sap/suite/ui/generic/template/lib/TableNoDataHandler",
|
|
33
|
+
"sap/suite/ui/generic/template/lib/ChartNoDataHandler",
|
|
31
34
|
"sap/suite/ui/generic/template/AnalyticalListPage/controller/CtxMenuHandler"
|
|
32
35
|
], function(SelectionVariant, ExtensionAPI,
|
|
33
36
|
FilterBarController, ToolbarController, VisualFilterBarController, VisualFilterDialogController, AnalyticalTable,
|
|
34
37
|
ODataAnnotationHelper, Analytics, ContentAreaController, IappStateHandler, Device, SegmentedButtonItem, ALPHelper, controlHelper, FeLogger,
|
|
35
38
|
ObjectPath, ShareUtils, merge, deepExtend, ListUtils, MultipleViewsHandler, StableIdHelper, MessageStripHelper, JSONModel, PersonalizationControllerUtil,
|
|
36
|
-
InsightsHandler, metadataAnalyser, filterHelper, AnnotationHelperHiddenTermSupport, CtxMenuHandler) {
|
|
39
|
+
InsightsHandler, metadataAnalyser, filterHelper, AnnotationHelperHiddenTermSupport, IllustratedMessageType, TableNoDataHandler, ChartNoDataHandler, CtxMenuHandler) {
|
|
37
40
|
|
|
38
41
|
"use strict";
|
|
39
42
|
|
|
@@ -55,6 +58,28 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
|
|
|
55
58
|
var bTableRebindRequired = false; // This boolean value decides whether or not the table has to be rebind.
|
|
56
59
|
var oContextMenuHandler = new CtxMenuHandler(oController, oTemplateUtils, oState);
|
|
57
60
|
|
|
61
|
+
var oTableNoDataConfig = {
|
|
62
|
+
TABLE_WITH_FILTER: {
|
|
63
|
+
i18nKey: "NOITEMS_SMARTTABLE_WITH_FILTER",
|
|
64
|
+
illustrationType: IllustratedMessageType.NoFilterResults
|
|
65
|
+
},
|
|
66
|
+
TABLE_WITHOUT_FILTER: {
|
|
67
|
+
i18nKey: "NOITEMS_SMARTTABLE",
|
|
68
|
+
illustrationType: IllustratedMessageType.NoEntries
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
var oChartNoDataConfig = {
|
|
73
|
+
CHART_WITH_FILTER: {
|
|
74
|
+
i18nKey: "NOITEMS_SMARTCHART_WITH_FILTER",
|
|
75
|
+
illustrationType: IllustratedMessageType.NoFilterResults
|
|
76
|
+
},
|
|
77
|
+
CHART_WITHOUT_FILTER: {
|
|
78
|
+
i18nKey: "NOITEMS_SMARTCHART",
|
|
79
|
+
illustrationType: IllustratedMessageType.NoEntries
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
58
83
|
function attachRefreshInterval(nRefreshInterval) {
|
|
59
84
|
oState.oRefreshTimer = setTimeout(function () {
|
|
60
85
|
var oComponent = oController.getOwnerComponent();
|
|
@@ -236,20 +261,40 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
|
|
|
236
261
|
return mSmartCtrlConfig;
|
|
237
262
|
}
|
|
238
263
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
264
|
+
/**
|
|
265
|
+
* When no data message is displayed as illustration, SmartTable overrides the "illustrationType" to "NoEntries".
|
|
266
|
+
* Here, we reset back to "BeforeSearch".
|
|
267
|
+
*
|
|
268
|
+
* TODO: Sync with table colleagues
|
|
269
|
+
*/
|
|
270
|
+
function fnSetInitialNoDataMessageForTable (oSmartTable) {
|
|
271
|
+
var sNoDataRepresentation = oController.getOwnerComponent().getAppComponent().getNoDataRepresentation();
|
|
272
|
+
|
|
273
|
+
if (["illustration", "illustrationWithFallback"].includes(sNoDataRepresentation)) {
|
|
274
|
+
oSmartTable.getNoData()?.setIllustrationType(IllustratedMessageType.BeforeSearch);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function setNoDataMessageForTable(oSmartTable) {
|
|
279
|
+
var mSmartTableConfig = _getFilters(oSmartTable),
|
|
280
|
+
sScenario = "";
|
|
281
|
+
if (mSmartTableConfig.search || mSmartTableConfig.filter) {
|
|
282
|
+
sScenario = "TABLE_WITH_FILTER";
|
|
283
|
+
} else {
|
|
284
|
+
sScenario = "TABLE_WITHOUT_FILTER";
|
|
285
|
+
}
|
|
286
|
+
oState.oTableNoDataHandler.setNoDataMessage(oSmartTable, sScenario);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
function setNoDataMessageForChart(oSmartChart) {
|
|
290
|
+
var mSmartChartConfig = _getFilters(oSmartChart),
|
|
291
|
+
sScenario = "";
|
|
243
292
|
if (mSmartChartConfig.search || mSmartChartConfig.filter) {
|
|
244
|
-
|
|
293
|
+
sScenario = "CHART_WITH_FILTER";
|
|
245
294
|
} else {
|
|
246
|
-
|
|
295
|
+
sScenario = "CHART_WITHOUT_FILTER";
|
|
247
296
|
}
|
|
248
|
-
|
|
249
|
-
chart.setCustomMessages({
|
|
250
|
-
NO_DATA: sNoDataText
|
|
251
|
-
});
|
|
252
|
-
});
|
|
297
|
+
oState.oChartNoDataHandler.setNoDataMessage(oSmartChart, sScenario);
|
|
253
298
|
}
|
|
254
299
|
|
|
255
300
|
function onShareListReportActionButtonPressImpl(oButton) {
|
|
@@ -434,6 +479,8 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
|
|
|
434
479
|
oState.filterBarController.init(oState);
|
|
435
480
|
oState.oContentArea.createAndSetCustomModel(oState);
|
|
436
481
|
oState.oInsightsHandler = new InsightsHandler(oState, oController, oTemplateUtils);
|
|
482
|
+
oState.oTableNoDataHandler = new TableNoDataHandler(oController, oTemplateUtils, oTableNoDataConfig);
|
|
483
|
+
oState.oChartNoDataHandler = new ChartNoDataHandler(oController, oTemplateUtils, oChartNoDataConfig);
|
|
437
484
|
|
|
438
485
|
oState.oMultipleViewsHandler.getInitializationPromise().then(function() {
|
|
439
486
|
oState.oContentArea.setState(oState);
|
|
@@ -721,11 +768,13 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
|
|
|
721
768
|
oSmartTable.setModel(tableHighlightModel,"_tableHighlight");
|
|
722
769
|
|
|
723
770
|
oTemplateUtils.oServices.oPresentationControlHandlerFactory.getPresentationControlHandler(oSmartTable).addCellSelector();
|
|
771
|
+
fnSetInitialNoDataMessageForTable(oSmartTable);
|
|
724
772
|
},
|
|
725
773
|
onBeforeRebindTable: function(oEvent) {
|
|
726
774
|
var oSmartTable = oEvent.getSource();
|
|
727
775
|
var oBindingParams = oEvent.getParameter("bindingParams");
|
|
728
776
|
|
|
777
|
+
setNoDataMessageForTable(oSmartTable);
|
|
729
778
|
// add handler for change event
|
|
730
779
|
oState.oMessageStripHelper.onBeforeRebindControl(oEvent);
|
|
731
780
|
if (oState.chartController && oState.chartController.oChart) {
|
|
@@ -939,7 +988,7 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
|
|
|
939
988
|
},
|
|
940
989
|
onBeforeRebindChart: function(oEvent) {
|
|
941
990
|
var oSmartChart = oEvent.getSource();
|
|
942
|
-
|
|
991
|
+
setNoDataMessageForChart(oSmartChart);
|
|
943
992
|
//oState.oSmartChart.oModels = oState.oSmartChart.getChart().oPropagatedProperties.oModels;
|
|
944
993
|
var oBindingParams = oEvent.getParameters().bindingParams;
|
|
945
994
|
oState.oMultipleViewsHandler.aTableFilters = deepExtend({}, oBindingParams.filters);
|
|
@@ -314,12 +314,24 @@ NODATA_ADAPTFILTERDIALOG=No Data
|
|
|
314
314
|
|
|
315
315
|
#---Final block: texts to be redefined by the application ----------------------------------------
|
|
316
316
|
|
|
317
|
-
#
|
|
317
|
+
# XFLD,80: No data text for on load of smart chart
|
|
318
318
|
NODATA_SMARTCHART_ALP=To start, set the relevant filters and choose "Go".
|
|
319
319
|
|
|
320
|
-
#
|
|
320
|
+
# XTIT,80: Title for illustrated message no data text for on load of smart chart
|
|
321
|
+
NODATA_SMARTCHART_ALP_ILLUSTRATION_TITLE=Let\u2019s get some results
|
|
322
|
+
|
|
323
|
+
# XTXT,80: Description for illustrated message no data text for on load of smart chart
|
|
324
|
+
NODATA_SMARTCHART_ALP_ILLUSTRATION_DESCRIPTION=Start by providing your search or filter criteria.
|
|
325
|
+
|
|
326
|
+
# XFLD,80: No data text for on load of smart table
|
|
321
327
|
NODATA_SMARTTABLE_ALP=To start, set the relevant filters and choose "Go".
|
|
322
328
|
|
|
329
|
+
# XTIT,80: Title for illustrated message no data text for on load of smart chart
|
|
330
|
+
NODATA_SMARTTABLE_ALP_ILLUSTRATION_TITLE=Let\u2019s get some results
|
|
331
|
+
|
|
332
|
+
# XTXT,80: Description for illustrated message no data text for on load of smart chart
|
|
333
|
+
NODATA_SMARTTABLE_ALP_ILLUSTRATION_DESCRIPTION=Start by providing your search or filter criteria.
|
|
334
|
+
|
|
323
335
|
# YMSG, 160: used to show unapplied multiple filters in desktop
|
|
324
336
|
MESSAGE_MULTIPLE_VALUES_L_FORM=Some of the filters aren''t relevant for the tab \"{1}\" ({0}). Settings these filters has no effect on the results.
|
|
325
337
|
|
|
@@ -206,9 +206,9 @@ NODATA_ADAPTFILTERDIALOG=Nessun dato
|
|
|
206
206
|
|
|
207
207
|
|
|
208
208
|
|
|
209
|
-
NODATA_SMARTCHART_ALP=Per iniziare,
|
|
209
|
+
NODATA_SMARTCHART_ALP=Per iniziare, imposta i filtri rilevanti e seleziona "Avvio".
|
|
210
210
|
|
|
211
|
-
NODATA_SMARTTABLE_ALP=Per iniziare,
|
|
211
|
+
NODATA_SMARTTABLE_ALP=Per iniziare, imposta i filtri rilevanti e seleziona "Avvio"
|
|
212
212
|
|
|
213
213
|
MESSAGE_MULTIPLE_VALUES_L_FORM=Alcuni filtri non sono ril. per tab "{1}" ({0}). L\u2019impostazione di questi filtri non incide sui ris.
|
|
214
214
|
|
|
@@ -28,6 +28,7 @@ sap.ui.define([
|
|
|
28
28
|
"sap/ui/core/Element",
|
|
29
29
|
"sap/suite/ui/generic/template/genericUtilities/testableHelper",
|
|
30
30
|
"sap/suite/ui/generic/template/lib/TableNoDataHandler",
|
|
31
|
+
"sap/suite/ui/generic/template/lib/ChartNoDataHandler",
|
|
31
32
|
"sap/fe/controls/easyFilter/PXFeedback"
|
|
32
33
|
], function (
|
|
33
34
|
Filter,
|
|
@@ -59,6 +60,7 @@ sap.ui.define([
|
|
|
59
60
|
Element,
|
|
60
61
|
testableHelper,
|
|
61
62
|
TableNoDataHandler,
|
|
63
|
+
ChartNoDataHandler,
|
|
62
64
|
PXFeedback
|
|
63
65
|
) {
|
|
64
66
|
"use strict";
|
|
@@ -103,6 +105,13 @@ sap.ui.define([
|
|
|
103
105
|
}
|
|
104
106
|
};
|
|
105
107
|
|
|
108
|
+
var oChartNoDataConfig = {
|
|
109
|
+
MULTI_CHART: {
|
|
110
|
+
i18nKey: "NOITEMS_LR_SMARTCHART",
|
|
111
|
+
illustrationType: IllustratedMessageType.NoFilterResults
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
106
115
|
// -- Begin of methods that are used in onInit only
|
|
107
116
|
function fnSetIsLeaf() {
|
|
108
117
|
var oComponent = oController.getOwnerComponent();
|
|
@@ -503,14 +512,8 @@ sap.ui.define([
|
|
|
503
512
|
oState.oTableNoDataHandler.setNoDataMessage(oSmartTable, sScenario);
|
|
504
513
|
}
|
|
505
514
|
|
|
506
|
-
function
|
|
507
|
-
|
|
508
|
-
var sNoDataText = oTemplateUtils.oCommonUtils.getContextText("NOITEMS_LR_SMARTCHART", sSmartChartId);
|
|
509
|
-
oSmartChart.getChartAsync().then(function (chart) {
|
|
510
|
-
chart.setCustomMessages({
|
|
511
|
-
NO_DATA: sNoDataText
|
|
512
|
-
});
|
|
513
|
-
});
|
|
515
|
+
function setNoDataMessageForChart(oSmartChart) {
|
|
516
|
+
oState.oChartNoDataHandler.setNoDataMessage(oSmartChart, "MULTI_CHART");
|
|
514
517
|
}
|
|
515
518
|
|
|
516
519
|
/**
|
|
@@ -632,6 +635,7 @@ sap.ui.define([
|
|
|
632
635
|
oState.oMultiEditHandler = new MultiEditHandler(oState, oController, oTemplateUtils);
|
|
633
636
|
oState.oInsightsHandler = new InsightsHandler(oState, oController, oTemplateUtils);
|
|
634
637
|
oState.oTableNoDataHandler = new TableNoDataHandler(oController, oTemplateUtils, oTableNoDataConfig);
|
|
638
|
+
oState.oChartNoDataHandler = new ChartNoDataHandler(oController, oTemplateUtils, oChartNoDataConfig);
|
|
635
639
|
|
|
636
640
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
637
641
|
|
|
@@ -1022,7 +1026,7 @@ sap.ui.define([
|
|
|
1022
1026
|
|
|
1023
1027
|
onBeforeRebindChart: function (oEvent) {
|
|
1024
1028
|
var oSmartChart = oEvent.getSource();
|
|
1025
|
-
|
|
1029
|
+
setNoDataMessageForChart(oSmartChart);
|
|
1026
1030
|
var oBindingParams = oEvent.getParameters().bindingParams;
|
|
1027
1031
|
// Build a snapshot of oBindingParams.filters as how they are passed to the onBeforeRebind-Event.
|
|
1028
1032
|
// This snapshot contains the filters being defined on the chart itself (chart settings).
|
|
@@ -61,7 +61,7 @@ MESSAGE_MULTIPLE_VALUES_S_FORM=Non \u00E8 possibile utilizzare i seguenti filtri
|
|
|
61
61
|
|
|
62
62
|
OBJECT_NOT_EDITABLE=Impossibile modificare questo oggetto.
|
|
63
63
|
|
|
64
|
-
NODATA_SMARTTABLE_LR=Per iniziare,
|
|
64
|
+
NODATA_SMARTTABLE_LR=Per iniziare, imposta i filtri rilevanti e seleziona "Avvio".
|
|
65
65
|
|
|
66
66
|
NODATA_SMARTTABLE_LR_ILLUSTRATION_TITLE=Vediamo qualche risultato
|
|
67
67
|
NODATA_SMARTTABLE_LR_ILLUSTRATION_DESCRIPTION=Prima di tutto indicare i criteri di ricerca o di filtro.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
<template:with path="entityType>com.sap.vocabularies.UI.v1.HeaderInfo" var="header">
|
|
10
10
|
<smartChart:SmartChart
|
|
11
|
-
id="listReport{= ${parameter>/settings/quickVariantSelectionX} ? ${path: 'tabItem>', formatter: 'AH.getSuffixFromIconTabFilterKey'} : ''}"
|
|
11
|
+
id="listReport{= ${parameter>/settings/quickVariantSelectionX} ? ${path: 'tabItem>', formatter: 'AH.getSuffixFromIconTabFilterKey'} : ''}"
|
|
12
12
|
visible="{path: 'tabItem>', formatter: 'AHMultipleViews.getVisibleForTableTabs'}"
|
|
13
13
|
smartFilterId=""
|
|
14
14
|
persistencyKey="listReportChart{= ${parameter>/settings/quickVariantSelectionX} ? ${path: 'tabItem>', formatter: 'AH.getSuffixFromIconTabFilterKey'} : ''}"
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
showDrillBreadcrumbs="true"
|
|
24
24
|
showDetailsButton="true"
|
|
25
25
|
showDrillButtons="false"
|
|
26
|
-
noData="{i18n>SMARTCHART_INITIAL_NODATA}"
|
|
27
26
|
headerLevel="H3"
|
|
28
27
|
entitySet="{entitySet>name}"
|
|
29
28
|
initialized="._templateEventHandlers.onChartInitialized"
|
|
@@ -44,6 +43,14 @@
|
|
|
44
43
|
<smartChart:semanticObjectController>
|
|
45
44
|
<smartlink:SemanticObjectController beforePopoverOpens="._templateEventHandlers.onBeforeSemanticObjectLinkPopoverOpens"/>
|
|
46
45
|
</smartChart:semanticObjectController>
|
|
46
|
+
<!-- No data Illustration message -->
|
|
47
|
+
<smartChart:noDataIllustratedMessage>
|
|
48
|
+
<IllustratedMessage
|
|
49
|
+
illustrationType="sapIllus-BeforeSearch"
|
|
50
|
+
title="{i18n>SMARTCHART_INITIAL_NODATA_ILLUSTRATION_TITLE}"
|
|
51
|
+
description="{i18n>SMARTCHART_INITIAL_NODATA_ILLUSTRATION_DESCRIPTION}"
|
|
52
|
+
/>
|
|
53
|
+
</smartChart:noDataIllustratedMessage>
|
|
47
54
|
<!-- Custom tool bar -->
|
|
48
55
|
<smartChart:toolbar>
|
|
49
56
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.ListReport.view.fragments.SmartChartToolbar" type="XML"/>
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
showTablePersonalisation="true"
|
|
40
40
|
placeToolbarInTable="{parameter>/templateSpecific/isResponsiveTable}"
|
|
41
41
|
customizeConfig="{parts: [{path: 'entitySet>'}, {path: 'entitySet>dummy'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.buildSmartTableCustomizeConfig'}"
|
|
42
|
-
initialNoDataText="{= ${appSettings>/noDataRepresentation} === 'textOnly' ?
|
|
42
|
+
initialNoDataText="{= ${appSettings>/noDataRepresentation} === 'textOnly' ?
|
|
43
43
|
( !${parameter>/settings/isWorklist} ? '{i18n>NODATA_SMARTTABLE_LR}' : '$NO_FILTERBAR' ) :
|
|
44
44
|
null
|
|
45
45
|
}"
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
useInfoToolbar="On">
|
|
49
49
|
|
|
50
50
|
<!--
|
|
51
|
-
SmartTable "noData" can be set either as a property (attribute) or as an aggregation,
|
|
51
|
+
SmartTable "noData" can be set either as a property (attribute) or as an aggregation,
|
|
52
52
|
but not both at the same time.
|
|
53
53
|
|
|
54
54
|
1. When noDataRepresentation = "textOnly"
|
|
@@ -1767,6 +1767,17 @@ sap.ui.define([
|
|
|
1767
1767
|
oSmartTable.setNoData(vNoDataMessage);
|
|
1768
1768
|
}
|
|
1769
1769
|
|
|
1770
|
+
function fnSetInitialNoDataMessageForChart (oSmartChart) {
|
|
1771
|
+
var sSmartChartId = oSmartChart.getId();
|
|
1772
|
+
var vNoDataMessage = new IllustratedMessage({
|
|
1773
|
+
illustrationType: IllustratedMessageType.NoEntries,
|
|
1774
|
+
illustrationSize: fnFindIllustratedMessageSize(oSmartChart),
|
|
1775
|
+
title: oTemplateUtils.oCommonUtils.getContextText("NOITEMS_SMARTCHART_ILLUSTRATION_TITLE", sSmartChartId),
|
|
1776
|
+
description: oTemplateUtils.oCommonUtils.getContextText("NOITEMS_SMARTCHART_ILLUSTRATION_DESCRIPTION", sSmartChartId)
|
|
1777
|
+
});
|
|
1778
|
+
oSmartChart.setNoDataIllustratedMessage(vNoDataMessage);
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1770
1781
|
/**
|
|
1771
1782
|
* Finds the illustrated message size.
|
|
1772
1783
|
*
|
|
@@ -2253,6 +2264,7 @@ sap.ui.define([
|
|
|
2253
2264
|
testableHelper.testable(function () {
|
|
2254
2265
|
return oTemplateUtils.initialStateAppliedPromise;
|
|
2255
2266
|
}, "getStateAppliedPromise");
|
|
2267
|
+
testableHelper.testable(fnSmartSummaryStartupAction, "fnSmartSummaryStartupAction");
|
|
2256
2268
|
/* eslint-enable */
|
|
2257
2269
|
|
|
2258
2270
|
function fnInitializeSubSections() {
|
|
@@ -2313,6 +2325,43 @@ sap.ui.define([
|
|
|
2313
2325
|
oContextMenuHandler.onContextMenu(oEvent, sSmartControlId);
|
|
2314
2326
|
}
|
|
2315
2327
|
|
|
2328
|
+
function fnSmartSummaryStartupAction(oAppComponent) {
|
|
2329
|
+
var oComponentData = oAppComponent.getComponentData(),
|
|
2330
|
+
oStartupParameters = oComponentData && oComponentData.startupParameters || undefined;
|
|
2331
|
+
if (!oStartupParameters
|
|
2332
|
+
|| !oStartupParameters.preferredAction
|
|
2333
|
+
|| !oStartupParameters.preferredAction.length
|
|
2334
|
+
|| !oStartupParameters.preferredAction[0].startsWith("summary")) {
|
|
2335
|
+
return;
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2338
|
+
// check if we are on the correct OP by checking the level provided in the startup parameters
|
|
2339
|
+
var aParameterParts = oStartupParameters.preferredAction[0].split("-"),
|
|
2340
|
+
iParameterLevel = aParameterParts.length === 1 ? 1 : parseInt(aParameterParts[1], 10),
|
|
2341
|
+
iViewLevel = oTemplateUtils.oComponentUtils.getViewLevel();
|
|
2342
|
+
if (isNaN(iParameterLevel) || iParameterLevel !== iViewLevel) {
|
|
2343
|
+
return;
|
|
2344
|
+
}
|
|
2345
|
+
|
|
2346
|
+
// Check if summary action shall be executed now (it might have already been executed by a higher level OP)
|
|
2347
|
+
if (oState.preferredActionStatus === "performed") {
|
|
2348
|
+
return;
|
|
2349
|
+
}
|
|
2350
|
+
oState.preferredActionStatus = "performed"; // to prevent other OPs on higher levels to execute the summary again
|
|
2351
|
+
|
|
2352
|
+
// Check if SmartSummarize capability is available
|
|
2353
|
+
var oTemplPrivGlobal = oAppComponent.getModel("_templPrivGlobal");
|
|
2354
|
+
if (!oTemplPrivGlobal.getProperty("/generic/fioriAI/isSummarizationEnabled")) {
|
|
2355
|
+
return;
|
|
2356
|
+
}
|
|
2357
|
+
|
|
2358
|
+
// Find "Summarize" button
|
|
2359
|
+
var oButton = oController.byId("summarize");
|
|
2360
|
+
if (oButton) {
|
|
2361
|
+
oButton.firePress();
|
|
2362
|
+
}
|
|
2363
|
+
}
|
|
2364
|
+
|
|
2316
2365
|
// Generation of Event Handlers
|
|
2317
2366
|
var oControllerImplementation = {
|
|
2318
2367
|
onInit: function () {
|
|
@@ -2461,7 +2510,7 @@ sap.ui.define([
|
|
|
2461
2510
|
var oStreamDataSelf = oTemplateUtils.oCommonUtils.getStreamData(null, oEvent.context);
|
|
2462
2511
|
oTemplateUtils.oCommonUtils.setStreamData(oStreamDataSelf);
|
|
2463
2512
|
oTemplateUtils.oComponentUtils.hidePlaceholder();
|
|
2464
|
-
|
|
2513
|
+
fnSmartSummaryStartupAction(oAppComponent);
|
|
2465
2514
|
});
|
|
2466
2515
|
var oMenuButton = oController.byId(StableIdHelper.getStableId({
|
|
2467
2516
|
type: "ObjectPageAction",
|
|
@@ -2472,6 +2521,7 @@ sap.ui.define([
|
|
|
2472
2521
|
onShareObjectPageActionButtonPressImpl(oMenuButton);
|
|
2473
2522
|
});
|
|
2474
2523
|
}
|
|
2524
|
+
|
|
2475
2525
|
},
|
|
2476
2526
|
handlers: {
|
|
2477
2527
|
onEditAndActiveToggle: function () { // Implementation of draft toggle for static header
|
|
@@ -2703,6 +2753,7 @@ sap.ui.define([
|
|
|
2703
2753
|
var oSmartChart = oEvent.getSource();
|
|
2704
2754
|
oTemplateUtils.oInfoObjectHandler.setInformationWithControl(oSmartChart);
|
|
2705
2755
|
oState.oSectionTitleHandler.setAsTitleOwner(oSmartChart, true);
|
|
2756
|
+
fnSetInitialNoDataMessageForChart(oSmartChart);
|
|
2706
2757
|
oSmartChart.getChartAsync().then(function (oChart) {
|
|
2707
2758
|
// workaround for Safari browsers as described via Webkit Bug #198375
|
|
2708
2759
|
if (Device.browser.safari) {
|
|
@@ -29,7 +29,6 @@
|
|
|
29
29
|
visible="{path: 'facet>', formatter: 'AH.getBindingForHiddenPath'}"
|
|
30
30
|
headerLevel="H5"
|
|
31
31
|
headerStyle="H5"
|
|
32
|
-
noData="{i18n>NOITEMS_SMARTCHART}"
|
|
33
32
|
entitySet="{entitySet>name}">
|
|
34
33
|
<smartChart:layoutData>
|
|
35
34
|
<layout:GridData id="{path: 'facet>', formatter: 'AH.getStableIdPartFromFacet'}::Chart::GridData" span="XL12 L12 M12 S12" />
|
|
@@ -324,6 +324,89 @@ sap.ui.define([
|
|
|
324
324
|
let getAllDesigntimeSettings = function getAllDesigntimeSettings(oSmartTable, oControl) {
|
|
325
325
|
let oResourceBundle = designtimeUtils.getResourceBundle(oControl);
|
|
326
326
|
|
|
327
|
+
/**
|
|
328
|
+
* Resolves the effective table type for designtime.
|
|
329
|
+
* @param {sap.ui.comp.smarttable.SmartTable} oSmartTable - The SmartTable instance
|
|
330
|
+
* @returns {string} One of: ResponsiveTable, GridTable, TreeTable, AnalyticalTable, Table
|
|
331
|
+
*/
|
|
332
|
+
function getTableType(oSmartTable) {
|
|
333
|
+
const oManifestTableSettings = getManifestTableSettings(oSmartTable);
|
|
334
|
+
|
|
335
|
+
if (oManifestTableSettings && oManifestTableSettings.type) {
|
|
336
|
+
return oManifestTableSettings.type;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
return oSmartTable.getTableType();
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
const sTableType = getTableType(oSmartTable);
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Factory for Create Mode enums based on the SmartTable type.
|
|
346
|
+
* @param {string} smartTableType - SmartTable table type
|
|
347
|
+
* @returns {Enum[]} Create mode enum definitions
|
|
348
|
+
*/
|
|
349
|
+
function getCreateModeEnums(smartTableType) {
|
|
350
|
+
const RESPONSIVE_AND_GRID_TABLE_ENUMS = [
|
|
351
|
+
{ id: "inline", name: "Inline" },
|
|
352
|
+
{ id: "creationRows", name: "Inline Creation Rows" },
|
|
353
|
+
{ id: "creationRowsHiddenInEditMode", name: "Inline Creation Rows (Hidden in edit page)" },
|
|
354
|
+
{ id: "newPage", name: "New Page" }
|
|
355
|
+
];
|
|
356
|
+
|
|
357
|
+
const TREE_TABLE_ENUMS = [
|
|
358
|
+
{ id: "inline", name: "Inline" },
|
|
359
|
+
{ id: "newPage", name: "New Page" }
|
|
360
|
+
];
|
|
361
|
+
|
|
362
|
+
const mEnumsByTableType = {
|
|
363
|
+
AnalyticalTable: [],
|
|
364
|
+
GridTable: RESPONSIVE_AND_GRID_TABLE_ENUMS,
|
|
365
|
+
ResponsiveTable: RESPONSIVE_AND_GRID_TABLE_ENUMS,
|
|
366
|
+
TreeTable: TREE_TABLE_ENUMS
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
return mEnumsByTableType[smartTableType] || RESPONSIVE_AND_GRID_TABLE_ENUMS;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Returns the default create mode value from the given enums (first enum).
|
|
374
|
+
* Returns undefined when enums are empty (e.g. AnalyticalTable).
|
|
375
|
+
* @param {Enum[]} enums - Create mode enum definitions
|
|
376
|
+
* @returns {string|undefined} Default value or undefined when create mode is not supported
|
|
377
|
+
*/
|
|
378
|
+
function getDefaultCreateMode(enums) {
|
|
379
|
+
if (!enums || enums.length === 0) {
|
|
380
|
+
return undefined;
|
|
381
|
+
}
|
|
382
|
+
return enums[0].id;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* Determines whether the 'Creation Mode' option should be shown in the RTA configuration dialog
|
|
387
|
+
* for the given SmartTable. The custom data key "isCreationAllowedByBoolAndPathRestrictions"
|
|
388
|
+
* is set on the SmartTable at template time based on OData InsertRestrictions.
|
|
389
|
+
*
|
|
390
|
+
* - Non-draft app: the key is not set, so this returns false and the option is hidden.
|
|
391
|
+
* Only 'New page' create mode is supported in this case, so exposing 'Creation Mode' in
|
|
392
|
+
* the RTA dialog would be meaningless.
|
|
393
|
+
* - Draft app, editable table: the key is set to true/"true", so this returns true and
|
|
394
|
+
* the option is shown. All table types are supported.
|
|
395
|
+
* - Draft app, non-editable table: the key is set to null/false/"false", so this returns false
|
|
396
|
+
* and the option is hidden, since creation is restricted by OData annotations.
|
|
397
|
+
*
|
|
398
|
+
* @param {sap.ui.comp.smarttable.SmartTable} oSmartTable - The SmartTable instance
|
|
399
|
+
* @returns {boolean} True if the 'Creation Mode' option should be available in RTA
|
|
400
|
+
*/
|
|
401
|
+
function isTableCreationAllowed(oSmartTable) {
|
|
402
|
+
const vCreationAllowed = oSmartTable.data("isCreationAllowedByBoolAndPathRestrictions");
|
|
403
|
+
return ["true", true].includes(vCreationAllowed);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
const createModeEnums = getCreateModeEnums(sTableType);
|
|
407
|
+
const createModeDefaultValue = getDefaultCreateMode(createModeEnums);
|
|
408
|
+
const isCreateModeAvailable = createModeEnums.length > 0 && isTableCreationAllowed(oSmartTable);
|
|
409
|
+
|
|
327
410
|
/**
|
|
328
411
|
* @type {DesigntimeSetting}
|
|
329
412
|
*/
|
|
@@ -384,15 +467,10 @@ sap.ui.define([
|
|
|
384
467
|
id: "createMode",
|
|
385
468
|
name: oResourceBundle.getText('RTA_CREATE_MODE'),
|
|
386
469
|
description: oResourceBundle.getText('RTA_CREATE_MODE_DESC'),
|
|
387
|
-
value:
|
|
470
|
+
value: createModeDefaultValue,
|
|
388
471
|
type: "string",
|
|
389
472
|
getPath: (mSmartTableInfo) => `component/settings/sections/${mSmartTableInfo.sSectionKey}/createMode`,
|
|
390
|
-
enums:
|
|
391
|
-
{ id: "newPage", name: "New Page" },
|
|
392
|
-
{ id: "inline", name: "Inline" },
|
|
393
|
-
{ id: "creationRows", name: "Inline Creation Rows" },
|
|
394
|
-
{ id: "creationRowsHiddenInEditMode", name: "Inline Creation Rows (Hidden in edit page)" }
|
|
395
|
-
],
|
|
473
|
+
enums: createModeEnums,
|
|
396
474
|
bSupportsGlobalScope: true,
|
|
397
475
|
restrictedTo: [sObjectPageComponentName],
|
|
398
476
|
keyUser: true
|
|
@@ -489,7 +567,7 @@ sap.ui.define([
|
|
|
489
567
|
widthIncludingColumnHeader,
|
|
490
568
|
selectionMode,
|
|
491
569
|
selectAll,
|
|
492
|
-
createMode,
|
|
570
|
+
isCreateModeAvailable ? createMode : null,
|
|
493
571
|
selectionLimit,
|
|
494
572
|
threshold,
|
|
495
573
|
scrollThreshold
|
|
@@ -499,12 +577,14 @@ sap.ui.define([
|
|
|
499
577
|
widthIncludingColumnHeader,
|
|
500
578
|
selectionMode,
|
|
501
579
|
selectAll,
|
|
502
|
-
createMode,
|
|
580
|
+
isCreateModeAvailable ? createMode : null,
|
|
503
581
|
threshold,
|
|
504
582
|
addCardtoInsightsHidden
|
|
505
583
|
];
|
|
506
584
|
|
|
507
|
-
const designtimeSettings = (
|
|
585
|
+
const designtimeSettings = (sTableType === "ResponsiveTable") ?
|
|
586
|
+
aMTableDesigntimeSettings.filter(Boolean) :
|
|
587
|
+
aUITableDesigntimeSettings.filter(Boolean);
|
|
508
588
|
|
|
509
589
|
return designtimeSettings.filter(oSetting => {
|
|
510
590
|
const sComponentName = designtimeUtils.getOwnerComponentFor(oSmartTable).getMetadata().getComponentName();
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
visible="{= ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} === 'com.sap.vocabularies.UI.v1.ImportanceType/High' ? 'true' :
|
|
224
224
|
( ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} === 'com.sap.vocabularies.UI.v1.ImportanceType/Medium' && ( ${device>/system/tablet} || ${device>/system/desktop} ) ? 'true' : ${device>/system/desktop} ? 'true' : 'false' ) }">
|
|
225
225
|
<table:customData>
|
|
226
|
-
<core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13N'}"
|
|
226
|
+
<core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}, {value: 'GridTable'}], formatter: 'AH.createP13N'}"/>
|
|
227
227
|
</table:customData>
|
|
228
228
|
<table:template>
|
|
229
229
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.fragments.GridTableCells" type="XML" />
|