@openui5/sap.ui.core 1.114.1 → 1.114.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/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/config.js +1 -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/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 +1 -1
- 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 +1 -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 +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/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 +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/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/Shortcut.js +11 -9
- 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/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/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +3 -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/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/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/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/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/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/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 +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +3 -3
- package/src/sap/ui/model/odata/v4/ODataBinding.js +65 -38
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +5 -4
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +7 -6
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +8 -9
- package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +58 -27
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +5 -5
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +11 -7
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +5 -1
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +4 -4
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -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/generic/TestBase.js +1 -1
- package/src/sap/ui/util/Storage.js +1 -1
|
@@ -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.114.
|
|
77
|
+
* @version 1.114.3
|
|
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
|
|
@@ -638,7 +638,7 @@ sap.ui.define([
|
|
|
638
638
|
&& !oOperationMetadata.$ReturnType.$Type.startsWith("Edm.")) {
|
|
639
639
|
sMetaPath += "/$Type";
|
|
640
640
|
}
|
|
641
|
-
} else if (
|
|
641
|
+
} else if (!_Helper.isEmptyObject(mParameters)) {
|
|
642
642
|
throw new Error("Unsupported parameters for navigation property");
|
|
643
643
|
}
|
|
644
644
|
|
|
@@ -792,9 +792,9 @@ sap.ui.define([
|
|
|
792
792
|
|
|
793
793
|
/**
|
|
794
794
|
* @override
|
|
795
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
795
|
+
* @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
|
|
796
796
|
*/
|
|
797
|
-
ODataContextBinding.prototype.
|
|
797
|
+
ODataContextBinding.prototype.doFetchOrGetQueryOptions = function (oContext) {
|
|
798
798
|
return this.fetchResolvedQueryOptions(oContext);
|
|
799
799
|
};
|
|
800
800
|
|
|
@@ -1582,6 +1582,7 @@ sap.ui.define([
|
|
|
1582
1582
|
if (bParentHasChanges || sResumeChangeReason) {
|
|
1583
1583
|
this.mAggregatedQueryOptions = {};
|
|
1584
1584
|
this.bAggregatedQueryOptionsInitial = true;
|
|
1585
|
+
this.mCanUseCachePromiseByChildPath = {};
|
|
1585
1586
|
this.removeCachesAndMessages("");
|
|
1586
1587
|
this.fetchCache(this.oContext);
|
|
1587
1588
|
}
|
|
@@ -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.114.
|
|
60
|
+
* @version 1.114.3
|
|
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
|
|
@@ -348,7 +348,7 @@ sap.ui.define([
|
|
|
348
348
|
sApply = _AggregationHelper.buildApply(mParameters.$$aggregation).$apply;
|
|
349
349
|
}
|
|
350
350
|
this.mQueryOptions = this.oModel.buildQueryOptions(mParameters, true);
|
|
351
|
-
this.oQueryOptionsPromise = undefined; // @see #
|
|
351
|
+
this.oQueryOptionsPromise = undefined; // @see #doFetchOrGetQueryOptions
|
|
352
352
|
this.mParameters = mParameters; // store mParameters at binding after validation
|
|
353
353
|
if (sApply) {
|
|
354
354
|
this.mQueryOptions.$apply = sApply;
|
|
@@ -1265,9 +1265,9 @@ sap.ui.define([
|
|
|
1265
1265
|
|
|
1266
1266
|
/**
|
|
1267
1267
|
* @override
|
|
1268
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
1268
|
+
* @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
|
|
1269
1269
|
*/
|
|
1270
|
-
ODataListBinding.prototype.
|
|
1270
|
+
ODataListBinding.prototype.doFetchOrGetQueryOptions = function (oContext) {
|
|
1271
1271
|
// Note: an absolute binding needs no parent context :-)
|
|
1272
1272
|
var sMetaPath = oContext && _Helper.getMetaPath(oContext.getPath()),
|
|
1273
1273
|
that = this;
|
|
@@ -2782,7 +2782,7 @@ sap.ui.define([
|
|
|
2782
2782
|
ODataListBinding.prototype.inheritQueryOptions = function (mQueryOptions, oContext) {
|
|
2783
2783
|
var mInheritedQueryOptions;
|
|
2784
2784
|
|
|
2785
|
-
if (
|
|
2785
|
+
if (_Helper.isEmptyObject(this.mParameters)) {
|
|
2786
2786
|
// mix-in inherited static query options
|
|
2787
2787
|
mInheritedQueryOptions = this.getQueryOptionsForPath("", oContext);
|
|
2788
2788
|
if (mQueryOptions.$orderby && mInheritedQueryOptions.$orderby) {
|
|
@@ -2857,7 +2857,7 @@ sap.ui.define([
|
|
|
2857
2857
|
// When suspended it matches if it already has contexts. Then its getKeepAliveContext fails.
|
|
2858
2858
|
return this.mParameters.$$getKeepAliveContext && this.getResolvedPath() === sPath
|
|
2859
2859
|
&& (!this.isRootBindingSuspended() || this.aContexts.length
|
|
2860
|
-
||
|
|
2860
|
+
|| !_Helper.isEmptyObject(this.mPreviousContextsByPath));
|
|
2861
2861
|
};
|
|
2862
2862
|
|
|
2863
2863
|
/**
|
|
@@ -3967,6 +3967,7 @@ sap.ui.define([
|
|
|
3967
3967
|
if (this.mParameters.$$aggregation) {
|
|
3968
3968
|
_AggregationHelper.setPath(this.mParameters.$$aggregation, sResolvedPath);
|
|
3969
3969
|
} else if (this.bHasPathReductionToParent && this.oModel.bAutoExpandSelect) {
|
|
3970
|
+
this.mCanUseCachePromiseByChildPath = {};
|
|
3970
3971
|
this.sChangeReason = "AddVirtualContext"; // JIRA: CPOUI5ODATAV4-848
|
|
3971
3972
|
}
|
|
3972
3973
|
if (oContext.getBinding
|
|
@@ -11,7 +11,6 @@ sap.ui.define([
|
|
|
11
11
|
"./lib/_Helper",
|
|
12
12
|
"sap/base/assert",
|
|
13
13
|
"sap/base/Log",
|
|
14
|
-
"sap/base/util/isEmptyObject",
|
|
15
14
|
"sap/base/util/JSTokenizer",
|
|
16
15
|
"sap/base/util/ObjectPath",
|
|
17
16
|
"sap/ui/base/ManagedObject",
|
|
@@ -43,11 +42,11 @@ sap.ui.define([
|
|
|
43
42
|
"sap/ui/model/odata/type/String",
|
|
44
43
|
"sap/ui/model/odata/type/TimeOfDay",
|
|
45
44
|
"sap/ui/thirdparty/URI"
|
|
46
|
-
], function (AnnotationHelper, ValueListType, _Helper, assert, Log,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
], function (AnnotationHelper, ValueListType, _Helper, assert, Log, JSTokenizer, ObjectPath,
|
|
46
|
+
ManagedObject, SyncPromise, BindingMode, ChangeReason, ClientListBinding, BaseContext,
|
|
47
|
+
ContextBinding, MetaModel, PropertyBinding, OperationMode, Boolean, Byte, EdmDate,
|
|
48
|
+
DateTimeOffset, Decimal, Double, Guid, Int16, Int32, Int64, Raw, SByte, Single, Stream,
|
|
49
|
+
String, TimeOfDay, URI) {
|
|
51
50
|
"use strict";
|
|
52
51
|
/*eslint max-nested-callbacks: 0 */
|
|
53
52
|
|
|
@@ -157,7 +156,7 @@ sap.ui.define([
|
|
|
157
156
|
* @hideconstructor
|
|
158
157
|
* @public
|
|
159
158
|
* @since 1.37.0
|
|
160
|
-
* @version 1.114.
|
|
159
|
+
* @version 1.114.3
|
|
161
160
|
*/
|
|
162
161
|
ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
|
|
163
162
|
constructor : constructor
|
|
@@ -1630,7 +1629,7 @@ sap.ui.define([
|
|
|
1630
1629
|
}
|
|
1631
1630
|
|
|
1632
1631
|
if (mFormatOptions) {
|
|
1633
|
-
if (isEmptyObject(mFormatOptions)) {
|
|
1632
|
+
if (_Helper.isEmptyObject(mFormatOptions)) {
|
|
1634
1633
|
mFormatOptions = undefined;
|
|
1635
1634
|
} else if ("parseKeepsEmptyString" in mFormatOptions
|
|
1636
1635
|
&& oProperty.$Type !== "Edm.String") {
|
|
@@ -3273,7 +3272,7 @@ sap.ui.define([
|
|
|
3273
3272
|
|
|
3274
3273
|
// Each reference must have contributed at least one qualifier. So if oValueListInfo
|
|
3275
3274
|
// is empty, there cannot have been a reference.
|
|
3276
|
-
if (isEmptyObject(oValueListInfo)) {
|
|
3275
|
+
if (_Helper.isEmptyObject(oValueListInfo)) {
|
|
3277
3276
|
throw new Error("No annotation '" + sValueListReferences.slice(1) + "' for "
|
|
3278
3277
|
+ sPropertyPath);
|
|
3279
3278
|
}
|
|
@@ -227,7 +227,7 @@ sap.ui.define([
|
|
|
227
227
|
* @extends sap.ui.model.Model
|
|
228
228
|
* @public
|
|
229
229
|
* @since 1.37.0
|
|
230
|
-
* @version 1.114.
|
|
230
|
+
* @version 1.114.3
|
|
231
231
|
*/
|
|
232
232
|
ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
233
233
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
|
|
@@ -31,6 +31,7 @@ sap.ui.define([
|
|
|
31
31
|
this.mAggregatedQueryOptions = {};
|
|
32
32
|
// whether the aggregated query options are processed the first time
|
|
33
33
|
this.bAggregatedQueryOptionsInitial = true;
|
|
34
|
+
this.mCanUseCachePromiseByChildPath = {};
|
|
34
35
|
// auto-$expand/$select: promises to wait until child bindings have provided
|
|
35
36
|
// their path and query options
|
|
36
37
|
this.aChildCanUseCachePromises = [];
|
|
@@ -215,7 +216,7 @@ sap.ui.define([
|
|
|
215
216
|
* @param {object} mQueryOptions - The query options to be merged
|
|
216
217
|
* @param {string} sBaseMetaPath - This binding's meta path
|
|
217
218
|
* @param {boolean} bCacheImmutable - Whether the cache of this binding is immutable
|
|
218
|
-
* @param {boolean} bIsProperty - Whether the child is a property binding
|
|
219
|
+
* @param {boolean} [bIsProperty] - Whether the child is a property binding
|
|
219
220
|
* @returns {boolean} Whether the query options can be fulfilled by this binding
|
|
220
221
|
*
|
|
221
222
|
* @private
|
|
@@ -229,14 +230,19 @@ sap.ui.define([
|
|
|
229
230
|
/*
|
|
230
231
|
* Recursively merges the given query options into the given aggregated query options.
|
|
231
232
|
*
|
|
232
|
-
* @param {object} mAggregatedQueryOptions
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
* @param {
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
233
|
+
* @param {object} mAggregatedQueryOptions
|
|
234
|
+
* The aggregated query options
|
|
235
|
+
* @param {object} mQueryOptions0
|
|
236
|
+
* The query options to merge into the aggregated query options
|
|
237
|
+
* @param {string} [sMetaPath]
|
|
238
|
+
* The meta path for the current $expand (only used if cache is immutable)
|
|
239
|
+
* @param {boolean} [bInsideExpand]
|
|
240
|
+
* Whether the given query options are inside a $expand
|
|
241
|
+
* @param {boolean} [bAdd]
|
|
242
|
+
* Whether to add the given query options because they are in a $expand that has not been
|
|
243
|
+
* aggregated yet
|
|
244
|
+
* @returns {boolean}
|
|
245
|
+
* Whether the query options can be fulfilled by this binding
|
|
240
246
|
*/
|
|
241
247
|
function merge(mAggregatedQueryOptions, mQueryOptions0, sMetaPath, bInsideExpand, bAdd) {
|
|
242
248
|
/*
|
|
@@ -306,10 +312,13 @@ sap.ui.define([
|
|
|
306
312
|
}
|
|
307
313
|
|
|
308
314
|
if (merge(mAggregatedQueryOptionsClone, mQueryOptions, sBaseMetaPath)) {
|
|
309
|
-
if (
|
|
310
|
-
this.mAggregatedQueryOptions = mAggregatedQueryOptionsClone;
|
|
311
|
-
} else {
|
|
315
|
+
if (bCacheImmutable) {
|
|
312
316
|
this.mLateQueryOptions = mAggregatedQueryOptionsClone;
|
|
317
|
+
} else {
|
|
318
|
+
this.mAggregatedQueryOptions = mAggregatedQueryOptionsClone;
|
|
319
|
+
if (this.mLateQueryOptions) {
|
|
320
|
+
merge(this.mLateQueryOptions, mQueryOptions);
|
|
321
|
+
}
|
|
313
322
|
}
|
|
314
323
|
return true;
|
|
315
324
|
}
|
|
@@ -704,14 +713,14 @@ sap.ui.define([
|
|
|
704
713
|
* @param {sap.ui.model.odata.v4.Context} oContext
|
|
705
714
|
* A context of this binding which is the direct or indirect parent of the child binding.
|
|
706
715
|
* Initially it is the child binding's parent context (See
|
|
707
|
-
* {@link sap.ui.model.odata.v4.ODataBinding#
|
|
708
|
-
* delegates up to its parent binding, it passes its own parent context adjusting
|
|
716
|
+
* {@link sap.ui.model.odata.v4.ODataBinding#fetchOrGetQueryOptionsForOwnCache}). When a
|
|
717
|
+
* binding delegates up to its parent binding, it passes its own parent context adjusting
|
|
709
718
|
* <code>sChildPath</code> accordingly.
|
|
710
719
|
* @param {string} sChildPath
|
|
711
720
|
* The child binding's binding path relative to <code>oContext</code>
|
|
712
|
-
* @param {object|sap.ui.base.SyncPromise} vChildQueryOptions
|
|
713
|
-
* The child binding's (aggregated) query options or a promise resolving with them
|
|
714
|
-
* @param {boolean} bIsProperty
|
|
721
|
+
* @param {object|sap.ui.base.SyncPromise} [vChildQueryOptions={}]
|
|
722
|
+
* The child binding's (aggregated) query options (if any) or a promise resolving with them
|
|
723
|
+
* @param {boolean} [bIsProperty]
|
|
715
724
|
* Whether the child is a property binding
|
|
716
725
|
* @returns {sap.ui.base.SyncPromise}
|
|
717
726
|
* A promise resolved with the reduced path for the child binding if the child binding can use
|
|
@@ -726,7 +735,7 @@ sap.ui.define([
|
|
|
726
735
|
// getBaseForPathReduction must be called early, because the (virtual) parent context may be
|
|
727
736
|
// lost again when the path is needed
|
|
728
737
|
var sBaseForPathReduction = this.getBaseForPathReduction(),
|
|
729
|
-
sBaseMetaPath
|
|
738
|
+
sBaseMetaPath,
|
|
730
739
|
bCacheImmutable,
|
|
731
740
|
oCanUseCachePromise,
|
|
732
741
|
// whether this binding is an operation or depends on one
|
|
@@ -781,6 +790,23 @@ sap.ui.define([
|
|
|
781
790
|
return SyncPromise.resolve(sResolvedChildPath);
|
|
782
791
|
}
|
|
783
792
|
|
|
793
|
+
oCanUseCachePromise = this.mCanUseCachePromiseByChildPath[sChildPath];
|
|
794
|
+
if (oCanUseCachePromise && bIsProperty) {
|
|
795
|
+
return oCanUseCachePromise.then(function (sOldReducedPath) {
|
|
796
|
+
if (!sOldReducedPath) {
|
|
797
|
+
return undefined;
|
|
798
|
+
}
|
|
799
|
+
// Note: sResolvedChildPath could be "/SalesOrderList('42')/SO_2_SOITEM/0/Note"
|
|
800
|
+
// w/ index (thus getMetaPath helps), but getStrippedMetaPath makes no difference
|
|
801
|
+
if (!sChildPath.includes("/")
|
|
802
|
+
|| _Helper.getMetaPath(sOldReducedPath)
|
|
803
|
+
=== _Helper.getMetaPath(sResolvedChildPath)) {
|
|
804
|
+
return sResolvedChildPath;
|
|
805
|
+
}
|
|
806
|
+
return oMetaModel.getReducedPath(sResolvedChildPath, sBaseForPathReduction);
|
|
807
|
+
});
|
|
808
|
+
}
|
|
809
|
+
|
|
784
810
|
// Note: this.oCachePromise exists for all bindings except operation bindings; it might
|
|
785
811
|
// become pending again
|
|
786
812
|
bCacheImmutable = this.oCachePromise.isRejected()
|
|
@@ -788,16 +814,17 @@ sap.ui.define([
|
|
|
788
814
|
|| oContext.isKeepAlive() // kept-alive contexts have no index when not in aContexts
|
|
789
815
|
|| this.oCache === null
|
|
790
816
|
|| this.oCache && this.oCache.hasSentRequest();
|
|
817
|
+
sBaseMetaPath = _Helper.getMetaPath(oContext.getPath());
|
|
791
818
|
aPromises = [
|
|
792
|
-
this.
|
|
819
|
+
this.doFetchOrGetQueryOptions(this.oContext),
|
|
793
820
|
// After access to complete meta path of property, the metadata of all prefix paths
|
|
794
821
|
// is loaded so that synchronous access in wrapChildQueryOptions via getObject is
|
|
795
|
-
// possible
|
|
822
|
+
// possible - as well as #getReducedPath
|
|
796
823
|
fetchPropertyAndType(),
|
|
797
824
|
vChildQueryOptions
|
|
798
825
|
];
|
|
799
826
|
oCanUseCachePromise = SyncPromise.all(aPromises).then(function (aResult) {
|
|
800
|
-
var mChildQueryOptions = aResult[2],
|
|
827
|
+
var mChildQueryOptions = aResult[2] || {},
|
|
801
828
|
mWrappedChildQueryOptions,
|
|
802
829
|
mLocalQueryOptions = aResult[0],
|
|
803
830
|
oProperty = aResult[1],
|
|
@@ -818,7 +845,7 @@ sap.ui.define([
|
|
|
818
845
|
that.bHasPathReductionToParent = true;
|
|
819
846
|
return that.oContext.getBinding().fetchIfChildCanUseCache(that.oContext,
|
|
820
847
|
_Helper.getRelativePath(sResolvedChildPath, that.oContext.getPath()),
|
|
821
|
-
|
|
848
|
+
mChildQueryOptions, bIsProperty);
|
|
822
849
|
}
|
|
823
850
|
|
|
824
851
|
if (bDependsOnOperation || sReducedChildMetaPath === "$count"
|
|
@@ -867,8 +894,8 @@ sap.ui.define([
|
|
|
867
894
|
if (that.oCache) {
|
|
868
895
|
that.oCache.setLateQueryOptions(that.mLateQueryOptions);
|
|
869
896
|
} else if (that.oCache === null) {
|
|
870
|
-
return that.oContext.getBinding()
|
|
871
|
-
that.sPath,
|
|
897
|
+
return that.oContext.getBinding()
|
|
898
|
+
.fetchIfChildCanUseCache(that.oContext, that.sPath, that.mLateQueryOptions)
|
|
872
899
|
.then(function (sPath) {
|
|
873
900
|
return sPath && sReducedPath;
|
|
874
901
|
});
|
|
@@ -876,6 +903,9 @@ sap.ui.define([
|
|
|
876
903
|
}
|
|
877
904
|
return sReducedPath;
|
|
878
905
|
});
|
|
906
|
+
if (bIsProperty && !oContext.getPath().includes("($uid=")) {
|
|
907
|
+
this.mCanUseCachePromiseByChildPath[sChildPath] = oCanUseCachePromise;
|
|
908
|
+
}
|
|
879
909
|
this.aChildCanUseCachePromises.push(oCanUseCachePromise);
|
|
880
910
|
this.oCachePromise = SyncPromise.all([this.oCachePromise, oCanUseCachePromise])
|
|
881
911
|
.then(function (aResult) {
|
|
@@ -901,6 +931,7 @@ sap.ui.define([
|
|
|
901
931
|
that.oModel.reportError(that + ": Failed to enhance query options for "
|
|
902
932
|
+ "auto-$expand/$select for child " + sChildPath, sClassName, oError);
|
|
903
933
|
});
|
|
934
|
+
|
|
904
935
|
return oCanUseCachePromise;
|
|
905
936
|
};
|
|
906
937
|
|
|
@@ -1024,7 +1055,7 @@ sap.ui.define([
|
|
|
1024
1055
|
* @private
|
|
1025
1056
|
*/
|
|
1026
1057
|
ODataParentBinding.prototype.getQueryOptionsForPath = function (sPath, oContext) {
|
|
1027
|
-
if (
|
|
1058
|
+
if (!_Helper.isEmptyObject(this.mParameters)) {
|
|
1028
1059
|
// binding has parameters -> all query options need to be defined at the binding
|
|
1029
1060
|
return _Helper.getQueryOptionsForPath(this.getQueryOptionsFromParameters(), sPath);
|
|
1030
1061
|
}
|
|
@@ -1053,8 +1084,8 @@ sap.ui.define([
|
|
|
1053
1084
|
* @function
|
|
1054
1085
|
* @name sap.ui.model.odata.v4.ODataParentBinding.getQueryOptionsFromParameters
|
|
1055
1086
|
* @private
|
|
1056
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
1057
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
1087
|
+
* @see sap.ui.model.odata.v4.ODataBinding#fetchOrGetQueryOptionsForOwnCache
|
|
1088
|
+
* @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
|
|
1058
1089
|
*/
|
|
1059
1090
|
|
|
1060
1091
|
/**
|
|
@@ -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.114.
|
|
45
|
+
* @version 1.114.3
|
|
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
|
|
@@ -103,7 +103,7 @@ sap.ui.define([
|
|
|
103
103
|
this.mQueryOptions = this.oModel.buildQueryOptions(_Helper.clone(mParameters),
|
|
104
104
|
/*bSystemQueryOptionsAllowed*/sPath.endsWith("$count"));
|
|
105
105
|
this.vValue = undefined;
|
|
106
|
-
// BEWARE: #
|
|
106
|
+
// BEWARE: #doFetchOrGetQueryOptions uses #isRoot which relies on this.oContext!
|
|
107
107
|
this.fetchCache(oContext);
|
|
108
108
|
oModel.bindingCreated(this);
|
|
109
109
|
}
|
|
@@ -401,10 +401,10 @@ sap.ui.define([
|
|
|
401
401
|
|
|
402
402
|
/**
|
|
403
403
|
* @override
|
|
404
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
404
|
+
* @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
|
|
405
405
|
*/
|
|
406
|
-
ODataPropertyBinding.prototype.
|
|
407
|
-
return this.isRoot() ?
|
|
406
|
+
ODataPropertyBinding.prototype.doFetchOrGetQueryOptions = function () {
|
|
407
|
+
return this.isRoot() ? this.mQueryOptions : undefined;
|
|
408
408
|
};
|
|
409
409
|
|
|
410
410
|
/**
|
|
@@ -10,10 +10,9 @@ sap.ui.define([
|
|
|
10
10
|
"./_Helper",
|
|
11
11
|
"./_Requestor",
|
|
12
12
|
"sap/base/Log",
|
|
13
|
-
"sap/base/util/isEmptyObject",
|
|
14
13
|
"sap/ui/base/SyncPromise",
|
|
15
14
|
"sap/ui/model/odata/ODataUtils"
|
|
16
|
-
], function (_GroupLock, _Helper, _Requestor, Log,
|
|
15
|
+
], function (_GroupLock, _Helper, _Requestor, Log, SyncPromise, ODataUtils) {
|
|
17
16
|
"use strict";
|
|
18
17
|
/*eslint max-nested-callbacks: 0 */
|
|
19
18
|
|
|
@@ -1038,7 +1037,7 @@ sap.ui.define([
|
|
|
1038
1037
|
}
|
|
1039
1038
|
}
|
|
1040
1039
|
|
|
1041
|
-
if (!this.mLateQueryOptions) {
|
|
1040
|
+
if (!(this.mLateQueryOptions || this.mQueryOptions && this.mQueryOptions.$select)) {
|
|
1042
1041
|
return false; // no autoExpandSelect
|
|
1043
1042
|
}
|
|
1044
1043
|
|
|
@@ -1051,10 +1050,15 @@ sap.ui.define([
|
|
|
1051
1050
|
aUpdateProperties = [sRequestedPropertyPath];
|
|
1052
1051
|
|
|
1053
1052
|
sFullResourceMetaPath = _Helper.buildPath(this.sMetaPath, sResourceMetaPath);
|
|
1053
|
+
mQueryOptions = this.mLateQueryOptions
|
|
1054
|
+
|| { // ensure that $select precedes $expand in the resulting query
|
|
1055
|
+
$select : this.mQueryOptions.$select,
|
|
1056
|
+
$expand : this.mQueryOptions.$expand
|
|
1057
|
+
};
|
|
1054
1058
|
// sRequestedPropertyPath is also a metapath because the binding does not accept a path with
|
|
1055
1059
|
// a collection-valued navigation property for a late property
|
|
1056
1060
|
mQueryOptions = _Helper.intersectQueryOptions(
|
|
1057
|
-
_Helper.getQueryOptionsForPath(
|
|
1061
|
+
_Helper.getQueryOptionsForPath(mQueryOptions, sResourcePath),
|
|
1058
1062
|
[sRequestedPropertyPath], this.oRequestor.getModelInterface().fetchMetadata,
|
|
1059
1063
|
sFullResourceMetaPath);
|
|
1060
1064
|
if (!mQueryOptions) {
|
|
@@ -1327,7 +1331,7 @@ sap.ui.define([
|
|
|
1327
1331
|
/**
|
|
1328
1332
|
* Returns this cache's query options.
|
|
1329
1333
|
*
|
|
1330
|
-
* @returns {object} The query options
|
|
1334
|
+
* @returns {object|undefined} The query options, if any
|
|
1331
1335
|
*
|
|
1332
1336
|
* @public
|
|
1333
1337
|
* @see #setQueryOptions
|
|
@@ -1373,7 +1377,7 @@ sap.ui.define([
|
|
|
1373
1377
|
* @see #registerChangeListener
|
|
1374
1378
|
*/
|
|
1375
1379
|
_Cache.prototype.hasChangeListeners = function () {
|
|
1376
|
-
return !isEmptyObject(this.mChangeListeners);
|
|
1380
|
+
return !_Helper.isEmptyObject(this.mChangeListeners);
|
|
1377
1381
|
};
|
|
1378
1382
|
|
|
1379
1383
|
/**
|
|
@@ -4071,7 +4075,7 @@ sap.ui.define([
|
|
|
4071
4075
|
if (oData) {
|
|
4072
4076
|
sHttpMethod = oData["X-HTTP-Method"] || sHttpMethod;
|
|
4073
4077
|
delete oData["X-HTTP-Method"];
|
|
4074
|
-
if (this.oRequestor.isActionBodyOptional() &&
|
|
4078
|
+
if (this.oRequestor.isActionBodyOptional() && _Helper.isEmptyObject(oData)) {
|
|
4075
4079
|
oData = undefined;
|
|
4076
4080
|
}
|
|
4077
4081
|
}
|
|
@@ -1840,6 +1840,10 @@ sap.ui.define([
|
|
|
1840
1840
|
&& !mParameters.$$aggregation.hierarchyQualifier;
|
|
1841
1841
|
},
|
|
1842
1842
|
|
|
1843
|
+
// Trampoline property to allow for mocking function module in unit tests.
|
|
1844
|
+
// @see sap.base.util.isEmptyObject
|
|
1845
|
+
isEmptyObject : isEmptyObject,
|
|
1846
|
+
|
|
1843
1847
|
/**
|
|
1844
1848
|
* Returns whether the given property is missing in vEntityOrCollection. This is the case if
|
|
1845
1849
|
* there is no value for it. It is not missing if a parent has a <code>null</code> value. In
|
|
@@ -2726,7 +2730,7 @@ sap.ui.define([
|
|
|
2726
2730
|
}
|
|
2727
2731
|
}
|
|
2728
2732
|
if (!oProperty || oProperty.$kind === "Property") {
|
|
2729
|
-
if (
|
|
2733
|
+
if (!isEmptyObject(mChildQueryOptions)) {
|
|
2730
2734
|
Log.error("Failed to enhance query options for auto-$expand/$select as the"
|
|
2731
2735
|
+ " child binding has query options, but its path '" + sChildMetaPath
|
|
2732
2736
|
+ "' points to a structural property",
|
|
@@ -486,7 +486,7 @@ sap.ui.define([
|
|
|
486
486
|
_Requestor.prototype.checkForOpenRequests = function () {
|
|
487
487
|
var that = this;
|
|
488
488
|
|
|
489
|
-
if (
|
|
489
|
+
if (!_Helper.isEmptyObject(this.mRunningChangeRequests) // running change requests
|
|
490
490
|
|| Object.keys(this.mBatchQueue).some(function (sGroupId) { // pending requests
|
|
491
491
|
return that.mBatchQueue[sGroupId].some(function (vRequest) {
|
|
492
492
|
return Array.isArray(vRequest) ? vRequest.length : true;
|
|
@@ -611,7 +611,7 @@ sap.ui.define([
|
|
|
611
611
|
sClassName);
|
|
612
612
|
}
|
|
613
613
|
});
|
|
614
|
-
if (aResult.length
|
|
614
|
+
if (aResult.length) {
|
|
615
615
|
oSemantics.type = {EnumMember : aResult.join(" ")};
|
|
616
616
|
}
|
|
617
617
|
}
|
|
@@ -690,19 +690,19 @@ sap.ui.define([
|
|
|
690
690
|
sTarget = sEntityContainerName + "/" + sEntitySetName;
|
|
691
691
|
mAnnotations = _Helper.merge(this.convertedV2Annotations[sTarget] || {},
|
|
692
692
|
this.mEntityType2EntitySetAnnotation[oEntitySet.$Type]);
|
|
693
|
-
if (
|
|
693
|
+
if (!_Helper.isEmptyObject(mAnnotations)) {
|
|
694
694
|
this.convertedV2Annotations[sTarget] = mAnnotations;
|
|
695
695
|
}
|
|
696
696
|
}
|
|
697
697
|
}
|
|
698
698
|
|
|
699
699
|
if (this.bIgnoreAnnotations) {
|
|
700
|
-
if (
|
|
700
|
+
if (!_Helper.isEmptyObject(this.convertedV2Annotations)) {
|
|
701
701
|
this.schema.$Annotations = {};
|
|
702
702
|
}
|
|
703
703
|
} else if (this.schema.$Annotations) {
|
|
704
704
|
this.mergeAnnotations(this.convertedV2Annotations, this.schema.$Annotations);
|
|
705
|
-
} else if (
|
|
705
|
+
} else if (!_Helper.isEmptyObject(this.convertedV2Annotations)) {
|
|
706
706
|
this.schema.$Annotations = this.convertedV2Annotations;
|
|
707
707
|
}
|
|
708
708
|
this.convertedV2Annotations = {}; // reset schema annotations for next schema
|
|
@@ -763,7 +763,7 @@ sap.ui.define([
|
|
|
763
763
|
|
|
764
764
|
// only if all (nested) query options are processed, all selects are known
|
|
765
765
|
aSelects = Object.keys(mSelects);
|
|
766
|
-
if (aSelects.length
|
|
766
|
+
if (aSelects.length) {
|
|
767
767
|
if (!mQueryOptions.$select) {
|
|
768
768
|
aSelects.push("*");
|
|
769
769
|
}
|
|
@@ -229,7 +229,7 @@ sap.ui.define([
|
|
|
229
229
|
*
|
|
230
230
|
* @extends sap.ui.model.Model
|
|
231
231
|
* @public
|
|
232
|
-
* @version 1.114.
|
|
232
|
+
* @version 1.114.3
|
|
233
233
|
*/
|
|
234
234
|
var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
|
|
235
235
|
|
|
@@ -27,7 +27,7 @@ sap.ui.define([
|
|
|
27
27
|
* @extends sap.ui.model.SimpleType
|
|
28
28
|
*
|
|
29
29
|
* @author SAP SE
|
|
30
|
-
* @version 1.114.
|
|
30
|
+
* @version 1.114.3
|
|
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.114.
|
|
22
|
+
* @version 1.114.3
|
|
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.114.
|
|
22
|
+
* @version 1.114.3
|
|
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.114.
|
|
22
|
+
* @version 1.114.3
|
|
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}.
|
|
@@ -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.114.
|
|
22
|
+
* @version 1.114.3
|
|
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}.
|