@openui5/sap.ui.core 1.110.0 → 1.111.0
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/.eslintrc.json +1 -0
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +1 -1
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +2 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +58 -50
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +4 -1
- package/src/sap/ui/core/Control.js +19 -7
- package/src/sap/ui/core/Core.js +2 -1
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +98 -3
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +16 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +10 -6
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +12 -11
- package/src/sap/ui/core/LocaleData.js +1 -1
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Patcher.js +35 -0
- package/src/sap/ui/core/Popup.js +1 -0
- package/src/sap/ui/core/RenderManager.js +286 -156
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +2 -2
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +36 -4
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/_IconRegistry.js +1 -0
- package/src/sap/ui/core/cache/CacheManager.js +1 -1
- package/src/sap/ui/core/date/UI5Date.js +970 -0
- package/src/sap/ui/core/date/UniversalDate.js +803 -39
- package/src/sap/ui/core/date/UniversalDateUtils.js +170 -14
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragAndDrop.js +26 -15
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +5 -8
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/DateFormat.js +39 -29
- package/src/sap/ui/core/format/FileSizeFormat.js +1 -0
- package/src/sap/ui/core/format/ListFormat.js +1 -0
- package/src/sap/ui/core/format/NumberFormat.js +31 -56
- package/src/sap/ui/core/format/TimezoneUtil.js +9 -7
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +22 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +1 -1
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/Router.js +4 -3
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +14 -20
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +1 -0
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +2 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/dom/isBehindOtherElement.js +11 -3
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -11
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
- package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +29 -15
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +2 -2
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +57 -21
- package/src/sap/ui/model/odata/type/DateTime.js +32 -3
- package/src/sap/ui/model/odata/type/DateTimeBase.js +62 -25
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +35 -5
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +6 -5
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +37 -2
- package/src/sap/ui/model/odata/type/TimeOfDay.js +39 -4
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +1 -0
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +11 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +4 -2
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +98 -23
- package/src/sap/ui/model/odata/v4/ODataBinding.js +39 -9
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +4 -4
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +57 -21
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +3 -4
- package/src/sap/ui/model/odata/v4/ODataModel.js +33 -8
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +15 -12
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +2 -2
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +43 -8
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +92 -28
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +74 -24
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +14 -3
- package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +12 -4
- package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +8 -3
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +22 -14
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +8 -1
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +190 -155
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/qunit/utils/waitForThemeApplied.js +4 -5
- package/src/sap/ui/test/generic/TestBase.js +3 -3
- package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +4 -4
- package/src/sap/ui/thirdparty/jquery-mobile-custom.js +9 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +14 -11
- package/src/ui5loader.js +152 -3
|
@@ -56,6 +56,28 @@ sap.ui.define([
|
|
|
56
56
|
this.sResumeChangeReason = undefined;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
/**
|
|
60
|
+
* Returns <code>true</code> if this binding or its dependent bindings have changes.
|
|
61
|
+
*
|
|
62
|
+
* Note: This private function is needed in order to hide the additional parameter
|
|
63
|
+
* <code>bIgnoreInactiveCaches</code> from the public API {@link #hasPendingChanges}.
|
|
64
|
+
*
|
|
65
|
+
* @param {boolean} [bIgnoreKeptAlive]
|
|
66
|
+
* Whether to ignore changes which will not be lost by certain APIs, see
|
|
67
|
+
* {@link #hasPendingChanges}
|
|
68
|
+
* @param {boolean} [bIgnoreInactiveCaches]
|
|
69
|
+
* Whether to ignore changes in inactive caches
|
|
70
|
+
* @returns {boolean}
|
|
71
|
+
* <code>true</code> if the binding is resolved and has pending changes
|
|
72
|
+
*
|
|
73
|
+
* @private
|
|
74
|
+
*/
|
|
75
|
+
ODataBinding.prototype._hasPendingChanges = function (bIgnoreKeptAlive, bIgnoreInactiveCaches) {
|
|
76
|
+
return this.isResolved()
|
|
77
|
+
&& (this.hasPendingChangesForPath("", bIgnoreKeptAlive)
|
|
78
|
+
|| this.hasPendingChangesInDependents(bIgnoreKeptAlive, bIgnoreInactiveCaches));
|
|
79
|
+
};
|
|
80
|
+
|
|
59
81
|
/**
|
|
60
82
|
* Adjusts the paths of all contexts of this binding by replacing the given transient predicate
|
|
61
83
|
* with the given predicate. Recursively adjusts all child bindings.
|
|
@@ -385,7 +407,9 @@ sap.ui.define([
|
|
|
385
407
|
* @private
|
|
386
408
|
*/
|
|
387
409
|
ODataBinding.prototype.doDeregisterChangeListener = function (sPath, oListener) {
|
|
388
|
-
this.oCache
|
|
410
|
+
if (this.oCache) {
|
|
411
|
+
this.oCache.deregisterChangeListener(sPath, oListener);
|
|
412
|
+
}
|
|
389
413
|
};
|
|
390
414
|
|
|
391
415
|
/**
|
|
@@ -618,9 +642,9 @@ sap.ui.define([
|
|
|
618
642
|
*
|
|
619
643
|
* @param {sap.ui.model.Context|sap.ui.model.odata.v4.Context} [oContext=this.oContext]
|
|
620
644
|
* A context; if omitted, the binding's context is used
|
|
621
|
-
* @returns {SyncPromise} A promise resolving with the resource path or
|
|
622
|
-
* for an unresolved binding. If computation of the canonical path
|
|
623
|
-
* rejected.
|
|
645
|
+
* @returns {sap.ui.base.SyncPromise} A promise resolving with the resource path or
|
|
646
|
+
* <code>undefined</code> for an unresolved binding. If computation of the canonical path
|
|
647
|
+
* fails, the promise is rejected.
|
|
624
648
|
*
|
|
625
649
|
* @private
|
|
626
650
|
*/
|
|
@@ -873,7 +897,11 @@ sap.ui.define([
|
|
|
873
897
|
* created entities, or entity deletions which have not been sent successfully to the server.
|
|
874
898
|
* This function does not take the execution of OData operations
|
|
875
899
|
* (see {@link sap.ui.model.odata.v4.ODataContextBinding#execute}) into account. Since 1.98.0,
|
|
876
|
-
* {@link sap.ui.model.odata.v4.Context#isInactive inactive} contexts are ignored
|
|
900
|
+
* {@link sap.ui.model.odata.v4.Context#isInactive inactive} contexts are ignored, unless
|
|
901
|
+
* (since 1.100.0) their
|
|
902
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding#event:createActivate activation} has been
|
|
903
|
+
* prevented and {@link sap.ui.model.odata.v4.Context#isInactive} therefore returns
|
|
904
|
+
* <code>1</code>.
|
|
877
905
|
*
|
|
878
906
|
* Note: If this binding is relative, its data is cached separately for each parent context
|
|
879
907
|
* path. This method returns <code>true</code> if there are pending changes for the current
|
|
@@ -900,9 +928,7 @@ sap.ui.define([
|
|
|
900
928
|
* @since 1.39.0
|
|
901
929
|
*/
|
|
902
930
|
ODataBinding.prototype.hasPendingChanges = function (bIgnoreKeptAlive) {
|
|
903
|
-
return this.
|
|
904
|
-
&& (this.hasPendingChangesForPath("", bIgnoreKeptAlive)
|
|
905
|
-
|| this.hasPendingChangesInDependents(bIgnoreKeptAlive));
|
|
931
|
+
return this._hasPendingChanges(bIgnoreKeptAlive);
|
|
906
932
|
};
|
|
907
933
|
|
|
908
934
|
/**
|
|
@@ -957,6 +983,8 @@ sap.ui.define([
|
|
|
957
983
|
* @param {boolean} [bIgnoreKeptAlive]
|
|
958
984
|
* Whether to ignore changes which will not be lost by APIs like sort or filter because they
|
|
959
985
|
* relate to a deleted context or a context which is kept alive
|
|
986
|
+
* @param {boolean} [bIgnoreInactiveCaches]
|
|
987
|
+
* Whether to ignore changes in inactive caches
|
|
960
988
|
* @returns {boolean}
|
|
961
989
|
* <code>true</code> if this binding has pending changes
|
|
962
990
|
*
|
|
@@ -1052,7 +1080,7 @@ sap.ui.define([
|
|
|
1052
1080
|
* Refreshes the binding. Prompts the model to retrieve data from the server using the given
|
|
1053
1081
|
* group ID and notifies the control that new data is available.
|
|
1054
1082
|
*
|
|
1055
|
-
* Refresh is supported for bindings which are not relative to
|
|
1083
|
+
* Refresh is supported for bindings which are not relative to an
|
|
1056
1084
|
* {@link sap.ui.model.odata.v4.Context}.
|
|
1057
1085
|
*
|
|
1058
1086
|
* Note: When calling {@link #refresh} multiple times, the result of the request triggered by
|
|
@@ -1301,6 +1329,8 @@ sap.ui.define([
|
|
|
1301
1329
|
*
|
|
1302
1330
|
* @param {sap.ui.base.SyncPromise[]} aPromises
|
|
1303
1331
|
* List of promises which is extended for each call to {@link #resetChangesInDependents}.
|
|
1332
|
+
* @param {boolean} [bIgnoreInactiveCaches]
|
|
1333
|
+
* Whether to ignore changes in inactive caches
|
|
1304
1334
|
* @throws {Error}
|
|
1305
1335
|
* If there is a change of this binding which has been sent to the server and for which there
|
|
1306
1336
|
* is no response yet.
|
|
@@ -74,7 +74,7 @@ sap.ui.define([
|
|
|
74
74
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
75
75
|
* @public
|
|
76
76
|
* @since 1.37.0
|
|
77
|
-
* @version 1.
|
|
77
|
+
* @version 1.111.0
|
|
78
78
|
*
|
|
79
79
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
80
80
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
@@ -559,7 +559,7 @@ sap.ui.define([
|
|
|
559
559
|
* actions only
|
|
560
560
|
* @param {function} [fnOnStrictHandlingFailed]
|
|
561
561
|
* Callback for strict handling; supported for actions only
|
|
562
|
-
* @returns {SyncPromise}
|
|
562
|
+
* @returns {sap.ui.base.SyncPromise}
|
|
563
563
|
* The request promise
|
|
564
564
|
* @throws {Error} If
|
|
565
565
|
* <ul>
|
|
@@ -916,10 +916,10 @@ sap.ui.define([
|
|
|
916
916
|
* value context at all or the existing context as described above is currently part of the
|
|
917
917
|
* list's collection (that is, has an index).
|
|
918
918
|
* <br>
|
|
919
|
-
* A return value context is
|
|
919
|
+
* A return value context is an {@link sap.ui.model.odata.v4.Context} which represents a bound
|
|
920
920
|
* operation response. It is created only if the operation is bound and has a single entity
|
|
921
921
|
* return value from the same entity set as the operation's binding parameter and has a
|
|
922
|
-
* parent context which is
|
|
922
|
+
* parent context which is an {@link sap.ui.model.odata.v4.Context} and points to an entity
|
|
923
923
|
* from an entity set. It is destroyed the next time this operation binding is executed again!
|
|
924
924
|
* <br>
|
|
925
925
|
* If a return value context is created, it must be used instead of
|
|
@@ -57,7 +57,7 @@ sap.ui.define([
|
|
|
57
57
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
58
58
|
* @public
|
|
59
59
|
* @since 1.37.0
|
|
60
|
-
* @version 1.
|
|
60
|
+
* @version 1.111.0
|
|
61
61
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
62
62
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
63
63
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -302,7 +302,8 @@ sap.ui.define([
|
|
|
302
302
|
|
|
303
303
|
/**
|
|
304
304
|
* Applies the given map of parameters to this binding's parameters and triggers the
|
|
305
|
-
* creation of a new cache if called with a change reason.
|
|
305
|
+
* creation of a new cache if called with a change reason. Since 1.111.0, the header context is
|
|
306
|
+
* deselected.
|
|
306
307
|
*
|
|
307
308
|
* @param {object} mParameters
|
|
308
309
|
* Map of binding parameters, {@link sap.ui.model.odata.v4.ODataModel#constructor}
|
|
@@ -326,8 +327,9 @@ sap.ui.define([
|
|
|
326
327
|
throw new Error("Cannot combine $$aggregation and $apply");
|
|
327
328
|
}
|
|
328
329
|
if (!sChangeReason) { // called from c'tor or #setAggregation
|
|
329
|
-
_AggregationHelper.
|
|
330
|
-
this.oModel.
|
|
330
|
+
_AggregationHelper.validateAggregationAndSetPath(mParameters.$$aggregation,
|
|
331
|
+
this.oModel.bAutoExpandSelect, this.oModel.oInterface.fetchMetadata,
|
|
332
|
+
this.getResolvedPath());
|
|
331
333
|
}
|
|
332
334
|
sApply = _AggregationHelper.buildApply(mParameters.$$aggregation).$apply;
|
|
333
335
|
}
|
|
@@ -356,6 +358,7 @@ sap.ui.define([
|
|
|
356
358
|
this.fetchCache(this.oContext);
|
|
357
359
|
this.reset(sChangeReason);
|
|
358
360
|
if (this.oHeaderContext) {
|
|
361
|
+
this.oHeaderContext.setSelected(false);
|
|
359
362
|
// Update after the refresh event, otherwise $count is fetched before the request
|
|
360
363
|
this.oHeaderContext.checkUpdate();
|
|
361
364
|
}
|
|
@@ -973,6 +976,10 @@ sap.ui.define([
|
|
|
973
976
|
bReset = false,
|
|
974
977
|
that = this;
|
|
975
978
|
|
|
979
|
+
if (oContext.isDeleted()) {
|
|
980
|
+
return oContext.oDeletePromise; // do not delete twice
|
|
981
|
+
}
|
|
982
|
+
|
|
976
983
|
this.iDeletedContexts += 1;
|
|
977
984
|
|
|
978
985
|
return oContext.doDelete(oGroupLock, sEditUrl, sPath, oETagEntity, this,
|
|
@@ -1712,7 +1719,7 @@ sap.ui.define([
|
|
|
1712
1719
|
|
|
1713
1720
|
/**
|
|
1714
1721
|
* Filters the list with the given filters. Since 1.97.0, if filters are unchanged, no request
|
|
1715
|
-
* is sent, regardless of pending changes.
|
|
1722
|
+
* is sent, regardless of pending changes. Since 1.111.0, the header context is deselected.
|
|
1716
1723
|
*
|
|
1717
1724
|
* If there are pending changes that cannot be ignored, an error is thrown. Use
|
|
1718
1725
|
* {@link #hasPendingChanges} to check if there are such pending changes. If there are, call
|
|
@@ -1807,6 +1814,7 @@ sap.ui.define([
|
|
|
1807
1814
|
this.fetchCache(this.oContext);
|
|
1808
1815
|
this.reset(ChangeReason.Filter);
|
|
1809
1816
|
if (this.oHeaderContext) {
|
|
1817
|
+
this.oHeaderContext.setSelected(false);
|
|
1810
1818
|
// Update after the refresh event, otherwise $count is fetched before the request
|
|
1811
1819
|
this.oHeaderContext.checkUpdate();
|
|
1812
1820
|
}
|
|
@@ -1838,15 +1846,32 @@ sap.ui.define([
|
|
|
1838
1846
|
* Returns the current object holding the information needed for data aggregation, see
|
|
1839
1847
|
* {@link #setAggregation}.
|
|
1840
1848
|
*
|
|
1849
|
+
* @param {boolean} [bVerbose]
|
|
1850
|
+
* Whether to additionally return the "$"-prefixed values described below which obviously
|
|
1851
|
+
* cannot be given back to the setter (@experimental as of version 1.111.0). They are
|
|
1852
|
+
* retrieved from the pair of "Org.OData.Aggregation.V1.RecursiveHierarchy" and
|
|
1853
|
+
* "com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy" annotations at this binding's
|
|
1854
|
+
* entity type, identified via the <code>hierarchyQualifier</code> given to
|
|
1855
|
+
* {@link #setAggregation}.
|
|
1856
|
+
* <ul>
|
|
1857
|
+
* <li> "$DistanceFromRootProperty" holds the path to the property which provides the raw
|
|
1858
|
+
* value for "@$ui5.node.level" (minus one) and should be used only to interpret the
|
|
1859
|
+
* response retrieved via {@link #getDownloadUrl}.
|
|
1860
|
+
* <li> "$NodeProperty" holds the path to the property which provides the hierarchy node
|
|
1861
|
+
* value. That property is always $select'ed automatically and can be accessed as usual.
|
|
1862
|
+
* </ul>
|
|
1841
1863
|
* @returns {object}
|
|
1842
1864
|
* The current data aggregation object, incl. some default values
|
|
1843
1865
|
*
|
|
1844
1866
|
* @public
|
|
1845
1867
|
* @since 1.109.0
|
|
1846
1868
|
*/
|
|
1847
|
-
ODataListBinding.prototype.getAggregation = function () {
|
|
1869
|
+
ODataListBinding.prototype.getAggregation = function (bVerbose) {
|
|
1848
1870
|
return _Helper.clone(this.mParameters.$$aggregation, function (sKey, vValue) {
|
|
1849
|
-
return sKey[0] === "$"
|
|
1871
|
+
return sKey[0] === "$"
|
|
1872
|
+
&& !(bVerbose && ["$DistanceFromRootProperty", "$NodeProperty"].includes(sKey))
|
|
1873
|
+
? undefined
|
|
1874
|
+
: vValue;
|
|
1850
1875
|
});
|
|
1851
1876
|
};
|
|
1852
1877
|
|
|
@@ -2980,15 +3005,21 @@ sap.ui.define([
|
|
|
2980
3005
|
* A removed context is destroyed unless it is
|
|
2981
3006
|
* {@link sap.ui.model.odata.v4.Context#isKeepAlive kept alive} and still exists on the
|
|
2982
3007
|
* server.
|
|
3008
|
+
* @param {boolean} [bKeepCacheOnError]
|
|
3009
|
+
* If <code>true</code>, the binding data remains unchanged if the refresh fails
|
|
3010
|
+
* @param {boolean} [bWithMessages]
|
|
3011
|
+
* Whether the "@com.sap.vocabularies.Common.v1.Messages" path is treated specially
|
|
2983
3012
|
* @returns {sap.ui.base.SyncPromise}
|
|
2984
3013
|
* A promise which resolves without a defined value when the entity is updated in the cache,
|
|
2985
3014
|
* or rejects if the refresh failed.
|
|
2986
3015
|
* @throws {Error}
|
|
2987
|
-
* If the given context does not represent a single entity (see {@link #getHeaderContext})
|
|
3016
|
+
* If the given context does not represent a single entity (see {@link #getHeaderContext}), or
|
|
3017
|
+
* if <code>bAllowRemoval && bWithMessages</code> are combined
|
|
2988
3018
|
*
|
|
2989
3019
|
* @private
|
|
2990
3020
|
*/
|
|
2991
|
-
ODataListBinding.prototype.refreshSingle = function (oContext, oGroupLock, bAllowRemoval
|
|
3021
|
+
ODataListBinding.prototype.refreshSingle = function (oContext, oGroupLock, bAllowRemoval,
|
|
3022
|
+
bKeepCacheOnError, bWithMessages) {
|
|
2992
3023
|
var sContextPath = oContext.getPath(),
|
|
2993
3024
|
sResourcePathPrefix = sContextPath.slice(1),
|
|
2994
3025
|
that = this;
|
|
@@ -2996,6 +3027,9 @@ sap.ui.define([
|
|
|
2996
3027
|
if (oContext === this.oHeaderContext) {
|
|
2997
3028
|
throw new Error("Unsupported header context: " + oContext);
|
|
2998
3029
|
}
|
|
3030
|
+
if (bAllowRemoval && bWithMessages) {
|
|
3031
|
+
throw new Error("Unsupported: bAllowRemoval && bWithMessages");
|
|
3032
|
+
}
|
|
2999
3033
|
|
|
3000
3034
|
return this.withCache(function (oCache, sPath, oBinding) {
|
|
3001
3035
|
var bDataRequested = false,
|
|
@@ -3064,7 +3098,7 @@ sap.ui.define([
|
|
|
3064
3098
|
? oCache.refreshSingleWithRemove(oGroupLock, sPath, oContext.getModelIndex(),
|
|
3065
3099
|
sPredicate, bKeepAlive, fireDataRequested, onRemove)
|
|
3066
3100
|
: oCache.refreshSingle(oGroupLock, sPath, oContext.getModelIndex(), sPredicate,
|
|
3067
|
-
bKeepAlive, fireDataRequested))
|
|
3101
|
+
bKeepAlive, bWithMessages, fireDataRequested))
|
|
3068
3102
|
.then(function () {
|
|
3069
3103
|
var aUpdatePromises = [];
|
|
3070
3104
|
|
|
@@ -3075,7 +3109,7 @@ sap.ui.define([
|
|
|
3075
3109
|
if (bAllowRemoval) {
|
|
3076
3110
|
aUpdatePromises.push(
|
|
3077
3111
|
oContext.refreshDependentBindings(sResourcePathPrefix,
|
|
3078
|
-
oGroupLock.getGroupId()));
|
|
3112
|
+
oGroupLock.getGroupId(), false, bKeepCacheOnError));
|
|
3079
3113
|
}
|
|
3080
3114
|
}
|
|
3081
3115
|
|
|
@@ -3097,7 +3131,7 @@ sap.ui.define([
|
|
|
3097
3131
|
// call refreshInternal on all dependent bindings to ensure that all resulting data
|
|
3098
3132
|
// requests are in the same batch request
|
|
3099
3133
|
aPromises.push(oContext.refreshDependentBindings(sResourcePathPrefix,
|
|
3100
|
-
oGroupLock.getGroupId()));
|
|
3134
|
+
oGroupLock.getGroupId(), false, bKeepCacheOnError));
|
|
3101
3135
|
}
|
|
3102
3136
|
|
|
3103
3137
|
return SyncPromise.all(aPromises);
|
|
@@ -3215,8 +3249,8 @@ sap.ui.define([
|
|
|
3215
3249
|
ODataListBinding.prototype.requestDownloadUrl = _Helper.createRequestMethod("fetchDownloadUrl");
|
|
3216
3250
|
|
|
3217
3251
|
/**
|
|
3218
|
-
* Requests
|
|
3219
|
-
* entries with model messages. With the filter callback, you can define if a message is
|
|
3252
|
+
* Requests an {@link sap.ui.model.Filter} object which can be used to filter the list binding
|
|
3253
|
+
* by entries with model messages. With the filter callback, you can define if a message is
|
|
3220
3254
|
* considered when creating the filter for entries with messages.
|
|
3221
3255
|
*
|
|
3222
3256
|
* The resulting filter does not consider application or control filters specified for this list
|
|
@@ -3228,7 +3262,7 @@ sap.ui.define([
|
|
|
3228
3262
|
* given {@link sap.ui.core.message.Message} is considered. If no callback function is given,
|
|
3229
3263
|
* all messages are considered.
|
|
3230
3264
|
* @returns {Promise<sap.ui.model.Filter|null>}
|
|
3231
|
-
* A Promise that resolves with
|
|
3265
|
+
* A Promise that resolves with an {@link sap.ui.model.Filter} representing the entries with
|
|
3232
3266
|
* messages; it resolves with <code>null</code> if the binding is not resolved or if there is
|
|
3233
3267
|
* no message for any entry
|
|
3234
3268
|
*
|
|
@@ -3324,7 +3358,7 @@ sap.ui.define([
|
|
|
3324
3358
|
}
|
|
3325
3359
|
|
|
3326
3360
|
if (this.oCache && this.oCache.getPendingRequestsPromise()) {
|
|
3327
|
-
return this.oCache.getPendingRequestsPromise().then(function () {
|
|
3361
|
+
return SyncPromise.resolve(this.oCache.getPendingRequestsPromise()).then(function () {
|
|
3328
3362
|
// Note: This is quite early! Transient predicate not yet replaced inside path,
|
|
3329
3363
|
// #isTransient not yet updated etc. Be careful below!
|
|
3330
3364
|
return that.requestSideEffects(sGroupId, aPaths, oContext);
|
|
@@ -3337,7 +3371,7 @@ sap.ui.define([
|
|
|
3337
3371
|
if (aPredicates) {
|
|
3338
3372
|
aPromises = this.oCache
|
|
3339
3373
|
? [this.oCache.requestSideEffects(this.lockGroup(sGroupId), aPaths, aPredicates,
|
|
3340
|
-
bSingle)]
|
|
3374
|
+
bSingle, /*bWithMessages*/bSingle)]
|
|
3341
3375
|
: []; // can happen if invoked via absolute side effect
|
|
3342
3376
|
this.visitSideEffects(sGroupId, aPaths, bSingle ? oContext : undefined, aPromises);
|
|
3343
3377
|
|
|
@@ -3347,7 +3381,8 @@ sap.ui.define([
|
|
|
3347
3381
|
}
|
|
3348
3382
|
}
|
|
3349
3383
|
if (bSingle) {
|
|
3350
|
-
return this.refreshSingle(oContext, this.lockGroup(sGroupId), false
|
|
3384
|
+
return this.refreshSingle(oContext, this.lockGroup(sGroupId), /*bAllowRemoval*/false,
|
|
3385
|
+
/*bKeepCacheOnError*/true, /*bWithMessages*/true);
|
|
3351
3386
|
}
|
|
3352
3387
|
if (this.iCurrentEnd === 0) {
|
|
3353
3388
|
return SyncPromise.resolve();
|
|
@@ -3730,8 +3765,9 @@ sap.ui.define([
|
|
|
3730
3765
|
if (!this.oHeaderContext) {
|
|
3731
3766
|
this.oHeaderContext = Context.create(this.oModel, this, sResolvedPath);
|
|
3732
3767
|
}
|
|
3733
|
-
if (this.
|
|
3734
|
-
|
|
3768
|
+
if (this.mParameters.$$aggregation) {
|
|
3769
|
+
_AggregationHelper.setPath(this.mParameters.$$aggregation, sResolvedPath);
|
|
3770
|
+
} else if (this.bHasPathReductionToParent && this.oModel.bAutoExpandSelect) {
|
|
3735
3771
|
this.sChangeReason = "AddVirtualContext"; // JIRA: CPOUI5ODATAV4-848
|
|
3736
3772
|
}
|
|
3737
3773
|
if (oContext.getBinding
|
|
@@ -3951,7 +3987,7 @@ sap.ui.define([
|
|
|
3951
3987
|
* @param {object} oEntityType The metadata for the entity type
|
|
3952
3988
|
* @param {sap.ui.model.odata.v4.ODataMetaModel} oMetaModel The meta model
|
|
3953
3989
|
* @param {string} sMetaPath The meta path
|
|
3954
|
-
* @returns {sap.ui.model.Filter}
|
|
3990
|
+
* @returns {sap.ui.model.Filter} an {@link sap.ui.model.Filter} for the given key predicate
|
|
3955
3991
|
*
|
|
3956
3992
|
* @private
|
|
3957
3993
|
*/
|
|
@@ -157,7 +157,7 @@ sap.ui.define([
|
|
|
157
157
|
* @hideconstructor
|
|
158
158
|
* @public
|
|
159
159
|
* @since 1.37.0
|
|
160
|
-
* @version 1.
|
|
160
|
+
* @version 1.111.0
|
|
161
161
|
*/
|
|
162
162
|
ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
|
|
163
163
|
constructor : constructor
|
|
@@ -211,7 +211,7 @@ sap.ui.define([
|
|
|
211
211
|
* A namespace, for example "foo.bar.", of a schema.
|
|
212
212
|
* @param {function} fnLog
|
|
213
213
|
* The log function
|
|
214
|
-
* @returns {object|SyncPromise|undefined}
|
|
214
|
+
* @returns {object|sap.ui.base.SyncPromise|undefined}
|
|
215
215
|
* The schema, or a promise which is resolved without details or rejected with an error, or
|
|
216
216
|
* <code>undefined</code>.
|
|
217
217
|
* @throws {Error}
|
|
@@ -3016,8 +3016,7 @@ sap.ui.define([
|
|
|
3016
3016
|
* @see #getUI5Type
|
|
3017
3017
|
* @since 1.37.0
|
|
3018
3018
|
*/
|
|
3019
|
-
ODataMetaModel.prototype.requestUI5Type
|
|
3020
|
-
= _Helper.createRequestMethod("fetchUI5Type");
|
|
3019
|
+
ODataMetaModel.prototype.requestUI5Type = _Helper.createRequestMethod("fetchUI5Type");
|
|
3021
3020
|
|
|
3022
3021
|
/**
|
|
3023
3022
|
* Request unit customizing based on the code list reference given in the entity container's
|
|
@@ -78,6 +78,7 @@ sap.ui.define([
|
|
|
78
78
|
groupId : true,
|
|
79
79
|
groupProperties : true,
|
|
80
80
|
httpHeaders : true,
|
|
81
|
+
ignoreAnnotationsFromMetadata : true,
|
|
81
82
|
metadataUrlParams : true,
|
|
82
83
|
odataVersion : true,
|
|
83
84
|
operationMode : true,
|
|
@@ -132,6 +133,11 @@ sap.ui.define([
|
|
|
132
133
|
* since 1.51.0
|
|
133
134
|
* @param {object} [mParameters.httpHeaders]
|
|
134
135
|
* Map of HTTP header names to their values, see {@link #changeHttpHeaders}
|
|
136
|
+
* @param {boolean} [mParameters.ignoreAnnotationsFromMetadata]
|
|
137
|
+
* Whether to ignore all annotations from service metadata and "cross-service references";
|
|
138
|
+
* only the value <code>true</code> is allowed. Only annotations from annotation files
|
|
139
|
+
* (see parameter "annotationURI") are loaded. This parameter is not inherited by value
|
|
140
|
+
* list models. @experimental as of version 1.111.0
|
|
135
141
|
* @param {object} [mParameters.metadataUrlParams]
|
|
136
142
|
* Additional map of URL parameters used specifically for $metadata requests. Note that
|
|
137
143
|
* "sap-context-token" applies only to the service's root $metadata, but not to
|
|
@@ -221,7 +227,7 @@ sap.ui.define([
|
|
|
221
227
|
* @extends sap.ui.model.Model
|
|
222
228
|
* @public
|
|
223
229
|
* @since 1.37.0
|
|
224
|
-
* @version 1.
|
|
230
|
+
* @version 1.111.0
|
|
225
231
|
*/
|
|
226
232
|
ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
227
233
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
|
|
@@ -328,6 +334,10 @@ sap.ui.define([
|
|
|
328
334
|
}
|
|
329
335
|
this.bSharedRequests = mParameters.sharedRequests === true;
|
|
330
336
|
this.bIgnoreETag = false;
|
|
337
|
+
if ("ignoreAnnotationsFromMetadata" in mParameters
|
|
338
|
+
&& mParameters.ignoreAnnotationsFromMetadata !== true) {
|
|
339
|
+
throw new Error("Value for ignoreAnnotationsFromMetadata must be true");
|
|
340
|
+
}
|
|
331
341
|
|
|
332
342
|
// BEWARE: do not share mHeaders between _MetadataRequestor and _Requestor!
|
|
333
343
|
this.mHeaders = {"Accept-Language" : sLanguageTag};
|
|
@@ -335,7 +345,8 @@ sap.ui.define([
|
|
|
335
345
|
|
|
336
346
|
mQueryParams = Object.assign({}, mUriParameters, mParameters.metadataUrlParams);
|
|
337
347
|
this.oMetaModel = new ODataMetaModel(
|
|
338
|
-
_MetadataRequestor.create(this.mMetadataHeaders, sODataVersion,
|
|
348
|
+
_MetadataRequestor.create(this.mMetadataHeaders, sODataVersion,
|
|
349
|
+
mParameters.ignoreAnnotationsFromMetadata, mQueryParams),
|
|
339
350
|
this.sServiceUrl + "$metadata", mParameters.annotationURI, this,
|
|
340
351
|
mParameters.supportReferences, mQueryParams["sap-language"]);
|
|
341
352
|
this.oInterface = {
|
|
@@ -717,7 +728,7 @@ sap.ui.define([
|
|
|
717
728
|
* parameter (see {@link sap.ui.model.odata.v4.ODataModel#constructor}), paths with navigation
|
|
718
729
|
* properties can be included and will contribute to the "5.1.2 System Query Option $expand".
|
|
719
730
|
* @param {boolean} [mParameters.$$canonicalPath]
|
|
720
|
-
* Whether a binding relative to
|
|
731
|
+
* Whether a binding relative to an {@link sap.ui.model.odata.v4.Context} uses the canonical
|
|
721
732
|
* path computed from its context's path for data service requests; only the value
|
|
722
733
|
* <code>true</code> is allowed.
|
|
723
734
|
* @param {string} [mParameters.$$groupId]
|
|
@@ -863,7 +874,7 @@ sap.ui.define([
|
|
|
863
874
|
* An object holding the information needed for data aggregation, see
|
|
864
875
|
* {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation} for details.
|
|
865
876
|
* @param {boolean} [mParameters.$$canonicalPath]
|
|
866
|
-
* Whether a binding relative to
|
|
877
|
+
* Whether a binding relative to an {@link sap.ui.model.odata.v4.Context} uses the canonical
|
|
867
878
|
* path computed from its context's path for data service requests; only the value
|
|
868
879
|
* <code>true</code> is allowed.
|
|
869
880
|
* @param {boolean} [mParameters.$$getKeepAliveContext]
|
|
@@ -1267,6 +1278,17 @@ sap.ui.define([
|
|
|
1267
1278
|
}
|
|
1268
1279
|
};
|
|
1269
1280
|
|
|
1281
|
+
/**
|
|
1282
|
+
* Clears the session context represented by the "SAP-ContextId" header.
|
|
1283
|
+
*
|
|
1284
|
+
* @private
|
|
1285
|
+
* @since 1.111.0
|
|
1286
|
+
* @ui5-restricted sap.fe
|
|
1287
|
+
*/
|
|
1288
|
+
ODataModel.prototype.clearSessionContext = function () {
|
|
1289
|
+
this.oRequestor.clearSessionContext();
|
|
1290
|
+
};
|
|
1291
|
+
|
|
1270
1292
|
/**
|
|
1271
1293
|
* Creates a binding context for the given path. A relative path can only be resolved if a
|
|
1272
1294
|
* context is provided.
|
|
@@ -1309,7 +1331,7 @@ sap.ui.define([
|
|
|
1309
1331
|
* The binding context with the resolved path and the model instance
|
|
1310
1332
|
* @throws {Error}
|
|
1311
1333
|
* If a relative path is provided without a context or in case of unsupported parameters or
|
|
1312
|
-
* if the given context is
|
|
1334
|
+
* if the given context is an {@link sap.ui.model.odata.v4.Context}
|
|
1313
1335
|
*
|
|
1314
1336
|
* @public
|
|
1315
1337
|
* @see sap.ui.model.Model#createBindingContext
|
|
@@ -1369,7 +1391,7 @@ sap.ui.define([
|
|
|
1369
1391
|
};
|
|
1370
1392
|
|
|
1371
1393
|
/**
|
|
1372
|
-
* Creates
|
|
1394
|
+
* Creates an {@link sap.ui.core.message.Message} from a given "raw" message object. For a
|
|
1373
1395
|
* bound message, targets are resolved if they are not yet resolved. A message is called a bound
|
|
1374
1396
|
* message if is has a target, even if it is empty.
|
|
1375
1397
|
*
|
|
@@ -2509,8 +2531,10 @@ sap.ui.define([
|
|
|
2509
2531
|
/**
|
|
2510
2532
|
* Resets all property changes, created entities, and entity deletions associated with the given
|
|
2511
2533
|
* group ID which have not been successfully submitted via {@link #submitBatch}. Resets also
|
|
2512
|
-
* invalid user input for the same group ID
|
|
2513
|
-
*
|
|
2534
|
+
* invalid user input for the same group ID and (since 1.111.0) inactive contexts which had
|
|
2535
|
+
* their activation prevented (see {@link sap.ui.model.odata.v4.Context#isInactive}). This
|
|
2536
|
+
* function does not reset the execution of OData operations
|
|
2537
|
+
* (see {@link sap.ui.model.odata.v4.ODataContextBinding#execute}).
|
|
2514
2538
|
*
|
|
2515
2539
|
* @param {string} [sGroupId]
|
|
2516
2540
|
* A valid group ID as specified in {@link sap.ui.model.odata.v4.ODataModel}. If it is
|
|
@@ -2533,6 +2557,7 @@ sap.ui.define([
|
|
|
2533
2557
|
|
|
2534
2558
|
if (this.isAutoGroup(sGroupId)) {
|
|
2535
2559
|
this.oRequestor.cancelChanges("$parked." + sGroupId);
|
|
2560
|
+
this.oRequestor.cancelChanges("$inactive." + sGroupId, true);
|
|
2536
2561
|
}
|
|
2537
2562
|
this.oRequestor.cancelChanges(sGroupId);
|
|
2538
2563
|
|
|
@@ -317,7 +317,8 @@ sap.ui.define([
|
|
|
317
317
|
};
|
|
318
318
|
|
|
319
319
|
/**
|
|
320
|
-
* Changes this binding's parameters and refreshes the binding.
|
|
320
|
+
* Changes this binding's parameters and refreshes the binding. Since 1.111.0, a list binding's
|
|
321
|
+
* header context is deselected.
|
|
321
322
|
*
|
|
322
323
|
* If there are pending changes that cannot be ignored, an error is thrown. Use
|
|
323
324
|
* {@link #hasPendingChanges} to check if there are such pending changes. If there are, call
|
|
@@ -1055,7 +1056,8 @@ sap.ui.define([
|
|
|
1055
1056
|
* @override
|
|
1056
1057
|
* @see sap.ui.model.odata.v4.ODataBinding#hasPendingChangesInDependents
|
|
1057
1058
|
*/
|
|
1058
|
-
ODataParentBinding.prototype.hasPendingChangesInDependents = function (bIgnoreKeptAlive0
|
|
1059
|
+
ODataParentBinding.prototype.hasPendingChangesInDependents = function (bIgnoreKeptAlive0,
|
|
1060
|
+
bIgnoreInactiveCaches) {
|
|
1059
1061
|
return this.getDependentBindings().some(function (oDependent) {
|
|
1060
1062
|
var oCache = oDependent.oCache,
|
|
1061
1063
|
bHasPendingChanges,
|
|
@@ -1078,7 +1080,7 @@ sap.ui.define([
|
|
|
1078
1080
|
} else if (oDependent.hasPendingChangesForPath("")) {
|
|
1079
1081
|
return true;
|
|
1080
1082
|
}
|
|
1081
|
-
if (oDependent.mCacheByResourcePath) {
|
|
1083
|
+
if (oDependent.mCacheByResourcePath && !bIgnoreInactiveCaches) {
|
|
1082
1084
|
bHasPendingChanges = Object.keys(oDependent.mCacheByResourcePath)
|
|
1083
1085
|
.some(function (sPath) {
|
|
1084
1086
|
var oCacheForPath = oDependent.mCacheByResourcePath[sPath];
|
|
@@ -1090,8 +1092,8 @@ sap.ui.define([
|
|
|
1090
1092
|
return true;
|
|
1091
1093
|
}
|
|
1092
1094
|
}
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
+
return oDependent.hasPendingChangesInDependents(bIgnoreKeptAlive,
|
|
1096
|
+
bIgnoreInactiveCaches);
|
|
1095
1097
|
})
|
|
1096
1098
|
|| this.oModel.withUnresolvedBindings("hasPendingChangesInCaches",
|
|
1097
1099
|
this.getResolvedPath().slice(1));
|
|
@@ -1215,7 +1217,8 @@ sap.ui.define([
|
|
|
1215
1217
|
* @override
|
|
1216
1218
|
* @see sap.ui.model.odata.v4.ODataBinding#resetChangesInDependents
|
|
1217
1219
|
*/
|
|
1218
|
-
ODataParentBinding.prototype.resetChangesInDependents = function (aPromises
|
|
1220
|
+
ODataParentBinding.prototype.resetChangesInDependents = function (aPromises,
|
|
1221
|
+
bIgnoreInactiveCaches) {
|
|
1219
1222
|
this.getDependentBindings().forEach(function (oDependent) {
|
|
1220
1223
|
aPromises.push(oDependent.oCachePromise.then(function (oCache) {
|
|
1221
1224
|
if (oCache) {
|
|
@@ -1225,14 +1228,14 @@ sap.ui.define([
|
|
|
1225
1228
|
}).unwrap());
|
|
1226
1229
|
|
|
1227
1230
|
// mCacheByResourcePath may have changes nevertheless
|
|
1228
|
-
if (oDependent.mCacheByResourcePath) {
|
|
1231
|
+
if (oDependent.mCacheByResourcePath && !bIgnoreInactiveCaches) {
|
|
1229
1232
|
Object.keys(oDependent.mCacheByResourcePath).forEach(function (sPath) {
|
|
1230
1233
|
oDependent.mCacheByResourcePath[sPath].resetChangesForPath("");
|
|
1231
1234
|
});
|
|
1232
1235
|
}
|
|
1233
1236
|
// Reset dependents, they might have no cache, but pending changes in
|
|
1234
1237
|
// mCacheByResourcePath
|
|
1235
|
-
oDependent.resetChangesInDependents(aPromises);
|
|
1238
|
+
oDependent.resetChangesInDependents(aPromises, bIgnoreInactiveCaches);
|
|
1236
1239
|
});
|
|
1237
1240
|
};
|
|
1238
1241
|
|
|
@@ -1280,7 +1283,7 @@ sap.ui.define([
|
|
|
1280
1283
|
* @param {boolean} bAsPrerenderingTask
|
|
1281
1284
|
* Whether resume is done as a prerendering task
|
|
1282
1285
|
* @throws {Error}
|
|
1283
|
-
* If this binding is relative to
|
|
1286
|
+
* If this binding is relative to an {@link sap.ui.model.odata.v4.Context} or if it is an
|
|
1284
1287
|
* operation binding or if it is not suspended
|
|
1285
1288
|
*
|
|
1286
1289
|
* @private
|
|
@@ -1328,7 +1331,7 @@ sap.ui.define([
|
|
|
1328
1331
|
* @throws {Error}
|
|
1329
1332
|
* If this binding
|
|
1330
1333
|
* <ul>
|
|
1331
|
-
* <li> is relative to
|
|
1334
|
+
* <li> is relative to an {@link sap.ui.model.odata.v4.Context},
|
|
1332
1335
|
* <li> is an operation binding,
|
|
1333
1336
|
* <li> has {@link sap.ui.model.Binding#isSuspended} set to <code>false</code>,
|
|
1334
1337
|
* <li> is not a root binding. Use {@link #getRootBinding} to determine the root binding.
|
|
@@ -1353,7 +1356,7 @@ sap.ui.define([
|
|
|
1353
1356
|
*
|
|
1354
1357
|
* @returns {Promise} A promise which is resolved when the binding is resumed.
|
|
1355
1358
|
* @throws {Error}
|
|
1356
|
-
* If this binding is relative to
|
|
1359
|
+
* If this binding is relative to an {@link sap.ui.model.odata.v4.Context} or if it is an
|
|
1357
1360
|
* operation binding or if it is not suspended
|
|
1358
1361
|
*
|
|
1359
1362
|
* @protected
|
|
@@ -1394,7 +1397,7 @@ sap.ui.define([
|
|
|
1394
1397
|
* @throws {Error}
|
|
1395
1398
|
* If this binding
|
|
1396
1399
|
* <ul>
|
|
1397
|
-
* <li> is relative to
|
|
1400
|
+
* <li> is relative to an {@link sap.ui.model.odata.v4.Context},
|
|
1398
1401
|
* <li> is an operation binding,
|
|
1399
1402
|
* <li> has {@link sap.ui.model.Binding#isSuspended} set to <code>true</code>,
|
|
1400
1403
|
* <li> has pending changes that cannot be ignored,
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @mixes sap.ui.model.odata.v4.ODataBinding
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.37.0
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.111.0
|
|
46
46
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
47
47
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
48
48
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -738,7 +738,7 @@ sap.ui.define([
|
|
|
738
738
|
* <li> the new value is not primitive.
|
|
739
739
|
* <li> no value has been read before and the binding does not have the parameter
|
|
740
740
|
* <code>$$noPatch</code>.
|
|
741
|
-
* <li> the binding is not relative to
|
|
741
|
+
* <li> the binding is not relative to an {@link sap.ui.model.odata.v4.Context}.
|
|
742
742
|
* <li> the binding has the parameter <code>$$noPatch</code> and a group ID has been given.
|
|
743
743
|
* </ul>
|
|
744
744
|
*
|