@sapui5/sap.suite.ui.generic.template 1.108.54 → 1.108.55

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.suite.ui.generic.template",
3
- "version": "1.108.54",
3
+ "version": "1.108.55",
4
4
  "description": "SAPUI5 Library sap.suite.ui.generic.template",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -7,7 +7,7 @@
7
7
 
8
8
  (c) Copyright 2009-2015 SAP SE. All rights reserved
9
9
  </copyright>
10
- <version>1.108.54</version>
10
+ <version>1.108.55</version>
11
11
 
12
12
  <documentation>Library with generic Suite UI templates.</documentation>
13
13
 
@@ -63,7 +63,7 @@ SHOW_ACTIVE_ITEMS=\u9690\u85CF\u8349\u7A3F\u503C
63
63
 
64
64
  SHOW_ALL_ITEMS=\u663E\u793A\u8349\u7A3F\u503C
65
65
 
66
- MESSAGE_SINGLE_VALUE_L_FORM=\u8FC7\u6EE4\u5668 "{0}" \u4E0E\u6807\u7B7E "{1}" \u65E0\u5173\u3002\u8BBE\u7F6E\u6B64\u8FC7\u6EE4\u5668\u5BF9\u7ED3\u679C\u6CA1\u6709\u5F71\u54CD\u3002
66
+ MESSAGE_SINGLE_VALUE_L_FORM=\u8FC7\u6EE4\u5668\u201C{0}\u201D\u4E0E\u6807\u7B7E\u201C{1}\u201D\u65E0\u5173\u3002\u8BBE\u7F6E\u6B64\u8FC7\u6EE4\u5668\u5BF9\u7ED3\u679C\u6CA1\u6709\u5F71\u54CD\u3002
67
67
 
68
68
  MESSAGE_SINGLE_VALUE_S_FORM=\u65E0\u6CD5\u5728 "{1}" \u6807\u7B7E\u4E0A\u6309 "{0}" \u8FDB\u884C\u8FC7\u6EE4\u3002
69
69
 
@@ -79,7 +79,7 @@ EDIT_REMAINING={1} \u4E2A\u5BF9\u8C61\u4E2D\u6709 {0} \u4E2A\u65E0\u6CD5\u8FDB\u
79
79
 
80
80
  EDIT_REMAINING_PLURAL={1} \u4E2A\u5BF9\u8C61\u4E2D\u6709 {0} \u4E2A\u65E0\u6CD5\u8FDB\u884C\u7F16\u8F91\u3002\u5982\u679C\u6709\u4EBA\u6B63\u5728\u5904\u7406\u8BE5\u5BF9\u8C61\u6216\u4E0D\u5141\u8BB8\u7F16\u8F91\uFF0C\u5C31\u53EF\u80FD\u4F1A\u53D1\u751F\u8FD9\u79CD\u60C5\u51B5\u3002\n\n \u662F\u5426\u8981\u7F16\u8F91\u5176\u4F59 {2} \u4E2A\u5BF9\u8C61\uFF1F
81
81
 
82
- MESSAGE_MULTIPLE_VALUES_L_FORM=\u67D0\u4E9B\u8FC7\u6EE4\u5668\u4E0E\u6807\u7B7E "{1}" \u65E0\u5173 ({0})\u3002\u8BBE\u7F6E\u8FD9\u4E9B\u8FC7\u6EE4\u5668\u5BF9\u7ED3\u679C\u6CA1\u6709\u5F71\u54CD\u3002
82
+ MESSAGE_MULTIPLE_VALUES_L_FORM=\u67D0\u4E9B\u8FC7\u6EE4\u5668\u4E0E\u6807\u7B7E\u201C{1}\u201D\u65E0\u5173 ({0})\u3002\u8BBE\u7F6E\u8FD9\u4E9B\u8FC7\u6EE4\u5668\u5BF9\u7ED3\u679C\u6CA1\u6709\u5F71\u54CD\u3002
83
83
 
84
84
  MESSAGE_MULTIPLE_VALUES_S_FORM=\u65E0\u6CD5\u5728 "{1}" \u6807\u7B7E\u4E0A\u4F7F\u7528\u4EE5\u4E0B\u8FC7\u6EE4\u5668\uFF1A"{0}"\u3002
85
85
 
