@sapui5/sap.suite.ui.generic.template 1.136.0 → 1.136.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/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 +14 -3
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +9 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +41 -10
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/view/Details.view.xml +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/detailTemplates/detailUtils.js +30 -29
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +11 -2
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +6 -2
- package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +29 -28
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +6 -2
- package/src/sap/suite/ui/generic/template/lib/navigation/routingHelper.js +2 -1
- package/src/sap/suite/ui/generic/template/library.js +1 -1
package/package.json
CHANGED
|
@@ -26,7 +26,8 @@ sap.ui.define([
|
|
|
26
26
|
"sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler",
|
|
27
27
|
"sap/ui/model/FilterOperator",
|
|
28
28
|
"sap/ui/core/message/MessageType",
|
|
29
|
-
"sap/ui/core/Element"
|
|
29
|
+
"sap/ui/core/Element",
|
|
30
|
+
"sap/suite/ui/generic/template/genericUtilities/testableHelper"
|
|
30
31
|
], function (
|
|
31
32
|
Filter,
|
|
32
33
|
ExtensionAPI,
|
|
@@ -55,7 +56,8 @@ sap.ui.define([
|
|
|
55
56
|
EasyFilterBarHandler,
|
|
56
57
|
FilterOperator,
|
|
57
58
|
MessageType,
|
|
58
|
-
Element
|
|
59
|
+
Element,
|
|
60
|
+
testableHelper
|
|
59
61
|
) {
|
|
60
62
|
"use strict";
|
|
61
63
|
|
|
@@ -335,6 +337,7 @@ sap.ui.define([
|
|
|
335
337
|
|
|
336
338
|
function onShareListReportActionButtonPressImpl(oButton) {
|
|
337
339
|
var getFilterInfoForTilePromise = function () {
|
|
340
|
+
try {
|
|
338
341
|
var oPresentationControlHandler = oState.oPresentationControlHandler;
|
|
339
342
|
var oMetaModel = oPresentationControlHandler.getModel().getMetaModel();
|
|
340
343
|
var sEntityTypeName = oMetaModel.getODataEntitySet(oPresentationControlHandler.getEntitySet()).entityType;
|
|
@@ -363,7 +366,14 @@ sap.ui.define([
|
|
|
363
366
|
sServiceUrl: ""
|
|
364
367
|
});
|
|
365
368
|
}
|
|
369
|
+
} catch (error) {
|
|
366
370
|
|
|
371
|
+
oLogger.error("An error occurred while handling Share button press. A static tile will be created instead of a dynamic one. Error:", error.message);
|
|
372
|
+
return Promise.resolve({
|
|
373
|
+
sServiceUrl: ""
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
}
|
|
367
377
|
};
|
|
368
378
|
|
|
369
379
|
var oFragmentController = {
|
|
@@ -547,6 +557,7 @@ sap.ui.define([
|
|
|
547
557
|
// // Expose selected private functions to unit tests
|
|
548
558
|
// var getDownloadUrl = testableHelper.testable(getDownloadUrl, "getDownloadUrl");
|
|
549
559
|
/* eslint-enable */
|
|
560
|
+
testableHelper.testableStatic(onShareListReportActionButtonPressImpl, "ControllerImplementation_onShareListReportActionButtonPressImpl");
|
|
550
561
|
|
|
551
562
|
// Generation of Event Handlers
|
|
552
563
|
return {
|
|
@@ -696,7 +707,7 @@ sap.ui.define([
|
|
|
696
707
|
onShareListReportActionButtonPressImpl(oMenuButton);
|
|
697
708
|
});
|
|
698
709
|
},
|
|
699
|
-
|
|
710
|
+
|
|
700
711
|
handlers: {
|
|
701
712
|
addEntry: addEntry,
|
|
702
713
|
addEntryWithFilters: addEntryWithFilters,
|
|
@@ -1936,6 +1936,7 @@ sap.ui.define([
|
|
|
1936
1936
|
oState.oSectionTitleHandler.adjustSubSectionTitle(oSubSection);
|
|
1937
1937
|
// Add accessible name to the SmartForm in the first subsection if all titles are hidden, because accessible name will not propogate to the form control
|
|
1938
1938
|
oState.oSectionTitleHandler.addAccessibleName(oSubSection);
|
|
1939
|
+
oState.oSectionTitleHandler.manageAccessability(oSubSection);
|
|
1939
1940
|
}
|
|
1940
1941
|
}
|
|
1941
1942
|
|
|
@@ -2131,6 +2132,13 @@ sap.ui.define([
|
|
|
2131
2132
|
// and register for all relevant updates on that context so that we call the same function with
|
|
2132
2133
|
// 2. !bFirstTimeForContext = adapt to the change
|
|
2133
2134
|
var fnExecuteDynamicColumnHide = function (bFirstTimeForContext, oSmartTableInfoObject) {
|
|
2135
|
+
if (!bFirstTimeForContext && !oContext.getObject(oContext.getPath())) {
|
|
2136
|
+
// In case then method is trigged by property change
|
|
2137
|
+
// and there is no data in model for current context path -> we don't trigger column visibility recalculation
|
|
2138
|
+
// As object data are missing, it's meaningless. But in some cases can break application navigation.
|
|
2139
|
+
// Table columns visibility change -> which will trigger save app state -> which will modify URL
|
|
2140
|
+
return;
|
|
2141
|
+
}
|
|
2134
2142
|
var aHiddenColumnInfo = oSmartTableInfoObject.getHiddenColumnInfo();
|
|
2135
2143
|
|
|
2136
2144
|
// if columns are hidden only statically, no need to refresh hiding here
|
|
@@ -2353,7 +2361,7 @@ sap.ui.define([
|
|
|
2353
2361
|
|
|
2354
2362
|
oState.oMessageStripHelper = new MessageStripHelper(oMultipleViewsHandler, oController, oTemplateUtils, oBase.state.messageButtonHelper);
|
|
2355
2363
|
oState.oInlineCreationRowsHelper = new InlineCreationRowsHelper(oObjectPage, oTemplateUtils, fnGetSmartTableCreationMode, oController, oState.oMessageStripHelper);
|
|
2356
|
-
oState.oSectionTitleHandler = new SectionTitleHandler(oController, oObjectPage);
|
|
2364
|
+
oState.oSectionTitleHandler = new SectionTitleHandler(oController, oObjectPage, oTemplateUtils);
|
|
2357
2365
|
|
|
2358
2366
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
2359
2367
|
|
|
@@ -7,25 +7,25 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/gener
|
|
|
7
7
|
var sClassName = "ObjectPage.controller.SectionTitleHandler";
|
|
8
8
|
var oLogger = new FeLogger(sClassName).getLogger();
|
|
9
9
|
|
|
10
|
-
function getMethods(oController, oObjectPage) {
|
|
11
|
-
|
|
10
|
+
function getMethods(oController, oObjectPage, oTemplateUtils) {
|
|
11
|
+
|
|
12
12
|
var oViewPropertiesModel = oController.getOwnerComponent().getModel("_templPrivView");
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
var mSubSectionTitleInfo = Object.create(null);
|
|
15
15
|
|
|
16
16
|
var oAppComponent = oController.getOwnerComponent().getAppComponent();
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
oObjectPage.getSections().forEach(function(oSection){
|
|
19
19
|
var aSubSections = oSection.getSubSections();
|
|
20
20
|
if (aSubSections.length === 1){
|
|
21
21
|
var oSingleSubSection = aSubSections[0];
|
|
22
22
|
var sSubSectionId = oSingleSubSection.getId();
|
|
23
23
|
mSubSectionTitleInfo[sSubSectionId] = {
|
|
24
|
-
isStaticallySingleChild: true
|
|
24
|
+
isStaticallySingleChild: true
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
|
-
|
|
28
|
+
|
|
29
29
|
function fnSetAsTitleOwner(oControl, bIsStandardSection) {
|
|
30
30
|
// If the manifest setting is set, then the title of the section will not be adjusted
|
|
31
31
|
|
|
@@ -48,7 +48,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/gener
|
|
|
48
48
|
break;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
|
|
52
52
|
if (bIsStandardSection && (!oSubSection || oSubSection.getBlocks().concat(oSubSection.getMoreBlocks()).length > 1)){
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
@@ -174,17 +174,48 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/gener
|
|
|
174
174
|
oSmartForm.addAriaLabelledBy(sAnchorBarSectionHeaderId);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
+
function fnManageAccessability(oFirstSubSection) {
|
|
178
|
+
var oSubSectionInfoObject = oTemplateUtils.oInfoObjectHandler.getControlInformation(oFirstSubSection.getId()),
|
|
179
|
+
oSection = oFirstSubSection.getParent();
|
|
180
|
+
oFirstSubSection.getBlocks().concat(oFirstSubSection.getMoreBlocks())
|
|
181
|
+
.reduce(function(accBlock, currentBlock) {
|
|
182
|
+
if (!currentBlock.getContent || !currentBlock.getContent() || !currentBlock.getContent().length) {
|
|
183
|
+
return accBlock;
|
|
184
|
+
}
|
|
185
|
+
currentBlock.getContent().reduce(function(accContent, currentContent) {
|
|
186
|
+
if (controlHelper.isSmartForm(currentContent)) {
|
|
187
|
+
accContent.push(currentContent); // collect all SubSections SmartForms
|
|
188
|
+
}
|
|
189
|
+
return accContent;
|
|
190
|
+
}, accBlock);
|
|
191
|
+
return accBlock;
|
|
192
|
+
}, [])
|
|
193
|
+
.forEach(function(entry) {
|
|
194
|
+
if (!oSubSectionInfoObject) {
|
|
195
|
+
// Case: header is editable. manifest.json, editableHeaderContent=true
|
|
196
|
+
entry._suggestTitleId(`${oSection.getId()}-title`); // set Section title id that will be used for aria
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (entry.getGroups().length === 1 && entry.getGroups()[0].getTitle && !entry.getGroups()[0].getTitle()) {
|
|
200
|
+
// Case: Section -> one SubSection -> one SmartForm -> one Group. Title is not displayed in this case
|
|
201
|
+
entry._suggestTitleId(`${oFirstSubSection.getId()}-headerTitle`); // set title to SubSection title id that will be used for aria
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
|
|
177
207
|
// public instance methods
|
|
178
208
|
return {
|
|
179
209
|
setAsTitleOwner: fnSetAsTitleOwner,
|
|
180
210
|
adjustSubSectionTitle: fnAdjustSubSectionTitle,
|
|
181
|
-
addAccessibleName: fnAddAccessibleName
|
|
211
|
+
addAccessibleName: fnAddAccessibleName,
|
|
212
|
+
manageAccessability: fnManageAccessability
|
|
182
213
|
};
|
|
183
214
|
}
|
|
184
215
|
|
|
185
216
|
return BaseObject.extend("sap.suite.ui.generic.template.ObjectPage.controller.SectionTitleHandler", {
|
|
186
|
-
constructor: function(oController, oObjectPage) {
|
|
187
|
-
extend(this, getMethods(oController, oObjectPage));
|
|
217
|
+
constructor: function(oController, oObjectPage, oTemplateUtils) {
|
|
218
|
+
extend(this, getMethods(oController, oObjectPage, oTemplateUtils));
|
|
188
219
|
}
|
|
189
220
|
});
|
|
190
221
|
});
|
|
@@ -184,7 +184,7 @@ NEW_ENTRY_GROUP=New entries
|
|
|
184
184
|
EDIT_BUTTON_DESCRIPTION=Edit:
|
|
185
185
|
|
|
186
186
|
# XACT, 30: Screen reader text for a footer region
|
|
187
|
-
FOOTER_REGION_LABEL_ARIA=Footer
|
|
187
|
+
FOOTER_REGION_LABEL_ARIA=Footer
|
|
188
188
|
|
|
189
189
|
#XTIT, 50: Description for the Navigate Forward keyboard shortcut
|
|
190
190
|
NAVIGATE_FORWARD_KEYBOARD_SHORTCUT_DESC=Navigate Forward
|
|
@@ -216,34 +216,6 @@ sap.ui.define([ "sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/
|
|
|
216
216
|
oPaginatorButtonsHelper.handleShowPrevObject(oEvent);
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
function fnConstructTitleAdditionalInfo(sTitle, oTemplateContract, oCurrentIdentity) {
|
|
220
|
-
let sObjectTitle, sObjectSubtitle, sHeaderText;
|
|
221
|
-
let oCurrentRegistryEntry = oTemplateContract.componentRegistry[oCurrentIdentity.treeNode.componentId];
|
|
222
|
-
let oTemplatePrivateModel = oCurrentRegistryEntry.utils.getTemplatePrivateModel();
|
|
223
|
-
sObjectTitle = oTemplatePrivateModel.getProperty("/objectPage/headerInfo/objectTitle");
|
|
224
|
-
sObjectSubtitle = oTemplatePrivateModel.getProperty("/objectPage/headerInfo/objectSubtitle");
|
|
225
|
-
let oParentNode = oTemplateContract.mRoutingTree[oCurrentIdentity.treeNode.parentRoute]; //start from the currentNode's parent node
|
|
226
|
-
let aAncestors = [];
|
|
227
|
-
let sSeperator = " - ";
|
|
228
|
-
while (oParentNode.level > 0) { //construct the title only till the main object page
|
|
229
|
-
aAncestors.push(oParentNode.text || oParentNode.headerTitle);
|
|
230
|
-
oParentNode = oTemplateContract.mRoutingTree[oParentNode.parentRoute];
|
|
231
|
-
}
|
|
232
|
-
let sAncestorsTitle = aAncestors.join(" - "); //final string constructed for the breadcrumb
|
|
233
|
-
sObjectSubtitle = sObjectSubtitle ? "(" + sObjectSubtitle + ")" : "";
|
|
234
|
-
if (sObjectTitle && !sObjectSubtitle) {
|
|
235
|
-
sObjectTitle += sSeperator;
|
|
236
|
-
}
|
|
237
|
-
if (sObjectSubtitle) {
|
|
238
|
-
sObjectSubtitle += sSeperator;
|
|
239
|
-
}
|
|
240
|
-
if (sAncestorsTitle && sTitle) {
|
|
241
|
-
sAncestorsTitle += sSeperator;
|
|
242
|
-
}
|
|
243
|
-
sHeaderText = `${sObjectTitle} ${sObjectSubtitle} ${sAncestorsTitle} ${sTitle}`;
|
|
244
|
-
return {headerText : sHeaderText};
|
|
245
|
-
}
|
|
246
|
-
|
|
247
219
|
// Expose selected private functions to unit tests
|
|
248
220
|
/* eslint-disable */
|
|
249
221
|
var fnGetHashChangerInstance = testableHelper.testable(fnGetHashChangerInstance, "getHashChangerInstance");
|
|
@@ -334,8 +306,37 @@ sap.ui.define([ "sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/
|
|
|
334
306
|
return oControllerBase;
|
|
335
307
|
}
|
|
336
308
|
|
|
309
|
+
function fnConstructTitleAdditionalInfo(sTitle, oTemplateContract, oCurrentIdentity) {
|
|
310
|
+
let sObjectTitle, sObjectSubtitle, sHeaderText;
|
|
311
|
+
let oCurrentRegistryEntry = oTemplateContract.componentRegistry[oCurrentIdentity.treeNode.componentId];
|
|
312
|
+
let oTemplatePrivateModel = oCurrentRegistryEntry.utils.getTemplatePrivateModel();
|
|
313
|
+
sObjectTitle = oTemplatePrivateModel.getProperty("/objectPage/headerInfo/objectTitle");
|
|
314
|
+
sObjectSubtitle = oTemplatePrivateModel.getProperty("/objectPage/headerInfo/objectSubtitle");
|
|
315
|
+
let oParentNode = oTemplateContract.mRoutingTree[oCurrentIdentity.treeNode.parentRoute]; //start from the currentNode's parent node
|
|
316
|
+
let aAncestors = [];
|
|
317
|
+
let sSeperator = " - ";
|
|
318
|
+
while (oParentNode.level > 0) { //construct the title only till the main object page
|
|
319
|
+
aAncestors.push(oParentNode.text || oParentNode.headerTitle);
|
|
320
|
+
oParentNode = oTemplateContract.mRoutingTree[oParentNode.parentRoute];
|
|
321
|
+
}
|
|
322
|
+
let sAncestorsTitle = aAncestors.join(" - "); //final string constructed for the breadcrumb
|
|
323
|
+
sObjectSubtitle = sObjectSubtitle ? "(" + sObjectSubtitle + ")" : "";
|
|
324
|
+
if (sObjectTitle && !sObjectSubtitle) {
|
|
325
|
+
sObjectTitle += sSeperator;
|
|
326
|
+
}
|
|
327
|
+
if (sObjectSubtitle) {
|
|
328
|
+
sObjectSubtitle += sSeperator;
|
|
329
|
+
}
|
|
330
|
+
if (sAncestorsTitle && sTitle) {
|
|
331
|
+
sAncestorsTitle += sSeperator;
|
|
332
|
+
}
|
|
333
|
+
sHeaderText = `${sObjectTitle} ${sObjectSubtitle} ${sAncestorsTitle} ${sTitle}`;
|
|
334
|
+
return { headerText: sHeaderText };
|
|
335
|
+
}
|
|
336
|
+
|
|
337
337
|
return {
|
|
338
338
|
getComponentBase: getComponentBase,
|
|
339
|
-
getControllerBase: getControllerBase
|
|
339
|
+
getControllerBase: getControllerBase,
|
|
340
|
+
fnConstructTitleAdditionalInfo: fnConstructTitleAdditionalInfo
|
|
340
341
|
};
|
|
341
342
|
});
|
|
@@ -78,7 +78,7 @@ sap.ui.define([
|
|
|
78
78
|
appExtension: oCustomData[dataPropertyNameCustom],
|
|
79
79
|
adaptationExtensions: oCustomData[dataPropertyNameExtension]
|
|
80
80
|
};
|
|
81
|
-
|
|
81
|
+
aBasicFilters = oSmartFilterBar.getAllFilterItems(true);
|
|
82
82
|
mParams.oCustomFiltersWrapper.setState(oCustomFiltersState);
|
|
83
83
|
oSVMWrapperCallbacks.setManagedControlStates(oCustomData[dataPropertyNameGeneric]);
|
|
84
84
|
/* SFB header state of a variant (standard or custom) gets determined by the Apply Automatically checkbox's value of the corresponding
|
|
@@ -190,6 +190,12 @@ sap.ui.define([
|
|
|
190
190
|
oSelectOptions = oSelectOptions && oSelectOptions.filter(function(oSelectOption){
|
|
191
191
|
return oSelectOption.PropertyName !== dataPropertyNameGeneric;
|
|
192
192
|
});
|
|
193
|
+
// Get standard filters that are part of the standard variant but are currently not visible in the filterbar.
|
|
194
|
+
// This is only done if the variant has been modified (i.e., it's dirty).
|
|
195
|
+
const aStandardItems = oSmartFilterBar.getVariantManagement?.().getModified?.() ? oSmartFilterBar.getAllFilterItems().filter(function(oFilterItem){
|
|
196
|
+
return oFilterItem.getGroupName() === sap.ui.comp.filterbar.FilterBar.INTERNAL_GROUP && !oFilterItem.getVisibleInFilterBar();
|
|
197
|
+
}) : [];
|
|
198
|
+
|
|
193
199
|
return {
|
|
194
200
|
selectOptions: oSelectOptions,
|
|
195
201
|
parameters: oUiState.getSelectionVariant().Parameters,
|
|
@@ -200,7 +206,10 @@ sap.ui.define([
|
|
|
200
206
|
}).map(function(oFilterItem){
|
|
201
207
|
return oFilterItem.getName();
|
|
202
208
|
}),
|
|
203
|
-
|
|
209
|
+
// Combine basic filters and standard variant filters (only if the variant is dirty), removing duplicates, then filter out those not visible in the filter bar,
|
|
210
|
+
// This is necessary because when the variant is dirty and the iAppState is shared or the app is refreshed, the final iAppState is applied on top of the standard variant.
|
|
211
|
+
// Keeping track of removed standard filters when the variant is dirty ensures the filter state remains consistent and avoids unexpected behavior for users.
|
|
212
|
+
removedFilterItems: Array.from(new Set(aBasicFilters.concat(aStandardItems))).filter(function(oFilterItem){
|
|
204
213
|
return !oFilterItem.getVisibleInFilterBar();
|
|
205
214
|
}).map(function(oFilterItem){
|
|
206
215
|
return oFilterItem.getName();
|
|
@@ -950,7 +950,7 @@ sap.ui.define([
|
|
|
950
950
|
* @public
|
|
951
951
|
* @extends sap.ui.core.UIComponent
|
|
952
952
|
* @author SAP SE
|
|
953
|
-
* @version 1.136.
|
|
953
|
+
* @version 1.136.2
|
|
954
954
|
* @name sap.suite.ui.generic.template.lib.AppComponent
|
|
955
955
|
*/
|
|
956
956
|
var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
|
|
@@ -1050,6 +1050,10 @@ sap.ui.define([
|
|
|
1050
1050
|
externalNavigationSettings: {
|
|
1051
1051
|
type: "object",
|
|
1052
1052
|
defaultValue: null
|
|
1053
|
+
},
|
|
1054
|
+
skipOPContextInfoInBrowserTitle: {
|
|
1055
|
+
type: "boolean",
|
|
1056
|
+
defaultValue: false
|
|
1053
1057
|
}
|
|
1054
1058
|
},
|
|
1055
1059
|
events: {
|
|
@@ -1059,7 +1063,7 @@ sap.ui.define([
|
|
|
1059
1063
|
config: {
|
|
1060
1064
|
async: true,
|
|
1061
1065
|
viewType: "XML",
|
|
1062
|
-
|
|
1066
|
+
path: "",
|
|
1063
1067
|
clearTarget: false
|
|
1064
1068
|
},
|
|
1065
1069
|
routes: [],
|
|
@@ -1107,7 +1107,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
1107
1107
|
oMainNavigation.setDescription(oTexts.secondText);
|
|
1108
1108
|
}
|
|
1109
1109
|
sTitle = oTexts.firstText;
|
|
1110
|
-
if (
|
|
1110
|
+
if (!!oField["sap:unit"] && oTexts.secondText) {
|
|
1111
1111
|
sTitle = oTexts.firstText + " " + oTexts.secondText;
|
|
1112
1112
|
}
|
|
1113
1113
|
}
|
|
@@ -114,7 +114,7 @@ sap.ui.define([
|
|
|
114
114
|
if (oRange.operation === "BT") {
|
|
115
115
|
return {
|
|
116
116
|
operator: FilterOperator.BT,
|
|
117
|
-
selectedValues: [
|
|
117
|
+
selectedValues: [oRange.value1, oRange.value2]
|
|
118
118
|
};
|
|
119
119
|
} else {
|
|
120
120
|
return {
|
|
@@ -293,39 +293,40 @@ sap.ui.define([
|
|
|
293
293
|
|
|
294
294
|
var aSelectOptions = [];
|
|
295
295
|
var oEditStateFilter = 0;
|
|
296
|
-
oAIFilters.forEach(function(oFilterItem) {
|
|
297
296
|
|
|
298
|
-
|
|
299
|
-
|
|
297
|
+
oAIFilters.forEach(function (oFilterItem) {
|
|
298
|
+
if (oFilterItem.key === "EditState") {
|
|
299
|
+
oEditStateFilter = oFilterItem.keySpecificSelectedValues[0].selectedValues[0]; // Edit state generally should not have more than one filter value
|
|
300
300
|
} else {
|
|
301
301
|
var oFilter = {
|
|
302
|
-
PropertyName
|
|
303
|
-
Ranges
|
|
302
|
+
PropertyName: oFilterItem.key,
|
|
303
|
+
Ranges: []
|
|
304
304
|
};
|
|
305
305
|
// keySpecificSelectedValues will have one selectedValues object for each operator
|
|
306
306
|
// ex : [{operator: "EQ", selectedValues: ["HT-1010","HT-10001","1097"]}, {operator: "Contains", selectedValues: ["HT-100"]}]
|
|
307
|
-
oFilterItem.keySpecificSelectedValues.forEach(function(oSelectedValues) {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
// For "BT" and "NB" High is required
|
|
318
|
-
// AI reuse responds with array of values for BT and BN (between and not between)
|
|
319
|
-
// But in few cases it can also respond with two separate filters (LT and GT)
|
|
320
|
-
// FE DOES NOT do the auto merging and results in two separate selectOptions (results in OR condition)
|
|
321
|
-
oRange.Low = oValue[0];
|
|
322
|
-
oRange.High = oValue[1];
|
|
323
|
-
} else {
|
|
324
|
-
oRange.Option = oSelectedValues.operator;
|
|
325
|
-
oRange.Low = oValue;
|
|
326
|
-
}
|
|
307
|
+
oFilterItem.keySpecificSelectedValues.forEach(function (oSelectedValues) {
|
|
308
|
+
var oRange = {
|
|
309
|
+
Sign: "I", // currently not considering "E"
|
|
310
|
+
High: ""
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
if ((oSelectedValues.operator === "BT" || oSelectedValues.operator === "NB")) {
|
|
314
|
+
oRange.Low = oSelectedValues.selectedValues[0];
|
|
315
|
+
oRange.High = oSelectedValues.selectedValues[1];
|
|
316
|
+
oRange.Option = oSelectedValues.operator;
|
|
327
317
|
oFilter.Ranges.push(oRange);
|
|
328
|
-
}
|
|
318
|
+
} else {
|
|
319
|
+
oSelectedValues.selectedValues.forEach(function (oValue) {
|
|
320
|
+
if (oSelectedValues.operator === "Contains") { // need to check for other operators if special handling is required
|
|
321
|
+
oRange.Option = "CP";
|
|
322
|
+
oRange.Low = oValue;
|
|
323
|
+
} else {
|
|
324
|
+
oRange.Option = oSelectedValues.operator;
|
|
325
|
+
oRange.Low = oValue;
|
|
326
|
+
}
|
|
327
|
+
oFilter.Ranges.push(oRange);
|
|
328
|
+
});
|
|
329
|
+
}
|
|
329
330
|
});
|
|
330
331
|
// one oFilter will have multiple ranges if multiple filters are selected for the same property
|
|
331
332
|
aSelectOptions.push(oFilter);
|
|
@@ -333,7 +334,7 @@ sap.ui.define([
|
|
|
333
334
|
});
|
|
334
335
|
return {
|
|
335
336
|
aSelectOptions: aSelectOptions,
|
|
336
|
-
oEditStateFilter
|
|
337
|
+
oEditStateFilter: oEditStateFilter
|
|
337
338
|
};
|
|
338
339
|
}
|
|
339
340
|
|
|
@@ -434,6 +434,10 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
434
434
|
return oNavigationControllerProxy.oAppComponent.getProperty('draftDiscardConfirmationSettings').enabled;
|
|
435
435
|
}
|
|
436
436
|
|
|
437
|
+
function isOPContextSkippedInBrowserTitle(){
|
|
438
|
+
return oNavigationControllerProxy.oAppComponent.getProperty('skipOPContextInfoInBrowserTitle');
|
|
439
|
+
}
|
|
440
|
+
|
|
437
441
|
// returns a promise from FLP shell which can be resolved to get information such as semantic object, action of the application
|
|
438
442
|
function getParsedShellHashFromFLP(){
|
|
439
443
|
return UShellContainer && UShellContainer.getServiceAsync("URLParsing");
|
|
@@ -518,7 +522,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
518
522
|
oTemplateContract.oShellServicePromise.then(function (oShellService) {
|
|
519
523
|
var oCurrentRegistryEntry = oTemplateContract.componentRegistry[oCurrentIdentity.treeNode.componentId];
|
|
520
524
|
var oAdditionalInformation = oCurrentRegistryEntry.oControllerUtils && oCurrentRegistryEntry.oControllerUtils.oServices.oTemplateCapabilities.fnConstructTitleAdditionalInfo;
|
|
521
|
-
if (oAdditionalInformation) {
|
|
525
|
+
if (oAdditionalInformation && !isOPContextSkippedInBrowserTitle()) {
|
|
522
526
|
oShellService.setTitle(sTitle, oCurrentRegistryEntry.oControllerUtils.oServices.oTemplateCapabilities.fnConstructTitleAdditionalInfo(sTitle, oTemplateContract, oCurrentIdentity));
|
|
523
527
|
} else {
|
|
524
528
|
oShellService.setTitle(sTitle);
|
|
@@ -3206,7 +3210,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
3206
3210
|
* @param {sap.suite.ui.generic.template.lib.AppComponent} oAppComponent The AppComponent instance
|
|
3207
3211
|
* @public
|
|
3208
3212
|
* @extends sap.ui.base.Object
|
|
3209
|
-
* @version 1.136.
|
|
3213
|
+
* @version 1.136.2
|
|
3210
3214
|
* @since 1.30.0
|
|
3211
3215
|
* @alias sap.suite.ui.generic.template.lib.NavigationController
|
|
3212
3216
|
*/
|
|
@@ -77,7 +77,8 @@ sap.ui.define(["sap/ui/core/Element",
|
|
|
77
77
|
// creates a view target as specified and returns the created target
|
|
78
78
|
function createViewTarget(oNavigationControllerProxy, sHostId, sViewName, sTargetName, sHostAggregation, oBehaviour) {
|
|
79
79
|
return createTarget(oNavigationControllerProxy, sTargetName, sHostId, sHostAggregation, oBehaviour, {
|
|
80
|
-
|
|
80
|
+
type: "View",
|
|
81
|
+
name: sViewName
|
|
81
82
|
});
|
|
82
83
|
}
|
|
83
84
|
|