@openui5/sap.ui.core 1.107.1 → 1.108.1
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/.dtsgenrc +63 -0
- package/THIRDPARTY.txt +1 -1
- 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/i18n/ResourceBundle.js +10 -0
- package/src/sap/base/security/URLListValidator.js +36 -3
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +2 -2
- 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 +50 -50
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/BusyIndicatorUtils.js +22 -8
- package/src/sap/ui/core/Component.js +21 -4
- package/src/sap/ui/core/ComponentContainer.js +5 -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 -15
- package/src/sap/ui/core/Control.js +20 -2
- package/src/sap/ui/core/Core.js +311 -413
- 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/FocusHandler.js +12 -14
- package/src/sap/ui/core/Fragment.js +5 -2
- 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 +7 -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 +16 -83
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Popup.js +14 -4
- package/src/sap/ui/core/RenderManager.js +111 -109
- 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/ShortcutHintsMixin.js +20 -0
- 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 +4 -2
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/_IconRegistry.js +11 -7
- package/src/sap/ui/core/_UrlResolver.js +139 -0
- package/src/sap/ui/core/date/CalendarUtils.js +87 -0
- package/src/sap/ui/core/date/CalendarWeekNumbering.js +73 -0
- package/src/sap/ui/core/date/UniversalDate.js +198 -74
- 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/DateFormat.js +187 -57
- package/src/sap/ui/core/format/NumberFormat.js +64 -23
- package/src/sap/ui/core/format/TimezoneUtil.js +3 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +19 -10
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +5 -3
- 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_fr.properties +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +10 -2
- 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 +21 -20
- 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/themes/base/LocalBusyIndicator.less +3 -3
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/theming/Parameters.js +31 -12
- package/src/sap/ui/core/theming/ThemeHelper.js +56 -1
- package/src/sap/ui/core/theming/ThemeManager.js +817 -0
- 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 +2 -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/dom/getFirstEditableInput.js +25 -6
- package/src/sap/ui/dom/includeStylesheet.js +2 -2
- package/src/sap/ui/model/ClientListBinding.js +11 -4
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +60 -5
- 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/Filter.js +6 -6
- 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/Sorter.js +6 -4
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/TreeBinding.js +18 -0
- package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +28 -34
- package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +590 -0
- 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/BatchMode.js +2 -2
- package/src/sap/ui/model/odata/v2/Context.js +169 -4
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +39 -17
- package/src/sap/ui/model/odata/v2/ODataModel.js +219 -82
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +35 -22
- package/src/sap/ui/model/odata/v4/ODataBinding.js +28 -22
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -6
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +111 -89
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +5 -4
- package/src/sap/ui/model/odata/v4/ODataModel.js +84 -46
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +19 -20
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +3 -3
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +12 -5
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +130 -64
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +56 -15
- 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/TestUtils.js +20 -0
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/thirdparty/mobify-carousel.js +0 -4
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/core/ThemeCheck.js +0 -389
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @hideconstructor
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.39.0
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.108.1
|
|
46
46
|
*/
|
|
47
47
|
Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
|
|
48
48
|
constructor : constructor
|
|
@@ -281,18 +281,17 @@ sap.ui.define([
|
|
|
281
281
|
* immediately, even if {@link sap.ui.model.odata.v4.SubmitMode.API} is used, and the request is
|
|
282
282
|
* only sent later when {@link sap.ui.model.odata.v4.ODataModel#submitBatch} is called. As long
|
|
283
283
|
* as the context is deleted on the client, but not yet on the server, {@link #isDeleted}
|
|
284
|
-
* returns <code>true</code
|
|
285
|
-
* {@link #isDeleted}
|
|
284
|
+
* returns <code>true</code> and the context must not be used anymore (except for checking
|
|
285
|
+
* {@link #isDeleted}), especially not as a binding context. The application has to take care
|
|
286
|
+
* that the context is no longer used.
|
|
286
287
|
*
|
|
287
288
|
* Since 1.105 such a pending deletion is a pending change. It causes
|
|
288
289
|
* <code>hasPendingChanges</code> to return <code>true</code> for the context, the binding
|
|
289
290
|
* containing it, and the model. <code>resetChanges</code> in binding or model cancels the
|
|
290
291
|
* deletion and restores the context.
|
|
291
292
|
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
* The context must not be used anymore after successful deletion.
|
|
293
|
+
* If the DELETE request succeeds, the context is destroyed and must not be used anymore. If it
|
|
294
|
+
* fails, the context is restored, reinserted into the list, and fully functional again.
|
|
296
295
|
*
|
|
297
296
|
* @param {string} [sGroupId]
|
|
298
297
|
* The group ID to be used for the DELETE request; if not specified, the update group ID for
|
|
@@ -300,7 +299,8 @@ sap.ui.define([
|
|
|
300
299
|
* is transient (see {@link #isTransient}), no group ID needs to be specified. Since 1.98.0,
|
|
301
300
|
* you can use <code>null</code> to prevent the DELETE request in case of a kept-alive context
|
|
302
301
|
* that is not in the collection and of which you know that it does not exist on the server
|
|
303
|
-
* anymore (for example, a draft after activation).
|
|
302
|
+
* anymore (for example, a draft after activation). Since 1.108.0 the usage of a group ID with
|
|
303
|
+
* {@link sap.ui.model.odata.v4.SubmitMode.API} is possible.
|
|
304
304
|
* @param {boolean} [bDoNotRequestCount]
|
|
305
305
|
* Whether not to request the new count from the server; useful in case of
|
|
306
306
|
* {@link #replaceWith} where it is known that the count remains unchanged (since 1.97.0).
|
|
@@ -326,10 +326,7 @@ sap.ui.define([
|
|
|
326
326
|
* <li> a <code>null</code> group ID is used with a context which is not
|
|
327
327
|
* {@link #isKeepAlive kept alive},
|
|
328
328
|
* <li> the context is already being deleted,
|
|
329
|
-
* <li> the
|
|
330
|
-
* context is {@link #isKeepAlive kept alive}, but not in the current collection,
|
|
331
|
-
* <li> (only before 1.105) the resulting group ID has
|
|
332
|
-
* {@link sap.ui.model.odata.v4.SubmitMode.API}
|
|
329
|
+
* <li> the context's binding is a list binding with data aggregation,
|
|
333
330
|
* </ul>
|
|
334
331
|
*
|
|
335
332
|
* @function
|
|
@@ -351,6 +348,9 @@ sap.ui.define([
|
|
|
351
348
|
if (this.isDeleted()) {
|
|
352
349
|
throw new Error("Must not delete twice: " + this);
|
|
353
350
|
}
|
|
351
|
+
if (this.oBinding.mParameters.$$aggregation) {
|
|
352
|
+
throw new Error("Cannot delete " + this + " when using data aggregation");
|
|
353
|
+
}
|
|
354
354
|
this.oBinding.checkSuspended();
|
|
355
355
|
if (this.isTransient()) {
|
|
356
356
|
sGroupId = null;
|
|
@@ -382,7 +382,7 @@ sap.ui.define([
|
|
|
382
382
|
if (oGroupLock) {
|
|
383
383
|
oGroupLock.unlock(true);
|
|
384
384
|
}
|
|
385
|
-
oModel.reportError("Failed to delete " + that, sClassName, oError);
|
|
385
|
+
oModel.reportError("Failed to delete " + that.getPath(), sClassName, oError);
|
|
386
386
|
that.bDeleted = false;
|
|
387
387
|
that.checkUpdate();
|
|
388
388
|
throw oError;
|
|
@@ -1100,10 +1100,15 @@ sap.ui.define([
|
|
|
1100
1100
|
* @throws {Error} If
|
|
1101
1101
|
* <ul>
|
|
1102
1102
|
* <li> this context's root binding is suspended,
|
|
1103
|
-
* <li> this context is
|
|
1104
|
-
* <li>
|
|
1105
|
-
*
|
|
1106
|
-
*
|
|
1103
|
+
* <li> this context is {@link #isTransient transient},
|
|
1104
|
+
* <li> this context is {@link #isDeleted deleted},
|
|
1105
|
+
* <li> the given other context
|
|
1106
|
+
* <ul>
|
|
1107
|
+
* <li> does not belong to the same list binding as this context,
|
|
1108
|
+
* <li> is already in the collection (has an {@link #getIndex index}),
|
|
1109
|
+
* <li> is {@link #delete deleted},
|
|
1110
|
+
* <li> or is not {@link #isKeepAlive kept alive}.
|
|
1111
|
+
* </ul>
|
|
1107
1112
|
* </ul>
|
|
1108
1113
|
*
|
|
1109
1114
|
* @public
|
|
@@ -1113,11 +1118,11 @@ sap.ui.define([
|
|
|
1113
1118
|
var oElement;
|
|
1114
1119
|
|
|
1115
1120
|
this.oBinding.checkSuspended();
|
|
1116
|
-
if (this.isTransient()) {
|
|
1121
|
+
if (this.isTransient() || this.isDeleted()) {
|
|
1117
1122
|
throw new Error("Cannot replace " + this);
|
|
1118
1123
|
}
|
|
1119
1124
|
if (oOtherContext.oBinding !== this.oBinding || oOtherContext.iIndex !== undefined
|
|
1120
|
-
|
|
1125
|
+
|| oOtherContext.bDeleted || !oOtherContext.bKeepAlive) {
|
|
1121
1126
|
throw new Error("Cannot replace with " + oOtherContext);
|
|
1122
1127
|
}
|
|
1123
1128
|
oElement = oOtherContext.getValue();
|
|
@@ -1338,6 +1343,10 @@ sap.ui.define([
|
|
|
1338
1343
|
* effects fails. Use it to set fields affected by side effects to read-only before
|
|
1339
1344
|
* {@link #requestSideEffects} and make them editable again when the promise resolves; in the
|
|
1340
1345
|
* error handler, you can repeat the loading of side effects.
|
|
1346
|
+
* <br>
|
|
1347
|
+
* The promise is rejected if the call wants to refresh a whole list binding (via header
|
|
1348
|
+
* context or an absolute path), but the deletion of a row context (see {@link #delete}) is
|
|
1349
|
+
* pending with a different group ID.
|
|
1341
1350
|
* @throws {Error} If
|
|
1342
1351
|
* <ul>
|
|
1343
1352
|
* <li> metadata has not yet been loaded
|
|
@@ -1352,6 +1361,7 @@ sap.ui.define([
|
|
|
1352
1361
|
* {@link sap.ui.model.odata.v4.ODataPropertyBinding#getRootBinding}, and
|
|
1353
1362
|
* {@link sap.ui.model.Binding#isSuspended})
|
|
1354
1363
|
* <li> this context is transient (see {@link #isTransient})
|
|
1364
|
+
* <li> this context is deleted (see {@link #isDeleted})
|
|
1355
1365
|
* <li> the binding of this context is unresolved (see
|
|
1356
1366
|
* {@link sap.ui.model.Binding#isResolved})
|
|
1357
1367
|
* <li> the group ID is invalid
|
|
@@ -1399,7 +1409,7 @@ sap.ui.define([
|
|
|
1399
1409
|
|
|
1400
1410
|
this.oBinding.checkSuspended();
|
|
1401
1411
|
_Helper.checkGroupId(sGroupId);
|
|
1402
|
-
if (this.isTransient()) {
|
|
1412
|
+
if (this.isTransient() || this.isDeleted()) {
|
|
1403
1413
|
throw new Error("Unsupported context: " + this);
|
|
1404
1414
|
}
|
|
1405
1415
|
if (!aPathExpressions || !aPathExpressions.length) {
|
|
@@ -1595,6 +1605,7 @@ sap.ui.define([
|
|
|
1595
1605
|
* <li> this context is not a list binding's context,
|
|
1596
1606
|
* <li> it is the header context,
|
|
1597
1607
|
* <li> it is transient,
|
|
1608
|
+
* <li> it is deleted and <code>bKeepAlive</code> is <code>true</code>,
|
|
1598
1609
|
* <li> it does not point to an entity,
|
|
1599
1610
|
* <li> a key property of the entity has not been requested,
|
|
1600
1611
|
* <li> the list binding is relative and does not use the <code>$$ownRequest</code>
|
|
@@ -1614,8 +1625,8 @@ sap.ui.define([
|
|
|
1614
1625
|
Context.prototype.setKeepAlive = function (bKeepAlive, fnOnBeforeDestroy, bRequestMessages) {
|
|
1615
1626
|
var that = this;
|
|
1616
1627
|
|
|
1617
|
-
if (this.isTransient()) {
|
|
1618
|
-
throw new Error("Unsupported
|
|
1628
|
+
if (this.isTransient() || bKeepAlive && this.isDeleted()) {
|
|
1629
|
+
throw new Error("Unsupported context " + this);
|
|
1619
1630
|
}
|
|
1620
1631
|
_Helper.getPredicateIndex(this.sPath);
|
|
1621
1632
|
this.oBinding.checkKeepAlive(this);
|
|
@@ -1776,6 +1787,8 @@ sap.ui.define([
|
|
|
1776
1787
|
* @returns {sap.ui.base.SyncPromise} A sync promise that is resolved with either the result of
|
|
1777
1788
|
* the processor or <code>undefined</code> if there is no cache for this binding, or if the
|
|
1778
1789
|
* cache determination is not yet completed
|
|
1790
|
+
*
|
|
1791
|
+
* @private
|
|
1779
1792
|
*/
|
|
1780
1793
|
Context.prototype.withCache = function (fnProcessor, sPath, bSync, bWithOrWithoutCache) {
|
|
1781
1794
|
if (this.iIndex === iVIRTUAL) {
|
|
@@ -22,7 +22,7 @@ sap.ui.define([
|
|
|
22
22
|
* Tells whether the first given change reason has precedence over the second one.
|
|
23
23
|
*
|
|
24
24
|
* @param {string} sChangeReason0 - A change reason
|
|
25
|
-
* @param {string} sChangeReason1
|
|
25
|
+
* @param {string} sChangeReason1 - A change reason
|
|
26
26
|
* @returns {boolean} Whether the first given change reason has precedence over the second one
|
|
27
27
|
*/
|
|
28
28
|
function hasPrecedenceOver(sChangeReason0, sChangeReason1) {
|
|
@@ -281,10 +281,10 @@ sap.ui.define([
|
|
|
281
281
|
|
|
282
282
|
this.mCacheQueryOptions = Object.assign({}, this.oModel.mUriParameters, mQueryOptions);
|
|
283
283
|
if (this.bRelative) { // quasi-absolute or relative binding
|
|
284
|
-
// The parent has to be persisted in order to know
|
|
284
|
+
// The parent has to be persisted in order to know its key predicate when creating the
|
|
285
285
|
// child's own cache. Context#isTransient cannot be used exclusively here because it
|
|
286
286
|
// returns true for ODLB#create w/o bSkipRefresh, unless the refresh for the created
|
|
287
|
-
// entity is resolved too - but the entity's key
|
|
287
|
+
// entity is resolved too - but the entity's key predicate is already available.
|
|
288
288
|
if (oContext.isTransient && oContext.isTransient()
|
|
289
289
|
&& oContext.getProperty("@$ui5.context.isTransient")) {
|
|
290
290
|
// Note: sResourcePath is kind of preliminary here, no use to remember it!
|
|
@@ -649,7 +649,7 @@ sap.ui.define([
|
|
|
649
649
|
};
|
|
650
650
|
|
|
651
651
|
/**
|
|
652
|
-
* Fires the 'dataReceived' event.
|
|
652
|
+
* Fires the 'dataReceived' event. The event is bubbled up to the model, unless it is prevented.
|
|
653
653
|
*
|
|
654
654
|
* @param {object} oParameters
|
|
655
655
|
* The event parameters
|
|
@@ -658,7 +658,7 @@ sap.ui.define([
|
|
|
658
658
|
* @param {Error} [oParameters.error]
|
|
659
659
|
* The error object if a back-end request failed.
|
|
660
660
|
* @param {boolean} [bPreventBubbling]
|
|
661
|
-
* Whether
|
|
661
|
+
* Whether to prevent bubbling this event to the model
|
|
662
662
|
*
|
|
663
663
|
* @private
|
|
664
664
|
*/
|
|
@@ -669,10 +669,11 @@ sap.ui.define([
|
|
|
669
669
|
};
|
|
670
670
|
|
|
671
671
|
/**
|
|
672
|
-
* Fires the 'dataRequested' event.
|
|
672
|
+
* Fires the 'dataRequested' event. The event is bubbled up to the model, unless it is
|
|
673
|
+
* prevented.
|
|
673
674
|
*
|
|
674
675
|
* @param {boolean} [bPreventBubbling]
|
|
675
|
-
* Whether
|
|
676
|
+
* Whether to prevent bubbling this event to the model
|
|
676
677
|
*
|
|
677
678
|
* @private
|
|
678
679
|
*/
|
|
@@ -865,11 +866,10 @@ sap.ui.define([
|
|
|
865
866
|
};
|
|
866
867
|
|
|
867
868
|
/**
|
|
868
|
-
* Returns <code>true</code> if this binding or its dependent bindings have
|
|
869
|
-
*
|
|
870
|
-
* function does not take
|
|
871
|
-
* {@link sap.ui.model.odata.v4.
|
|
872
|
-
* (see {@link sap.ui.model.odata.v4.ODataContextBinding#execute}). Since 1.98.0,
|
|
869
|
+
* Returns <code>true</code> if this binding or its dependent bindings have property changes,
|
|
870
|
+
* created entities, or entity deletions which have not been sent successfully to the server.
|
|
871
|
+
* This function does not take the execution of OData operations
|
|
872
|
+
* (see {@link sap.ui.model.odata.v4.ODataContextBinding#execute}) into account. Since 1.98.0,
|
|
873
873
|
* {@link sap.ui.model.odata.v4.Context#isInactive inactive} contexts are ignored.
|
|
874
874
|
*
|
|
875
875
|
* Note: If this binding is relative, its data is cached separately for each parent context
|
|
@@ -884,8 +884,9 @@ sap.ui.define([
|
|
|
884
884
|
* {@link sap.ui.model.odata.v4.ODataListBinding#refresh refresh} (since 1.100.0),
|
|
885
885
|
* {@link sap.ui.model.odata.v4.ODataListBinding#sort sort}, or
|
|
886
886
|
* {@link sap.ui.model.odata.v4.ODataListBinding#suspend suspend} because they relate to a
|
|
887
|
-
* {@link sap.ui.model.odata.v4.Context#isKeepAlive kept-alive}
|
|
888
|
-
*
|
|
887
|
+
* {@link sap.ui.model.odata.v4.Context#isKeepAlive kept-alive} (since 1.97.0) or
|
|
888
|
+
* {@link sap.ui.model.odata.v4.Context#delete deleted} (since 1.108.0) context of this
|
|
889
|
+
* binding. Since 1.98.0, {@link sap.ui.model.odata.v4.Context#isTransient transient}
|
|
889
890
|
* contexts of a {@link #getRootBinding root binding} are treated as kept-alive by this flag.
|
|
890
891
|
* Since 1.99.0, the same happens for bindings using the <code>$$ownRequest</code> parameter
|
|
891
892
|
* (see {@link sap.ui.model.odata.v4.ODataModel#bindList}).
|
|
@@ -909,7 +910,7 @@ sap.ui.define([
|
|
|
909
910
|
* The path (absolute or relative to this binding)
|
|
910
911
|
* @param {boolean} [bIgnoreKeptAlive]
|
|
911
912
|
* Whether to ignore changes which will not be lost by APIs like sort or filter because they
|
|
912
|
-
* relate to a context which is kept alive
|
|
913
|
+
* relate to a deleted context or a context which is kept alive
|
|
913
914
|
* @returns {boolean}
|
|
914
915
|
* <code>true</code> if there are pending changes for the path
|
|
915
916
|
*
|
|
@@ -952,7 +953,7 @@ sap.ui.define([
|
|
|
952
953
|
*
|
|
953
954
|
* @param {boolean} [bIgnoreKeptAlive]
|
|
954
955
|
* Whether to ignore changes which will not be lost by APIs like sort or filter because they
|
|
955
|
-
* relate to a context which is kept alive
|
|
956
|
+
* relate to a deleted context or a context which is kept alive
|
|
956
957
|
* @returns {boolean}
|
|
957
958
|
* <code>true</code> if this binding has pending changes
|
|
958
959
|
*
|
|
@@ -1074,15 +1075,20 @@ sap.ui.define([
|
|
|
1074
1075
|
* @throws {Error} If
|
|
1075
1076
|
* <ul>
|
|
1076
1077
|
* <li> the given group ID is invalid,
|
|
1077
|
-
* <li> there are pending changes that cannot be ignored,
|
|
1078
1078
|
* <li> refresh on this binding is not supported,
|
|
1079
1079
|
* <li> a group ID different from the binding's group ID is specified for a suspended
|
|
1080
1080
|
* binding,
|
|
1081
|
-
* <li>
|
|
1082
|
-
*
|
|
1083
|
-
*
|
|
1084
|
-
*
|
|
1085
|
-
*
|
|
1081
|
+
* <li> a value of type <code>boolean</code> is given,
|
|
1082
|
+
* <li> or there are pending changes that cannot be ignored.
|
|
1083
|
+
* </ul>
|
|
1084
|
+
* The following pending changes are ignored:
|
|
1085
|
+
* <ul>
|
|
1086
|
+
* <li> changes relating to a {@link sap.ui.model.odata.v4.Context#isKeepAlive kept-alive}
|
|
1087
|
+
* context of this binding (since 1.97.0),
|
|
1088
|
+
* <li> {@link sap.ui.model.odata.v4.Context#isTransient transient} contexts of a
|
|
1089
|
+
* {@link #getRootBinding root binding} (since 1.98.0),
|
|
1090
|
+
* <li> {@link sap.ui.model.odata.v4.Context#delete deleted} contexts (since 1.108.0).
|
|
1091
|
+
* </ul>
|
|
1086
1092
|
*
|
|
1087
1093
|
* @public
|
|
1088
1094
|
* @see sap.ui.model.Binding#refresh
|
|
@@ -74,7 +74,7 @@ sap.ui.define([
|
|
|
74
74
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
75
75
|
* @public
|
|
76
76
|
* @since 1.37.0
|
|
77
|
-
* @version 1.
|
|
77
|
+
* @version 1.108.1
|
|
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
|
|
@@ -207,7 +207,7 @@ sap.ui.define([
|
|
|
207
207
|
* A lock for the group ID to be used for the DELETE request; w/o a lock, no DELETE is sent.
|
|
208
208
|
* For a transient entity, the lock is ignored (use NULL)!
|
|
209
209
|
* @param {string} sEditUrl
|
|
210
|
-
* The entity's edit URL to be used for the DELETE request;
|
|
210
|
+
* The entity's edit URL to be used for the DELETE request; w/o a lock, this is mostly
|
|
211
211
|
* ignored.
|
|
212
212
|
* @param {sap.ui.model.odata.v4.Context} _oContext - ignored
|
|
213
213
|
* @param {object} [_oETagEntity] - ignored
|
|
@@ -269,7 +269,7 @@ sap.ui.define([
|
|
|
269
269
|
if (oReturnValueContext) {
|
|
270
270
|
oEmptyPathParentBinding.oReturnValueContext = oReturnValueContext;
|
|
271
271
|
}
|
|
272
|
-
that._fireChange({reason : ChangeReason.
|
|
272
|
+
that._fireChange({reason : ChangeReason.Add});
|
|
273
273
|
}
|
|
274
274
|
throw oError;
|
|
275
275
|
});
|
|
@@ -930,7 +930,7 @@ sap.ui.define([
|
|
|
930
930
|
* control's property bindings use the return value context as binding context.
|
|
931
931
|
* @throws {Error} If
|
|
932
932
|
* <ul>
|
|
933
|
-
* <li>the binding's root binding is suspended,
|
|
933
|
+
* <li> the binding's root binding is suspended,
|
|
934
934
|
* <li> the given group ID is invalid,
|
|
935
935
|
* <li> the binding is not a deferred operation binding (see
|
|
936
936
|
* {@link sap.ui.model.odata.v4.ODataContextBinding}),
|
|
@@ -1101,7 +1101,7 @@ sap.ui.define([
|
|
|
1101
1101
|
oEntity = oContext.getValue();
|
|
1102
1102
|
|
|
1103
1103
|
// avoid problems in fetchCanonicalPath (leading to an ODM#reportError)
|
|
1104
|
-
if (oEntity && _Helper.
|
|
1104
|
+
if (oEntity && _Helper.hasPrivateAnnotation(oEntity, "predicate")) {
|
|
1105
1105
|
oPromise = oContext.fetchCanonicalPath();
|
|
1106
1106
|
oPromise.caught();
|
|
1107
1107
|
if (oPromise.getResult() === sCanonicalPath) {
|
|
@@ -1182,7 +1182,7 @@ sap.ui.define([
|
|
|
1182
1182
|
* @returns {string}
|
|
1183
1183
|
* The resolved path with replaced transient predicates
|
|
1184
1184
|
* @throws {Error}
|
|
1185
|
-
* If an entity related to a segment with a transient predicate does not have key
|
|
1185
|
+
* If an entity related to a segment with a transient predicate does not have a key predicate
|
|
1186
1186
|
*
|
|
1187
1187
|
* @private
|
|
1188
1188
|
*/
|