@@ -36,6 +36,12 @@ sap.ui.define([
36
36
  var bIsApplying = false;
37
37
  var aBasicFilters = [];
38
38
  var oSmartFilterBar = oControl;
39
+ // Holds SVM callbacks once setSVMWrapperCallbacks is called. The afterVariantLoad handler
40
+ // is attached eagerly (in fnInitialize) so it fires even when setSVMWrapperCallbacks has
41
+ // not yet been called (race condition on second navigation: bAllControlsInitialized=true
42
+ // causes fnApplyVariantState to run synchronously, triggering afterVariantLoad before the
43
+ // Promise.all in SmartVariantManagementWrapper resolves and calls setSVMWrapperCallbacks).
44
+ var oSVMWrapperCallbacks = null;
39
45
 
40
46
  var oVariantManagementInitializedPromise;
41
47
 
@@ -50,29 +56,11 @@ sap.ui.define([
50
56
 
51
57
  // Initialize variant management promise
52
58
  oVariantManagementInitializedPromise = oSmartFilterBar.getInitializedPromise();
53
- }
54
-
55
- // Attach to variantFetch and variantLoad events to be able to store and restore also custom filters and state of other controls (in case of page VM) with variant.
56
- // Events for storing/restoring are provided by SFB, data to be stored/restored can come from 3 sources:
57
- // - standard filters: handled directly by SFB
58
- // - extension filters: provided from mParams.oCustomFiltersWrapper
59
- // - other controls being part of VM: provided by oSVMWrapperCallbacks (controls with direct connection to VM are skipped in SVM wrapper)
60
- function setSVMWrapperCallbacks(oSVMWrapperCallbacks){
61
- // Before saving the current state as a new variant, we need to provide all state data of controls controlled by VM, but not known to it with setCustomFilterData. From a
62
- // logical point of view, the event (beforeVariantFetch) as well as the method to store the extension data (setCustomFilterData) belong to SVM, but both are implemented
63
- // in SFB. Additionally, beforeVariantSave would actually be the name more logical to the consumer, however that name had been used earlier and was deprecated and
64
- // replaced by the given one. Fetch actually does not mean to fetch variant content from the place variants are stored, but to get the current state from the controls!
65
- oSmartFilterBar.attachBeforeVariantFetch(function(){
66
- var oCustomData = Object.create(null);
67
- oCustomData[dataPropertyNameGeneric] = oSVMWrapperCallbacks.getManagedControlStates();
68
- oCustomData[dataPropertyNameGeneric].customFilters = mParams.oCustomFiltersWrapper.getState();
69
- oSmartFilterBar.setCustomFilterData(oCustomData);
70
- });
71
59
 
72
- // When a variant is loaded, correspondingly we have to get the customData and apply the states to the controls not known to SVM. Again, event and method are implemented
73
- // in SFB instead of SVM where it would make more sense.
74
- // Here the event is afterVariantLoad, as the variant content known to SVM/SFB has first to be applied to the SFB, which will also pass the custom data accordingly. Only
75
- // after this has happened, we can get the custom data from SFB.
60
+ // Attach afterVariantLoad eagerly so custom filter state is restored regardless of
61
+ // when setSVMWrapperCallbacks is called. setManagedControlStates is only called if
62
+ // SVM callbacks are already available; otherwise those controls are restored via the
63
+ // iAppState path (SmartVariantManagementWrapper.fnSetManagedControlStates).
76
64
  oSmartFilterBar.attachAfterVariantLoad(function(){
77
65
  // Suppress state change events while restoring extension filter values from variant.
78
66
  // Without this, restoring custom filters (e.g. DynamicDateRange, MultiComboBox) triggers
@@ -91,10 +79,34 @@ sap.ui.define([
91
79
  };
92
80
  aBasicFilters = oSmartFilterBar.getAllFilterItems(true);
93
81
  mParams.oCustomFiltersWrapper.setState(oCustomFiltersState);
94
- oSVMWrapperCallbacks.setManagedControlStates(oCustomData[dataPropertyNameGeneric]);
82
+ if (oSVMWrapperCallbacks) {
83
+ oSVMWrapperCallbacks.setManagedControlStates(oCustomData[dataPropertyNameGeneric]);
84
+ }
95
85
  bIsApplying = false;
96
86
  });
87
+ }
97
88
 
89
+ // When a variant is loaded, correspondingly we have to get the customData and apply the states to the controls not known to SVM. Again, event and method are implemented
90
+ // in SFB instead of SVM where it would make more sense.
91
+ // Here the event is afterVariantLoad, as the variant content known to SVM/SFB has first to be applied to the SFB, which will also pass the custom data accordingly. Only
92
+ // after this has happened, we can get the custom data from SFB.
93
+ // Attach to variantFetch and variantLoad events to be able to store and restore also custom filters and state of other controls (in case of page VM) with variant.
94
+ // Events for storing/restoring are provided by SFB, data to be stored/restored can come from 3 sources:
95
+ // - standard filters: handled directly by SFB
96
+ // - extension filters: provided from mParams.oCustomFiltersWrapper
97
+ // - other controls being part of VM: provided by oSVMWrapperCallbacks (controls with direct connection to VM are skipped in SVM wrapper)
98
+ function setSVMWrapperCallbacks(oCallbacks){
99
+ oSVMWrapperCallbacks = oCallbacks;
100
+ // Before saving the current state as a new variant, we need to provide all state data of controls controlled by VM, but not known to it with setCustomFilterData. From a
101
+ // logical point of view, the event (beforeVariantFetch) as well as the method to store the extension data (setCustomFilterData) belong to SVM, but both are implemented
102
+ // in SFB. Additionally, beforeVariantSave would actually be the name more logical to the consumer, however that name had been used earlier and was deprecated and
103
+ // replaced by the given one. Fetch actually does not mean to fetch variant content from the place variants are stored, but to get the current state from the controls!
104
+ oSmartFilterBar.attachBeforeVariantFetch(function(){
105
+ var oCustomData = Object.create(null);
106
+ oCustomData[dataPropertyNameGeneric] = oSVMWrapperCallbacks.getManagedControlStates();
107
+ oCustomData[dataPropertyNameGeneric].customFilters = mParams.oCustomFiltersWrapper.getState();
108
+ oSmartFilterBar.setCustomFilterData(oCustomData);
109
+ });
98
110
  }
99
111
  function fnGetState() {
100
112
  var oUiState = oSmartFilterBar.getUiState();
@@ -856,7 +856,7 @@ sap.ui.define([
856
856
  * @extends sap.ui.core.UIComponent
857
857
  * @abstract
858
858
  * @author SAP SE
859
- * @version 1.108.54
859
+ * @version 1.108.55
860
860
  * @name sap.suite.ui.generic.template.lib.AppComponent
861
861
  */
862
862
  return UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
@@ -755,8 +755,14 @@ sap.ui.define(["sap/ui/base/Object",
755
755
  function setPaginatorInfo(oPaginatorInfo){
756
756
  var iViewLevel = getViewLevel();
757
757
  // The listBinding which shall be passed to the paginatorInfo might already been marked for refresh. In this case the paginator info is invalidated for the paginator buttons but still may be used for the 'Save and next'.
758
- if (oPaginatorInfo && !oPaginatorInfo.suppressButtons && oPaginatorInfo.objectPageNavigationContexts.length > 0){
759
- var oSampleContext = oPaginatorInfo.objectPageNavigationContexts[0];
758
+ // The following code is used to find out whether we need to suppress the buttons (if this is not already known).
759
+ // To this end we first need to find out which entity set the paginatorInfo points to (relevant in multi entity set scenarios).
760
+ // This is derived from one of the contexts in oPaginatorInfo.objectPageNavigationContexts.
761
+ // Note that this list may contain undefined entries in case of tree table.
762
+ var oSampleContext = oPaginatorInfo && !oPaginatorInfo.suppressButtons && oPaginatorInfo.objectPageNavigationContexts.find(function(oContext){
763
+ return oContext;
764
+ });
765
+ if (oSampleContext){
760
766
  var oContextInfo = oDataModelHelper.analyseContext(oSampleContext);
761
767
  var sEntitySet = oContextInfo.entitySet;
762
768
  oPaginatorInfo.suppressButtons = oComponentRegistryEntry.mRefreshInfos[sEntitySet] || oComponent.getIsRefreshRequired();
@@ -2981,7 +2981,7 @@ sap.ui.define(["sap/ui/base/Object",
2981
2981
  * @param {sap.suite.ui.generic.template.lib.AppComponent} oAppComponent The AppComponent instance
2982
2982
  * @public
2983
2983
  * @extends sap.ui.base.Object
2984
- * @version 1.108.54
2984
+ * @version 1.108.55
2985
2985
  * @since 1.30.0
2986
2986
  * @alias sap.suite.ui.generic.template.lib.NavigationController
2987
2987
  */
@@ -38,7 +38,7 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/core/library','sap/fe/placeholder/lib
38
38
  interfaces: [],
39
39
  controls: [],
40
40
  elements: [],
41
- version: "1.108.54",
41
+ version: "1.108.55",
42
42
  extensions: {
43
43
  //Configuration used for rule loading of Support Assistant
44
44
  "sap.ui.support": {