@openui5/sap.ui.core 1.133.0 → 1.134.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/.reuse/dep5 +0 -7
- package/THIRDPARTY.txt +1 -22
- 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/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/util/LoaderExtensions.js +2 -8
- package/src/sap/base/util/mixedFetch.js +0 -1
- 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/base/util/syncFetch.js +0 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +3 -3
- 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 +14 -11
- 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/base/SyncPromise.js +17 -1
- package/src/sap/ui/core/.library +1 -6
- package/src/sap/ui/core/AppCacheBuster.js +4 -9
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +1 -1
- 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 +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +2 -2
- 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 +1 -1
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -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 +1 -1
- package/src/sap/ui/core/IconPool.js +20 -3
- 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 +1 -1
- package/src/sap/ui/core/LocaleData.js +6 -1
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- 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 +1 -1
- 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/date/UI5Date.js +1 -1
- 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 +14 -7
- 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 +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/fieldhelp/FieldHelp.js +186 -84
- package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +2 -0
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +10 -11
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +32 -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/messagebundle_ko.properties +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/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 +1 -1
- 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/theming/Parameters.js +1 -6
- 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/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/webc/WebComponent.js +1 -1
- package/src/sap/ui/core/webc/WebComponentMetadata.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 +1 -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/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +5 -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 -1
- 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 +1 -1
- package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +51 -13
- 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 +46 -14
- package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
- package/src/sap/ui/model/odata/ODataModel.js +2 -2
- 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 +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- 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 +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- 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 +4 -3
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataModel.js +26 -17
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +5 -8
- package/src/sap/ui/model/odata/v4/ODataBinding.js +7 -6
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -4
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +116 -44
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +3 -3
- package/src/sap/ui/model/odata/v4/ODataModel.js +52 -31
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +4 -3
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +3 -4
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +25 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +9 -9
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +84 -11
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +18 -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 +1 -1
- 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/test/BranchTracking.js +1 -1
- package/src/sap/ui/test/TestUtils.js +82 -14
- package/src/sap/ui/test/actions/EnterText.js +2 -20
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/starter/_setupAndStart.js +11 -2
- package/src/sap/ui/test/starter/_utils.js +0 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader.js +4 -1
- package/test/sap/ui/qunit/TestRunner.js +4 -1
- package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +0 -5
|
@@ -93,7 +93,7 @@ sap.ui.define([
|
|
|
93
93
|
serviceUrl : true,
|
|
94
94
|
sharedRequests : true,
|
|
95
95
|
supportReferences : true,
|
|
96
|
-
/** @deprecated As of
|
|
96
|
+
/** @deprecated As of version 1.110.0 */
|
|
97
97
|
synchronizationMode : true,
|
|
98
98
|
updateGroupId : true,
|
|
99
99
|
withCredentials : true
|
|
@@ -240,7 +240,7 @@ sap.ui.define([
|
|
|
240
240
|
* @extends sap.ui.model.Model
|
|
241
241
|
* @public
|
|
242
242
|
* @since 1.37.0
|
|
243
|
-
* @version 1.
|
|
243
|
+
* @version 1.134.0
|
|
244
244
|
*/
|
|
245
245
|
ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
246
246
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
|
|
@@ -278,7 +278,7 @@ sap.ui.define([
|
|
|
278
278
|
// do not pass any parameters to Model
|
|
279
279
|
Model.call(this);
|
|
280
280
|
|
|
281
|
-
/** @deprecated As of
|
|
281
|
+
/** @deprecated As of version 1.110.0 */
|
|
282
282
|
if ("synchronizationMode" in mParameters && mParameters.synchronizationMode !== "None") {
|
|
283
283
|
throw new Error("Synchronization mode must be 'None'");
|
|
284
284
|
}
|
|
@@ -774,8 +774,8 @@ sap.ui.define([
|
|
|
774
774
|
* @param {string|string[]} [mParameters.$select]
|
|
775
775
|
* A comma separated list or an array of items which determine the value for the
|
|
776
776
|
* "5.1.3 System Query Option $select". Since 1.75.0, when using the "autoExpandSelect" model
|
|
777
|
-
* parameter (see {@link
|
|
778
|
-
*
|
|
777
|
+
* parameter (see {@link #constructor}), paths with navigation properties can be included and
|
|
778
|
+
* will contribute to the "5.1.2 System Query Option $expand".
|
|
779
779
|
* @param {boolean} [mParameters.$$canonicalPath]
|
|
780
780
|
* Whether a binding relative to an {@link sap.ui.model.odata.v4.Context} uses the canonical
|
|
781
781
|
* path computed from its context's path for data service requests; only the value
|
|
@@ -783,7 +783,7 @@ sap.ui.define([
|
|
|
783
783
|
* @param {string} [mParameters.$$groupId]
|
|
784
784
|
* The group ID to be used for <b>read</b> requests initiated by this binding; if not
|
|
785
785
|
* specified, either the parent binding's group ID (if the binding is relative) or the
|
|
786
|
-
* model's group ID is used, see {@link
|
|
786
|
+
* model's group ID is used, see {@link #constructor}.
|
|
787
787
|
* Valid values are <code>undefined</code>, '$auto', '$auto.*', '$direct' or application group
|
|
788
788
|
* IDs as specified in {@link sap.ui.model.odata.v4.ODataModel}.
|
|
789
789
|
* @param {boolean} [mParameters.$$inheritExpandSelect]
|
|
@@ -802,8 +802,7 @@ sap.ui.define([
|
|
|
802
802
|
* @param {string} [mParameters.$$updateGroupId]
|
|
803
803
|
* The group ID to be used for <b>update</b> requests initiated by this binding;
|
|
804
804
|
* if not specified, either the parent binding's update group ID (if the binding is relative)
|
|
805
|
-
* or the model's update group ID is used, see
|
|
806
|
-
* {@link sap.ui.model.odata.v4.ODataModel#constructor}.
|
|
805
|
+
* or the model's update group ID is used, see {@link #constructor}.
|
|
807
806
|
* For valid values, see parameter "$$groupId".
|
|
808
807
|
* @returns {sap.ui.model.odata.v4.ODataContextBinding}
|
|
809
808
|
* The context binding
|
|
@@ -917,8 +916,8 @@ sap.ui.define([
|
|
|
917
916
|
* @param {string|string[]} [mParameters.$select]
|
|
918
917
|
* A comma separated list or an array of items which determine the value for the
|
|
919
918
|
* "5.1.3 System Query Option $select". Since 1.75.0, when using the "autoExpandSelect" model
|
|
920
|
-
* parameter (see {@link
|
|
921
|
-
*
|
|
919
|
+
* parameter (see {@link #constructor}), paths with navigation properties can be included and
|
|
920
|
+
* will contribute to the "5.1.2 System Query Option $expand".
|
|
922
921
|
* @param {object} [mParameters.$$aggregation]
|
|
923
922
|
* An object holding the information needed for data aggregation, see
|
|
924
923
|
* {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation} for details.
|
|
@@ -940,7 +939,7 @@ sap.ui.define([
|
|
|
940
939
|
* @param {string} [mParameters.$$groupId]
|
|
941
940
|
* The group ID to be used for <b>read</b> requests initiated by this binding; if not
|
|
942
941
|
* specified, either the parent binding's group ID (if the binding is relative) or the
|
|
943
|
-
* model's group ID is used, see {@link
|
|
942
|
+
* model's group ID is used, see {@link #constructor}.
|
|
944
943
|
* Valid values are <code>undefined</code>, '$auto', '$auto.*', '$direct' or application group
|
|
945
944
|
* IDs as specified in {@link sap.ui.model.odata.v4.ODataModel}.
|
|
946
945
|
* @param {sap.ui.model.odata.OperationMode} [mParameters.$$operationMode]
|
|
@@ -964,13 +963,13 @@ sap.ui.define([
|
|
|
964
963
|
* the main list becoming available faster, while the separate properties are merged as soon
|
|
965
964
|
* as the data is received. Note that the separate properties must be single valued and part
|
|
966
965
|
* of the '$expand' system query option, either automatically via the "autoExpandSelect" model
|
|
967
|
-
* parameter (see {@link
|
|
968
|
-
*
|
|
966
|
+
* parameter (see {@link #constructor}) or manually. The <code>$$separate</code> parameter
|
|
967
|
+
* must not be combined with <code>$$aggregation</code>.
|
|
969
968
|
* @param {boolean} [mParameters.$$sharedRequest]
|
|
970
969
|
* Whether multiple bindings for the same resource path share the data, so that it is
|
|
971
970
|
* requested only once.
|
|
972
971
|
* This parameter can be inherited from the model's parameter "sharedRequests", see
|
|
973
|
-
* {@link
|
|
972
|
+
* {@link #constructor}. Supported since 1.80.0
|
|
974
973
|
* <b>Note:</b> These bindings are read-only, so they may be especially useful for value
|
|
975
974
|
* lists; state messages (since 1.108.0) and the following APIs are <b>not</b> allowed
|
|
976
975
|
* <ul>
|
|
@@ -1005,8 +1004,7 @@ sap.ui.define([
|
|
|
1005
1004
|
* @param {string} [mParameters.$$updateGroupId]
|
|
1006
1005
|
* The group ID to be used for <b>update</b> requests initiated by this binding;
|
|
1007
1006
|
* if not specified, either the parent binding's update group ID (if the binding is relative)
|
|
1008
|
-
* or the model's update group ID is used,
|
|
1009
|
-
* see {@link sap.ui.model.odata.v4.ODataModel#constructor}.
|
|
1007
|
+
* or the model's update group ID is used, see {@link #constructor}.
|
|
1010
1008
|
* For valid values, see parameter "$$groupId".
|
|
1011
1009
|
* @returns {sap.ui.model.odata.v4.ODataListBinding}
|
|
1012
1010
|
* The list binding
|
|
@@ -1081,7 +1079,7 @@ sap.ui.define([
|
|
|
1081
1079
|
* @param {string} [mParameters.$$groupId]
|
|
1082
1080
|
* The group ID to be used for <b>read</b> requests initiated by this binding; if not
|
|
1083
1081
|
* specified, either the parent binding's group ID (if the binding is relative) or the
|
|
1084
|
-
* model's group ID is used, see {@link
|
|
1082
|
+
* model's group ID is used, see {@link #constructor}.
|
|
1085
1083
|
* Valid values are <code>undefined</code>, '$auto', '$auto.*', '$direct' or application group
|
|
1086
1084
|
* IDs as specified in {@link sap.ui.model.odata.v4.ODataModel}.
|
|
1087
1085
|
* @param {boolean} [mParameters.$$ignoreMessages]
|
|
@@ -1842,7 +1840,7 @@ sap.ui.define([
|
|
|
1842
1840
|
* The group ID
|
|
1843
1841
|
*
|
|
1844
1842
|
* @public
|
|
1845
|
-
* @see
|
|
1843
|
+
* @see #constructor
|
|
1846
1844
|
* @since 1.41.0
|
|
1847
1845
|
*/
|
|
1848
1846
|
ODataModel.prototype.getGroupId = function () {
|
|
@@ -1861,7 +1859,7 @@ sap.ui.define([
|
|
|
1861
1859
|
* @throws {Error} If the name of the group property is not 'submit'
|
|
1862
1860
|
*
|
|
1863
1861
|
* @private
|
|
1864
|
-
* @see
|
|
1862
|
+
* @see #constructor
|
|
1865
1863
|
*/
|
|
1866
1864
|
ODataModel.prototype.getGroupProperty = function (sGroupId, sPropertyName) {
|
|
1867
1865
|
switch (sPropertyName) {
|
|
@@ -1892,7 +1890,7 @@ sap.ui.define([
|
|
|
1892
1890
|
*
|
|
1893
1891
|
* @public
|
|
1894
1892
|
* @see #changeHttpHeaders
|
|
1895
|
-
* @since 1.71
|
|
1893
|
+
* @since 1.71.0
|
|
1896
1894
|
*/
|
|
1897
1895
|
ODataModel.prototype.getHttpHeaders = function (bIncludeContextId) {
|
|
1898
1896
|
var mHeadersCopy = Object.assign({}, this.mHeaders);
|
|
@@ -2173,8 +2171,7 @@ sap.ui.define([
|
|
|
2173
2171
|
|
|
2174
2172
|
/**
|
|
2175
2173
|
* Returns this model's root URL of the service to request data from (as defined by the
|
|
2176
|
-
* "serviceUrl" model parameter, see {@link
|
|
2177
|
-
* without query options.
|
|
2174
|
+
* "serviceUrl" model parameter, see {@link #constructor}), without query options.
|
|
2178
2175
|
*
|
|
2179
2176
|
* @returns {string} The service URL
|
|
2180
2177
|
*
|
|
@@ -2192,7 +2189,7 @@ sap.ui.define([
|
|
|
2192
2189
|
* The update group ID
|
|
2193
2190
|
*
|
|
2194
2191
|
* @public
|
|
2195
|
-
* @see
|
|
2192
|
+
* @see #constructor
|
|
2196
2193
|
* @since 1.41.0
|
|
2197
2194
|
*/
|
|
2198
2195
|
ODataModel.prototype.getUpdateGroupId = function () {
|
|
@@ -2692,7 +2689,7 @@ sap.ui.define([
|
|
|
2692
2689
|
* in case of success, or rejected with an instance of <code>Error</code> in case of failure,
|
|
2693
2690
|
* e.g. when the given context does not point to an entity
|
|
2694
2691
|
*
|
|
2695
|
-
* @deprecated
|
|
2692
|
+
* @deprecated As of version 1.39.0
|
|
2696
2693
|
* Use {@link sap.ui.model.odata.v4.Context#requestCanonicalPath} instead.
|
|
2697
2694
|
* @public
|
|
2698
2695
|
* @since 1.37.0
|
|
@@ -2770,7 +2767,7 @@ sap.ui.define([
|
|
|
2770
2767
|
* given group ID are running.
|
|
2771
2768
|
*
|
|
2772
2769
|
* @public
|
|
2773
|
-
* @see
|
|
2770
|
+
* @see #constructor
|
|
2774
2771
|
* @see #hasPendingChanges
|
|
2775
2772
|
* @since 1.39.0
|
|
2776
2773
|
*/
|
|
@@ -2857,6 +2854,31 @@ sap.ui.define([
|
|
|
2857
2854
|
this.oAnnotationChangePromise = oAnnotationChangePromise;
|
|
2858
2855
|
};
|
|
2859
2856
|
|
|
2857
|
+
/**
|
|
2858
|
+
* Sets the "odata.continue-on-error" preference once for the <b>current</b> batch request
|
|
2859
|
+
* associated with the given group ID. This method can be called early on, when that batch queue
|
|
2860
|
+
* is still empty, or even synchronously after {@link #submitBatch} - just as long as the $batch
|
|
2861
|
+
* request is not already being sent to the server. It needs to be called again for future
|
|
2862
|
+
* batch requests with the same group ID.
|
|
2863
|
+
*
|
|
2864
|
+
* @param {string} sGroupId
|
|
2865
|
+
* A valid group ID as specified in {@link sap.ui.model.odata.v4.ODataModel}. Note that
|
|
2866
|
+
* '$auto' should be avoided to control exactly which requests are affected by this
|
|
2867
|
+
* preference. Using a {@link module:sap/base/util/uid UID} may be one way to achieve this,
|
|
2868
|
+
* but take care to replace dashes with underscores.
|
|
2869
|
+
* @throws {Error}
|
|
2870
|
+
* If the given group ID is not a valid group ID or has
|
|
2871
|
+
* {@link sap.ui.model.odata.v4.SubmitMode.Direct}
|
|
2872
|
+
*
|
|
2873
|
+
* @private
|
|
2874
|
+
* @since 1.134.0
|
|
2875
|
+
* @ui5-restricted sap.fe
|
|
2876
|
+
*/
|
|
2877
|
+
ODataModel.prototype.setContinueOnError = function (sGroupId) {
|
|
2878
|
+
this.checkBatchGroupId(sGroupId);
|
|
2879
|
+
this.oRequestor.setContinueOnError(sGroupId);
|
|
2880
|
+
};
|
|
2881
|
+
|
|
2860
2882
|
/**
|
|
2861
2883
|
* Sets a listener for HTTP responses which is called every time with the full set of headers
|
|
2862
2884
|
* received.
|
|
@@ -2923,7 +2945,7 @@ sap.ui.define([
|
|
|
2923
2945
|
* There are several preconditions on the usage of this API:
|
|
2924
2946
|
* <ul>
|
|
2925
2947
|
* <li> Optimistic batch handling requires the "earlyRequests" model parameter; see
|
|
2926
|
-
* {@link
|
|
2948
|
+
* {@link #constructor},
|
|
2927
2949
|
* <li> the setter has to be called before the first $batch request is sent,
|
|
2928
2950
|
* <li> the setter may only be called once for an OData model,
|
|
2929
2951
|
* <li> the callback has to return a boolean, or a <code>Promise</code> resolving with a
|
|
@@ -2979,9 +3001,8 @@ sap.ui.define([
|
|
|
2979
3001
|
* @param {function(Error):Promise<undefined>} fnRetryAfter
|
|
2980
3002
|
* A "Retry-After" handler
|
|
2981
3003
|
*
|
|
2982
|
-
* @
|
|
2983
|
-
* @
|
|
2984
|
-
* @since 1.129.0
|
|
3004
|
+
* @public
|
|
3005
|
+
* @since 1.134.0
|
|
2985
3006
|
*/
|
|
2986
3007
|
ODataModel.prototype.setRetryAfterHandler = function (fnRetryAfter) {
|
|
2987
3008
|
this.fnRetryAfter = fnRetryAfter;
|
|
@@ -3110,14 +3131,14 @@ sap.ui.define([
|
|
|
3110
3131
|
});
|
|
3111
3132
|
};
|
|
3112
3133
|
|
|
3113
|
-
/** @deprecated */
|
|
3134
|
+
/** @deprecated As of version 1.120.0 */
|
|
3114
3135
|
(() => {
|
|
3115
3136
|
const fnOriginalExtend = ODataModel.extend;
|
|
3116
3137
|
/**
|
|
3117
3138
|
* DO NOT EXTEND THIS CLASS.
|
|
3118
3139
|
*
|
|
3119
3140
|
* @returns {function} The created class / constructor function
|
|
3120
|
-
* @deprecated
|
|
3141
|
+
* @deprecated As of version 1.120.0
|
|
3121
3142
|
*/
|
|
3122
3143
|
ODataModel.extend = function () {
|
|
3123
3144
|
Log.error("[FUTURE FATAL] sap.ui.model.odata.v4.ODataModel must not be extended");
|
|
@@ -294,8 +294,9 @@ sap.ui.define([
|
|
|
294
294
|
* @throws {Error} If
|
|
295
295
|
* <ul>
|
|
296
296
|
* <li> there are pending changes that cannot be ignored,
|
|
297
|
-
* <li> the binding is
|
|
298
|
-
* {@link sap.ui.model.odata.v4.ODataListBinding#create deep create}
|
|
297
|
+
* <li> the binding is part of a
|
|
298
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding#create deep create} because it is
|
|
299
|
+
* relative to a {@link sap.ui.model.odata.v4.Context#isTransient transient} context,
|
|
299
300
|
* <li> <code>mParameters</code> is missing, contains binding-specific or unsupported
|
|
300
301
|
* parameters, contains unsupported values, or contains the property "$expand" or
|
|
301
302
|
* "$select" when the model is in auto-$expand/$select mode.
|
|
@@ -644,7 +645,7 @@ sap.ui.define([
|
|
|
644
645
|
* Destroys the object. The object must not be used anymore after this function was called.
|
|
645
646
|
*
|
|
646
647
|
* @public
|
|
647
|
-
* @since 1.61
|
|
648
|
+
* @since 1.61.0
|
|
648
649
|
*/
|
|
649
650
|
ODataParentBinding.prototype.destroy = function () {
|
|
650
651
|
this.mAggregatedQueryOptions = undefined;
|
|
@@ -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.134.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
|
|
@@ -136,8 +136,7 @@ sap.ui.define([
|
|
|
136
136
|
* when it gets a new type via {@link #setType}, or when the data state is reset via
|
|
137
137
|
* {@link sap.ui.model.odata.v4.ODataModel#resetChanges},
|
|
138
138
|
* {@link sap.ui.model.odata.v4.ODataContextBinding#resetChanges},
|
|
139
|
-
* {@link sap.ui.model.odata.v4.ODataListBinding#resetChanges} or
|
|
140
|
-
* {@link sap.ui.model.odata.v4.ODataPropertyBinding#resetChanges},
|
|
139
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding#resetChanges} or {@link #resetChanges},
|
|
141
140
|
* <li> {@link sap.ui.model.ChangeReason.Refresh Refresh} when the binding is refreshed,
|
|
142
141
|
* <li> {@link sap.ui.model.ChangeReason.Context Context} when the parent context is
|
|
143
142
|
* changed.
|
|
@@ -560,7 +559,7 @@ sap.ui.define([
|
|
|
560
559
|
* determined, or rejected in case of an error
|
|
561
560
|
*
|
|
562
561
|
* @public
|
|
563
|
-
* @since 1.69
|
|
562
|
+
* @since 1.69.0
|
|
564
563
|
*/
|
|
565
564
|
ODataPropertyBinding.prototype.requestValue = function () {
|
|
566
565
|
var that = this;
|
|
@@ -251,7 +251,13 @@ sap.ui.define([
|
|
|
251
251
|
if (oKeptElement && oKeptElement !== oElement
|
|
252
252
|
&& !(oKeptElement instanceof SyncPromise)) {
|
|
253
253
|
if (!sHierarchyQualifier || aElements.includes(oKeptElement)) {
|
|
254
|
-
|
|
254
|
+
const sNewPredicate = oCache.fixDuplicatePredicate(oElement, sPredicate);
|
|
255
|
+
if (sNewPredicate) {
|
|
256
|
+
sPredicate = sNewPredicate;
|
|
257
|
+
oKeptElement = oElement; // leads to no-op for _Helper.updateNonExisting
|
|
258
|
+
} else {
|
|
259
|
+
throw new Error("Duplicate key predicate: " + sPredicate);
|
|
260
|
+
}
|
|
255
261
|
}
|
|
256
262
|
if (!oKeptElement["@odata.etag"]
|
|
257
263
|
|| oElement["@odata.etag"] === oKeptElement["@odata.etag"]) {
|
|
@@ -706,6 +712,9 @@ sap.ui.define([
|
|
|
706
712
|
if (sParentFilter) {
|
|
707
713
|
oCache.$parentFilter = sParentFilter;
|
|
708
714
|
}
|
|
715
|
+
if (!oAggregation.hierarchyQualifier) {
|
|
716
|
+
oCache.fixDuplicatePredicate = _AggregationCache.fixDuplicatePredicate.bind(oCache);
|
|
717
|
+
}
|
|
709
718
|
|
|
710
719
|
return oCache;
|
|
711
720
|
};
|
|
@@ -2771,5 +2780,20 @@ sap.ui.define([
|
|
|
2771
2780
|
sDeepResourcePath, bSharedRequest);
|
|
2772
2781
|
};
|
|
2773
2782
|
|
|
2783
|
+
// @override sap.ui.model.odata.v4.lib._Cache#fixDuplicatePredicate
|
|
2784
|
+
_AggregationCache.fixDuplicatePredicate = function (oElement, sPredicate) {
|
|
2785
|
+
if (sPredicate === "('')" || sPredicate.includes("=''")) {
|
|
2786
|
+
Log.warning("Duplicate key predicate: " + sPredicate, this.toString(),
|
|
2787
|
+
"sap.ui.model.odata.v4.lib._AggregationCache");
|
|
2788
|
+
const sNewPredicate = sPredicate.slice(0, -1) + ",$duplicate=" + _Helper.uid() + ")";
|
|
2789
|
+
_Helper.setPrivateAnnotation(oElement, "predicate", sNewPredicate);
|
|
2790
|
+
if (this.aElements.$byPredicate[sPredicate] === oElement) {
|
|
2791
|
+
delete this.aElements.$byPredicate[sPredicate];
|
|
2792
|
+
this.aElements.$byPredicate[sNewPredicate] = oElement;
|
|
2793
|
+
}
|
|
2794
|
+
return sNewPredicate;
|
|
2795
|
+
}
|
|
2796
|
+
};
|
|
2797
|
+
|
|
2774
2798
|
return _AggregationCache;
|
|
2775
2799
|
}, /* bExport= */false);
|
|
@@ -1190,9 +1190,9 @@ sap.ui.define([
|
|
|
1190
1190
|
// returns true if the array contains a filter affected by the side effect path
|
|
1191
1191
|
function hasAffectedFilter(aFilters0) {
|
|
1192
1192
|
return aFilters0.some(function (oFilter) {
|
|
1193
|
-
return oFilter.
|
|
1194
|
-
? hasAffectedFilter(oFilter.
|
|
1195
|
-
: isAffected(oFilter.
|
|
1193
|
+
return oFilter.getFilters()
|
|
1194
|
+
? hasAffectedFilter(oFilter.getFilters())
|
|
1195
|
+
: isAffected(oFilter.getPath());
|
|
1196
1196
|
});
|
|
1197
1197
|
}
|
|
1198
1198
|
|
|
@@ -1330,9 +1330,9 @@ sap.ui.define([
|
|
|
1330
1330
|
* Whether the filter relates to an aggregate
|
|
1331
1331
|
*/
|
|
1332
1332
|
function isRelatedToAggregate(oFilter0) {
|
|
1333
|
-
return oFilter0.
|
|
1334
|
-
? oFilter0.
|
|
1335
|
-
: oFilter0.
|
|
1333
|
+
return oFilter0.getFilters()
|
|
1334
|
+
? oFilter0.getFilters().some(isRelatedToAggregate)
|
|
1335
|
+
: oFilter0.getPath() in oAggregation.aggregate;
|
|
1336
1336
|
}
|
|
1337
1337
|
|
|
1338
1338
|
/*
|
|
@@ -1357,9 +1357,9 @@ sap.ui.define([
|
|
|
1357
1357
|
* A filter
|
|
1358
1358
|
*/
|
|
1359
1359
|
function split(oFilter0) {
|
|
1360
|
-
if (oFilter0.
|
|
1361
|
-
oFilter0.
|
|
1362
|
-
} else if (oFilter0.
|
|
1360
|
+
if (oFilter0.getFilters() && oFilter0.isAnd()) {
|
|
1361
|
+
oFilter0.getFilters().forEach(split);
|
|
1362
|
+
} else if (oFilter0.getPath() && isRelatedToUnit(oFilter0.getPath())) {
|
|
1363
1363
|
aFiltersNoAggregate.push(oFilter0);
|
|
1364
1364
|
aFiltersNoThese.push(oFilter0); // avoid "$these/..." here
|
|
1365
1365
|
aFiltersOnAggregate.push(oFilter0);
|
|
@@ -2913,6 +2913,24 @@ sap.ui.define([
|
|
|
2913
2913
|
this.oSyncPromiseAll = undefined; // from now on, fetchValue has to wait again
|
|
2914
2914
|
};
|
|
2915
2915
|
|
|
2916
|
+
/**
|
|
2917
|
+
* Checks whether an element with a duplicate key predicate is allowed to be imported into
|
|
2918
|
+
* aElements, and if so, creates a new unique key predicate.
|
|
2919
|
+
*
|
|
2920
|
+
* @param {object} oElement
|
|
2921
|
+
* The element with the duplicate key predicate
|
|
2922
|
+
* @param {string} sPredicate
|
|
2923
|
+
* The duplicate key predicate
|
|
2924
|
+
* @returns {string|undefined}
|
|
2925
|
+
* The newly created predicate, or <code>undefined</code> if the predicate cannot be fixed
|
|
2926
|
+
*
|
|
2927
|
+
* @public
|
|
2928
|
+
*/
|
|
2929
|
+
// eslint-disable-next-line no-unused-vars
|
|
2930
|
+
_CollectionCache.prototype.fixDuplicatePredicate = function (oElement, sPredicate) {
|
|
2931
|
+
// Note: overridden by _AggregationCache.fixDuplicatePredicate
|
|
2932
|
+
};
|
|
2933
|
+
|
|
2916
2934
|
/**
|
|
2917
2935
|
* Returns a filter that excludes all created entities in this cache's collection and all
|
|
2918
2936
|
* entities that have been deleted on the client, but not on the server yet.
|
|
@@ -3178,28 +3196,35 @@ sap.ui.define([
|
|
|
3178
3196
|
if (sPredicate) {
|
|
3179
3197
|
oKeptElement = aElements.$byPredicate[sPredicate];
|
|
3180
3198
|
if (oKeptElement) {
|
|
3199
|
+
if (iCreated && aElements.lastIndexOf(oKeptElement, iCreated - 1) >= 0) {
|
|
3200
|
+
// client-side filter for newly created persisted
|
|
3201
|
+
iOffset += 1;
|
|
3202
|
+
aElements[iStart + iResultLength - iOffset] = undefined;
|
|
3203
|
+
continue;
|
|
3204
|
+
}
|
|
3205
|
+
|
|
3206
|
+
const iIndex = aElements.indexOf(oKeptElement);
|
|
3207
|
+
if (iIndex >= 0 && iIndex !== iStart + i - iOffset) {
|
|
3208
|
+
const sNewPredicate = this.fixDuplicatePredicate(oElement, sPredicate);
|
|
3209
|
+
if (sNewPredicate) {
|
|
3210
|
+
sPredicate = sNewPredicate;
|
|
3211
|
+
oKeptElement = oElement; // leads to no-op for _Helper.updateNonExisting
|
|
3212
|
+
} else {
|
|
3213
|
+
throw new Error("Duplicate key predicate: " + sPredicate);
|
|
3214
|
+
}
|
|
3215
|
+
}
|
|
3216
|
+
|
|
3181
3217
|
// only check for ETag change if the cache contains one; otherwise either the
|
|
3182
3218
|
// cache element is empty (via #addKeptElement) or the server did not send
|
|
3183
3219
|
// one last time
|
|
3184
3220
|
if (!oKeptElement["@odata.etag"]
|
|
3185
3221
|
|| oElement["@odata.etag"] === oKeptElement["@odata.etag"]) {
|
|
3186
|
-
if (iCreated && aElements.lastIndexOf(oKeptElement, iCreated - 1) >= 0) {
|
|
3187
|
-
// client-side filter for newly created persisted
|
|
3188
|
-
iOffset += 1;
|
|
3189
|
-
aElements[iStart + iResultLength - iOffset] = undefined;
|
|
3190
|
-
continue;
|
|
3191
|
-
}
|
|
3192
3222
|
_Helper.updateNonExisting(oKeptElement, oElement);
|
|
3193
3223
|
oElement = oKeptElement;
|
|
3194
3224
|
} else if (this.hasPendingChangesForPath(sPredicate)) {
|
|
3195
3225
|
throw new Error("Modified on client and on server: "
|
|
3196
3226
|
+ this.sResourcePath + sPredicate);
|
|
3197
3227
|
} // else: ETag changed, ignore kept element!
|
|
3198
|
-
|
|
3199
|
-
const iIndex = aElements.indexOf(oKeptElement);
|
|
3200
|
-
if (iIndex >= 0 && iIndex !== iStart + i - iOffset) {
|
|
3201
|
-
throw new Error("Duplicate key predicate: " + sPredicate);
|
|
3202
|
-
}
|
|
3203
3228
|
}
|
|
3204
3229
|
aElements.$byPredicate[sPredicate] = oElement;
|
|
3205
3230
|
}
|
|
@@ -3683,6 +3708,54 @@ sap.ui.define([
|
|
|
3683
3708
|
return oPromise;
|
|
3684
3709
|
};
|
|
3685
3710
|
|
|
3711
|
+
/**
|
|
3712
|
+
* Sends a request for the elements identified by the given key predicates. Returns predicates
|
|
3713
|
+
* for elements matching the current filter, arranged according to the current sort order.
|
|
3714
|
+
*
|
|
3715
|
+
* @param {string[]} aPredicates
|
|
3716
|
+
* A list of key predicates for known elements, in no special order
|
|
3717
|
+
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
3718
|
+
* A lock for the group ID
|
|
3719
|
+
* @returns {Promise<string[]>}
|
|
3720
|
+
* A promise that resolves with an array of predicates (see above), or rejects with an
|
|
3721
|
+
* instance of <code>Error</code> in case of failure, for exmaple if the cache is shared
|
|
3722
|
+
*
|
|
3723
|
+
* @public
|
|
3724
|
+
*/
|
|
3725
|
+
_CollectionCache.prototype.requestFilteredOrderedPredicates = async function (aPredicates,
|
|
3726
|
+
oGroupLock) {
|
|
3727
|
+
this.checkSharedRequest();
|
|
3728
|
+
|
|
3729
|
+
const mTypeForMetaPath = this.getTypes();
|
|
3730
|
+
const aKeyFilters = aPredicates.map((sPredicate) => _Helper.getKeyFilter(
|
|
3731
|
+
this.aElements.$byPredicate[sPredicate], this.sMetaPath, mTypeForMetaPath));
|
|
3732
|
+
|
|
3733
|
+
const mQueryOptions = {...this.mQueryOptions};
|
|
3734
|
+
delete mQueryOptions.$count;
|
|
3735
|
+
mQueryOptions.$filter = mQueryOptions.$filter
|
|
3736
|
+
? `${mQueryOptions.$filter} and (${aKeyFilters.join(" or ")})`
|
|
3737
|
+
: aKeyFilters.join(" or ");
|
|
3738
|
+
mQueryOptions.$top = aKeyFilters.length;
|
|
3739
|
+
const sResourcePath = this.sResourcePath
|
|
3740
|
+
+ this.oRequestor.buildQueryString(this.sMetaPath, mQueryOptions, false, true, true);
|
|
3741
|
+
|
|
3742
|
+
const oResponse = await this.oRequestor.request("GET", sResourcePath, oGroupLock);
|
|
3743
|
+
|
|
3744
|
+
this.visitResponse(oResponse, mTypeForMetaPath, undefined, undefined, 0);
|
|
3745
|
+
|
|
3746
|
+
return oResponse.value.map((oNewElement) => {
|
|
3747
|
+
const sPredicate = _Helper.getPrivateAnnotation(oNewElement, "predicate");
|
|
3748
|
+
const oOldElement = this.aElements.$byPredicate[sPredicate];
|
|
3749
|
+
_Helper.copySelected(oOldElement, oNewElement);
|
|
3750
|
+
this.aElements.$byPredicate[sPredicate] = oNewElement;
|
|
3751
|
+
this.aElements[this.aElements.indexOf(oOldElement)] = oNewElement;
|
|
3752
|
+
_Helper.fireChanges(this.mChangeListeners, sPredicate, oOldElement, true);
|
|
3753
|
+
_Helper.fireChanges(this.mChangeListeners, sPredicate, oNewElement);
|
|
3754
|
+
|
|
3755
|
+
return sPredicate;
|
|
3756
|
+
});
|
|
3757
|
+
};
|
|
3758
|
+
|
|
3686
3759
|
/**
|
|
3687
3760
|
* Requests the separate properties for the given range and merges them into the aElements list.
|
|
3688
3761
|
*
|
|
@@ -1290,6 +1290,9 @@ sap.ui.define([
|
|
|
1290
1290
|
}
|
|
1291
1291
|
});
|
|
1292
1292
|
aResultingRequests.iChangeSet = aRequests.iChangeSet;
|
|
1293
|
+
if (aRequests.bContinueOnError) {
|
|
1294
|
+
aResultingRequests.bContinueOnError = true;
|
|
1295
|
+
}
|
|
1293
1296
|
|
|
1294
1297
|
return aResultingRequests;
|
|
1295
1298
|
};
|
|
@@ -1972,7 +1975,8 @@ sap.ui.define([
|
|
|
1972
1975
|
return this.processOptimisticBatch(aRequests, sGroupId)
|
|
1973
1976
|
|| this.sendRequest("POST", "$batch" + this.sQueryParams,
|
|
1974
1977
|
Object.assign(oBatchRequest.headers, mBatchHeaders,
|
|
1975
|
-
bHasChanges ? undefined : {"sap-cancel-on-close" : "true"}
|
|
1978
|
+
bHasChanges ? undefined : {"sap-cancel-on-close" : "true"},
|
|
1979
|
+
aRequests.bContinueOnError ? {Prefer : "odata.continue-on-error"} : undefined),
|
|
1976
1980
|
oBatchRequest.body
|
|
1977
1981
|
).then(function (oResponse) {
|
|
1978
1982
|
if (oResponse.messages !== null) {
|
|
@@ -2136,6 +2140,19 @@ sap.ui.define([
|
|
|
2136
2140
|
});
|
|
2137
2141
|
};
|
|
2138
2142
|
|
|
2143
|
+
/**
|
|
2144
|
+
* Sets the "odata.continue-on-error" preference once for the <b>current</b> batch request
|
|
2145
|
+
* associated with the given group ID.
|
|
2146
|
+
*
|
|
2147
|
+
* @param {string} sGroupId
|
|
2148
|
+
* The group ID
|
|
2149
|
+
*
|
|
2150
|
+
* @public
|
|
2151
|
+
*/
|
|
2152
|
+
_Requestor.prototype.setContinueOnError = function (sGroupId) {
|
|
2153
|
+
this.getOrCreateBatchQueue(sGroupId).bContinueOnError = true;
|
|
2154
|
+
};
|
|
2155
|
+
|
|
2139
2156
|
/**
|
|
2140
2157
|
* Sets the session context. Starts a keep-alive timer in case there is a session context and
|
|
2141
2158
|
* a timeout of 60 seconds or more is indicated. This timer runs for at most 30 minutes.
|
|
@@ -227,7 +227,7 @@ sap.ui.define([
|
|
|
227
227
|
*
|
|
228
228
|
* @extends sap.ui.model.Model
|
|
229
229
|
* @public
|
|
230
|
-
* @version 1.
|
|
230
|
+
* @version 1.134.0
|
|
231
231
|
*/
|
|
232
232
|
var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
|
|
233
233
|
|
|
@@ -27,7 +27,7 @@ sap.ui.define([
|
|
|
27
27
|
* @extends sap.ui.model.SimpleType
|
|
28
28
|
*
|
|
29
29
|
* @author SAP SE
|
|
30
|
-
* @version 1.
|
|
30
|
+
* @version 1.134.0
|
|
31
31
|
*
|
|
32
32
|
* @public
|
|
33
33
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.Date
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.134.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.DateInterval
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.134.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.Date
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.134.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
|