@sapui5/sap.suite.ui.generic.template 1.130.3 → 1.130.4
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 +4 -3
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n.properties +1 -4
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- 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/fragments/EasyFilter.fragment.xml +0 -6
- package/src/sap/suite/ui/generic/template/genericUtilities/filterHelper.js +70 -2
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/CRUDHelper.js +5 -3
- package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +4 -0
- package/src/sap/suite/ui/generic/template/lib/ContextBookkeeping.js +39 -23
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +37 -16
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +0 -14
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
- package/src/sap/suite/ui/generic/template/library.js +1 -1
package/package.json
CHANGED
|
@@ -702,14 +702,12 @@ sap.ui.define([
|
|
|
702
702
|
},
|
|
703
703
|
onAfterSFBVariantLoad: function (oEvent) {
|
|
704
704
|
oState.oIappStateHandler.onAfterSFBVariantLoad(oEvent);
|
|
705
|
+
oState.oEasyFilterBarHandler && oState.oEasyFilterBarHandler.handleVariantLoad(oEvent);
|
|
705
706
|
},
|
|
706
707
|
onSmartListDataReceived: function (oEvent) {
|
|
707
708
|
var oSmartList = oEvent.getSource();
|
|
708
709
|
fnOnDataReceived(oSmartList);
|
|
709
710
|
},
|
|
710
|
-
onEasyFilterExecuteSearch: function(oEvent) {
|
|
711
|
-
oState.oEasyFilterBarHandler.onExecuteSearch(oEvent);
|
|
712
|
-
},
|
|
713
711
|
onEasyFilterClearFilters: function(oEvent) {
|
|
714
712
|
oState.oEasyFilterBarHandler.onClearFilters(oEvent);
|
|
715
713
|
},
|
|
@@ -733,6 +731,9 @@ sap.ui.define([
|
|
|
733
731
|
var oTempModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
734
732
|
if (oTempModel.getProperty("/listReport/filterMode") === "easyFilter") {
|
|
735
733
|
oSmartFilterbar.setVisible(false);
|
|
734
|
+
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
735
|
+
oTemplatePrivateModel.setProperty("/listReport/firstSelection", true);
|
|
736
|
+
oTemplatePrivateModel.setProperty("/generic/bDataAreShownInTable", false);
|
|
736
737
|
} else {
|
|
737
738
|
oSmartFilterbar.setVisible(true);
|
|
738
739
|
}
|
|
@@ -160,14 +160,11 @@ ST_CREATE_WITH_FILTERS=Create with filters
|
|
|
160
160
|
#------------Easy filter related text-----------------------
|
|
161
161
|
# All the easy filter and filter mode related texts are defined here
|
|
162
162
|
|
|
163
|
-
# XTIT,30: Title of the Filter modes in List Report
|
|
164
|
-
ST_EASY_FILTER_TITLE=Filter Mode :
|
|
165
|
-
|
|
166
163
|
# XBUT: Manual filter segmented button text
|
|
167
164
|
ST_MANUAL_FILTER=Classic
|
|
168
165
|
|
|
169
166
|
# XBUT: Easy filter segmented button text
|
|
170
|
-
ST_EASY_FILTER=
|
|
167
|
+
ST_EASY_FILTER=Easy filter
|
|
171
168
|
|
|
172
169
|
#------------End of: Easy filter related text-----------------------
|
|
173
170
|
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:feControls="sap.fe.controls.easyFilter">
|
|
2
2
|
<!-- to check how to use a common model property instead of listReport/filterMode which is specific to LR-->
|
|
3
3
|
<VBox visible="{= ${_templPriv>/listReport/filterMode} === 'easyFilter'}">
|
|
4
|
-
<MessageStrip
|
|
5
|
-
text="{i18n>ST_EASY_FILTER_PROMPT_INFO}"
|
|
6
|
-
showIcon="true"
|
|
7
|
-
showCloseButton="true"
|
|
8
|
-
class="sapUiSmallMarginBottom"/>
|
|
9
4
|
<feControls:EasyFilterBarContainer id="template::easyFilterContainer"
|
|
10
5
|
showValueHelp="._templateEventHandlers.onEasyFilterShowValueHelp"
|
|
11
6
|
queryChanged="._templateEventHandlers.onEasyFilterQueryChanged"
|
|
@@ -13,7 +8,6 @@
|
|
|
13
8
|
beforeQueryProcessing="._templateEventHandlers.onEasyFilterBeforeQueryProcessing"
|
|
14
9
|
afterQueryProcessing="._templateEventHandlers.onEasyFilterAfterQueryProcessing"
|
|
15
10
|
clearFilters="._templateEventHandlers.onEasyFilterClearFilters"
|
|
16
|
-
executeSearch="._templateEventHandlers.onEasyFilterExecuteSearch"
|
|
17
11
|
/>
|
|
18
12
|
</VBox>
|
|
19
13
|
</core:FragmentDefinition>
|
|
@@ -5,8 +5,9 @@ sap.ui.define([
|
|
|
5
5
|
"sap/m/DynamicDateUtil",
|
|
6
6
|
"sap/suite/ui/generic/template/genericUtilities/metadataAnalyser",
|
|
7
7
|
"sap/base/i18n/date/CalendarType",
|
|
8
|
-
"sap/suite/ui/generic/template/genericUtilities/testableHelper"
|
|
9
|
-
|
|
8
|
+
"sap/suite/ui/generic/template/genericUtilities/testableHelper",
|
|
9
|
+
"sap/ui/model/Filter"
|
|
10
|
+
], function (FilterOperator, DateFormat, encodeURL, DynamicDateUtil, metadataAnalyser, CalendarType, testableHelper,Filter) {
|
|
10
11
|
"use strict";
|
|
11
12
|
|
|
12
13
|
function getInfoForFilters(aFilters, getFilterInfoForPropertyFilters, bAnd){
|
|
@@ -260,6 +261,71 @@ sap.ui.define([
|
|
|
260
261
|
};
|
|
261
262
|
}
|
|
262
263
|
|
|
264
|
+
/**
|
|
265
|
+
* function wraps the table level filters into single filter object
|
|
266
|
+
* This is done to follow the same format as SFB and chart filters
|
|
267
|
+
* returns the updated aFilters
|
|
268
|
+
* @param {Array} aFilters - It contains all the filters applied (in SFB , chart or table level filters)
|
|
269
|
+
* @returns {Array} - returns array containing all the filters applied including the table filters wrapped as single filter object similar to SFB and chart filters
|
|
270
|
+
*/
|
|
271
|
+
|
|
272
|
+
function fnNormaliseControlFilters(aFilters) {
|
|
273
|
+
var aTableFilters = [];
|
|
274
|
+
|
|
275
|
+
var aChartAndSFBFilters = [];
|
|
276
|
+
|
|
277
|
+
aFilters.forEach((oFilter) => {
|
|
278
|
+
if (oFilter.aFilters) {
|
|
279
|
+
aChartAndSFBFilters.push(oFilter);
|
|
280
|
+
} else {
|
|
281
|
+
aTableFilters.push(oFilter);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
if (aTableFilters && aTableFilters.length > 1) {
|
|
286
|
+
//Grouping the table level filters based on sPath
|
|
287
|
+
var aGroupedTableFilters = aTableFilters.reduce(
|
|
288
|
+
(aGroupedFilters, oCurrentfilter) => {
|
|
289
|
+
var path = oCurrentfilter.sPath;
|
|
290
|
+
|
|
291
|
+
if (!aGroupedFilters[path]) {
|
|
292
|
+
aGroupedFilters[path] = [];
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
aGroupedFilters[path].push(oCurrentfilter);
|
|
296
|
+
|
|
297
|
+
return aGroupedFilters;
|
|
298
|
+
},
|
|
299
|
+
{}
|
|
300
|
+
);
|
|
301
|
+
|
|
302
|
+
// Convert grouped table filters into nested filter groups
|
|
303
|
+
|
|
304
|
+
var aTableFilterGroups = Object.keys(aGroupedTableFilters).map(
|
|
305
|
+
(sPath) => {
|
|
306
|
+
return new Filter({
|
|
307
|
+
filters: aGroupedTableFilters[sPath],
|
|
308
|
+
|
|
309
|
+
and: false // OR logic within each group
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
);
|
|
313
|
+
|
|
314
|
+
// Forming a single top-level table filter
|
|
315
|
+
|
|
316
|
+
aTableFilters = new Filter({
|
|
317
|
+
filters: aTableFilterGroups,
|
|
318
|
+
|
|
319
|
+
and: true // AND logic for combining everything
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
// combining filters from chart , SFB , and table
|
|
323
|
+
aChartAndSFBFilters.push(aTableFilters);
|
|
324
|
+
return aChartAndSFBFilters;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
return aFilters;
|
|
328
|
+
}
|
|
263
329
|
/**
|
|
264
330
|
* Function returns filter params for service url
|
|
265
331
|
* @param {object} sEntityTypeName
|
|
@@ -274,6 +340,7 @@ sap.ui.define([
|
|
|
274
340
|
oFilterData: oFilterData,
|
|
275
341
|
bIsStatic: false
|
|
276
342
|
};
|
|
343
|
+
aApplicationFilters = fnNormaliseControlFilters(aApplicationFilters);
|
|
277
344
|
// Here oParams.bIsStrict will change if SFB have custom semantic-date filter.
|
|
278
345
|
var sFilterParams = "$filter=" + getFilterString(aApplicationFilters, getFilterInfoForPropertyFilters.bind(null, oParams));
|
|
279
346
|
sFilterParams = oParams.bIsStatic ? "" : sFilterParams;
|
|
@@ -281,6 +348,7 @@ sap.ui.define([
|
|
|
281
348
|
}
|
|
282
349
|
testableHelper.testableStatic(getFilterInfoForPropertyFilters, "filterHelper_getFilterInfoForPropertyFilters");
|
|
283
350
|
testableHelper.testableStatic(getFilterString, "filterHelper_getFilterString");
|
|
351
|
+
testableHelper.testableStatic(fnNormaliseControlFilters, "filterHelper_fnNormaliseControlFilters");
|
|
284
352
|
return {
|
|
285
353
|
getFilterParams: getFilterParams
|
|
286
354
|
};
|
|
@@ -938,7 +938,7 @@ sap.ui.define([
|
|
|
938
938
|
* @public
|
|
939
939
|
* @extends sap.ui.core.UIComponent
|
|
940
940
|
* @author SAP SE
|
|
941
|
-
* @version 1.130.
|
|
941
|
+
* @version 1.130.4
|
|
942
942
|
* @name sap.suite.ui.generic.template.lib.AppComponent
|
|
943
943
|
*/
|
|
944
944
|
var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
|
|
@@ -216,7 +216,7 @@ sap.ui.define(["sap/ui/model/Context", "sap/suite/ui/generic/template/lib/Messag
|
|
|
216
216
|
]);
|
|
217
217
|
var sEdit = oResourceObject.getText("Edit");
|
|
218
218
|
var sCancel = oResourceObject.getText("CANCEL");
|
|
219
|
-
|
|
219
|
+
MessageBox.warning(sWarningText, {
|
|
220
220
|
title: oResourceObject.getText("ST_UNSAVED_CHANGES_TITLE"),
|
|
221
221
|
actions: [sEdit, sCancel],
|
|
222
222
|
emphasizedAction: sEdit,
|
|
@@ -224,7 +224,7 @@ sap.ui.define(["sap/ui/model/Context", "sap/suite/ui/generic/template/lib/Messag
|
|
|
224
224
|
if (sAction === sEdit) {
|
|
225
225
|
resolve();
|
|
226
226
|
} else if (sAction === sCancel) {
|
|
227
|
-
if (bOpenInEditMode) {
|
|
227
|
+
if (bOpenInEditMode && oViewProxy && oViewProxy.navigateUp) {
|
|
228
228
|
oViewProxy.navigateUp();
|
|
229
229
|
}
|
|
230
230
|
}
|
|
@@ -368,7 +368,9 @@ sap.ui.define(["sap/ui/model/Context", "sap/suite/ui/generic/template/lib/Messag
|
|
|
368
368
|
});
|
|
369
369
|
oApplication.getBusyHelper().setBusy(oUnsavedChangesEditPromise, true);
|
|
370
370
|
};
|
|
371
|
-
var editRejection =
|
|
371
|
+
var editRejection = reject({
|
|
372
|
+
cancelled: true
|
|
373
|
+
});
|
|
372
374
|
var unSavedChangesDialogPromise = fnUnsavedChangesDialog(undefined, oResponse.DraftAdministrativeData,oCommonUtils, oViewProxy, bOpenInEditMode);
|
|
373
375
|
unSavedChangesDialogPromise.then(editConfirmation,editRejection);
|
|
374
376
|
}
|
|
@@ -1663,6 +1663,10 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
1663
1663
|
if (oError.lockedByUser) {
|
|
1664
1664
|
var sLockText = oCommonUtils.getText("ST_GENERIC_DRAFT_LOCKED_BY_USER", [" ", oError.lockedByUser]);
|
|
1665
1665
|
MessageBox.error(sLockText);
|
|
1666
|
+
} else if (oError.cancelled) {
|
|
1667
|
+
if (oViewProxy && oViewProxy.navigateUp){
|
|
1668
|
+
oViewProxy.navigateUp();
|
|
1669
|
+
}
|
|
1666
1670
|
} else {
|
|
1667
1671
|
MessageUtils.handleError(MessageUtils.operations.editEntity, oController, oServices, oError);
|
|
1668
1672
|
if (oViewProxy && oViewProxy.navigateUp){
|
|
@@ -126,13 +126,17 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/each", "sap/base/util/extend
|
|
|
126
126
|
var oTreeNode = oTemplateContract.mEntityTree[sEntitySet];
|
|
127
127
|
if (oTreeNode && !oTreeNode.noOData){
|
|
128
128
|
if (aKeysFromIdentity){
|
|
129
|
+
// Get the root context's info for the current draft context
|
|
130
|
+
oRootContextInfo = getRootContextInfo(oTreeNode, aKeysFromIdentity);
|
|
131
|
+
// If the current context is a draft, register context info for the active sibling as well
|
|
129
132
|
if (oContextInfo.bIsDraft){
|
|
130
133
|
var aActiveKeys = [];
|
|
131
134
|
var oActiveFoundPromise = oTemplateContract.oApplicationProxy.fillSiblingKeyPromise(oTreeNode, aKeysFromIdentity, aActiveKeys);
|
|
132
135
|
oActiveFoundPromise.then(function(oReplaceNode){
|
|
133
136
|
var sReplacePath = oReplaceNode.getPath(3, aActiveKeys);
|
|
134
|
-
|
|
135
|
-
|
|
137
|
+
var oActiveContextData = mPath2ContextData[sReplacePath];
|
|
138
|
+
if (!oActiveContextData){
|
|
139
|
+
oActiveContextData = {
|
|
136
140
|
oContextInfo: {
|
|
137
141
|
bIsDraft: false,
|
|
138
142
|
bIsDraftSupported: true,
|
|
@@ -142,30 +146,18 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/each", "sap/base/util/extend
|
|
|
142
146
|
},
|
|
143
147
|
aKeysFromIdentity: aActiveKeys
|
|
144
148
|
};
|
|
149
|
+
// Finally add the active context data to the cache
|
|
150
|
+
mPath2ContextData[sReplacePath] = oActiveContextData;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Fill rootContextInfo for the active context's data
|
|
154
|
+
if (!oActiveContextData.oRootContextInfo) {
|
|
155
|
+
oActiveContextData.oRootContextInfo = getRootContextInfo(oReplaceNode, aActiveKeys);
|
|
156
|
+
// Add the active context's data to root context info's children
|
|
157
|
+
oActiveContextData.oRootContextInfo.childContexts[sReplacePath] = oActiveContextData;
|
|
145
158
|
}
|
|
146
159
|
});
|
|
147
160
|
}
|
|
148
|
-
if (oTreeNode && !oTreeNode.noOData){
|
|
149
|
-
var oMainObjectNode = oTemplateContract.oApplicationProxy.getAncestralNode(oTreeNode, 1);
|
|
150
|
-
var oActiveDraftInfoForDraftRoot = mActiveDraftRoots[oMainObjectNode.entitySet];
|
|
151
|
-
if (!oActiveDraftInfoForDraftRoot){
|
|
152
|
-
oActiveDraftInfoForDraftRoot = {
|
|
153
|
-
treeNode: oMainObjectNode,
|
|
154
|
-
draftRoots: Object.create(null)
|
|
155
|
-
};
|
|
156
|
-
mActiveDraftRoots[oMainObjectNode.entitySet] = oActiveDraftInfoForDraftRoot;
|
|
157
|
-
}
|
|
158
|
-
var sRootKey = aKeysFromIdentity[1];
|
|
159
|
-
oRootContextInfo = oActiveDraftInfoForDraftRoot[sRootKey];
|
|
160
|
-
if (!oRootContextInfo){
|
|
161
|
-
oRootContextInfo = {
|
|
162
|
-
treeNode: oMainObjectNode,
|
|
163
|
-
key: sRootKey,
|
|
164
|
-
childContexts: Object.create(null)
|
|
165
|
-
};
|
|
166
|
-
oActiveDraftInfoForDraftRoot[sRootKey] = oRootContextInfo;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
161
|
}
|
|
170
162
|
var oModel = oContext.getModel();
|
|
171
163
|
var oMetaModel = oModel.getMetaModel();
|
|
@@ -201,6 +193,30 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/each", "sap/base/util/extend
|
|
|
201
193
|
return oContextInfo;
|
|
202
194
|
}
|
|
203
195
|
|
|
196
|
+
// Gets the root context's info for the given tree node
|
|
197
|
+
function getRootContextInfo(oTreeNode, aKeysFromIdentity) {
|
|
198
|
+
var oMainObjectNode = oTemplateContract.oApplicationProxy.getAncestralNode(oTreeNode, 1);
|
|
199
|
+
var oActiveDraftInfoForDraftRoot = mActiveDraftRoots[oMainObjectNode.entitySet];
|
|
200
|
+
if (!oActiveDraftInfoForDraftRoot){
|
|
201
|
+
oActiveDraftInfoForDraftRoot = {
|
|
202
|
+
treeNode: oMainObjectNode,
|
|
203
|
+
draftRoots: Object.create(null)
|
|
204
|
+
};
|
|
205
|
+
mActiveDraftRoots[oMainObjectNode.entitySet] = oActiveDraftInfoForDraftRoot;
|
|
206
|
+
}
|
|
207
|
+
var sRootKey = aKeysFromIdentity[1];
|
|
208
|
+
var oRootContextInfo = oActiveDraftInfoForDraftRoot[sRootKey];
|
|
209
|
+
if (!oRootContextInfo){
|
|
210
|
+
oRootContextInfo = {
|
|
211
|
+
treeNode: oMainObjectNode,
|
|
212
|
+
key: sRootKey,
|
|
213
|
+
childContexts: Object.create(null)
|
|
214
|
+
};
|
|
215
|
+
oActiveDraftInfoForDraftRoot[sRootKey] = oRootContextInfo;
|
|
216
|
+
}
|
|
217
|
+
return oRootContextInfo;
|
|
218
|
+
}
|
|
219
|
+
|
|
204
220
|
function getPathOfLastShownDraftRoot() {
|
|
205
221
|
for (var i = aPathOfLastShownDraftRoots.length - 1; i >= 0; i--) {
|
|
206
222
|
var oContext = mPath2ContextData[aPathOfLastShownDraftRoots[i]].oContext;
|
|
@@ -29,9 +29,11 @@ sap.ui.define([
|
|
|
29
29
|
* @returns A promise which returns the prepared metadata
|
|
30
30
|
*/
|
|
31
31
|
function fnGetEasyFilterSearchMetadata() {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
// In a few cases the SFB is not properly initialized and the metadata available is not complete
|
|
33
|
+
// In such cases the metadata is prepared after the SFB is initialized
|
|
34
|
+
// if (oEasyFilterMetadata) {
|
|
35
|
+
// return Promise.resolve(oEasyFilterMetadata);
|
|
36
|
+
// } else {
|
|
35
37
|
return new Promise(function(fnResolve) {
|
|
36
38
|
oState.oIappStateHandler.onFEStartupInitialized().then(function() {
|
|
37
39
|
fnPrepareSearchMetadata().then(function(oMetadata){
|
|
@@ -39,7 +41,7 @@ sap.ui.define([
|
|
|
39
41
|
});
|
|
40
42
|
});
|
|
41
43
|
});
|
|
42
|
-
}
|
|
44
|
+
//}
|
|
43
45
|
}
|
|
44
46
|
/**
|
|
45
47
|
* This method prepares the metadata for each filterable field from the smart filter bar
|
|
@@ -60,7 +62,7 @@ sap.ui.define([
|
|
|
60
62
|
var mFilterProperties = {}; // todo : Add the properties from navigation entites
|
|
61
63
|
var oEntityType = oTemplateUtils.oCommonUtils.getMetaModelEntityType(sEntitySet);
|
|
62
64
|
oEntityType.property.map(function (oProperty) {
|
|
63
|
-
var sTokenType = "ValueHelp"; // Other values are "Calendar" | "Time" | "MenuWithCheckBox"
|
|
65
|
+
var sTokenType = "ValueHelp"; // Other values are "Calendar" | "Time" | "MenuWithCheckBox" | "MenuWithSingleSelect"
|
|
64
66
|
if (filterHelper.isPropertyFilterable(oProperty)) {
|
|
65
67
|
|
|
66
68
|
var bIsCodeListRequired;
|
|
@@ -84,7 +86,7 @@ sap.ui.define([
|
|
|
84
86
|
name: oProperty.name,
|
|
85
87
|
//label: oProperty.label, Name is added from the filter item control
|
|
86
88
|
dataType: oProperty.type,
|
|
87
|
-
defaultValue :
|
|
89
|
+
defaultValue : [], // Fill values from FLP user defaults , SV or other sources
|
|
88
90
|
filterable: true,
|
|
89
91
|
sortable: false,
|
|
90
92
|
codeList : bIsCodeListRequired,
|
|
@@ -109,7 +111,8 @@ sap.ui.define([
|
|
|
109
111
|
var oDefaultFilterValue = oDefaultValuesForEasyFilter[oFilterItem.getName()];
|
|
110
112
|
if (oDefaultFilterValue) {
|
|
111
113
|
var aValues = [];
|
|
112
|
-
|
|
114
|
+
// oDefaultFilterValue can have ranges or items or low or single value directly
|
|
115
|
+
if (oDefaultFilterValue.ranges && oDefaultFilterValue.ranges.length > 0) {
|
|
113
116
|
aValues = oDefaultFilterValue.ranges.map(function(oRange) {
|
|
114
117
|
if (oRange.exclude === false) {
|
|
115
118
|
if (oRange.operation === "BT") {
|
|
@@ -130,7 +133,14 @@ sap.ui.define([
|
|
|
130
133
|
};
|
|
131
134
|
}
|
|
132
135
|
});
|
|
133
|
-
} else
|
|
136
|
+
} else if (oDefaultFilterValue.items && oDefaultFilterValue.items.length > 0) { // unrestricted/multi-value
|
|
137
|
+
oDefaultFilterValue.items.forEach(function(oItem) {
|
|
138
|
+
aValues.push({
|
|
139
|
+
operator: FilterOperator.EQ,
|
|
140
|
+
selectedValues: [oItem.key]
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
} else if (oDefaultFilterValue) { // In cases where the default value is coming from the FLP user defaults and does not have ranges and the value is a single value
|
|
134
144
|
aValues = [
|
|
135
145
|
{
|
|
136
146
|
operator: FilterOperator.EQ,
|
|
@@ -182,7 +192,7 @@ sap.ui.define([
|
|
|
182
192
|
filterable: true,
|
|
183
193
|
required: false,
|
|
184
194
|
sortable: false,
|
|
185
|
-
type: "
|
|
195
|
+
type: "MenuWithSingleSelect",
|
|
186
196
|
codeList : oEditingStatusCodeList
|
|
187
197
|
};
|
|
188
198
|
oEasyFilterMetadata.fields.push(oEditStateFilterMetadata);
|
|
@@ -354,11 +364,6 @@ sap.ui.define([
|
|
|
354
364
|
});
|
|
355
365
|
}
|
|
356
366
|
|
|
357
|
-
function fnExecuteSearch(oEvent) {
|
|
358
|
-
var oSmartFilterbar = oState.oSmartFilterbar;
|
|
359
|
-
oSmartFilterbar.search();
|
|
360
|
-
}
|
|
361
|
-
|
|
362
367
|
function fnClearFilters(oEvent) {
|
|
363
368
|
var oSmartFilterbar = oState.oSmartFilterbar;
|
|
364
369
|
oSmartFilterbar.search();
|
|
@@ -470,19 +475,35 @@ sap.ui.define([
|
|
|
470
475
|
}
|
|
471
476
|
}
|
|
472
477
|
|
|
478
|
+
/**
|
|
479
|
+
*
|
|
480
|
+
* This method is called when the variant is loaded in SFB
|
|
481
|
+
* Always set the filterMode to classic when the variant is loaded as the variant filters are not supported in the EasyFilter
|
|
482
|
+
* */
|
|
483
|
+
function fnHandleVariantLoad(oEvent) {
|
|
484
|
+
var oTempModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
485
|
+
// 'context' is undefined or null when the user switches variant , in this case switch to classic mode
|
|
486
|
+
// other values are "CANCEL" , "RESET" , "SET_VM_ID" , "DATA_SUITE" , "INIT" , "KEY_USER" etc : Do not switch filter mode in these cases
|
|
487
|
+
if (!oEvent.getParameter("context") && oTempModel.getProperty("/listReport/filterMode") !== "classic") {
|
|
488
|
+
var oSmartFilterbar = oState.oSmartFilterbar;
|
|
489
|
+
oTempModel.setProperty("/listReport/filterMode", "classic");
|
|
490
|
+
oSmartFilterbar.setVisible(true);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
|
|
473
494
|
return {
|
|
474
495
|
getEasyFilterBar : fnGetEasyFilterBar,
|
|
475
496
|
initialiseEasyFilterBar : fnInitialiseEasyFilterBar,
|
|
476
497
|
getSFBVariantData : fnGetSFBVariantData,
|
|
477
498
|
getEasyFilterSearchMetadata : fnGetEasyFilterSearchMetadata,
|
|
478
|
-
onExecuteSearch: fnExecuteSearch,
|
|
479
499
|
onClearFilters: fnClearFilters,
|
|
480
500
|
onAfterQueryProcessing: fnAfterQueryProcessing,
|
|
481
501
|
onBeforeQueryProcessing: fnBeforeQueryProcessing,
|
|
482
502
|
onQueryChanged : fnQueryChanged,
|
|
483
503
|
onTokensChanged: fnTokensChanged,
|
|
484
504
|
onShowValueHelp: fnShowValueHelp,
|
|
485
|
-
onFilterChange : fnOnFilterChange
|
|
505
|
+
onFilterChange : fnOnFilterChange,
|
|
506
|
+
handleVariantLoad : fnHandleVariantLoad
|
|
486
507
|
};
|
|
487
508
|
}
|
|
488
509
|
|
|
@@ -304,20 +304,6 @@ ST_CARD_CREATION_FAILURE_REASON_SEMANTIC_DATE_FILTERS=Card creation isn\u2019t p
|
|
|
304
304
|
#XMSG: Info text
|
|
305
305
|
ST_CARD_NAVIGATION_FAILURE_INFO=Direct navigation to the object details isn’t possible from this insights card.
|
|
306
306
|
|
|
307
|
-
|
|
308
|
-
#------------Easy filter related text-----------------------
|
|
309
|
-
|
|
310
|
-
# YMSG, 200: Message shown when the user switches to Easy filter mode
|
|
311
|
-
ST_EASY_FILTER_PROMPT_INFO=The Prompt-based filtering will create completely new filter criteria. Generated content may not always be accurate. Consider verifying it.
|
|
312
|
-
|
|
313
|
-
# YMSG, 100: Placeholder text for the Easy Filter input field
|
|
314
|
-
ST_EASY_FILTER_INPUT_PLACEHOLDER=Enter your query in natural language to filter the list
|
|
315
|
-
|
|
316
|
-
# XBUT, 20: Text for the Go button in Easy Filter mode
|
|
317
|
-
ST_EASY_FILTER_GO_BUTTON_TEXT=Go
|
|
318
|
-
|
|
319
|
-
#------------End of: Easy filter related text-----------------------
|
|
320
|
-
|
|
321
307
|
ST_AI_EE_BUTTON_LABEL=Generate Explanation
|
|
322
308
|
|
|
323
309
|
#---Final block: texts to be redefined by the application ----------------------------------------------
|
|
@@ -3181,7 +3181,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
3181
3181
|
* @param {sap.suite.ui.generic.template.lib.AppComponent} oAppComponent The AppComponent instance
|
|
3182
3182
|
* @public
|
|
3183
3183
|
* @extends sap.ui.base.Object
|
|
3184
|
-
* @version 1.130.
|
|
3184
|
+
* @version 1.130.4
|
|
3185
3185
|
* @since 1.30.0
|
|
3186
3186
|
* @alias sap.suite.ui.generic.template.lib.NavigationController
|
|
3187
3187
|
*/
|