@openui5/sap.ui.core 1.97.1 → 1.98.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 +61 -2
- package/.reuse/dep5 +25 -30
- package/THIRDPARTY.txt +13 -20
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.mobile.js +0 -8
- 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 +80 -168
- 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 +17 -6
- 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 +1 -1
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/BusyIndicatorUtils.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 +2 -4
- package/src/sap/ui/core/Control.js +2 -2
- package/src/sap/ui/core/Core.js +1 -4
- 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 +2 -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 +2 -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/LocalBusyIndicatorSupport.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- 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/Placeholder.js +28 -28
- package/src/sap/ui/core/Popup.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 +2 -2
- 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/UniversalDateUtils.js +175 -5
- 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 +2 -2
- 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/format/DateFormat.js +44 -8
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +43 -6
- 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/MessageMixin.js +2 -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_it.properties +1 -1
- package/src/sap/ui/core/messagebundle_no.properties +4 -4
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +2 -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 +2 -1
- package/src/sap/ui/core/mvc/XMLView.js +16 -3
- 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/Route.js +6 -6
- package/src/sap/ui/core/routing/Router.js +3 -2
- package/src/sap/ui/core/routing/Targets.js +17 -13
- package/src/sap/ui/core/rules/Model.support.js +95 -8
- 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/support/techinfo/TechnicalInfo.js +1 -5
- package/src/sap/ui/core/themes/base/parameterClasses.less +21 -21
- package/src/sap/ui/core/theming/Parameters.js +22 -142
- package/src/sap/ui/core/theming/ThemeHelper.js +26 -37
- 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/DraftEnabledMockServer.js +21 -16
- 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 +138 -41
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +4 -0
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +26 -16
- 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 +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/events/jquery/EventSimulation.js +3 -13
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +26 -4
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +27 -6
- package/src/sap/ui/model/ListBinding.js +2 -2
- package/src/sap/ui/model/MetaModel.js +2 -2
- package/src/sap/ui/model/Model.js +2 -2
- 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 +39 -28
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -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 +1 -1
- 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/_AnnotationHelperBasics.js +1 -1
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/_ODataMetaModelUtils.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 +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/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/type/UnitMixin.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +57 -4
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +184 -61
- package/src/sap/ui/model/odata/v2/ODataModel.js +79 -45
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +65 -5
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +5 -5
- package/src/sap/ui/model/odata/v4/Context.js +122 -35
- package/src/sap/ui/model/odata/v4/ODataBinding.js +38 -19
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +126 -51
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +203 -67
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +43 -40
- package/src/sap/ui/model/odata/v4/ODataModel.js +26 -11
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +37 -60
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +23 -20
- package/src/sap/ui/model/odata/v4/ODataUtils.js +5 -5
- package/src/sap/ui/model/odata/v4/SubmitMode.js +0 -1
- package/src/sap/ui/model/odata/v4/ValueListType.js +0 -1
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +18 -19
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +3 -5
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -4
- package/src/sap/ui/model/odata/v4/lib/_Batch.js +21 -20
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +150 -101
- package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +16 -16
- package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +60 -59
- package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +52 -43
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +34 -25
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +147 -147
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +13 -12
- package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +66 -67
- 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/BlanketReporter.js +1 -1
- package/src/sap/ui/test/TestUtils.js +2 -2
- package/src/sap/ui/test/_LogCollector.js +1 -1
- package/src/sap/ui/test/actions/Action.js +4 -2
- package/src/sap/ui/test/actions/Press.js +51 -2
- package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
- package/src/sap/ui/test/starter/createSuite.js +3 -3
- package/src/sap/ui/thirdparty/jquery-mobile-custom.js +3 -6
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/XMLHelper.js +53 -30
- package/src/ui5loader.js +3 -3
|
@@ -49,7 +49,6 @@ sap.ui.define([
|
|
|
49
49
|
EdmDate, DateTimeOffset, Decimal, Double, Guid, Int16, Int32, Int64, Raw, SByte, Single,
|
|
50
50
|
Stream, String, TimeOfDay, URI) {
|
|
51
51
|
"use strict";
|
|
52
|
-
/*global Map */
|
|
53
52
|
/*eslint max-nested-callbacks: 0 */
|
|
54
53
|
|
|
55
54
|
var Any = ManagedObject.extend("sap.ui.model.odata.v4._any", {
|
|
@@ -81,7 +80,7 @@ sap.ui.define([
|
|
|
81
80
|
"Edm.Date" : {Type : EdmDate},
|
|
82
81
|
"Edm.DateTimeOffset" : {
|
|
83
82
|
constraints : {
|
|
84
|
-
|
|
83
|
+
$Precision : "precision"
|
|
85
84
|
},
|
|
86
85
|
Type : DateTimeOffset
|
|
87
86
|
},
|
|
@@ -93,8 +92,8 @@ sap.ui.define([
|
|
|
93
92
|
"@Org.OData.Validation.V1.Maximum/$Decimal" : "maximum",
|
|
94
93
|
"@Org.OData.Validation.V1.Maximum@Org.OData.Validation.V1.Exclusive" :
|
|
95
94
|
"maximumExclusive",
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
$Precision : "precision",
|
|
96
|
+
$Scale : "scale"
|
|
98
97
|
},
|
|
99
98
|
Type : Decimal
|
|
100
99
|
},
|
|
@@ -109,13 +108,13 @@ sap.ui.define([
|
|
|
109
108
|
"Edm.String" : {
|
|
110
109
|
constraints : {
|
|
111
110
|
"@com.sap.vocabularies.Common.v1.IsDigitSequence" : "isDigitSequence",
|
|
112
|
-
|
|
111
|
+
$MaxLength : "maxLength"
|
|
113
112
|
},
|
|
114
113
|
Type : String
|
|
115
114
|
},
|
|
116
115
|
"Edm.TimeOfDay" : {
|
|
117
116
|
constraints : {
|
|
118
|
-
|
|
117
|
+
$Precision : "precision"
|
|
119
118
|
},
|
|
120
119
|
Type : TimeOfDay
|
|
121
120
|
}
|
|
@@ -250,8 +249,8 @@ sap.ui.define([
|
|
|
250
249
|
* The term
|
|
251
250
|
* @param {string} sExpectedTerm
|
|
252
251
|
* The expected term
|
|
253
|
-
* @returns {string}
|
|
254
|
-
* The qualifier or undefined
|
|
252
|
+
* @returns {string|undefined}
|
|
253
|
+
* The qualifier or <code>undefined</code>, if the term is not the expected term
|
|
255
254
|
*/
|
|
256
255
|
function getQualifier(sTerm, sExpectedTerm) {
|
|
257
256
|
if (sTerm === sExpectedTerm) {
|
|
@@ -268,8 +267,8 @@ sap.ui.define([
|
|
|
268
267
|
*
|
|
269
268
|
* @param {string} sTerm
|
|
270
269
|
* The term
|
|
271
|
-
* @returns {string}
|
|
272
|
-
* The qualifier or undefined
|
|
270
|
+
* @returns {string|undefined}
|
|
271
|
+
* The qualifier or <code>undefined</code>, if the term is not as expected
|
|
273
272
|
*/
|
|
274
273
|
function getValueListQualifier(sTerm) {
|
|
275
274
|
var sQualifier = getQualifier(sTerm, sValueListMapping);
|
|
@@ -387,6 +386,7 @@ sap.ui.define([
|
|
|
387
386
|
// @see sap.ui.model.Binding#initialize
|
|
388
387
|
initialize : function () {
|
|
389
388
|
var oElementContext = this.oModel.createBindingContext(this.sPath, this.oContext);
|
|
389
|
+
|
|
390
390
|
this.bInitial = false; // initialize() has been called
|
|
391
391
|
if (oElementContext !== this.oElementContext) {
|
|
392
392
|
this.oElementContext = oElementContext;
|
|
@@ -481,7 +481,7 @@ sap.ui.define([
|
|
|
481
481
|
return Object.keys(oResult).filter(function (sKey) {
|
|
482
482
|
// always filter technical properties;
|
|
483
483
|
// filter annotations iff not iterating them
|
|
484
|
-
return sKey[0] !== "$" &&
|
|
484
|
+
return sKey[0] !== "$" && bIterateAnnotations !== (sKey[0] !== "@");
|
|
485
485
|
}).map(function (sKey) {
|
|
486
486
|
return new BaseContext(that.oModel, sResolvedPath + sKey);
|
|
487
487
|
});
|
|
@@ -658,7 +658,7 @@ sap.ui.define([
|
|
|
658
658
|
* @hideconstructor
|
|
659
659
|
* @public
|
|
660
660
|
* @since 1.37.0
|
|
661
|
-
* @version 1.
|
|
661
|
+
* @version 1.98.0
|
|
662
662
|
*/
|
|
663
663
|
var ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
|
|
664
664
|
/*
|
|
@@ -686,11 +686,11 @@ sap.ui.define([
|
|
|
686
686
|
// "B." : {"/B/$metadata" : true} // namespace already read
|
|
687
687
|
// }
|
|
688
688
|
this.mSchema2MetadataUrl = {};
|
|
689
|
-
this.mSupportedBindingModes = {
|
|
689
|
+
this.mSupportedBindingModes = {OneTime : true, OneWay : true};
|
|
690
690
|
this.bSupportReferences = bSupportReferences !== false; // default is true
|
|
691
691
|
// ClientListBinding#filter calls checkFilterOperation on the model; ClientModel does
|
|
692
692
|
// not support "All" and "Any" filters
|
|
693
|
-
this.mUnsupportedFilterOperators = {
|
|
693
|
+
this.mUnsupportedFilterOperators = {All : true, Any : true};
|
|
694
694
|
this.sUrl = sUrl;
|
|
695
695
|
}
|
|
696
696
|
});
|
|
@@ -1661,30 +1661,32 @@ sap.ui.define([
|
|
|
1661
1661
|
throw oError;
|
|
1662
1662
|
}
|
|
1663
1663
|
|
|
1664
|
-
// First fetch the complete
|
|
1664
|
+
// First fetch the complete meta path to ensure that everything is in mScope
|
|
1665
1665
|
// This also ensures that the metadata is valid
|
|
1666
1666
|
return this.fetchObject(_Helper.getMetaPath(sResolvedPath)).then(function () {
|
|
1667
1667
|
// Then fetch mScope
|
|
1668
1668
|
return that.fetchEntityContainer();
|
|
1669
1669
|
}).then(function (mScope) {
|
|
1670
|
-
var aEditUrl,
|
|
1670
|
+
var aEditUrl, // The edit URL as array of segments (encoded)
|
|
1671
1671
|
oEntityContainer = mScope[mScope.$EntityContainer],
|
|
1672
|
-
sEntityPath,
|
|
1673
|
-
oEntitySet,
|
|
1674
|
-
sEntitySetName,
|
|
1672
|
+
sEntityPath, // The absolute path to the entity for the PATCH (encoded)
|
|
1673
|
+
oEntitySet, // The entity set that starts the edit URL
|
|
1674
|
+
sEntitySetName, // The name of this entity set (decoded)
|
|
1675
1675
|
sFirstSegment,
|
|
1676
1676
|
bInsideAnnotation = false,
|
|
1677
|
-
|
|
1678
|
-
|
|
1677
|
+
// The absolute path to the instance currently in evaluation (encoded; re-builds
|
|
1678
|
+
// sResolvedPath)
|
|
1679
|
+
sInstancePath,
|
|
1679
1680
|
sNavigationPath, // The relative meta path starting from oEntitySet (decoded)
|
|
1680
|
-
//
|
|
1681
|
-
|
|
1682
|
-
aSegments,
|
|
1683
|
-
oType;
|
|
1681
|
+
// The relative path following sEntityPath (parameter re-used - encoded)
|
|
1682
|
+
//sPropertyPath,
|
|
1683
|
+
aSegments, // The resource path split in segments (encoded)
|
|
1684
|
+
oType; // The type of the data at sInstancePath
|
|
1684
1685
|
|
|
1685
1686
|
// Determines the predicate from a segment (empty string if there is none)
|
|
1686
1687
|
function predicate(sSegment) {
|
|
1687
1688
|
var i = sSegment.indexOf("(");
|
|
1689
|
+
|
|
1688
1690
|
return i >= 0 ? sSegment.slice(i) : "";
|
|
1689
1691
|
}
|
|
1690
1692
|
|
|
@@ -1697,6 +1699,7 @@ sap.ui.define([
|
|
|
1697
1699
|
// Strips off the predicate from a segment
|
|
1698
1700
|
function stripPredicate(sSegment) {
|
|
1699
1701
|
var i = sSegment.indexOf("(");
|
|
1702
|
+
|
|
1700
1703
|
return i >= 0 ? sSegment.slice(0, i) : sSegment;
|
|
1701
1704
|
}
|
|
1702
1705
|
|
|
@@ -1850,7 +1853,7 @@ sap.ui.define([
|
|
|
1850
1853
|
*
|
|
1851
1854
|
* @returns {string} The annotation target
|
|
1852
1855
|
*/
|
|
1853
|
-
function getOverloadTarget
|
|
1856
|
+
function getOverloadTarget() {
|
|
1854
1857
|
var oOverload = aOverloads[0],
|
|
1855
1858
|
sSignature = "";
|
|
1856
1859
|
|
|
@@ -1909,8 +1912,8 @@ sap.ui.define([
|
|
|
1909
1912
|
});
|
|
1910
1913
|
|
|
1911
1914
|
if (!aTargets.length) {
|
|
1912
|
-
throw new Error("No annotation '" + sValueList.slice(1) + "' in "
|
|
1913
|
-
oValueListModel.sServiceUrl);
|
|
1915
|
+
throw new Error("No annotation '" + sValueList.slice(1) + "' in "
|
|
1916
|
+
+ oValueListModel.sServiceUrl);
|
|
1914
1917
|
}
|
|
1915
1918
|
|
|
1916
1919
|
if (aTargets.length === 1) {
|
|
@@ -1934,8 +1937,8 @@ sap.ui.define([
|
|
|
1934
1937
|
}
|
|
1935
1938
|
});
|
|
1936
1939
|
} else if (!bValueListOnValueList) {
|
|
1937
|
-
throw new Error("Unexpected annotation '" + sTerm.slice(1)
|
|
1938
|
-
"' for target '" + aTargets[0] + "' with namespace of data service in "
|
|
1940
|
+
throw new Error("Unexpected annotation '" + sTerm.slice(1)
|
|
1941
|
+
+ "' for target '" + aTargets[0] + "' with namespace of data service in "
|
|
1939
1942
|
+ oValueListModel.sServiceUrl);
|
|
1940
1943
|
}
|
|
1941
1944
|
});
|
|
@@ -2119,7 +2122,7 @@ sap.ui.define([
|
|
|
2119
2122
|
* The property
|
|
2120
2123
|
* @param {string} sMetaPath
|
|
2121
2124
|
* The OData metadata model path corresponding to the given property
|
|
2122
|
-
* @returns {object}
|
|
2125
|
+
* @returns {object|undefined}
|
|
2123
2126
|
* The type constraints for the property or <code>undefined</code> if the property's type is
|
|
2124
2127
|
* not supported
|
|
2125
2128
|
*
|
|
@@ -2165,7 +2168,7 @@ sap.ui.define([
|
|
|
2165
2168
|
* Returns a snapshot of each $metadata or annotation file loaded so far, combined into a
|
|
2166
2169
|
* single "JSON" object according to the streamlined OData V4 Metadata JSON Format.
|
|
2167
2170
|
*
|
|
2168
|
-
* @returns {object}
|
|
2171
|
+
* @returns {object|undefined}
|
|
2169
2172
|
* The OData metadata as a "JSON" object, if it is already available, or
|
|
2170
2173
|
* <code>undefined</code>.
|
|
2171
2174
|
*
|
|
@@ -2399,7 +2402,7 @@ sap.ui.define([
|
|
|
2399
2402
|
*
|
|
2400
2403
|
* @param {string} sPropertyPath
|
|
2401
2404
|
* An absolute path to an OData property within the OData data model
|
|
2402
|
-
* @returns {string}
|
|
2405
|
+
* @returns {string|undefined}
|
|
2403
2406
|
* The path of the property's unit or currency relative to the property's entity, or
|
|
2404
2407
|
* <code>undefined</code> in case the property has no associated unit or currency
|
|
2405
2408
|
*
|
|
@@ -2871,9 +2874,9 @@ sap.ui.define([
|
|
|
2871
2874
|
* This way, "/EMPLOYEES" addresses the same object as "/$EntityContainer/EMPLOYEES", namely
|
|
2872
2875
|
* the "EMPLOYEES" child of the entity container.
|
|
2873
2876
|
* <li> Afterwards, if the current object is an array, it represents overloads for an
|
|
2874
|
-
* operation. Annotations of an operation (since 1.71.0) or a parameter (since 1.66.0) can
|
|
2875
|
-
* immediately addressed, no matter if they apply for a single overload or for all
|
|
2876
|
-
* at the same time, for example "/TEAMS/acme.NewAction@" or
|
|
2877
|
+
* operation. Annotations of an operation (since 1.71.0) or a parameter (since 1.66.0) can
|
|
2878
|
+
* be immediately addressed, no matter if they apply for a single overload or for all
|
|
2879
|
+
* overloads at the same time, for example "/TEAMS/acme.NewAction@" or
|
|
2877
2880
|
* "/TEAMS/acme.NewAction/Team_ID@". Annotations of an unbound operation overload can be
|
|
2878
2881
|
* addressed like "/OperationImport/@$ui5.overload@", while "/OperationImport/@" addresses
|
|
2879
2882
|
* annotations of the operation import itself. The special name "$ReturnType" can be used
|
|
@@ -3208,6 +3211,7 @@ sap.ui.define([
|
|
|
3208
3211
|
// insert the returned mappings into oValueListInfo in the order of aMappingUrls
|
|
3209
3212
|
aMappingUrls.forEach(function (sMappingUrl, i) {
|
|
3210
3213
|
var mvalueListMappingByQualifier = aResults[i].valueListMappingByQualifier;
|
|
3214
|
+
|
|
3211
3215
|
Object.keys(mvalueListMappingByQualifier).forEach(function (sQualifier) {
|
|
3212
3216
|
addMapping(mvalueListMappingByQualifier[sQualifier], sQualifier,
|
|
3213
3217
|
sMappingUrl, aResults[i].$model);
|
|
@@ -3228,8 +3232,8 @@ sap.ui.define([
|
|
|
3228
3232
|
// Each reference must have contributed at least one qualifier. So if oValueListInfo
|
|
3229
3233
|
// is empty, there cannot have been a reference.
|
|
3230
3234
|
if (isEmptyObject(oValueListInfo)) {
|
|
3231
|
-
throw new Error("No annotation '" + sValueListReferences.slice(1) + "' for "
|
|
3232
|
-
sPropertyPath);
|
|
3235
|
+
throw new Error("No annotation '" + sValueListReferences.slice(1) + "' for "
|
|
3236
|
+
+ sPropertyPath);
|
|
3233
3237
|
}
|
|
3234
3238
|
|
|
3235
3239
|
return aRelevantQualifiers && oContext && oContext.getBinding
|
|
@@ -3279,7 +3283,6 @@ sap.ui.define([
|
|
|
3279
3283
|
*/
|
|
3280
3284
|
ODataMetaModel.prototype.filterValueListRelevantQualifiers = function (mValueListByQualifier,
|
|
3281
3285
|
aRawRelevantQualifiers, sMetaPath, oContext) {
|
|
3282
|
-
|
|
3283
3286
|
return this.requestValue4Annotation(aRawRelevantQualifiers, sMetaPath, oContext)
|
|
3284
3287
|
.then(function (aRelevantQualifiers) {
|
|
3285
3288
|
var mValueListByRelevantQualifier = {};
|
|
@@ -3334,7 +3337,7 @@ sap.ui.define([
|
|
|
3334
3337
|
* A relative or absolute path within the metadata model
|
|
3335
3338
|
* @param {sap.ui.model.Context} [oContext]
|
|
3336
3339
|
* The context to be used as a starting point in case of a relative path
|
|
3337
|
-
* @returns {string}
|
|
3340
|
+
* @returns {string|undefined}
|
|
3338
3341
|
* Resolved path or <code>undefined</code>
|
|
3339
3342
|
* @throws {Error}
|
|
3340
3343
|
* If relative path starts with a dot which is not followed by a forward slash
|
|
@@ -210,7 +210,7 @@ sap.ui.define([
|
|
|
210
210
|
* @extends sap.ui.model.Model
|
|
211
211
|
* @public
|
|
212
212
|
* @since 1.37.0
|
|
213
|
-
* @version 1.
|
|
213
|
+
* @version 1.98.0
|
|
214
214
|
*/
|
|
215
215
|
var ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
216
216
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */
|
|
@@ -435,7 +435,8 @@ sap.ui.define([
|
|
|
435
435
|
* @private
|
|
436
436
|
*/
|
|
437
437
|
ODataModel.prototype.addPrerenderingTask = function (fnPrerenderingTask, bFirst) {
|
|
438
|
-
var fnRunTasks, iTimeoutId,
|
|
438
|
+
var fnRunTasks, iTimeoutId,
|
|
439
|
+
that = this;
|
|
439
440
|
|
|
440
441
|
function runTasks(aTasks) {
|
|
441
442
|
clearTimeout(iTimeoutId);
|
|
@@ -852,7 +853,7 @@ sap.ui.define([
|
|
|
852
853
|
* @param {string[]} aAllowed The allowed system query options
|
|
853
854
|
* @throws {error} If the given query option name is not allowed
|
|
854
855
|
*/
|
|
855
|
-
function parseAndValidateSystemQueryOption
|
|
856
|
+
function parseAndValidateSystemQueryOption(mOptions, sOptionName, aAllowed) {
|
|
856
857
|
var sExpandOptionName,
|
|
857
858
|
mExpandOptions,
|
|
858
859
|
sExpandPath,
|
|
@@ -879,7 +880,7 @@ sap.ui.define([
|
|
|
879
880
|
}
|
|
880
881
|
}
|
|
881
882
|
} else if (sOptionName === "$count") {
|
|
882
|
-
if (typeof vValue
|
|
883
|
+
if (typeof vValue === "boolean") {
|
|
883
884
|
if (!vValue) {
|
|
884
885
|
delete mOptions.$count;
|
|
885
886
|
}
|
|
@@ -1125,7 +1126,7 @@ sap.ui.define([
|
|
|
1125
1126
|
+ "' without context");
|
|
1126
1127
|
}
|
|
1127
1128
|
|
|
1128
|
-
iSeparator = sResolvedPath.indexOf(
|
|
1129
|
+
iSeparator = sResolvedPath.indexOf("#");
|
|
1129
1130
|
if (iSeparator >= 0) {
|
|
1130
1131
|
sDataPath = sResolvedPath.slice(0, iSeparator);
|
|
1131
1132
|
sMetaPath = sResolvedPath.slice(iSeparator + 1);
|
|
@@ -1553,12 +1554,25 @@ sap.ui.define([
|
|
|
1553
1554
|
this.oRequestor.refreshSecurityToken().catch(function () {});
|
|
1554
1555
|
};
|
|
1555
1556
|
|
|
1557
|
+
/**
|
|
1558
|
+
* Determines whether the given group ID uses mode {@link sap.ui.model.odata.v4.SubmitMode.API}
|
|
1559
|
+
*
|
|
1560
|
+
* @param {string} sGroupId
|
|
1561
|
+
* The group ID
|
|
1562
|
+
* @returns {boolean|undefined} Whether it is an API group
|
|
1563
|
+
*
|
|
1564
|
+
* @private
|
|
1565
|
+
*/
|
|
1566
|
+
ODataModel.prototype.isApiGroup = function (sGroupId) {
|
|
1567
|
+
return this.getGroupProperty(sGroupId, "submit") === SubmitMode.API;
|
|
1568
|
+
};
|
|
1569
|
+
|
|
1556
1570
|
/**
|
|
1557
1571
|
* Determines whether the given group ID uses mode {@link sap.ui.model.odata.v4.SubmitMode.Auto}
|
|
1558
1572
|
*
|
|
1559
1573
|
* @param {string} sGroupId
|
|
1560
1574
|
* The group ID
|
|
1561
|
-
* @returns {boolean
|
|
1575
|
+
* @returns {boolean} Whether it is an auto group
|
|
1562
1576
|
*
|
|
1563
1577
|
* @private
|
|
1564
1578
|
*/
|
|
@@ -1572,7 +1586,7 @@ sap.ui.define([
|
|
|
1572
1586
|
*
|
|
1573
1587
|
* @param {string} sGroupId
|
|
1574
1588
|
* The group ID
|
|
1575
|
-
* @returns {boolean
|
|
1589
|
+
* @returns {boolean} Whether it is a direct group
|
|
1576
1590
|
*
|
|
1577
1591
|
* @private
|
|
1578
1592
|
*/
|
|
@@ -1663,7 +1677,8 @@ sap.ui.define([
|
|
|
1663
1677
|
}
|
|
1664
1678
|
this.checkGroupId(sGroupId);
|
|
1665
1679
|
|
|
1666
|
-
// Note: getBindings() returns an array that contains all bindings with change listeners
|
|
1680
|
+
// Note: getBindings() returns an array that contains all bindings with change listeners
|
|
1681
|
+
// (owned by Model)
|
|
1667
1682
|
this.getBindings().forEach(function (oBinding) {
|
|
1668
1683
|
if (oBinding.isRoot()) {
|
|
1669
1684
|
// ignore the group ID for suspended bindings to avoid mismatches and errors; they
|
|
@@ -1748,7 +1763,7 @@ sap.ui.define([
|
|
|
1748
1763
|
*
|
|
1749
1764
|
* @private
|
|
1750
1765
|
*/
|
|
1751
|
-
|
|
1766
|
+
ODataModel.prototype.reportStateMessages = function (sResourcePath, mPathToODataMessages,
|
|
1752
1767
|
aCachePaths) {
|
|
1753
1768
|
var sDataBindingPath = "/" + sResourcePath,
|
|
1754
1769
|
aNewMessages = [],
|
|
@@ -1836,7 +1851,7 @@ sap.ui.define([
|
|
|
1836
1851
|
* @param {string[]} aAbsolutePaths
|
|
1837
1852
|
* The absolute paths to request side effects for; each path must not start with the fully
|
|
1838
1853
|
* qualified container name.
|
|
1839
|
-
* @returns {sap.ui.base.SyncPromise}
|
|
1854
|
+
* @returns {sap.ui.base.SyncPromise|undefined}
|
|
1840
1855
|
* A promise resolving without a defined result, or rejecting with an error if loading of side
|
|
1841
1856
|
* effects fails, or <code>undefined</code> if there is nothing to do
|
|
1842
1857
|
*
|
|
@@ -1906,7 +1921,7 @@ sap.ui.define([
|
|
|
1906
1921
|
* A relative or absolute path within the data model
|
|
1907
1922
|
* @param {sap.ui.model.Context} [oContext]
|
|
1908
1923
|
* The context to be used as a starting point in case of a relative path
|
|
1909
|
-
* @returns {string}
|
|
1924
|
+
* @returns {string|undefined}
|
|
1910
1925
|
* Resolved path or <code>undefined</code>
|
|
1911
1926
|
*
|
|
1912
1927
|
* @private
|
|
@@ -9,12 +9,11 @@
|
|
|
9
9
|
sap.ui.define([
|
|
10
10
|
"./Context",
|
|
11
11
|
"./ODataBinding",
|
|
12
|
-
"./SubmitMode",
|
|
13
12
|
"./lib/_Helper",
|
|
14
13
|
"sap/base/Log",
|
|
15
14
|
"sap/ui/base/SyncPromise",
|
|
16
15
|
"sap/ui/model/ChangeReason"
|
|
17
|
-
], function (Context, asODataBinding,
|
|
16
|
+
], function (Context, asODataBinding, _Helper, Log, SyncPromise, ChangeReason) {
|
|
18
17
|
"use strict";
|
|
19
18
|
|
|
20
19
|
/**
|
|
@@ -83,9 +82,10 @@ sap.ui.define([
|
|
|
83
82
|
* The new value which must be primitive
|
|
84
83
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} [oGroupLock]
|
|
85
84
|
* A lock for the group ID to be used for the PATCH request; without a lock, no PATCH is sent
|
|
86
|
-
* @returns {sap.ui.base.SyncPromise}
|
|
87
|
-
* handled generically by the caller
|
|
88
|
-
* or a <code>SyncPromise</code> for the
|
|
85
|
+
* @returns {sap.ui.base.SyncPromise|undefined}
|
|
86
|
+
* <code>undefined</code> for the general case which is handled generically by the caller
|
|
87
|
+
* {@link sap.ui.model.odata.v4.Context#doSetProperty} or a <code>SyncPromise</code> for the
|
|
88
|
+
* exceptional case
|
|
89
89
|
*
|
|
90
90
|
* @abstract
|
|
91
91
|
* @function
|
|
@@ -413,7 +413,7 @@ sap.ui.define([
|
|
|
413
413
|
*
|
|
414
414
|
* @returns {sap.ui.base.SyncPromise}
|
|
415
415
|
* A promise resolving without a defined result when the check is finished, or rejecting in
|
|
416
|
-
* case of an error
|
|
416
|
+
* case of an error
|
|
417
417
|
* @throws {Error} If called with parameters
|
|
418
418
|
*
|
|
419
419
|
* @private
|
|
@@ -565,52 +565,41 @@ sap.ui.define([
|
|
|
565
565
|
* Deletes the entity in the cache. If the binding doesn't have a cache, it forwards to the
|
|
566
566
|
* parent binding adjusting the path.
|
|
567
567
|
*
|
|
568
|
-
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
569
|
-
* A lock for the group ID to be used for the DELETE request;
|
|
570
|
-
*
|
|
568
|
+
* @param {sap.ui.model.odata.v4.lib._GroupLock} [oGroupLock]
|
|
569
|
+
* A lock for the group ID to be used for the DELETE request; w/o a lock, no DELETE is sent.
|
|
570
|
+
* For a transient entity, the lock is ignored (use NULL)!
|
|
571
571
|
* @param {string} sEditUrl
|
|
572
|
-
* The edit URL to be used for the DELETE request
|
|
572
|
+
* The entity's edit URL to be used for the DELETE request; w/o a lock, this is mostly
|
|
573
|
+
* ignored.
|
|
573
574
|
* @param {string} sPath
|
|
574
575
|
* The path of the entity relative to this binding
|
|
575
576
|
* @param {object} [oETagEntity]
|
|
576
577
|
* An entity with the ETag of the binding for which the deletion was requested. This is
|
|
577
578
|
* provided if the deletion is delegated from a context binding with empty path to a list
|
|
578
|
-
* binding.
|
|
579
|
+
* binding. W/o a lock, this is ignored.
|
|
579
580
|
* @param {boolean} [bDoNotRequestCount]
|
|
580
581
|
* Whether not to request the new count from the server; useful in case of
|
|
581
582
|
* {@link sap.ui.model.odata.v4.Context#replaceWith} where it is known that the count remains
|
|
582
|
-
* unchanged
|
|
583
|
+
* unchanged; w/o a lock this should be true
|
|
583
584
|
* @param {function} fnCallback
|
|
584
|
-
* A function which is called after
|
|
585
|
-
*
|
|
585
|
+
* A function which is called after a transient entity has been deleted from the cache or
|
|
586
|
+
* after the entity has been deleted from the server and from the cache; the index of the
|
|
587
|
+
* entity and the entity list are both passed as parameter, or none of them
|
|
586
588
|
* @returns {sap.ui.base.SyncPromise}
|
|
587
589
|
* A promise which is resolved without a result in case of success, or rejected with an
|
|
588
|
-
* instance of <code>Error</code> in case of failure
|
|
590
|
+
* instance of <code>Error</code> in case of failure; returns <code>undefined</code> if the
|
|
591
|
+
* cache promise for this binding is not yet fulfilled
|
|
589
592
|
* @throws {Error}
|
|
590
|
-
* If the
|
|
591
|
-
* for this binding is not yet fulfilled
|
|
593
|
+
* If the cache is shared
|
|
592
594
|
*
|
|
593
595
|
* @private
|
|
594
596
|
*/
|
|
595
597
|
ODataParentBinding.prototype.deleteFromCache = function (oGroupLock, sEditUrl, sPath,
|
|
596
598
|
oETagEntity, bDoNotRequestCount, fnCallback) {
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
if (this.oCache === undefined) {
|
|
600
|
-
throw new Error("DELETE request not allowed");
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
if (this.oCache) {
|
|
604
|
-
sGroupId = oGroupLock.getGroupId();
|
|
605
|
-
if (!this.oModel.isAutoGroup(sGroupId) && !this.oModel.isDirectGroup(sGroupId)) {
|
|
606
|
-
throw new Error("Illegal update group ID: " + sGroupId);
|
|
607
|
-
}
|
|
608
|
-
return this.oCache._delete(oGroupLock, sEditUrl, sPath, oETagEntity, bDoNotRequestCount,
|
|
599
|
+
return this.withCache(function (oCache, sCachePath) {
|
|
600
|
+
return oCache._delete(oGroupLock, sEditUrl, sCachePath, oETagEntity, bDoNotRequestCount,
|
|
609
601
|
fnCallback);
|
|
610
|
-
}
|
|
611
|
-
return this.oContext.getBinding().deleteFromCache(oGroupLock, sEditUrl,
|
|
612
|
-
_Helper.buildPath(this.oContext.iIndex, this.sPath, sPath), oETagEntity,
|
|
613
|
-
bDoNotRequestCount, fnCallback);
|
|
602
|
+
}, sPath, /*bSync*/true);
|
|
614
603
|
};
|
|
615
604
|
|
|
616
605
|
/**
|
|
@@ -651,7 +640,8 @@ sap.ui.define([
|
|
|
651
640
|
* The child binding's (aggregated) query options or a promise resolving with them
|
|
652
641
|
* @returns {sap.ui.base.SyncPromise}
|
|
653
642
|
* A promise resolved with the reduced path for the child binding if the child binding can use
|
|
654
|
-
* this binding's or an ancestor binding's cache; <code>undefined</code>
|
|
643
|
+
* this binding's or an ancestor binding's cache; resolved with <code>undefined</code>
|
|
644
|
+
* otherwise.
|
|
655
645
|
*
|
|
656
646
|
* @private
|
|
657
647
|
* @see sap.ui.model.odata.v4.ODataMetaModel#getReducedPath
|
|
@@ -767,7 +757,7 @@ sap.ui.define([
|
|
|
767
757
|
that.bAggregatedQueryOptionsInitial = false;
|
|
768
758
|
}
|
|
769
759
|
if (bIsAdvertisement) {
|
|
770
|
-
mWrappedChildQueryOptions = {
|
|
760
|
+
mWrappedChildQueryOptions = {$select : [sReducedChildMetaPath.slice(1)]};
|
|
771
761
|
return that.aggregateQueryOptions(mWrappedChildQueryOptions, sBaseMetaPath,
|
|
772
762
|
bCacheImmutable)
|
|
773
763
|
? sReducedPath
|
|
@@ -833,7 +823,7 @@ sap.ui.define([
|
|
|
833
823
|
// catch the error, but keep the rejected promise
|
|
834
824
|
this.oCachePromise.catch(function (oError) {
|
|
835
825
|
that.oModel.reportError(that + ": Failed to enhance query options for "
|
|
836
|
-
+ "auto-$expand/$select for child " + sChildPath,
|
|
826
|
+
+ "auto-$expand/$select for child " + sChildPath, sClassName, oError);
|
|
837
827
|
});
|
|
838
828
|
return oCanUseCachePromise;
|
|
839
829
|
};
|
|
@@ -900,8 +890,7 @@ sap.ui.define([
|
|
|
900
890
|
oParentBinding = this.oContext.getBinding();
|
|
901
891
|
sParentUpdateGroupId = oParentBinding.getUpdateGroupId();
|
|
902
892
|
if (sParentUpdateGroupId === this.getUpdateGroupId()
|
|
903
|
-
|| this.oModel.
|
|
904
|
-
!== SubmitMode.API) {
|
|
893
|
+
|| !this.oModel.isApiGroup(sParentUpdateGroupId)) {
|
|
905
894
|
return oParentBinding.getBaseForPathReduction();
|
|
906
895
|
}
|
|
907
896
|
}
|
|
@@ -1072,9 +1061,11 @@ sap.ui.define([
|
|
|
1072
1061
|
* @param {boolean} [bKeepCacheOnError]
|
|
1073
1062
|
* If <code>true</code>, the binding data remains unchanged if the refresh fails
|
|
1074
1063
|
* @returns {sap.ui.base.SyncPromise}
|
|
1075
|
-
* A promise resolving when all dependent bindings are refreshed; it is rejected
|
|
1076
|
-
*
|
|
1077
|
-
*
|
|
1064
|
+
* A promise resolving when all dependent bindings are refreshed; it is rejected
|
|
1065
|
+
* when the refresh fails; the promise is resolved immediately on a suspended binding
|
|
1066
|
+
* @throws {Error}
|
|
1067
|
+
* If the binding's root binding is suspended and a group ID different from the binding's
|
|
1068
|
+
* group ID is given
|
|
1078
1069
|
*
|
|
1079
1070
|
* @private
|
|
1080
1071
|
*/
|
|
@@ -1090,7 +1081,11 @@ sap.ui.define([
|
|
|
1090
1081
|
* Recursively refreshes all dependent list bindings that have no own cache.
|
|
1091
1082
|
*
|
|
1092
1083
|
* @returns {sap.ui.base.SyncPromise}
|
|
1093
|
-
* A promise resolving when all dependent list bindings without own cache are refreshed
|
|
1084
|
+
* A promise resolving when all dependent list bindings without own cache are refreshed; it is
|
|
1085
|
+
* rejected when the refresh fails; the promise is resolved immediately on a suspended binding
|
|
1086
|
+
* @throws {Error}
|
|
1087
|
+
* If the binding's root binding is suspended and a group ID different from the binding's
|
|
1088
|
+
* group ID is given
|
|
1094
1089
|
*
|
|
1095
1090
|
* @private
|
|
1096
1091
|
*/
|
|
@@ -1118,24 +1113,6 @@ sap.ui.define([
|
|
|
1118
1113
|
}
|
|
1119
1114
|
};
|
|
1120
1115
|
|
|
1121
|
-
/**
|
|
1122
|
-
* Refreshes the binding; expects it to be suspended.
|
|
1123
|
-
*
|
|
1124
|
-
* @param {string} sGroupId
|
|
1125
|
-
* The group ID to be used for the refresh
|
|
1126
|
-
* @throws {Error}
|
|
1127
|
-
* If a group ID different from the binding's group ID is given
|
|
1128
|
-
|
|
1129
|
-
* @private
|
|
1130
|
-
*/
|
|
1131
|
-
ODataParentBinding.prototype.refreshSuspended = function (sGroupId) {
|
|
1132
|
-
if (sGroupId && sGroupId !== this.getGroupId()) {
|
|
1133
|
-
throw new Error(this + ": Cannot refresh a suspended binding with group ID '"
|
|
1134
|
-
+ sGroupId + "' (own group ID is '" + this.getGroupId() + "')");
|
|
1135
|
-
}
|
|
1136
|
-
this.setResumeChangeReason(ChangeReason.Refresh);
|
|
1137
|
-
};
|
|
1138
|
-
|
|
1139
1116
|
/**
|
|
1140
1117
|
* Loads side effects for the given context of this binding.
|
|
1141
1118
|
*
|