@sapui5/sap.suite.ui.generic.template 1.144.1 → 1.145.1
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/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/Canvas/behaviour.js +11 -0
- package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +92 -9
- package/src/sap/suite/ui/generic/template/ListReport/controller/IappStateHandler.js +19 -8
- 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 +3 -2
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTable.fragment.xml +5 -4
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +5 -2
- package/src/sap/suite/ui/generic/template/ObjectPage/extensionAPI/ExtensionAPI.js +2 -2
- 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 +3 -2
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +3 -2
- 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/floorplans/ObjectPage.designtime.js +6 -1
- package/src/sap/suite/ui/generic/template/designtime/utils/designtimeUtils.js +10 -3
- package/src/sap/suite/ui/generic/template/fragments/QuickViewSmartForm.fragment.xml +4 -3
- package/src/sap/suite/ui/generic/template/genericUtilities/ControlStateWrapperFactory.js +108 -67
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/DynamicPageWrapper.js +19 -51
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/ObjectPageLayoutWrapper.js +10 -32
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/PreliminaryWrapper.js +151 -0
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SearchFieldWrapper.js +8 -30
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +49 -162
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartTableChartCommon.js +100 -94
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartTableWrapper.js +22 -3
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartVariantManagementWrapper.js +90 -81
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/PageLeaveHandler.js +36 -8
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +3 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +2 -0
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +10 -25
- package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartTableHandler.js +1 -1
- package/src/sap/suite/ui/generic/template/library.js +1 -1
|
@@ -4,18 +4,16 @@ sap.ui.define([
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Constructor for SmartVariantManagementWrapper
|
|
7
|
-
* @param {sap.ui.comp.smartvariants.SmartVariantManagement}
|
|
8
|
-
* or the Id of control for which this wrapper is created
|
|
7
|
+
* @param {sap.ui.comp.smartvariants.SmartVariantManagement} oControl - The SmartVariantManagement control
|
|
9
8
|
* @param {object} oController - the controller of the current component
|
|
10
9
|
* @param {object} oFactory - the controlStateWrapperFactory
|
|
11
10
|
* @param {object} mParams
|
|
12
11
|
* @param {array} mParams.managedControlWrappers - array of controlStateWrappers for controls handled by the SVM
|
|
13
|
-
*
|
|
14
|
-
* @param {Object} mParams.dynamicPageWrapper - dynamicPageWrapper instance handled by SVM
|
|
12
|
+
* @param {object} mParams.smartFilterBarWrapper - explicit reference to SmartFilterBarWrapper for special handling
|
|
15
13
|
* @returns {object}
|
|
16
14
|
*/
|
|
17
15
|
|
|
18
|
-
function SmartVariantManagementWrapper(
|
|
16
|
+
function SmartVariantManagementWrapper(oControl, oController, oFactory, mParams) {
|
|
19
17
|
// Special handling of SmartFilterBarWrapper for several reasons:
|
|
20
18
|
// - Suppress selection when restoring a variant. Selection is solely triggered according to information in appState. Otherwise, erroneous selection could be triggered in
|
|
21
19
|
// a few situations:
|
|
@@ -26,14 +24,10 @@ sap.ui.define([
|
|
|
26
24
|
// - Store and restore extension state (extension implemented in SFB instead of SVM, which would be more appropriate from architectural point of view)
|
|
27
25
|
// flag to control whether we are currently in the process of applying a state to suppress the event to inform about a new state´
|
|
28
26
|
// only needed when setting the variant itself - for managed controls, their wrappers should avoid firing the event themselves
|
|
29
|
-
var oSmartVariantManagement
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (typeof vTarget !== "string") {
|
|
35
|
-
fnSetControl(vTarget);
|
|
36
|
-
}
|
|
27
|
+
var oSmartVariantManagement = oControl;
|
|
28
|
+
var oPreliminaryState;
|
|
29
|
+
var bIsApplyingVariant = false;
|
|
30
|
+
var bAllControlsInitialized = false;
|
|
37
31
|
|
|
38
32
|
// Handles the state of the variant management itself (i.e. which variant is selected and whether it's dirty), including the state of the managed controls.
|
|
39
33
|
// Is responsible esp. to restore this state with correct dependency resp. in correct order
|
|
@@ -50,69 +44,74 @@ sap.ui.define([
|
|
|
50
44
|
// For these controls, a real user changes are already handled by the direct connection. On the other hand, these controls also fire their change events, if their state is
|
|
51
45
|
// changed from SVM (by the same connection) - setting variant dirty here would be wrong.
|
|
52
46
|
mParams.managedControlWrappers.forEach(function(oWrapper){
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
(oWrapper.oVMConnectionPromise || Promise.resolve(oWrapper.bVMConnection)).then(function(bVMConnection) {
|
|
48
|
+
if (!bVMConnection) {
|
|
49
|
+
oWrapper.attachStateChanged(function(){
|
|
50
|
+
oSmartVariantManagement.currentVariantSetModified(true);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
});
|
|
58
54
|
});
|
|
59
55
|
|
|
56
|
+
// Get SmartFilterBarWrapper explicitly from params.
|
|
57
|
+
// This connection is needed because SmartFilterBar provides special callbacks to store/restore state
|
|
58
|
+
// for controls that don't have a direct variant management connection (bVMConnection = false), such as:
|
|
59
|
+
// - Extension filters (custom filters added via app or adaptation extensions)
|
|
60
|
+
// - Multiple views state (selected tab in multi-table/chart scenarios)
|
|
61
|
+
// These controls need their state saved/restored with variants via the SFB's beforeVariantFetch/afterVariantLoad events.
|
|
62
|
+
var oSmartFilterBarWrapper = mParams.smartFilterBarWrapper;
|
|
60
63
|
|
|
61
|
-
|
|
62
|
-
function fnSetControl(oControl) {
|
|
63
|
-
oSmartVariantManagement = oControl;
|
|
64
|
-
fnResolveControlAssigned(oSmartVariantManagement);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
var oSmartFilterBarWrapper = mParams.managedControlWrappers.find(function(oWrapper){
|
|
68
|
-
return oWrapper.setSVMWrapperCallbacks;
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
// provide callbacks needed for SFB wrapper to store/restore extnesion state with variant
|
|
64
|
+
// Provide callbacks needed for SFB wrapper to store/restore extension state with variant
|
|
72
65
|
if (oSmartFilterBarWrapper){
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
66
|
+
// Build array with wrapper + bVMConnection info once all wrappers are ready
|
|
67
|
+
Promise.all(mParams.managedControlWrappers.map(function(oWrapper){
|
|
68
|
+
return (oWrapper.oVMConnectionPromise || Promise.resolve(oWrapper.bVMConnection)).then(function(bVMConnection){
|
|
69
|
+
return {
|
|
70
|
+
wrapper: oWrapper,
|
|
71
|
+
bVMConnection: bVMConnection
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
})).then(function(aWrapperInfo) {
|
|
75
|
+
oSmartFilterBarWrapper.setSVMWrapperCallbacks({
|
|
76
|
+
getManagedControlStates: function(){
|
|
77
|
+
var mManagedControlStates = Object.create(null);
|
|
78
|
+
aWrapperInfo.forEach(function(oInfo){
|
|
79
|
+
if (!oInfo.bVMConnection) {
|
|
80
|
+
mManagedControlStates[oInfo.wrapper.getLocalId()] = oInfo.wrapper.getState();
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
return mManagedControlStates;
|
|
84
|
+
},
|
|
85
|
+
setManagedControlStates: function(oState){
|
|
86
|
+
aWrapperInfo.forEach(function(oInfo){
|
|
87
|
+
if (!oInfo.bVMConnection) {
|
|
88
|
+
oInfo.wrapper.setState(oState[oInfo.wrapper.getLocalId()]);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
// Create promise that resolves when all managed controls' variant management is ready
|
|
97
|
+
// This ensures getState() can query controls even if setState() is never called (e.g., app starts from scratch)
|
|
98
|
+
var oAllControlsInitializedPromise = Promise.all(
|
|
99
|
+
mParams.managedControlWrappers.map(function(oWrapper){
|
|
100
|
+
return oWrapper.oVariantManagementInitializedPromise || Promise.resolve();
|
|
101
|
+
})
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
// Set flag when all controls are initialized
|
|
105
|
+
oAllControlsInitializedPromise.then(function() {
|
|
106
|
+
bAllControlsInitialized = true;
|
|
107
|
+
});
|
|
108
|
+
|
|
96
109
|
// Wrapper is intended to set a state to the ui, but not to trigger a selection (which should happen only after all (relevant) parts of ui state is set to the correct state
|
|
97
110
|
// are set correct. Therefore, setting variant from here should never trigger a selection.
|
|
98
111
|
function fnSetVariant(sVariantId){
|
|
99
112
|
if (oSmartFilterBarWrapper){
|
|
100
113
|
oSmartFilterBarWrapper.suppressSelection(true);
|
|
101
114
|
}
|
|
102
|
-
var sId = mParams.managedControlWrappers[0].getLocalId();
|
|
103
|
-
var oControl = oController.getView().byId(sId);
|
|
104
|
-
if (oControl && oControl.isA("sap.ui.comp.smarttable.SmartTable")) {
|
|
105
|
-
oControl.attachAfterVariantInitialise(function() {
|
|
106
|
-
//set currentVariantId only when sVariantId is not standard (as it might be overriding existing
|
|
107
|
-
//different currentVariantId) or smartTable's (oControl) currentVariantId is not equal to sVariantId.
|
|
108
|
-
if (sVariantId !== '*standard*' && sVariantId !== '') {
|
|
109
|
-
if (oControl.getCurrentVariantId && oControl.getCurrentVariantId() !== sVariantId) {
|
|
110
|
-
oControl.setCurrentVariantId(sVariantId);
|
|
111
|
-
}
|
|
112
|
-
oSmartVariantManagement.setModified(false);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
115
|
oSmartVariantManagement.setCurrentVariantId(sVariantId);
|
|
117
116
|
if (oSmartFilterBarWrapper){
|
|
118
117
|
oSmartFilterBarWrapper.suppressSelection(false);
|
|
@@ -133,7 +132,11 @@ sap.ui.define([
|
|
|
133
132
|
}
|
|
134
133
|
|
|
135
134
|
function getState() {
|
|
136
|
-
if
|
|
135
|
+
// Return preliminary state if managed controls not fully initialized
|
|
136
|
+
// Note: If early getState() calls become an issue (controls not initialized yet), we could enhance this to:
|
|
137
|
+
// - Store only SVM-specific data (variantId, modified) in oPreliminaryState
|
|
138
|
+
// - Always query managed control wrappers directly (they handle their own preliminary state via PreliminaryWrapper)
|
|
139
|
+
if (!bAllControlsInitialized) {
|
|
137
140
|
return oPreliminaryState;
|
|
138
141
|
}
|
|
139
142
|
|
|
@@ -150,22 +153,23 @@ sap.ui.define([
|
|
|
150
153
|
|
|
151
154
|
function setState(oState) {
|
|
152
155
|
oPreliminaryState = oState;
|
|
153
|
-
|
|
156
|
+
|
|
157
|
+
// Wait for all managed controls to be initialized before applying state
|
|
158
|
+
oAllControlsInitializedPromise.then(function() {
|
|
159
|
+
bIsApplyingVariant = true;
|
|
154
160
|
if (!oPreliminaryState) {
|
|
155
161
|
// if no state is provided set default variant (not modified)
|
|
156
162
|
// use cases:
|
|
157
163
|
// - LR: if appStateKey in the URL that cannot be read
|
|
158
164
|
// - OP: if switching to different object instance (in discovery mode always, in persistency mode when page was not shown)
|
|
159
165
|
fnSetVariant(oSmartVariantManagement.getDefaultVariantId());
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
if (oPreliminaryState.modified) {
|
|
166
|
+
} else if (oPreliminaryState.modified) {
|
|
163
167
|
// Special logic according to UX: If variant was modified anyway, there's no benefit for the user to see the name (but it could be confusing), so standard variant (not default!) should be
|
|
164
168
|
// set (which is achieved by empty string)
|
|
165
169
|
fnSetVariant("");
|
|
170
|
+
oSmartVariantManagement.currentVariantSetModified(true);
|
|
166
171
|
// Usually restoring the state of any of the managed controls should mark the variant as dirty, but there might be edge cases (state from an old release not containing information for any
|
|
167
172
|
// managed control now relevant), so to be on the safe side, we set modified=true explicitly.
|
|
168
|
-
oSmartVariantManagement.currentVariantSetModified(true);
|
|
169
173
|
fnSetManagedControlStates(oPreliminaryState);
|
|
170
174
|
} else {
|
|
171
175
|
fnSetVariant(oPreliminaryState.variantId);
|
|
@@ -183,6 +187,7 @@ sap.ui.define([
|
|
|
183
187
|
}
|
|
184
188
|
}
|
|
185
189
|
}
|
|
190
|
+
bIsApplyingVariant = false;
|
|
186
191
|
});
|
|
187
192
|
}
|
|
188
193
|
|
|
@@ -190,26 +195,30 @@ sap.ui.define([
|
|
|
190
195
|
// state of variant management itself can be changed directly (user selects a different variant or stores current state as (new) variant), or indirectly (user changes some
|
|
191
196
|
// data of a control managed by VM, e.g. some filter values in SFB)
|
|
192
197
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
198
|
+
// Wrap the handler to suppress events when applying a variant
|
|
199
|
+
var fnSuppressibleHandler = function() {
|
|
200
|
+
if (!bIsApplyingVariant) {
|
|
201
|
+
fnHandler();
|
|
202
|
+
}
|
|
203
|
+
};
|
|
196
204
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
// This is one of the possible ways to get into a state with a clean variant with execute on select, but no data loaded - see also comment to identify SFB wrapper.
|
|
200
|
-
oSmartVariantManagement.attachAfterSave(fnHandler);
|
|
205
|
+
// state change when user selects a different variant
|
|
206
|
+
oSmartVariantManagement.attachSelect(fnSuppressibleHandler);
|
|
201
207
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
208
|
+
// when user saves current state as a new variant, this is also a state change (as the variant id is part of the state)
|
|
209
|
+
// note: Even if new (SFB) variant is marked as execute on select, and currently no data is selected, no need to select data here (and thus also not to collapse header).
|
|
210
|
+
// This is one of the possible ways to get into a state with a clean variant with execute on select, but no data loaded - see also comment to identify SFB wrapper.
|
|
211
|
+
oSmartVariantManagement.attachAfterSave(fnSuppressibleHandler);
|
|
212
|
+
|
|
213
|
+
// any change of a managed control is state change
|
|
214
|
+
mParams.managedControlWrappers.forEach(function(oWrapper){
|
|
215
|
+
oWrapper.attachStateChanged(fnSuppressibleHandler);
|
|
206
216
|
});
|
|
207
217
|
}
|
|
208
218
|
|
|
209
219
|
return {
|
|
210
220
|
getState : getState,
|
|
211
221
|
setState : setState,
|
|
212
|
-
setControl: fnSetControl,
|
|
213
222
|
attachStateChanged : attachStateChanged
|
|
214
223
|
};
|
|
215
224
|
}
|
|
@@ -959,7 +959,7 @@ sap.ui.define([
|
|
|
959
959
|
* @public
|
|
960
960
|
* @extends sap.ui.core.UIComponent
|
|
961
961
|
* @author SAP SE
|
|
962
|
-
* @version 1.
|
|
962
|
+
* @version 1.145.1
|
|
963
963
|
* @name sap.suite.ui.generic.template.lib.AppComponent
|
|
964
964
|
*/
|
|
965
965
|
var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
sap.ui.define(["sap/ui/base/Object",
|
|
2
|
-
"sap/base/util/extend",
|
|
1
|
+
sap.ui.define(["sap/ui/base/Object",
|
|
2
|
+
"sap/base/util/extend",
|
|
3
3
|
"sap/suite/ui/generic/template/lib/CRUDHelper",
|
|
4
4
|
"sap/suite/ui/generic/template/lib/MessageUtils"
|
|
5
5
|
], function (BaseObject, extend, CRUDHelper, MessageUtils) {
|
|
@@ -7,7 +7,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
7
7
|
|
|
8
8
|
function getMethods(oTemplateContract) {
|
|
9
9
|
|
|
10
|
-
var fnOnDiscardOrKeepDraftConfirmed,
|
|
10
|
+
var fnOnDiscardOrKeepDraftConfirmed,
|
|
11
11
|
fnOnDiscardOrKeepDraftCancel;
|
|
12
12
|
|
|
13
13
|
function getSelectedKey(oKeepDiscardPopup) {
|
|
@@ -22,6 +22,22 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
22
22
|
firstListItemOption.focus();
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
function checkIfNavigationIsExplace() {
|
|
26
|
+
var UShellContainer = sap.ui.require("sap/ushell/Container");
|
|
27
|
+
if (!UShellContainer) {
|
|
28
|
+
return Promise.resolve(false); // No UShell container, assume inplace navigation
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return UShellContainer.getServiceAsync("FioriElements").then(function(oFioriElementsService) {
|
|
32
|
+
if (oFioriElementsService && typeof oFioriElementsService.isExplaceNavigation === "function") {
|
|
33
|
+
return oFioriElementsService.isExplaceNavigation();
|
|
34
|
+
}
|
|
35
|
+
return false; // API not available, default to inplace behavior
|
|
36
|
+
}).catch(function() {
|
|
37
|
+
return false; // Service not available or error, default to inplace behavior
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
25
41
|
/*
|
|
26
42
|
ShowDiscardDraftPopUp
|
|
27
43
|
*/
|
|
@@ -29,7 +45,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
29
45
|
fnOnDiscardOrKeepDraftConfirmed = onDiscardOrKeepDraftConfirmed;
|
|
30
46
|
fnOnDiscardOrKeepDraftCancel = onDiscardOrKeepDraftCancel;
|
|
31
47
|
|
|
32
|
-
var oDraftPopup,
|
|
48
|
+
var oDraftPopup,
|
|
33
49
|
oComponent = getComponent(),
|
|
34
50
|
oController = oComponent.oController;
|
|
35
51
|
var sFragmentname = "sap.suite.ui.generic.template.ObjectPage.view.fragments.DraftConfirmationPopup";
|
|
@@ -134,13 +150,25 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
134
150
|
function fnPerformAfterDiscardOrKeepDraftImpl(fnPositive, fnNegative, sMode, bIsTechnical) {
|
|
135
151
|
var sEnableDiscardDraftConfirmation = oTemplateContract.oNavigationControllerProxy.isDiscardDraftConfirmationNeeded();
|
|
136
152
|
var bNeedsPopup = ((sEnableDiscardDraftConfirmation === "always" && sMode.startsWith("Leave")) || (sEnableDiscardDraftConfirmation === "restricted" && sMode === "LeavePage")) && isObjectEditable();
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
} else {
|
|
153
|
+
|
|
154
|
+
if (!bNeedsPopup) {
|
|
140
155
|
fnPositive();
|
|
156
|
+
return;
|
|
141
157
|
}
|
|
158
|
+
|
|
159
|
+
// Check if navigation will be explace and skip popup if so
|
|
160
|
+
checkIfNavigationIsExplace().then(function(bIsExplace) {
|
|
161
|
+
if (bIsExplace) {
|
|
162
|
+
fnPositive(); // Skip popup for explace navigation
|
|
163
|
+
} else {
|
|
164
|
+
fnDiscardOrKeepDraftConfirmation(fnPositive, fnNegative, sMode);
|
|
165
|
+
}
|
|
166
|
+
}).catch(function() {
|
|
167
|
+
// Fallback: show popup as before if API check fails
|
|
168
|
+
fnDiscardOrKeepDraftConfirmation(fnPositive, fnNegative, sMode);
|
|
169
|
+
});
|
|
142
170
|
}
|
|
143
|
-
|
|
171
|
+
|
|
144
172
|
function getComponent() {
|
|
145
173
|
var oComponent;
|
|
146
174
|
var oCurrentIdentity = oTemplateContract.oNavigationControllerProxy.getCurrentIdentity();
|
|
@@ -565,6 +565,9 @@ RTA_CONFIGURATION_TITLE_FILTER_BAR=Configure Filter Bar
|
|
|
565
565
|
# XTIT: Title text on Configurations dialog for Object Page
|
|
566
566
|
RTA_CONFIGURATION_TITLE_OBJECT_PAGE=Configure Object Page
|
|
567
567
|
|
|
568
|
+
# XMSG: Information message text in Configurations dialog
|
|
569
|
+
RTA_CONFIGURATION_INFO_MESSAGE=Changes will only be visible after the application reloads.
|
|
570
|
+
|
|
568
571
|
# XBUT: Button text for Cancel on Configurations dialog
|
|
569
572
|
RTA_CONFIGURATION_CANCEL=Cancel
|
|
570
573
|
|
|
@@ -368,6 +368,8 @@ RTA_CONFIGURATION_TITLE_FILTER_BAR=\u206A\u206A\u206A\u200C\u200C\u200B\u200B\u2
|
|
|
368
368
|
|
|
369
369
|
RTA_CONFIGURATION_TITLE_OBJECT_PAGE=\u206A\u206A\u206A\u200C\u200D\u200C\u200D\u200D\u200D\u200D\u200D\u200B\u200D\u200C\u200D\u200B\u200C\u200C\u200C\u200D\u200C\u200B\u200D\u200B\u200C\u200D\u200D\u200D\u200D\u200D\u200C\u200C\u200C\u200B\u200C\u200B\u200B\u200C\u200B\u200C\u200C\u200B\u206AConfigure Object Page\u206A\u206A
|
|
370
370
|
|
|
371
|
+
RTA_CONFIGURATION_INFO_MESSAGE=\u206A\u206A\u206A\u200C\u200D\u200D\u200C\u200D\u200B\u200C\u200D\u200C\u200D\u200C\u200D\u200C\u200C\u200C\u200D\u200D\u200D\u200C\u200D\u200D\u200D\u200B\u200D\u200D\u200D\u200D\u200C\u200D\u200B\u200C\u200C\u200C\u200C\u200B\u200C\u200D\u200C\u200C\u200C\u206AChanges will only be visible after the application reloads.\u206A\u206A
|
|
372
|
+
|
|
371
373
|
RTA_CONFIGURATION_CANCEL=\u206A\u206A\u206A\u200C\u200B\u200B\u200D\u200B\u200C\u200C\u200D\u200B\u200B\u200D\u200C\u200C\u200B\u200B\u200B\u200C\u200D\u200B\u200B\u200C\u200D\u200D\u200C\u200B\u200D\u200B\u200D\u200B\u200D\u200B\u200D\u200C\u200C\u200C\u200C\u200D\u200C\u206ACancel\u206A\u206A
|
|
372
374
|
|
|
373
375
|
RTA_CONFIGURATION_APPLY=\u206A\u206A\u206A\u200C\u200C\u200B\u200B\u200B\u200D\u200C\u200D\u200C\u200C\u200C\u200B\u200C\u200B\u200B\u200D\u200B\u200D\u200C\u200B\u200B\u200D\u200D\u200D\u200D\u200C\u200D\u200D\u200C\u200D\u200D\u200B\u200C\u200D\u200B\u200C\u200D\u200C\u200C\u200D\u200B\u206AApply\u206A\u206A
|
|
@@ -2219,25 +2219,6 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
2219
2219
|
}) : Promise.reject();
|
|
2220
2220
|
}
|
|
2221
2221
|
|
|
2222
|
-
/**
|
|
2223
|
-
* Calls state changer per each (template) component on url change.
|
|
2224
|
-
* @param {Array<sap.suite.ui.generic.template.lib.StatePreserver>} aStateChangers array of StatePreserver instances
|
|
2225
|
-
* @param {map} appStates map of appStates
|
|
2226
|
-
* @param {boolean} bIsFCLMode optional, defined only in FLC
|
|
2227
|
-
* @returns {boolean} returns true if url change can be handled by state changer,
|
|
2228
|
-
* returns false in FCL, so the route-matched logic will continue as normal.
|
|
2229
|
-
*/
|
|
2230
|
-
function fnGetIsStateChange(aStateChangers, appStates, bIsFCLMode) {
|
|
2231
|
-
var bIsStateChangeResult = false;
|
|
2232
|
-
for (var i = 0; i < aStateChangers.length; i++){
|
|
2233
|
-
var oStateChanger = aStateChangers[i];
|
|
2234
|
-
if (oStateChanger.isStateChange(appStates)){
|
|
2235
|
-
bIsStateChangeResult = bIsFCLMode ? false : true;
|
|
2236
|
-
}
|
|
2237
|
-
}
|
|
2238
|
-
return bIsStateChangeResult;
|
|
2239
|
-
}
|
|
2240
|
-
|
|
2241
2222
|
// Start: Handling url-changes
|
|
2242
2223
|
/*
|
|
2243
2224
|
* calls onActivate on the specified view, if it exists
|
|
@@ -2541,11 +2522,16 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
2541
2522
|
fnNavigate(sTargetHash, true);
|
|
2542
2523
|
return; // fnHandleRouteMatched will be called with the new url, so leave further processing to that call
|
|
2543
2524
|
}
|
|
2544
|
-
// State changers can interfere in FCL, for example between LR and OP when the search query is updated. In particular, it is necessary to skip the early return in FCL and display an error in case of 404.
|
|
2545
|
-
// The last parameter will still trigger state changers (with possible side effects), but will never return true as a result.
|
|
2546
|
-
var bIsStateChange = fnGetIsStateChange(oTemplateContract.aStateChangers, oCurrentIdentity.appStates, !!oTemplateContract.oFlexibleColumnLayoutHandler);
|
|
2547
2525
|
// State changers may identify the hash change as something which can be handled by them internally. In this case we do not need to run the whole mechanism.
|
|
2548
2526
|
// Since isStateChange is allowed to have side-effects we call all StateChangers.
|
|
2527
|
+
var bIsStateChange = false;
|
|
2528
|
+
for (var i = 0; i < oTemplateContract.aStateChangers.length; i++){
|
|
2529
|
+
var oStateChanger = oTemplateContract.aStateChangers[i];
|
|
2530
|
+
if (oStateChanger.isStateChange(oCurrentIdentity.appStates)){
|
|
2531
|
+
bIsStateChange = true;
|
|
2532
|
+
}
|
|
2533
|
+
}
|
|
2534
|
+
|
|
2549
2535
|
if (bIsStateChange){
|
|
2550
2536
|
oRoutingOptions = null;
|
|
2551
2537
|
oCurrentHash.hash = sHash;
|
|
@@ -3130,8 +3116,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
3130
3116
|
var fnPrepareHostView = testableHelper.testable(fnPrepareHostView, "prepareHostView");
|
|
3131
3117
|
var fnPreloadComponent = testableHelper.testable(fnPreloadComponent, "preloadComponent");
|
|
3132
3118
|
var fnGetRouteInfoByHash = testableHelper.testable(fnGetRouteInfoByHash, "getRouteInfoByHash");
|
|
3133
|
-
|
|
3134
|
-
|
|
3119
|
+
|
|
3135
3120
|
// Note: Function createHostView will be added by routingHelper.
|
|
3136
3121
|
// Allow to mock this by unit tests
|
|
3137
3122
|
testableHelper.testable(function(fnCreateHostView){
|
|
@@ -3228,7 +3213,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
3228
3213
|
* @param {sap.suite.ui.generic.template.lib.AppComponent} oAppComponent The AppComponent instance
|
|
3229
3214
|
* @public
|
|
3230
3215
|
* @extends sap.ui.base.Object
|
|
3231
|
-
* @version 1.
|
|
3216
|
+
* @version 1.145.1
|
|
3232
3217
|
* @since 1.30.0
|
|
3233
3218
|
* @alias sap.suite.ui.generic.template.lib.NavigationController
|
|
3234
3219
|
*/
|
|
@@ -586,7 +586,7 @@ sap.ui.define([
|
|
|
586
586
|
const getFieldProps = function (sField) {
|
|
587
587
|
return {
|
|
588
588
|
"sProperty": sField,
|
|
589
|
-
"sLabel": (
|
|
589
|
+
"sLabel": getColumnLabel(sField),
|
|
590
590
|
"sValue": oItemContext.getProperty(sField),
|
|
591
591
|
"bHidden": !aVisibleColumns.has(sField)
|
|
592
592
|
};
|