@sapui5/sap.suite.ui.generic.template 1.114.0 → 1.114.2
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/Component.js +11 -7
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +7 -33
- 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/Component.js +13 -7
- package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +9 -37
- package/src/sap/suite/ui/generic/template/ListReport/controller/IappStateHandler.js +13 -5
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTableToolbar.fragment.xml +4 -3
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +52 -57
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -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/ListReport.designtime.js +1 -1
- package/src/sap/suite/ui/generic/template/extensionAPI/NavigationController.js +47 -41
- package/src/sap/suite/ui/generic/template/fragments/SmartFormDataField.fragment.xml +3 -3
- package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +4 -0
- package/src/sap/suite/ui/generic/template/lib/AddCardsHelper.js +85 -47
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +14 -5
- package/src/sap/suite/ui/generic/template/lib/CRUDHelper.js +20 -16
- package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +11 -3
- package/src/sap/suite/ui/generic/template/lib/FlexibleColumnLayoutHandler.js +23 -25
- package/src/sap/suite/ui/generic/template/lib/PageLeaveHandler.js +2 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +5 -17
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartTableHandler.js +4 -4
- package/src/sap/suite/ui/generic/template/library.js +1 -1
- package/src/sap/suite/ui/generic/template/listTemplates/controller/IappStateHandler.js +5 -0
- package/src/sap/suite/ui/generic/template/listTemplates/fragments/SmartChartToolbar.fragment.xml +2 -1
- package/src/sap/suite/ui/generic/template/listTemplates/semanticDateRangeTypeHelper.js +17 -1
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/CardMessages.fragment.xml +0 -18
- package/src/sap/suite/ui/generic/template/listTemplates/fragments/CardMessages.fragment.xml +0 -19
package/package.json
CHANGED
|
@@ -337,13 +337,17 @@ sap.ui.define(["sap/ui/core/mvc/OverrideExecution",
|
|
|
337
337
|
}
|
|
338
338
|
|
|
339
339
|
oAlpSettings.bInsightsEnabled = false;
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
340
|
+
// If app is running in Microsoft Teams environment then Insight should not execute
|
|
341
|
+
var oTemplatePrivateGlobal = oComponent.getModel("_templPrivGlobal");
|
|
342
|
+
if (!oTemplatePrivateGlobal.getProperty("/generic/isTeamsModeActive")) {
|
|
343
|
+
CardHelper.getServiceAsync("UIService").then(function(oInstance){
|
|
344
|
+
oAlpSettings.bInsightsEnabled = true;
|
|
345
|
+
var oTemplatePrivate = oComponent.getModel("_templPriv");
|
|
346
|
+
oTemplatePrivate.setProperty("/oInsightsInstance", oInstance);
|
|
347
|
+
}).catch(function(response) {
|
|
348
|
+
oAlpSettings.bInsightsEnabled = false;
|
|
349
|
+
});
|
|
350
|
+
}
|
|
347
351
|
|
|
348
352
|
return oAlpSettings;
|
|
349
353
|
},
|
package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js
CHANGED
|
@@ -32,12 +32,14 @@ sap.ui.define(["sap/ui/generic/app/navigation/service/SelectionVariant",
|
|
|
32
32
|
"sap/ui/model/json/JSONModel",
|
|
33
33
|
"sap/suite/ui/generic/template/listTemplates/controller/DetailController",
|
|
34
34
|
"sap/ui/comp/personalization/Util",
|
|
35
|
-
"sap/suite/ui/generic/template/lib/AddCardsHelper"
|
|
35
|
+
"sap/suite/ui/generic/template/lib/AddCardsHelper",
|
|
36
|
+
"sap/m/MessageBox",
|
|
37
|
+
"sap/suite/ui/generic/template/listTemplates/semanticDateRangeTypeHelper"
|
|
36
38
|
], function(SelectionVariant, ExtensionAPI,
|
|
37
39
|
FilterBarController, ToolbarController, VisualFilterBarController, VisualFilterDialogController, AnalyticGridController, AnalyticalTable,
|
|
38
40
|
ODataAnnotationHelper, Analytics, ContentAreaController, IappStateHandler, Device, SegmentedButtonItem, SegmentedButton,
|
|
39
41
|
OverflowToolbar, ToolbarSpacer, SapMLibrary, Context, ALPHelper, controlHelper, FeLogger, FilterUtil, ObjectPath, ShareUtils, merge, deepExtend,
|
|
40
|
-
ListUtils, MultipleViewsHandler, StableIdHelper, MessageStripHelper, JSONModel, DetailController, PersonalizationControllerUtil, AddCardsHelper) {
|
|
42
|
+
ListUtils, MultipleViewsHandler, StableIdHelper, MessageStripHelper, JSONModel, DetailController, PersonalizationControllerUtil, AddCardsHelper, MessageBox, semanticDateRangeTypeHelper) {
|
|
41
43
|
|
|
42
44
|
"use strict";
|
|
43
45
|
|
|
@@ -334,20 +336,6 @@ sap.ui.define(["sap/ui/generic/app/navigation/service/SelectionVariant",
|
|
|
334
336
|
// });
|
|
335
337
|
}
|
|
336
338
|
|
|
337
|
-
function fnOpenCardMessagesDialog(oModel){
|
|
338
|
-
var oCardMessagesPromise = oTemplateUtils.oCommonUtils.getDialogFragmentAsync("sap.suite.ui.generic.template.listTemplates.fragments.CardMessages", {
|
|
339
|
-
onClose: function(oEvent) {
|
|
340
|
-
var oDialog = oEvent.getSource().getParent();
|
|
341
|
-
oDialog.close();
|
|
342
|
-
}
|
|
343
|
-
}, "cardMessages");
|
|
344
|
-
|
|
345
|
-
oCardMessagesPromise.then(function (oDialog) {
|
|
346
|
-
oDialog.setModel(oModel, "list");
|
|
347
|
-
oDialog.open();
|
|
348
|
-
});
|
|
349
|
-
}
|
|
350
|
-
|
|
351
339
|
// Generation of Event Handlers
|
|
352
340
|
return {
|
|
353
341
|
onInit: function() {
|
|
@@ -905,13 +893,6 @@ sap.ui.define(["sap/ui/generic/app/navigation/service/SelectionVariant",
|
|
|
905
893
|
onBeforeRebindChart: function(oEvent) {
|
|
906
894
|
var oSmartChart = oEvent.getSource();
|
|
907
895
|
setNoDataChartTextIfRequired(oSmartChart);
|
|
908
|
-
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
909
|
-
var oChartSelectionVariant = oSmartChart.getUiState().getSelectionVariant();
|
|
910
|
-
if (oChartSelectionVariant && oChartSelectionVariant.SelectOptions && oChartSelectionVariant.SelectOptions.length) {
|
|
911
|
-
oTemplatePrivateModel.setProperty("/alp/chartFiltersActive", true);
|
|
912
|
-
} else {
|
|
913
|
-
oTemplatePrivateModel.setProperty("/alp/chartFiltersActive", false);
|
|
914
|
-
}
|
|
915
896
|
//oState.oSmartChart.oModels = oState.oSmartChart.getChart().oPropagatedProperties.oModels;
|
|
916
897
|
var oBindingParams = oEvent.getParameters().bindingParams;
|
|
917
898
|
oState.oMultipleViewsHandler.aTableFilters = deepExtend({}, oBindingParams.filters);
|
|
@@ -1224,18 +1205,10 @@ sap.ui.define(["sap/ui/generic/app/navigation/service/SelectionVariant",
|
|
|
1224
1205
|
var oView = oState.oController.getView();
|
|
1225
1206
|
var oEntitySet = oModel.getMetaModel().getODataEntitySet(sEntitySet);
|
|
1226
1207
|
var oEntityType = oModel.getMetaModel().getODataEntityType(oEntitySet.entityType);
|
|
1227
|
-
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
1228
|
-
var chartFiltersActive = oTemplatePrivateModel.getProperty("/alp/chartFiltersActive");
|
|
1229
1208
|
var oRb = oComponent.getModel("i18n").getResourceBundle();
|
|
1230
1209
|
var oCardDefinition = {};
|
|
1231
|
-
if (
|
|
1232
|
-
|
|
1233
|
-
items: [
|
|
1234
|
-
{text: oRb.getText("ST_CARDS_INFO_TEXT_2")},
|
|
1235
|
-
{text: oRb.getText("ST_CARDS_INFO_TEXT_6")}
|
|
1236
|
-
]
|
|
1237
|
-
});
|
|
1238
|
-
fnOpenCardMessagesDialog(oModel);
|
|
1210
|
+
if (semanticDateRangeTypeHelper.hasSemanticDateValue(oState)) {
|
|
1211
|
+
MessageBox.error(oRb.getText("ST_CARD_CREATION_FAILURE_REASON_SEMANTIC_DATE_FILTERS"));
|
|
1239
1212
|
} else {
|
|
1240
1213
|
oCardDefinition['currentControlHandler'] = oPresentationControlHandler;
|
|
1241
1214
|
oCardDefinition['component'] = oComponent;
|
|
@@ -1243,6 +1216,7 @@ sap.ui.define(["sap/ui/generic/app/navigation/service/SelectionVariant",
|
|
|
1243
1216
|
oCardDefinition['entitySet'] = oEntitySet;
|
|
1244
1217
|
oCardDefinition['entityType'] = oEntityType;
|
|
1245
1218
|
oCardDefinition['oSmartFilterbar'] = oState.oSmartFilterbar;
|
|
1219
|
+
oCardDefinition['oTemplateUtils'] = oTemplateUtils;
|
|
1246
1220
|
var oAnalyticalCardManifest = AddCardsHelper.createCardForPreview(oCardDefinition);
|
|
1247
1221
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
1248
1222
|
var oInsightsInstance = oTemplatePrivateModel.getProperty("/oInsightsInstance");
|
|
@@ -443,13 +443,19 @@ sap.ui.define(["sap/ui/core/mvc/OverrideExecution",
|
|
|
443
443
|
oLrSettings.isIndicatorRequired = true;
|
|
444
444
|
oLrSettings.isSemanticallyConnected = false;
|
|
445
445
|
oLrSettings.bInsightsEnabled = false;
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
var
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
446
|
+
// If app is running in Microsoft Teams environment then Insight should not execute
|
|
447
|
+
if (oComponent && oComponent.oModels) {
|
|
448
|
+
var oTemplatePrivateGlobal = oComponent.getModel("_templPrivGlobal");
|
|
449
|
+
if (!oTemplatePrivateGlobal.getProperty("/generic/isTeamsModeActive")) {
|
|
450
|
+
CardHelper.getServiceAsync("UIService").then(function(oInstance){
|
|
451
|
+
oLrSettings.bInsightsEnabled = true;
|
|
452
|
+
var oTemplatePrivate = oComponent.getModel("_templPriv");
|
|
453
|
+
oTemplatePrivate.setProperty("/listReport/oInsightsInstance", oInstance);
|
|
454
|
+
}).catch(function(response) {
|
|
455
|
+
oLrSettings.bInsightsEnabled = false;
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
}
|
|
453
459
|
|
|
454
460
|
return oLrSettings;
|
|
455
461
|
},
|
|
@@ -18,9 +18,11 @@ sap.ui.define([
|
|
|
18
18
|
"sap/ui/generic/app/navigation/service/SelectionVariant",
|
|
19
19
|
"sap/suite/ui/generic/template/lib/AddCardsHelper",
|
|
20
20
|
"sap/suite/ui/generic/template/listTemplates/filterSettingsPreparationHelper",
|
|
21
|
-
"sap/ui/model/json/JSONModel"
|
|
21
|
+
"sap/ui/model/json/JSONModel",
|
|
22
|
+
"sap/m/MessageBox",
|
|
23
|
+
"sap/suite/ui/generic/template/listTemplates/semanticDateRangeTypeHelper"
|
|
22
24
|
], function (Filter, ExtensionAPI, listUtils, MessageStripHelper, IappStateHandler, MultipleViewsHandler,
|
|
23
|
-
WorklistHandler, ShareUtils, controlHelper, FeLogger, ObjectPath, StableIdHelper, deepExtend, CreateWithDialogHandler, MultiEditHandler, SelectionVariant, AddCardsHelper, filterSettingsPreparationHelper, JSONModel) {
|
|
25
|
+
WorklistHandler, ShareUtils, controlHelper, FeLogger, ObjectPath, StableIdHelper, deepExtend, CreateWithDialogHandler, MultiEditHandler, SelectionVariant, AddCardsHelper, filterSettingsPreparationHelper, JSONModel, MessageBox, semanticDateRangeTypeHelper) {
|
|
24
26
|
"use strict";
|
|
25
27
|
|
|
26
28
|
var oLogger = new FeLogger("ListReport.controller.ControllerImplementation").getLogger();
|
|
@@ -446,9 +448,6 @@ sap.ui.define([
|
|
|
446
448
|
return oState.oPresentationControlHandler.getVisibleProperties().some(function (oColumn) {
|
|
447
449
|
var sColumnKey = oColumn.data("p13nData") && oColumn.data("p13nData").columnKey;
|
|
448
450
|
var oProperty = oMetaModel.getODataProperty(oEntityType, oColumn.data("p13nData").leadingProperty);
|
|
449
|
-
if (oProperty && (oProperty.type === 'Edm.Date' || oProperty.type === 'Edm.DateTime' || oProperty.type === 'Edm.DateTimeOffset')) {
|
|
450
|
-
return;
|
|
451
|
-
}
|
|
452
451
|
if (oProperty && oProperty["sap:label"]) {
|
|
453
452
|
if (oColumn.getVisible() && ((sColumnKey.indexOf("DataFieldForAnnotation") < 0) && !oColumn.data("p13nData").actionButton && !!oColumn.data("p13nData").leadingProperty)) {
|
|
454
453
|
return true;
|
|
@@ -457,20 +456,6 @@ sap.ui.define([
|
|
|
457
456
|
});
|
|
458
457
|
}
|
|
459
458
|
|
|
460
|
-
function fnOpenCardMessagesDialog(oModel){
|
|
461
|
-
var oCardMessagesPromise = oTemplateUtils.oCommonUtils.getDialogFragmentAsync("sap.suite.ui.generic.template.ListReport.view.fragments.CardMessages", {
|
|
462
|
-
onClose: function(oEvent) {
|
|
463
|
-
var oDialog = oEvent.getSource().getParent();
|
|
464
|
-
oDialog.close();
|
|
465
|
-
}
|
|
466
|
-
}, "cardMessages");
|
|
467
|
-
|
|
468
|
-
oCardMessagesPromise.then(function (oDialog) {
|
|
469
|
-
oDialog.setModel(oModel, "list");
|
|
470
|
-
oDialog.open();
|
|
471
|
-
});
|
|
472
|
-
}
|
|
473
|
-
|
|
474
459
|
// Generation of Event Handlers
|
|
475
460
|
return {
|
|
476
461
|
onInit: function () {
|
|
@@ -644,13 +629,6 @@ sap.ui.define([
|
|
|
644
629
|
//which can be set directly on the table under 'settings'
|
|
645
630
|
// we have to remember these filters in order to exclude them later for counts
|
|
646
631
|
var oBindingParams = oEvent.getParameters().bindingParams;
|
|
647
|
-
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
648
|
-
var oTableSelectionVariant = oSmartTable.getUiState().getSelectionVariant();
|
|
649
|
-
if (oTableSelectionVariant && oTableSelectionVariant.SelectOptions && oTableSelectionVariant.SelectOptions.length) {
|
|
650
|
-
oTemplatePrivateModel.setProperty("/listReport/tableFiltersActive", true);
|
|
651
|
-
} else {
|
|
652
|
-
oTemplatePrivateModel.setProperty("/listReport/tableFiltersActive", false);
|
|
653
|
-
}
|
|
654
632
|
oState.oMultipleViewsHandler.aTableFilters = deepExtend({}, oBindingParams.filters);
|
|
655
633
|
// initial filters from smarttable, a copy
|
|
656
634
|
var aFiltersFromSmartTable = oBindingParams.filters.slice(0);
|
|
@@ -690,7 +668,7 @@ sap.ui.define([
|
|
|
690
668
|
onListNavigate: function (oEvent) {
|
|
691
669
|
// Create a copy of oEvent that can be used asynchronously
|
|
692
670
|
var oListNavigateEvent = deepExtend({}, oEvent);
|
|
693
|
-
oTemplateUtils.oServices.oApplicationController.synchronizeDraftAsync().then(function() {
|
|
671
|
+
(oTemplateUtils.oComponentUtils.isDraftEnabled() ? oTemplateUtils.oServices.oApplicationController.synchronizeDraftAsync() : Promise.resolve()).then(function() {
|
|
694
672
|
oTemplateUtils.oCommonEventHandlers.onListNavigate(oListNavigateEvent, oState);
|
|
695
673
|
});
|
|
696
674
|
},
|
|
@@ -749,16 +727,9 @@ sap.ui.define([
|
|
|
749
727
|
var oRb = oComponent.getModel("i18n").getResourceBundle();
|
|
750
728
|
var bIsSimpleColumnsApplied = checkSimpleTableColumns(oEntityType);
|
|
751
729
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
items: [
|
|
756
|
-
{text: oRb.getText("ST_CARDS_INFO_TEXT_2")},
|
|
757
|
-
{text: oRb.getText("ST_CARDS_INFO_TEXT_3")},
|
|
758
|
-
{text: oRb.getText("ST_CARDS_INFO_TEXT_4")}
|
|
759
|
-
]
|
|
760
|
-
});
|
|
761
|
-
fnOpenCardMessagesDialog(oModel);
|
|
730
|
+
if ( semanticDateRangeTypeHelper.hasSemanticDateValue(oState) || !bIsSimpleColumnsApplied) {
|
|
731
|
+
MessageBox.error(oRb.getText("ST_CARD_CREATION_FAILURE") + "\n" + oRb.getText("ST_CARD_CREATION_FAILURE_INFO") +
|
|
732
|
+
"\n" + oRb.getText("ST_CARD_FAILURE_REASON_SEMANTIC_DATE_FILTERS") + "\n" + oRb.getText("ST_CARD_FAILURE_TABLE_REASON_UNSUPPORTED_COLUMNS"));
|
|
762
733
|
} else {
|
|
763
734
|
var oView = oController.getView();
|
|
764
735
|
var oCardDefinition = {};
|
|
@@ -768,6 +739,7 @@ sap.ui.define([
|
|
|
768
739
|
oCardDefinition.entitySet = oEntitySet;
|
|
769
740
|
oCardDefinition.entityType = oEntityType;
|
|
770
741
|
oCardDefinition.oSmartFilterbar = oState.oSmartFilterbar;
|
|
742
|
+
oCardDefinition.oTemplateUtils = oTemplateUtils;
|
|
771
743
|
var oInsightsInstance = oTemplatePrivateModel.getProperty("/listReport/oInsightsInstance");
|
|
772
744
|
var vDraftState = oTemplatePrivateModel.getProperty("/listReport/vDraftState");
|
|
773
745
|
if (vDraftState && Number(vDraftState)) {
|
|
@@ -599,25 +599,27 @@ sap.ui.define([
|
|
|
599
599
|
|
|
600
600
|
function fnAdaptToAppStateStartUpWithParameters(oAppData, oURLParameters, sPreferredQuickVariantSelectionKey){
|
|
601
601
|
handleVariantIdPassedViaURLParams(oURLParameters);
|
|
602
|
-
|
|
602
|
+
|
|
603
|
+
var oSFBUiState = oState.oSmartFilterbar.getUiState();
|
|
604
|
+
var oSFBSemanticDates = oSFBUiState.getSemanticDates();
|
|
603
605
|
//oStartupObject to be passed to the extension where urlParameters and selectedQuickVariantSelectionKey are optional
|
|
604
606
|
var oStartupObject = {
|
|
605
607
|
viaExternalNavigation: false,
|
|
606
608
|
selectionVariant: oAppData.oSelectionVariant,
|
|
607
609
|
urlParameters: oURLParameters,
|
|
608
610
|
selectedQuickVariantSelectionKey: sPreferredQuickVariantSelectionKey,
|
|
609
|
-
//
|
|
610
|
-
|
|
611
|
+
// In case semantic date field is present, parseNavigation returns semanticDates in stringified format and otherwise an empty object.
|
|
612
|
+
// Moreover, if there is no semanticDates retrieved from NavigationHandler, then the existing values of semantic
|
|
613
|
+
// dates properties considered by smartfilterbar (from annotation, change handler etc) should be taken into consideration.
|
|
614
|
+
semanticDates: (typeof oAppData.semanticDates === "string" ? JSON.parse(oAppData.semanticDates) : oAppData.semanticDates) || oSFBSemanticDates || {}
|
|
611
615
|
};
|
|
612
616
|
//Apply sort order coming from the XAppState to the smart table.
|
|
613
617
|
if (oAppData.presentationVariant !== undefined) {
|
|
614
618
|
setControlSortOrder(oAppData.presentationVariant);
|
|
615
619
|
}
|
|
616
|
-
var oSFBUiState = oState.oSmartFilterbar.getUiState();
|
|
617
620
|
var oSFBSelectionVariant = new SelectionVariant(JSON.stringify(oSFBUiState.getSelectionVariant()));
|
|
618
621
|
fnRemoveCustomAndGenericData(oSFBSelectionVariant);
|
|
619
622
|
var oSFBSelectionVariantCopy = JSON.parse(JSON.stringify(oSFBSelectionVariant));
|
|
620
|
-
var oSFBSemanticDates = oSFBUiState.getSemanticDates();
|
|
621
623
|
if ((oAppData.oSelectionVariant.getSelectOptionsPropertyNames().indexOf("DisplayCurrency") === -1) && (oAppData.oSelectionVariant.getSelectOptionsPropertyNames().indexOf("P_DisplayCurrency") === -1) && (oAppData.oSelectionVariant.getParameterNames().indexOf("P_DisplayCurrency") === -1)) {
|
|
622
624
|
addDisplayCurrency(oAppData);
|
|
623
625
|
}
|
|
@@ -703,6 +705,12 @@ sap.ui.define([
|
|
|
703
705
|
// Remark: within SVM Wrapper, setSuppressSelection is also used - be aware, that this must not be overlapping (as in both cases we set back to fixed-value false)
|
|
704
706
|
oState.oSmartFilterbar.setSuppressSelection(false);
|
|
705
707
|
bInitialisation = false;
|
|
708
|
+
if (sNavType === sap.ui.generic.app.navigation.service.NavType.hybrid){ // incase of hybrid -> take everything from IappState
|
|
709
|
+
oAppData = oAppData.iAppState;
|
|
710
|
+
oAppData.controlStates = oAppData.data.permanentEntries.permanentState.data.controlStates;
|
|
711
|
+
fnAdaptToAppStateIappState(oAppData);
|
|
712
|
+
return;
|
|
713
|
+
}
|
|
706
714
|
// separate 3 different cases
|
|
707
715
|
// - restore from iAppState
|
|
708
716
|
// - adapt to navigation parameters
|
package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTableToolbar.fragment.xml
CHANGED
|
@@ -35,9 +35,10 @@
|
|
|
35
35
|
</template:if>
|
|
36
36
|
</template:with>
|
|
37
37
|
|
|
38
|
-
<!--
|
|
39
|
-
<template:if test="{= !${parameter>/settings/tableSettings/addCardtoInsightsHidden} && ${parameter>/templateSpecific/isResponsiveTable} && !${parameter>/settings/quickVariantSelectionX} }">
|
|
40
|
-
<Button id="{:= ${parameter>/stableId}.getStableId({type: 'ListReportAction', subType: 'AddCardtoInsights'})}" icon="sap-icon://add-folder" press="._templateEventHandlers.onAddCardsToRepository" text="{i18n>ST_ADD_CARDS_TO_INSIGHTS}" enabled="{= ${_templPriv>/generic/bDataAreShownInTable}}"
|
|
38
|
+
<!-- Add to cards repository Button-->
|
|
39
|
+
<template:if test="{= !${parameter>/settings/tableSettings/addCardtoInsightsHidden} && ${parameter>/templateSpecific/isResponsiveTable} && !${parameter>/settings/quickVariantSelectionX} && !${parameter>/settings/quickVariantSelection} }">
|
|
40
|
+
<Button id="{:= ${parameter>/stableId}.getStableId({type: 'ListReportAction', subType: 'AddCardtoInsights'})}" icon="sap-icon://add-folder" press="._templateEventHandlers.onAddCardsToRepository" text="{i18n>ST_ADD_CARDS_TO_INSIGHTS}" enabled="{= ${_templPriv>/generic/bDataAreShownInTable}}"
|
|
41
|
+
visible="{parts: [{path: 'parameter>/templateSpecific/bInsightsEnabled'}], formatter: 'AH.getInsightsButtonVisibility'}">
|
|
41
42
|
<layoutData>
|
|
42
43
|
<OverflowToolbarLayoutData priority="AlwaysOverflow"/>
|
|
43
44
|
</layoutData>
|
|
@@ -91,14 +91,14 @@ sap.ui.define([
|
|
|
91
91
|
// processing is completed
|
|
92
92
|
var fnInitialStateAppliedResolve = null; // resolve function for oStateAppliedAfterBindPromise
|
|
93
93
|
|
|
94
|
-
var mTablesWithSelectionChangeDuringDraftEdit = Object.create(null); // initialized in draft edit; collects the ids of all tables that have a
|
|
94
|
+
var mTablesWithSelectionChangeDuringDraftEdit = Object.create(null); // initialized in draft edit; collects the ids of all tables that have a selection change during the edit session
|
|
95
95
|
|
|
96
96
|
// This represents the global state of object page. There are different things, for which object page sub-sections might be waiting for,
|
|
97
97
|
// We use this variable to check whether those things have completed or not. This state can only be changed by method fnHandleStateChangeForAllSubSections,
|
|
98
98
|
// this method changes the flag of state and trigger a side-effect to tell all the subsections that if they are listening for any state value, they can
|
|
99
99
|
// update themselves.
|
|
100
|
-
// This state is reset in every rebind cycle and set
|
|
101
|
-
// currently
|
|
100
|
+
// This state is reset in every rebind cycle and set appropriately whenever some events happen like, headerdata available, stateApplied, layoutFinished.
|
|
101
|
+
// currently structure of this state looks like
|
|
102
102
|
// oWaitForState = {
|
|
103
103
|
// bLayoutFinished: boolean,
|
|
104
104
|
// bStateApplied: boolean,
|
|
@@ -190,7 +190,7 @@ sap.ui.define([
|
|
|
190
190
|
null,
|
|
191
191
|
oController.getOwnerComponent().getAppComponent().getForceGlobalRefresh(),
|
|
192
192
|
{
|
|
193
|
-
draftRootContext : oTemplateUtils.oComponentUtils.getMainComponentDetails().bindingContext, // send the root component binding for
|
|
193
|
+
draftRootContext : oTemplateUtils.oComponentUtils.getMainComponentDetails().bindingContext, // send the root component binding for executing preparation action
|
|
194
194
|
callPreparationOnDraftRoot : true
|
|
195
195
|
}
|
|
196
196
|
);
|
|
@@ -373,7 +373,7 @@ sap.ui.define([
|
|
|
373
373
|
* would always be true. Thus, we have to add
|
|
374
374
|
* "or (HasActiveEntity = false and IsActiveEntity = false)".
|
|
375
375
|
* However, this condition is not evaluated correctly by gateway, so we have to transform it to
|
|
376
|
-
* (
|
|
376
|
+
* (IsActiveEntity = true and x) or (Is ActiveEntity = false and (x or HasActiveEntity = false)),
|
|
377
377
|
* where x is the condition provided by the user
|
|
378
378
|
*/
|
|
379
379
|
var oUserFilter = FilterProcessor.groupFilters(oBindingParams.filters);
|
|
@@ -554,8 +554,7 @@ sap.ui.define([
|
|
|
554
554
|
var fnDeleteConfirmationOnDelete;
|
|
555
555
|
|
|
556
556
|
function getObjectPageDeleteDialog() {
|
|
557
|
-
fnDeleteConfirmationOnDelete = function (
|
|
558
|
-
var oDialog = oEvent.getSource().getParent();
|
|
557
|
+
fnDeleteConfirmationOnDelete = function (oDialog) {
|
|
559
558
|
var oBusyHelper = oTemplateUtils.oServices.oApplication.getBusyHelper();
|
|
560
559
|
if (oBusyHelper.isBusy()) {
|
|
561
560
|
return;
|
|
@@ -585,9 +584,10 @@ sap.ui.define([
|
|
|
585
584
|
var oDialog = oEvent.getSource().getParent();
|
|
586
585
|
oDialog.close();
|
|
587
586
|
},
|
|
588
|
-
// to be called within a function to
|
|
587
|
+
// to be called within a function to assure that fnDeleteConfirmationOnDelete contains correct coding (see below function getTableDeleteDialog)
|
|
589
588
|
onDelete: function (oEvent) {
|
|
590
|
-
|
|
589
|
+
var oDialog = oEvent.getSource().getParent();
|
|
590
|
+
(oTemplateUtils.oComponentUtils.isDraftEnabled() ? oTemplateUtils.oServices.oApplicationController.synchronizeDraftAsync() : Promise.resolve()).then(fnDeleteConfirmationOnDelete.bind(null, oDialog));
|
|
591
591
|
}
|
|
592
592
|
}, "delete", Function.prototype, true);
|
|
593
593
|
}
|
|
@@ -642,7 +642,7 @@ sap.ui.define([
|
|
|
642
642
|
}
|
|
643
643
|
index -= 1;
|
|
644
644
|
}
|
|
645
|
-
//Using
|
|
645
|
+
//Using separate loops to work on the array without ignored fields.
|
|
646
646
|
var aUnsupportedColumns = aColumnData.reduce(function (aColumns, oColumn) {
|
|
647
647
|
// Data formats for which paste is not yet supported.
|
|
648
648
|
if (!oColumn.type && !oColumn.customParseFunction) {
|
|
@@ -710,7 +710,7 @@ sap.ui.define([
|
|
|
710
710
|
var DraftSavedState = sap.m.DraftIndicatorState.Saved; //Indicator for the footer
|
|
711
711
|
|
|
712
712
|
for (var i = 0; i < iParsedDataLength; i++) {
|
|
713
|
-
bIgnoreTableRefresh = i < iParsedDataLength - 1; //Flag to overcome multiple table
|
|
713
|
+
bIgnoreTableRefresh = i < iParsedDataLength - 1; //Flag to overcome multiple table refreshes when records are pasted.
|
|
714
714
|
oAddEntryPromise = oTemplateUtils.oCommonEventHandlers.addEntry(oEventSource, true, undefined, aParsedData[i], bIgnoreTableRefresh);
|
|
715
715
|
aAddEntryPromises.push(oAddEntryPromise);
|
|
716
716
|
}
|
|
@@ -750,7 +750,7 @@ sap.ui.define([
|
|
|
750
750
|
|
|
751
751
|
// END - Functions related to the copy-paste from Excel
|
|
752
752
|
|
|
753
|
-
function onDelete(
|
|
753
|
+
function onDelete() {
|
|
754
754
|
oTemplateUtils.oCommonUtils.executeIfControlReady(onDeleteImpl, "delete");
|
|
755
755
|
}
|
|
756
756
|
|
|
@@ -947,9 +947,8 @@ sap.ui.define([
|
|
|
947
947
|
*/
|
|
948
948
|
function getTableDeleteDialog(oSmartTable, aContexts, sUiElementId) {
|
|
949
949
|
var aPath = [];
|
|
950
|
-
fnTableDeleteConfirmationOnDelete = function (
|
|
950
|
+
fnTableDeleteConfirmationOnDelete = function (oDialog) {
|
|
951
951
|
var oBusyHelper = oTemplateUtils.oServices.oApplication.getBusyHelper();
|
|
952
|
-
var oDialog = oEventSource.getParent();
|
|
953
952
|
aPath = [];
|
|
954
953
|
var iSuccessfullyDeletedCount;
|
|
955
954
|
var iFailedToDeleteCount;
|
|
@@ -1005,7 +1004,7 @@ sap.ui.define([
|
|
|
1005
1004
|
sMessage += sMessage && sMessage + "\n";
|
|
1006
1005
|
sMessage += oTemplateUtils.oCommonUtils.getContextText("DELETE_ERROR_PLURAL_WITH_COUNT", oSmartTable.getId(), null, [iFailedToDeleteCount]);
|
|
1007
1006
|
} else if (iSuccessfullyDeletedCount > 0) {
|
|
1008
|
-
//CASE: There is record failed for delete but some records got deleted
|
|
1007
|
+
//CASE: There is record failed for delete but some records got deleted successfully
|
|
1009
1008
|
sMessage += "\n";
|
|
1010
1009
|
sMessage += oTemplateUtils.oCommonUtils.getContextText("DELETE_ERROR_WITH_COUNT", oSmartTable.getId(), null, [iFailedToDeleteCount]);
|
|
1011
1010
|
} else {
|
|
@@ -1045,10 +1044,10 @@ sap.ui.define([
|
|
|
1045
1044
|
var oDialog = oEvent.getSource().getParent();
|
|
1046
1045
|
oDialog.close();
|
|
1047
1046
|
},
|
|
1048
|
-
// to be called within a function to
|
|
1047
|
+
// to be called within a function to assure that fnTableDeleteConfirmationOnDelete contains correct coding (see above function getObjectPageDeleteDialog)
|
|
1049
1048
|
onDelete: function (oEvent) {
|
|
1050
|
-
var
|
|
1051
|
-
oTemplateUtils.oServices.oApplicationController.synchronizeDraftAsync().then(fnTableDeleteConfirmationOnDelete.bind(null,
|
|
1049
|
+
var oDialog = oEvent.getSource().getParent();
|
|
1050
|
+
(oTemplateUtils.oComponentUtils.isDraftEnabled() ? oTemplateUtils.oServices.oApplicationController.synchronizeDraftAsync() : Promise.resolve()).then(fnTableDeleteConfirmationOnDelete.bind(null, oDialog));
|
|
1052
1051
|
}
|
|
1053
1052
|
}, "delete", Function.prototype, true);
|
|
1054
1053
|
}
|
|
@@ -1180,15 +1179,15 @@ sap.ui.define([
|
|
|
1180
1179
|
}
|
|
1181
1180
|
};
|
|
1182
1181
|
};
|
|
1183
|
-
// Loop over customData and attach changeHandler (if
|
|
1182
|
+
// Loop over customData and attach changeHandler (if necessary)
|
|
1184
1183
|
oObjectPage.getCustomData().forEach(function (oCustomDataElement) {
|
|
1185
1184
|
var sKey = oCustomDataElement.getKey();
|
|
1186
1185
|
if (sKey === "objectTitle" || sKey === "objectSubtitle") { // check for the two properties handled in the headerInfo segment
|
|
1187
1186
|
var oBinding = oCustomDataElement.getBinding("value");
|
|
1188
|
-
// UI5 does not
|
|
1187
|
+
// UI5 does not guarantee the binding to be already available at this point in time.
|
|
1189
1188
|
// If the binding is not available, we access the binding info as a fallback
|
|
1190
1189
|
var oBindingInfo = !oBinding && oCustomDataElement.getBindingInfo("value");
|
|
1191
|
-
if (!oBinding && !oBindingInfo) { // constant -> No change handler needed, but the value must be
|
|
1190
|
+
if (!oBinding && !oBindingInfo) { // constant -> No change handler needed, but the value must be transferred to the template private model once
|
|
1192
1191
|
oTemplatePrivateModel.setProperty("/objectPage/headerInfo/" + sKey, oCustomDataElement.getValue());
|
|
1193
1192
|
return; // done
|
|
1194
1193
|
}
|
|
@@ -1445,7 +1444,7 @@ sap.ui.define([
|
|
|
1445
1444
|
if (sSelectedSubSection){ // sSelectedSubSection was not yet processed, but we want to get only subsections that come after that
|
|
1446
1445
|
return false;
|
|
1447
1446
|
}
|
|
1448
|
-
// Scroll to
|
|
1447
|
+
// Scroll to the given subsection and make sure that controls and bindings for this subsection are initialized (necessary because of lazy loading)
|
|
1449
1448
|
oSelectedSection.setSelectedSubSection(oControl);
|
|
1450
1449
|
fnSubSectionEntered(oControl);
|
|
1451
1450
|
return null;
|
|
@@ -1805,11 +1804,11 @@ sap.ui.define([
|
|
|
1805
1804
|
var sCategory = bWaitForViewPort ? "subSectionNotWaitingForViewPort" : "subSection";
|
|
1806
1805
|
var oView = oController.getView();
|
|
1807
1806
|
oTemplateUtils.oInfoObjectHandler.executeForAllInformationObjects(sCategory, function (oSubSectionInfoObj) {
|
|
1808
|
-
// Checking whether a subSection Entered into view port or not is something local state compared to global state. Thus it is tested
|
|
1807
|
+
// Checking whether a subSection Entered into view port or not is something local state compared to global state. Thus it is tested separate to
|
|
1809
1808
|
// to global state
|
|
1810
1809
|
var sSubSectionId = oSubSectionInfoObj.getId();
|
|
1811
1810
|
var bExecuteNow = (bWaitForViewPort || controlHelper.isElementVisibleOnView(sSubSectionId, oView)) && checkGlobalWaitState(oSubSectionInfoObj.getLoadingStrategy());
|
|
1812
|
-
// Checking whether a subSection Entered into view port or not is something local state compared to global state. Thus it is tested
|
|
1811
|
+
// Checking whether a subSection Entered into view port or not is something local state compared to global state. Thus it is tested separate to
|
|
1813
1812
|
// to global state
|
|
1814
1813
|
var oStrategy = oSubSectionInfoObj.getLoadingStrategy();
|
|
1815
1814
|
bExecuteNow = checkGlobalWaitState(oStrategy);
|
|
@@ -2170,7 +2169,7 @@ sap.ui.define([
|
|
|
2170
2169
|
var bHeaderContent = oObjectPage.getShowHeaderContent();
|
|
2171
2170
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
2172
2171
|
oTemplatePrivateModel.setProperty("/objectPage/headerContentVisible", bHeaderContent);
|
|
2173
|
-
// Create a wrapper around the
|
|
2172
|
+
// Create a wrapper around the object page
|
|
2174
2173
|
// Use this wrapper to store/restore the pinned status of the header.
|
|
2175
2174
|
oObjectPageLayoutWrapper = oTemplateUtils.oCommonUtils.getControlStateWrapper(oObjectPage);
|
|
2176
2175
|
oObjectPageLayoutWrapper.attachStateChanged(oTemplateUtils.oComponentUtils.stateChanged);
|
|
@@ -2238,7 +2237,7 @@ sap.ui.define([
|
|
|
2238
2237
|
oObjectPage._triggerVisibleSubSectionsEvents();
|
|
2239
2238
|
};
|
|
2240
2239
|
|
|
2241
|
-
// This is the
|
|
2240
|
+
// This is the fallback implementation. Note that certain scenarios are already covered inplace (Edit, Save, Cancel)
|
|
2242
2241
|
oViewProxy.setFocus = function(oBeforeData, oAdditionalData){
|
|
2243
2242
|
var aActiveComponentsBefore = oBeforeData.activeComponents;
|
|
2244
2243
|
if (aActiveComponentsBefore.length > 0 && !(oAdditionalData && (oAdditionalData.isCreate || oAdditionalData.ignorePersistence))){
|
|
@@ -2281,11 +2280,11 @@ sap.ui.define([
|
|
|
2281
2280
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
2282
2281
|
oTemplatePrivateModel.setProperty("/objectPage/aPasteAttachedTables", []);
|
|
2283
2282
|
oTemplateUtils.oComponentUtils.attach(oController, "PageDataLoaded", function (oEvent) {
|
|
2284
|
-
var
|
|
2285
|
-
if (
|
|
2286
|
-
for (var i = 0; i <
|
|
2287
|
-
var oStreamData = oTemplateUtils.oCommonUtils.getStreamData(
|
|
2288
|
-
oTemplateUtils.oCommonUtils.setStreamData(oStreamData,
|
|
2283
|
+
var aStreamEnabledAssociatedEntities = oTemplateUtils.oComponentUtils.getParameterModelForTemplating().getObject("/templateSpecific/streamEnabledAssociatedEntites");
|
|
2284
|
+
if (aStreamEnabledAssociatedEntities && aStreamEnabledAssociatedEntities.length > 0) {
|
|
2285
|
+
for (var i = 0; i < aStreamEnabledAssociatedEntities.length; i++) {
|
|
2286
|
+
var oStreamData = oTemplateUtils.oCommonUtils.getStreamData(aStreamEnabledAssociatedEntities[i], oEvent.context);
|
|
2287
|
+
oTemplateUtils.oCommonUtils.setStreamData(oStreamData, aStreamEnabledAssociatedEntities[i]);
|
|
2289
2288
|
}
|
|
2290
2289
|
}
|
|
2291
2290
|
var oStreamDataSelf = oTemplateUtils.oCommonUtils.getStreamData(null, oEvent.context);
|
|
@@ -2340,31 +2339,27 @@ sap.ui.define([
|
|
|
2340
2339
|
oTemplateUtils.oCommonEventHandlers.submitChangesForSmartMultiInput(oEvent);
|
|
2341
2340
|
}
|
|
2342
2341
|
},
|
|
2343
|
-
|
|
2344
|
-
contextEditableChanged: function (oEvent) {
|
|
2342
|
+
onModeToggled: function (oEvent) {
|
|
2345
2343
|
/* Set the FieldGroupIds of the SmartField(s) which are 1:1 associated with the object page entity set so that side effect annotation targeting
|
|
2346
2344
|
the object entity set would work. Assigning FieldGroupIds to other SmartFields is already taken care by the SmartFields */
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
oSmartField._setInternalFieldGroupIds(aIDs);
|
|
2362
|
-
}
|
|
2345
|
+
var oSmartField = oEvent.getSource();
|
|
2346
|
+
oSmartField._getComputedMetadata().then(function (oComputedMetaData) {
|
|
2347
|
+
if (oComputedMetaData && oComputedMetaData.navigationPath && !!oSmartField.getBindingContext()) {
|
|
2348
|
+
var oClonedMetaData = deepExtend({}, oComputedMetaData);
|
|
2349
|
+
var oMetaModel = oController.getOwnerComponent().getModel().getMetaModel();
|
|
2350
|
+
|
|
2351
|
+
/* EntitySet and EntityType of the cloned metamodel of smartfield needs to be changed to the parent entity so that when
|
|
2352
|
+
_calculateFieldGroupIDs looks through the passed metamodel, it should be able to find the corresponding side effect annotation */
|
|
2353
|
+
oClonedMetaData.entitySet = oMetaModel.getODataEntitySet(oController.getOwnerComponent().getEntitySet());
|
|
2354
|
+
oClonedMetaData.entityType = oMetaModel.getODataEntityType(oClonedMetaData.entitySet.entityType);
|
|
2355
|
+
|
|
2356
|
+
var aIDs = oSmartField._calculateFieldGroupIDs(oClonedMetaData);
|
|
2357
|
+
if (aIDs) {
|
|
2358
|
+
oSmartField._setInternalFieldGroupIds(aIDs);
|
|
2363
2359
|
}
|
|
2364
|
-
}
|
|
2365
|
-
}
|
|
2360
|
+
}
|
|
2361
|
+
});
|
|
2366
2362
|
},
|
|
2367
|
-
|
|
2368
2363
|
deleteEntry: function (oEvent) {
|
|
2369
2364
|
var oListItem = oEvent.getParameter("listItem");
|
|
2370
2365
|
var oListItemContext = oListItem.getBindingContext();
|
|
@@ -2387,7 +2382,7 @@ sap.ui.define([
|
|
|
2387
2382
|
|
|
2388
2383
|
checkUpdateFinished: function (oEvent) {
|
|
2389
2384
|
// in case of the table get refreshed through table filter or sort
|
|
2390
|
-
//
|
|
2385
|
+
// onDataReceived may not be called
|
|
2391
2386
|
oTemplateUtils.oCommonUtils.setEnabledToolbarButtons(oEvent.getSource());
|
|
2392
2387
|
},
|
|
2393
2388
|
// selectionChange for MultiSelectionPlugin
|
|
@@ -2531,9 +2526,9 @@ sap.ui.define([
|
|
|
2531
2526
|
onBeforeRebindDetailTable: function (oEvent) {
|
|
2532
2527
|
var oSmartTable = oEvent.getSource();
|
|
2533
2528
|
if (!oSmartTable.getModel()) {
|
|
2534
|
-
return; // In
|
|
2529
|
+
return; // In scenario when Table is not bound on the initial load (Ex. When table is inside moreBlocks sections)
|
|
2535
2530
|
}
|
|
2536
|
-
// Attach
|
|
2531
|
+
// Attach dataReceived event
|
|
2537
2532
|
oEvent.mParameters.bindingParams.events["dataReceived"] = onDataReceivedForTable.bind(null, oSmartTable);
|
|
2538
2533
|
oState.oInlineCreationRowsHelper.onBeforeRebindControl(oEvent);
|
|
2539
2534
|
|
|
@@ -2641,7 +2636,7 @@ sap.ui.define([
|
|
|
2641
2636
|
onBeforeRebindChart: function (oEvent) {
|
|
2642
2637
|
var oSmartChart = oEvent.getSource();
|
|
2643
2638
|
if (!oSmartChart.getModel()) {
|
|
2644
|
-
return; // In
|
|
2639
|
+
return; // In scenario when Chart is not bound on the initial load (Ex. When chart is inside moreBlocks sections)
|
|
2645
2640
|
}
|
|
2646
2641
|
adjustAndProvideBindingParamsForSmartTableOrChart(oEvent);
|
|
2647
2642
|
//setNoDataChartTextIfRequired(oSmartChart);
|
|
@@ -2764,7 +2759,7 @@ sap.ui.define([
|
|
|
2764
2759
|
},
|
|
2765
2760
|
|
|
2766
2761
|
/*
|
|
2767
|
-
Formats the Text to be shown in the segmented button used for
|
|
2762
|
+
Formats the Text to be shown in the segmented button used for multiple views in object page tables
|
|
2768
2763
|
*/
|
|
2769
2764
|
formatItemTextForMultipleView: function (oItem) {
|
|
2770
2765
|
return oItem && oMultipleViewsHandler ? oMultipleViewsHandler.formatItemTextForMultipleView(oItem) : "";
|