@sapui5/sap.fe.core 1.96.0 → 1.96.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/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +2 -2
- package/src/sap/fe/core/AppComponent.js +1 -0
- package/src/sap/fe/core/CommonUtils.js +13 -1
- package/src/sap/fe/core/TransactionHelper.js +45 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +8 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +19 -4
- package/src/sap/fe/core/converters/annotations/DataField.js +2 -2
- package/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.js +13 -14
- package/src/sap/fe/core/converters/controls/Common/Table.ts +33 -34
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +6 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +30 -16
|
@@ -265,18 +265,16 @@ export type VisualSettings = {
|
|
|
265
265
|
widthCalculation?: WidthCalculation;
|
|
266
266
|
};
|
|
267
267
|
|
|
268
|
-
export type WidthCalculation =
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
verticalArrangement?: boolean;
|
|
279
|
-
};
|
|
268
|
+
export type WidthCalculation = null | {
|
|
269
|
+
minWidth?: number;
|
|
270
|
+
maxWidth?: number;
|
|
271
|
+
defaultWidth?: number;
|
|
272
|
+
includeLabel?: boolean;
|
|
273
|
+
gap?: number;
|
|
274
|
+
// only relevant for complex types
|
|
275
|
+
excludeProperties?: string | string[];
|
|
276
|
+
verticalArrangement?: boolean;
|
|
277
|
+
};
|
|
280
278
|
|
|
281
279
|
export type TableColumn = CustomTableColumn | AnnotationTableColumn;
|
|
282
280
|
|
|
@@ -2177,33 +2175,34 @@ export function getCreateVisible(
|
|
|
2177
2175
|
(path: string) => singletonPathVisitor(path, converterContext, [])
|
|
2178
2176
|
)
|
|
2179
2177
|
: undefined;
|
|
2180
|
-
//
|
|
2181
|
-
|
|
2182
|
-
//
|
|
2183
|
-
//
|
|
2184
|
-
//
|
|
2185
|
-
//
|
|
2186
|
-
//
|
|
2187
|
-
//
|
|
2188
|
-
//
|
|
2189
|
-
//
|
|
2190
|
-
//
|
|
2178
|
+
//Create Button is visible:
|
|
2179
|
+
|
|
2180
|
+
// - If the creation mode is external
|
|
2181
|
+
// - If we're on the list report and create is not hidden
|
|
2182
|
+
// - Otherwise this depends on the value of the the UI.IsEditable
|
|
2183
|
+
// - Otherwise
|
|
2184
|
+
// - If we're on the list report ->
|
|
2185
|
+
// - If UI.CreateHidden points to a property path -> provide a negated binding to this path
|
|
2186
|
+
// - Otherwise, create is visible
|
|
2187
|
+
// - Otherwise
|
|
2188
|
+
// - This depends on the value of the the UI.IsEditable
|
|
2189
|
+
|
|
2191
2190
|
return ifElse(
|
|
2192
|
-
|
|
2191
|
+
creationMode === "External",
|
|
2192
|
+
ifElse(
|
|
2193
|
+
converterContext.getTemplateType() === TemplateType.ListReport,
|
|
2194
|
+
not(isCreateHidden),
|
|
2195
|
+
and(not(isCreateHidden), UI.IsEditable)
|
|
2196
|
+
),
|
|
2197
|
+
ifElse(
|
|
2193
2198
|
or(
|
|
2194
2199
|
equal(showCreateForNewAction, false),
|
|
2195
|
-
and(isConstant(isInsertable), equal(isInsertable, false), equal(showCreateForNewAction, undefined))
|
|
2196
|
-
|
|
2197
|
-
isConstant(isCreateHidden) && equal(isCreateHidden, true),
|
|
2198
|
-
or(
|
|
2200
|
+
and(isConstant(isInsertable), equal(isInsertable, false), equal(showCreateForNewAction, undefined)),
|
|
2201
|
+
and(isConstant(isCreateHidden), equal(isCreateHidden, true)),
|
|
2199
2202
|
viewConfiguration ? converterContext.getManifestWrapper().hasMultipleVisualizations(viewConfiguration) : false,
|
|
2200
2203
|
converterContext.getTemplateType() === TemplateType.AnalyticalListPage
|
|
2201
|
-
)
|
|
2202
|
-
|
|
2203
|
-
false,
|
|
2204
|
-
ifElse(
|
|
2205
|
-
creationMode === "External",
|
|
2206
|
-
true,
|
|
2204
|
+
),
|
|
2205
|
+
false,
|
|
2207
2206
|
ifElse(
|
|
2208
2207
|
converterContext.getTemplateType() === TemplateType.ListReport,
|
|
2209
2208
|
ifElse(isBinding(isCreateHidden), not(isCreateHidden), true),
|
|
@@ -86,8 +86,12 @@ T_MESSAGE_GROUP_TITLE_TABLE_DENOMINATOR=\u206A\u206A\u206A\u200D\u200C\u200D\u20
|
|
|
86
86
|
|
|
87
87
|
T_MESSAGE_BUTTON_SAPFE_MESSAGE_GROUP_LAST_ACTION=\u206A\u206A\u206A\u200C\u200B\u200B\u200B\u200C\u200C\u200D\u200C\u200D\u200B\u200C\u200C\u200B\u200D\u200D\u200B\u200D\u200B\u200B\u200C\u200C\u200C\u200C\u200D\u200B\u200C\u200C\u200B\u200D\u200B\u200C\u200B\u200C\u200D\u200D\u200C\u200C\u200B\u200D\u200C\u200D\u206ALast Action\u206A\u206A
|
|
88
88
|
|
|
89
|
+
T_MESSAGE_ITEM_SUBTITLE_CREATION_ROW_INDICATOR=\u206A\u206A\u206A\u200C\u200B\u200D\u200D\u200C\u200C\u200D\u200B\u200C\u200C\u200D\u200D\u200D\u200B\u200D\u200D\u200B\u200B\u200B\u200B\u200C\u200C\u200C\u200C\u200B\u200D\u200C\u200C\u200B\u200D\u200B\u200D\u200B\u200B\u200D\u200D\u200B\u200B\u200D\u200C\u200C\u206A<New>\u206A\u206A
|
|
90
|
+
|
|
89
91
|
T_MESSAGE_ITEM_SUBTITLE_INDICATOR_UNKNOWN=\u206A\u206A\u206A\u200D\u200D\u200C\u200D\u200D\u200C\u200C\u200B\u200B\u200D\u200B\u200B\u200D\u200B\u200C\u200D\u200B\u200C\u200B\u200C\u200B\u200B\u200D\u200B\u200C\u200C\u200C\u200B\u200D\u200C\u200B\u200D\u200C\u200D\u200D\u200C\u200C\u200C\u200C\u200D\u206AUnknown\u206A\u206A
|
|
90
92
|
|
|
93
|
+
T_COLUMN_INDICATOR_IN_TABLE_DEFINITION=\u206A\u206A\u206A\u200C\u200B\u200B\u200B\u200D\u200B\u200D\u200D\u200B\u200C\u200B\u200D\u200B\u200C\u200C\u200D\u200C\u200C\u200B\u200D\u200C\u200B\u200C\u200B\u200C\u200C\u200D\u200D\u200D\u200D\u200D\u200C\u200D\u200D\u200C\u200D\u200D\u200D\u200C\u206AHidden\u206A\u206A
|
|
94
|
+
|
|
91
95
|
T_MESSAGE_ITEM_SUBTITLE=\u206A\u206A\u206A\u200D\u200D\u200C\u200D\u200B\u200D\u200B\u200B\u200D\u200B\u200B\u200B\u200D\u200B\u200B\u200B\u200B\u200B\u200C\u200D\u200C\u200B\u200C\u200D\u200D\u200C\u200D\u200D\u200D\u200D\u200D\u200B\u200D\u200C\u200D\u200D\u200C\u200D\u200C\u200D\u206ARow\: \u200B\u200B\u200B{0}\u200C\u200C\u200C, Column\: \u200B\u200B\u200B{1}\u200C\u200C\u200C\u206A\u206A
|
|
92
96
|
|
|
93
97
|
C_COMMON_SAPFE_ERROR=\u206A\u206A\u206A\u200D\u200C\u200B\u200D\u200D\u200B\u200D\u200B\u200B\u200B\u200B\u200B\u200C\u200D\u200B\u200B\u200D\u200B\u200C\u200D\u200D\u200D\u200D\u200D\u200B\u200D\u200B\u200B\u200D\u200D\u200B\u200B\u200C\u200C\u200D\u200D\u200C\u200C\u206AError\u206A\u206A
|
|
@@ -221,6 +225,8 @@ C_DRAFT_EDIT_STATE_DRAFT_LOCKED_FILTER=\u206A\u206A\u206A\u200D\u200D\u200C\u200
|
|
|
221
225
|
|
|
222
226
|
C_DRAFT_EDIT_STATE_DRAFT_UNSAVED_CHANGES_FILTER=\u206A\u206A\u206A\u200D\u200C\u200C\u200C\u200D\u200B\u200D\u200B\u200D\u200B\u200C\u200C\u200C\u200C\u200C\u200C\u200D\u200B\u200D\u200D\u200C\u200C\u200D\u200C\u200B\u200D\u200D\u200D\u200B\u200B\u200B\u200C\u200B\u200C\u200D\u200B\u200D\u200B\u200C\u200B\u206AUnsaved Changes by Another User\u206A\u206A
|
|
223
227
|
|
|
228
|
+
C_DRAFT_EDIT_STATE_DRAFT_ALL_HIDING_DRAFTS_FILTER=\u206A\u206A\u206A\u200C\u200D\u200D\u200D\u200D\u200C\u200C\u200B\u200B\u200C\u200B\u200C\u200D\u200B\u200C\u200D\u200B\u200D\u200C\u200B\u200B\u200B\u200B\u200C\u200B\u200B\u200C\u200D\u200D\u200B\u200B\u200C\u200C\u200B\u200B\u200B\u200C\u200C\u200C\u200B\u206AAll (Hiding Drafts)\u206A\u206A
|
|
229
|
+
|
|
224
230
|
T_COMMON_SAPFE_ACTION_SHARE=\u206A\u206A\u206A\u200C\u200D\u200C\u200D\u200D\u200C\u200B\u200B\u200D\u200D\u200D\u200B\u200D\u200B\u200D\u200D\u200B\u200B\u200B\u200C\u200D\u200B\u200C\u200B\u200C\u200C\u200D\u200C\u200B\u200B\u200D\u200D\u200B\u200B\u200C\u200B\u200D\u200C\u200C\u200D\u206AShare\u206A\u206A
|
|
225
231
|
|
|
226
232
|
|
|
@@ -71,10 +71,11 @@ sap.ui.define(
|
|
|
71
71
|
|
|
72
72
|
this.initPromise = Promise.resolve(that);
|
|
73
73
|
},
|
|
74
|
-
|
|
75
|
-
exit: function() {
|
|
74
|
+
beforeExit: function() {
|
|
76
75
|
this.oRouter.detachRouteMatched(this._fnOnRouteMatched);
|
|
77
76
|
this.eventProvider.fireEvent("routeMatched", {});
|
|
77
|
+
},
|
|
78
|
+
exit: function() {
|
|
78
79
|
this.eventProvider.destroy();
|
|
79
80
|
},
|
|
80
81
|
|
|
@@ -113,7 +114,7 @@ sap.ui.define(
|
|
|
113
114
|
|
|
114
115
|
// Check route pattern: all patterns need to end with ':?query:', that we use for parameters
|
|
115
116
|
if (sRoutePattern.length < 8 || sRoutePattern.indexOf(":?query:") !== sRoutePattern.length - 8) {
|
|
116
|
-
Log.
|
|
117
|
+
Log.warning("Pattern for route " + sRouteName + " doesn't end with ':?query:' : " + sRoutePattern);
|
|
117
118
|
}
|
|
118
119
|
var iRouteLevel = that._getViewLevelFromPattern(sRoutePattern, 0);
|
|
119
120
|
that._mRoutes[sRouteName] = {
|
|
@@ -857,6 +858,31 @@ sap.ui.define(
|
|
|
857
858
|
});
|
|
858
859
|
},
|
|
859
860
|
|
|
861
|
+
_requestObjectsFromParameters: function(oStartUpParameters, aExternallyNavigablePages) {
|
|
862
|
+
var that = this;
|
|
863
|
+
|
|
864
|
+
// Load the respective objects for all object pages found in aExternallyNavigablePages
|
|
865
|
+
var aContextPromises = aExternallyNavigablePages.map(function(oPage) {
|
|
866
|
+
var oCompleteFilter, oListBind;
|
|
867
|
+
if (oPage.isSemanticKeyNavigation) {
|
|
868
|
+
oCompleteFilter = that._createFilter(oPage.draft, oPage.semanticKeys, oStartUpParameters);
|
|
869
|
+
} else {
|
|
870
|
+
oCompleteFilter = that._createFilter(oPage.draft, oPage.technicalKeys, oStartUpParameters);
|
|
871
|
+
}
|
|
872
|
+
// only request a minimum of fields to boost backend performance since this is only used to check if an object exists
|
|
873
|
+
oListBind = that.oModel.bindList(oPage.contextPath, undefined, undefined, oCompleteFilter, {
|
|
874
|
+
"$select": oPage.isSemanticKeyNavigation
|
|
875
|
+
? oPage.semanticKeys.map(function(key) {
|
|
876
|
+
return key.$PropertyPath;
|
|
877
|
+
})
|
|
878
|
+
: oPage.technicalKeys
|
|
879
|
+
});
|
|
880
|
+
return oListBind.requestContexts(0, 2);
|
|
881
|
+
});
|
|
882
|
+
|
|
883
|
+
return Promise.all(aContextPromises);
|
|
884
|
+
},
|
|
885
|
+
|
|
860
886
|
_manageDeeplinkStartup: function(oStartUpParameters) {
|
|
861
887
|
var that = this,
|
|
862
888
|
aExternallyNavigablePages;
|
|
@@ -870,19 +896,7 @@ sap.ui.define(
|
|
|
870
896
|
|
|
871
897
|
aExternallyNavigablePages = that._findTargetPagesFromStartupParams(oLevelOfObjectPages, oStartUpParameters);
|
|
872
898
|
|
|
873
|
-
|
|
874
|
-
var aContextPromises = aExternallyNavigablePages.map(function(oPage) {
|
|
875
|
-
var oCompleteFilter, oListBind;
|
|
876
|
-
if (oPage.isSemanticKeyNavigation) {
|
|
877
|
-
oCompleteFilter = that._createFilter(oPage.draft, oPage.semanticKeys, oStartUpParameters);
|
|
878
|
-
} else {
|
|
879
|
-
oCompleteFilter = that._createFilter(oPage.draft, oPage.technicalKeys, oStartUpParameters);
|
|
880
|
-
}
|
|
881
|
-
oListBind = that.oModel.bindList(oPage.contextPath, undefined, undefined, oCompleteFilter);
|
|
882
|
-
return oListBind.requestContexts(0, 2);
|
|
883
|
-
});
|
|
884
|
-
|
|
885
|
-
return Promise.all(aContextPromises);
|
|
899
|
+
return that._requestObjectsFromParameters(oStartUpParameters, aExternallyNavigablePages);
|
|
886
900
|
})
|
|
887
901
|
.then(function(aValues) {
|
|
888
902
|
if (aValues.length) {
|