@openui5/sap.ui.fl 1.114.0 → 1.115.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.
Files changed (209) hide show
  1. package/.reuse/dep5 +0 -5
  2. package/THIRDPARTY.txt +0 -6
  3. package/package.json +3 -3
  4. package/src/sap/ui/fl/.library +1 -1
  5. package/src/sap/ui/fl/Cache.js +39 -21
  6. package/src/sap/ui/fl/ChangePersistence.js +14 -21
  7. package/src/sap/ui/fl/ChangePersistenceFactory.js +3 -55
  8. package/src/sap/ui/fl/FakeLrepConnectorLocalStorage.js +1 -1
  9. package/src/sap/ui/fl/FakeLrepConnectorSessionStorage.js +1 -1
  10. package/src/sap/ui/fl/FakeLrepLocalStorage.js +1 -1
  11. package/src/sap/ui/fl/FlexController.js +5 -22
  12. package/src/sap/ui/fl/FlexControllerFactory.js +7 -159
  13. package/src/sap/ui/fl/LayerUtils.js +1 -1
  14. package/src/sap/ui/fl/Utils.js +2 -11
  15. package/src/sap/ui/fl/apply/_internal/ChangesController.js +0 -2
  16. package/src/sap/ui/fl/apply/_internal/DelegateMediator.js +1 -1
  17. package/src/sap/ui/fl/apply/_internal/changes/FlexCustomData.js +1 -1
  18. package/src/sap/ui/fl/apply/_internal/changes/Utils.js +8 -7
  19. package/src/sap/ui/fl/apply/_internal/changes/descriptor/Preprocessor.js +1 -1
  20. package/src/sap/ui/fl/apply/_internal/changes/descriptor/Registration.js +1 -1
  21. package/src/sap/ui/fl/apply/_internal/changes/descriptor/RegistrationBuild.js +1 -1
  22. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddAnnotationsToOData.js +1 -1
  23. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewInbound.js +1 -1
  24. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeDataSource.js +1 -1
  25. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeInbound.js +1 -1
  26. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/RemoveAllInboundsExceptOne.js +1 -1
  27. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetTitle.js +1 -1
  28. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetAbstract.js +1 -1
  29. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetRegistrationIds.js +1 -1
  30. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/AddNewCard.js +1 -1
  31. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/ChangeCard.js +1 -1
  32. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/DeleteCard.js +1 -1
  33. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddComponentUsages.js +1 -1
  34. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddLibrary.js +1 -1
  35. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModel.js +1 -1
  36. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModelEnhanceWith.js +1 -1
  37. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetFlexExtensionPointEnabled.js +1 -1
  38. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetMinUI5Version.js +1 -1
  39. package/src/sap/ui/fl/apply/_internal/connectors/ObjectStorageUtils.js +1 -1
  40. package/src/sap/ui/fl/apply/_internal/controlVariants/URLHandler.js +4 -12
  41. package/src/sap/ui/fl/apply/_internal/extensionPoint/Processor.js +1 -1
  42. package/src/sap/ui/fl/apply/_internal/flexObjects/AppDescriptorChange.js +1 -1
  43. package/src/sap/ui/fl/apply/_internal/flexObjects/CompVariant.js +1 -1
  44. package/src/sap/ui/fl/apply/_internal/flexObjects/ControllerExtensionChange.js +1 -1
  45. package/src/sap/ui/fl/apply/_internal/flexObjects/FlVariant.js +1 -1
  46. package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObject.js +1 -1
  47. package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObjectFactory.js +3 -2
  48. package/src/sap/ui/fl/apply/_internal/flexObjects/UIChange.js +8 -1
  49. package/src/sap/ui/fl/apply/_internal/flexObjects/Variant.js +1 -1
  50. package/src/sap/ui/fl/apply/_internal/flexState/DataSelector.js +25 -27
  51. package/src/sap/ui/fl/apply/_internal/flexState/FlexState.js +104 -80
  52. package/src/sap/ui/fl/apply/_internal/flexState/InitialPrepareFunctions.js +34 -15
  53. package/src/sap/ui/fl/apply/_internal/flexState/Loader.js +1 -1
  54. package/src/sap/ui/fl/apply/_internal/flexState/ManifestUtils.js +1 -1
  55. package/src/sap/ui/fl/apply/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +1 -1
  56. package/src/sap/ui/fl/apply/_internal/flexState/changes/DependencyHandler.js +1 -1
  57. package/src/sap/ui/fl/apply/_internal/flexState/changes/ExtensionPointState.js +1 -1
  58. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantMerger.js +2 -2
  59. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/Switcher.js +1 -2
  60. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState.js +300 -386
  61. package/src/sap/ui/fl/apply/_internal/preprocessors/ComponentLifecycleHooks.js +219 -0
  62. package/src/sap/ui/fl/apply/_internal/preprocessors/ControllerExtension.js +1 -1
  63. package/src/sap/ui/fl/apply/_internal/preprocessors/EventHistory.js +1 -1
  64. package/src/sap/ui/fl/apply/_internal/preprocessors/RegistrationDelegator.js +7 -9
  65. package/src/sap/ui/fl/apply/_internal/preprocessors/XmlPreprocessor.js +1 -1
  66. package/src/sap/ui/fl/apply/api/ControlVariantApplyAPI.js +1 -1
  67. package/src/sap/ui/fl/changeHandler/AddIFrame.js +1 -1
  68. package/src/sap/ui/fl/changeHandler/AddXML.js +1 -1
  69. package/src/sap/ui/fl/changeHandler/AddXMLAtExtensionPoint.js +1 -1
  70. package/src/sap/ui/fl/changeHandler/Base.js +1 -1
  71. package/src/sap/ui/fl/changeHandler/BaseAddViaDelegate.js +1 -1
  72. package/src/sap/ui/fl/changeHandler/BaseAddXml.js +1 -1
  73. package/src/sap/ui/fl/changeHandler/BaseRename.js +1 -1
  74. package/src/sap/ui/fl/changeHandler/HideControl.js +1 -1
  75. package/src/sap/ui/fl/changeHandler/MoveControls.js +6 -1
  76. package/src/sap/ui/fl/changeHandler/MoveElements.js +1 -1
  77. package/src/sap/ui/fl/changeHandler/PropertyBindingChange.js +1 -1
  78. package/src/sap/ui/fl/changeHandler/PropertyChange.js +1 -1
  79. package/src/sap/ui/fl/changeHandler/StashControl.js +1 -1
  80. package/src/sap/ui/fl/changeHandler/UnhideControl.js +1 -1
  81. package/src/sap/ui/fl/changeHandler/UnstashControl.js +1 -1
  82. package/src/sap/ui/fl/changeHandler/UpdateIFrame.js +1 -1
  83. package/src/sap/ui/fl/descriptorRelated/api/DescriptorChangeFactory.js +4 -4
  84. package/src/sap/ui/fl/descriptorRelated/api/DescriptorInlineChangeFactory.js +1 -1
  85. package/src/sap/ui/fl/descriptorRelated/api/DescriptorVariantFactory.js +1 -1
  86. package/src/sap/ui/fl/initial/_internal/Storage.js +3 -1
  87. package/src/sap/ui/fl/initial/_internal/StorageResultMerger.js +3 -22
  88. package/src/sap/ui/fl/initial/_internal/StorageUtils.js +1 -1
  89. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerRegistration.js +2 -3
  90. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerStorage.js +1 -1
  91. package/src/sap/ui/fl/initial/_internal/connectors/LrepConnector.js +1 -0
  92. package/src/sap/ui/fl/initial/_internal/connectors/Utils.js +1 -1
  93. package/src/sap/ui/fl/initial/_internal/storageResultDisassemble.js +1 -1
  94. package/src/sap/ui/fl/interfaces/BaseLoadConnector.js +1 -1
  95. package/src/sap/ui/fl/interfaces/Delegate.js +1 -1
  96. package/src/sap/ui/fl/library.js +43 -43
  97. package/src/sap/ui/fl/messagebundle.properties +6 -0
  98. package/src/sap/ui/fl/messagebundle_ar.properties +4 -0
  99. package/src/sap/ui/fl/messagebundle_bg.properties +6 -2
  100. package/src/sap/ui/fl/messagebundle_ca.properties +4 -0
  101. package/src/sap/ui/fl/messagebundle_cs.properties +4 -0
  102. package/src/sap/ui/fl/messagebundle_cy.properties +4 -0
  103. package/src/sap/ui/fl/messagebundle_da.properties +4 -0
  104. package/src/sap/ui/fl/messagebundle_de.properties +6 -2
  105. package/src/sap/ui/fl/messagebundle_el.properties +4 -0
  106. package/src/sap/ui/fl/messagebundle_en.properties +4 -0
  107. package/src/sap/ui/fl/messagebundle_en_GB.properties +4 -0
  108. package/src/sap/ui/fl/messagebundle_en_US_sappsd.properties +4 -0
  109. package/src/sap/ui/fl/messagebundle_en_US_saprigi.properties +4 -0
  110. package/src/sap/ui/fl/messagebundle_en_US_saptrc.properties +4 -0
  111. package/src/sap/ui/fl/messagebundle_es.properties +4 -0
  112. package/src/sap/ui/fl/messagebundle_es_MX.properties +4 -0
  113. package/src/sap/ui/fl/messagebundle_et.properties +4 -0
  114. package/src/sap/ui/fl/messagebundle_fi.properties +4 -0
  115. package/src/sap/ui/fl/messagebundle_fr.properties +4 -0
  116. package/src/sap/ui/fl/messagebundle_fr_CA.properties +4 -0
  117. package/src/sap/ui/fl/messagebundle_hi.properties +4 -0
  118. package/src/sap/ui/fl/messagebundle_hr.properties +4 -0
  119. package/src/sap/ui/fl/messagebundle_hu.properties +4 -0
  120. package/src/sap/ui/fl/messagebundle_id.properties +4 -0
  121. package/src/sap/ui/fl/messagebundle_it.properties +4 -0
  122. package/src/sap/ui/fl/messagebundle_iw.properties +4 -0
  123. package/src/sap/ui/fl/messagebundle_ja.properties +12 -8
  124. package/src/sap/ui/fl/messagebundle_kk.properties +4 -0
  125. package/src/sap/ui/fl/messagebundle_ko.properties +4 -0
  126. package/src/sap/ui/fl/messagebundle_lt.properties +4 -0
  127. package/src/sap/ui/fl/messagebundle_lv.properties +4 -0
  128. package/src/sap/ui/fl/messagebundle_ms.properties +4 -0
  129. package/src/sap/ui/fl/messagebundle_nl.properties +4 -0
  130. package/src/sap/ui/fl/messagebundle_no.properties +4 -0
  131. package/src/sap/ui/fl/messagebundle_pl.properties +4 -0
  132. package/src/sap/ui/fl/messagebundle_pt.properties +4 -0
  133. package/src/sap/ui/fl/messagebundle_pt_PT.properties +4 -0
  134. package/src/sap/ui/fl/messagebundle_ro.properties +4 -0
  135. package/src/sap/ui/fl/messagebundle_ru.properties +4 -0
  136. package/src/sap/ui/fl/messagebundle_sh.properties +4 -0
  137. package/src/sap/ui/fl/messagebundle_sk.properties +4 -0
  138. package/src/sap/ui/fl/messagebundle_sl.properties +4 -0
  139. package/src/sap/ui/fl/messagebundle_sv.properties +4 -0
  140. package/src/sap/ui/fl/messagebundle_th.properties +5 -1
  141. package/src/sap/ui/fl/messagebundle_tr.properties +4 -0
  142. package/src/sap/ui/fl/messagebundle_uk.properties +4 -0
  143. package/src/sap/ui/fl/messagebundle_vi.properties +4 -0
  144. package/src/sap/ui/fl/messagebundle_zh_CN.properties +4 -0
  145. package/src/sap/ui/fl/messagebundle_zh_TW.properties +4 -0
  146. package/src/sap/ui/fl/registry/Settings.js +10 -0
  147. package/src/sap/ui/fl/support/_internal/extractChangeDependencies.js +1 -1
  148. package/src/sap/ui/fl/support/_internal/getChangeDependencies.js +1 -1
  149. package/src/sap/ui/fl/support/_internal/getFlexSettings.js +1 -1
  150. package/src/sap/ui/fl/support/api/SupportAPI.js +1 -1
  151. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetails.controller.js +1 -1
  152. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetailsEdit.controller.js +1 -1
  153. package/src/sap/ui/fl/support/apps/contentbrowser/controller/LayerContentMaster.controller.js +1 -1
  154. package/src/sap/ui/fl/support/apps/contentbrowser/controller/Layers.controller.js +1 -1
  155. package/src/sap/ui/fl/support/apps/contentbrowser/lrepConnector/LRepConnector.js +1 -1
  156. package/src/sap/ui/fl/support/apps/contentbrowser/utils/DataUtils.js +1 -1
  157. package/src/sap/ui/fl/support/apps/contentbrowser/utils/ErrorUtils.js +1 -1
  158. package/src/sap/ui/fl/transport/TransportSelection.js +1 -1
  159. package/src/sap/ui/fl/util/IFrame.js +1 -1
  160. package/src/sap/ui/fl/util/ManagedObjectModel.js +1 -1
  161. package/src/sap/ui/fl/util/resolveBinding.js +1 -1
  162. package/src/sap/ui/fl/variants/VariantModel.js +124 -338
  163. package/src/sap/ui/fl/write/_internal/Storage.js +1 -1
  164. package/src/sap/ui/fl/write/_internal/StorageFeaturesMerger.js +1 -1
  165. package/src/sap/ui/fl/write/_internal/Versions.js +134 -111
  166. package/src/sap/ui/fl/write/_internal/appVariant/AppVariant.js +1 -1
  167. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantFactory.js +1 -1
  168. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChange.js +1 -1
  169. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChangeFactory.js +1 -1
  170. package/src/sap/ui/fl/write/_internal/condenser/Condenser.js +35 -8
  171. package/src/sap/ui/fl/write/_internal/condenser/UIReconstruction.js +17 -2
  172. package/src/sap/ui/fl/write/_internal/condenser/classifications/Destroy.js +8 -5
  173. package/src/sap/ui/fl/write/_internal/condenser/classifications/Move.js +6 -0
  174. package/src/sap/ui/fl/write/_internal/connectors/BackendConnector.js +1 -1
  175. package/src/sap/ui/fl/write/_internal/connectors/KeyUserConnector.js +34 -4
  176. package/src/sap/ui/fl/write/_internal/connectors/LrepConnector.js +1 -1
  177. package/src/sap/ui/fl/write/_internal/connectors/NeoLrepConnector.js +1 -1
  178. package/src/sap/ui/fl/write/_internal/connectors/ObjectPathConnector.js +1 -1
  179. package/src/sap/ui/fl/write/_internal/connectors/PersonalizationConnector.js +1 -1
  180. package/src/sap/ui/fl/write/_internal/connectors/Utils.js +1 -1
  181. package/src/sap/ui/fl/write/_internal/extensionPoint/Processor.js +1 -1
  182. package/src/sap/ui/fl/write/_internal/extensionPoint/Registry.js +1 -1
  183. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPAccess.js +1 -1
  184. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariant.js +1 -1
  185. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariantFactory.js +1 -1
  186. package/src/sap/ui/fl/write/_internal/fieldExtensibility/MultiTenantABAPExtensibilityVariant.js +1 -1
  187. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ServiceValidation.js +1 -1
  188. package/src/sap/ui/fl/write/_internal/fieldExtensibility/SingleTenantABAPExtensibilityVariant.js +1 -1
  189. package/src/sap/ui/fl/write/_internal/fieldExtensibility/UriParser.js +1 -1
  190. package/src/sap/ui/fl/write/_internal/fieldExtensibility/Utils.js +1 -1
  191. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/CAPAccess.js +1 -1
  192. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/dialog/CustomFieldCAPDialog.js +1 -1
  193. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
  194. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/rangeEditor/RangeEditor.js +1 -1
  195. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/timeEditor/TimeEditor.js +1 -1
  196. package/src/sap/ui/fl/write/_internal/flexState/FlexObjectState.js +11 -7
  197. package/src/sap/ui/fl/write/_internal/flexState/compVariants/CompVariantState.js +12 -11
  198. package/src/sap/ui/fl/write/_internal/transport/TransportSelection.js +1 -1
  199. package/src/sap/ui/fl/write/_internal/transport/Transports.js +1 -1
  200. package/src/sap/ui/fl/write/api/ContextBasedAdaptationsAPI.js +87 -27
  201. package/src/sap/ui/fl/write/api/ContextSharingAPI.js +7 -1
  202. package/src/sap/ui/fl/write/api/ControlPersonalizationWriteAPI.js +1 -23
  203. package/src/sap/ui/fl/write/api/FeaturesAPI.js +5 -5
  204. package/src/sap/ui/fl/write/api/FieldExtensibility.js +1 -1
  205. package/src/sap/ui/fl/write/api/PersistenceWriteAPI.js +4 -3
  206. package/src/sap/ui/fl/write/api/ReloadInfoAPI.js +10 -1
  207. package/src/sap/ui/fl/write/api/TranslationAPI.js +1 -1
  208. package/src/sap/ui/fl/write/api/VersionsAPI.js +70 -21
  209. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/prepareVariantsMap.js +0 -356
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  *
23
23
  * @namespace sap.ui.fl.write._internal.Storage
24
24
  * @since 1.67
25
- * @version 1.114.0
25
+ * @version 1.115.1
26
26
  * @private
27
27
  * @ui5-restricted sap.ui.fl
28
28
  */
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  *
17
17
  * @namespace sap.ui.fl.write._internal.StorageFeaturesMerger
18
18
  * @since 1.70
19
- * @version 1.114.0
19
+ * @version 1.115.1
20
20
  * @private
21
21
  * @ui5-restricted sap.ui.fl.write._internal.Storage
22
22
  */
@@ -8,7 +8,6 @@ sap.ui.define([
8
8
  "sap/ui/fl/registry/Settings",
9
9
  "sap/ui/fl/ChangePersistenceFactory",
10
10
  "sap/ui/fl/write/_internal/Storage",
11
- "sap/ui/fl/Utils",
12
11
  "sap/ui/fl/write/api/Version",
13
12
  "sap/ui/model/json/JSONModel",
14
13
  "sap/ui/model/BindingMode"
@@ -16,7 +15,6 @@ sap.ui.define([
16
15
  Settings,
17
16
  ChangePersistenceFactory,
18
17
  Storage,
19
- Utils,
20
18
  Version,
21
19
  JSONModel,
22
20
  BindingMode
@@ -30,103 +28,112 @@ sap.ui.define([
30
28
  var BACKEND_REQUEST_LIMIT = MODEL_SIZE_LIMIT + 1;
31
29
 
32
30
  function createModel(bVersioningEnabled, aVersions) {
31
+ var oModel = _prepareVersionsModel(bVersioningEnabled, aVersions);
32
+
33
+ oModel.setDefaultBindingMode(BindingMode.OneWay);
34
+ oModel.setSizeLimit(MODEL_SIZE_LIMIT);
35
+ // TODO: currently called by sap.ui.rta.RuntimeAuthoring but should be by a ChangesState
36
+ oModel.setDirtyChanges = function (bDirtyChanges) {
37
+ oModel.setProperty("/dirtyChanges", bDirtyChanges);
38
+ oModel.updateDraftVersion();
39
+ oModel.updateBindings(true);
40
+ };
41
+
42
+ oModel.updateDraftVersion = function () {
43
+ var aVersions = oModel.getProperty("/versions");
44
+ var bVersioningEnabled = oModel.getProperty("/versioningEnabled");
45
+ var bDirtyChanges = oModel.getProperty("/dirtyChanges");
46
+ var bBackendDraft = oModel.getProperty("/backendDraft");
47
+ var bDraftAvailable = bVersioningEnabled && (bDirtyChanges || bBackendDraft);
48
+ oModel.setProperty("/draftAvailable", bDraftAvailable);
49
+
50
+ if (bDirtyChanges) {
51
+ oModel.setProperty("/displayedVersion", Version.Number.Draft);
52
+ }
53
+
54
+ // add draft
55
+ if (!_doesDraftExistInVersions(aVersions) && bDraftAvailable) {
56
+ aVersions.splice(0, 0, {version: Version.Number.Draft, type: Version.Type.Draft, filenames: [], isPublished: false});
57
+ }
58
+
59
+ // remove draft
60
+ if (_doesDraftExistInVersions(aVersions) && !bDraftAvailable) {
61
+ aVersions.shift();
62
+ oModel.setProperty("/displayedVersion", oModel.getProperty("/persistedVersion"));
63
+ }
64
+
65
+ var bActivateEnabled = oModel.getProperty("/displayedVersion") !== oModel.getProperty("/activeVersion");
66
+ oModel.setProperty("/activateEnabled", bActivateEnabled);
67
+ };
68
+
69
+ return oModel;
70
+ }
71
+
72
+ function _prepareVersionsModel(bVersioningEnabled, aVersions, oVersionsModel) {
73
+ var sPersistedBasisForDisplayedVersion;
74
+ var bPublishVersionEnabled = false;
75
+ var sActiveVersion = Version.Number.Original;
33
76
  var bBackendDraft = _doesDraftExistInVersions(aVersions);
34
77
  var aDraftFilenames = [];
35
78
 
36
- var sActiveVersion = Version.Number.Original;
37
- var bPublishVersionEnabled = false;
79
+ if (aVersions.length > 0) {
80
+ sPersistedBasisForDisplayedVersion = aVersions[0].version;
81
+ } else {
82
+ sPersistedBasisForDisplayedVersion = Version.Number.Original;
83
+ }
38
84
 
39
- return Utils.getUShellService("URLParsing")
40
- .then(function (oURLParsingService) {
41
- var sPersistedBasisForDisplayedVersion = Utils.getParameter(
42
- Version.UrlParameter,
43
- oURLParsingService
44
- );
45
- if (!sPersistedBasisForDisplayedVersion) {
46
- if (aVersions.length > 0) {
47
- sPersistedBasisForDisplayedVersion = aVersions[0].version;
48
- } else {
49
- sPersistedBasisForDisplayedVersion = Version.Number.Original;
50
- }
85
+ aVersions.forEach(function (oVersion) {
86
+ if (oVersion.version === Version.Number.Draft) {
87
+ oVersion.type = Version.Type.Draft;
88
+ oVersion.isPublished = false;
89
+ aDraftFilenames = oVersion.filenames;
90
+ } else {
91
+ if (sActiveVersion === Version.Number.Original) {
92
+ // no active version found yet; the first non-draft version is always the active version
93
+ oVersion.type = Version.Type.Active;
94
+ sActiveVersion = oVersion.version;
95
+ } else {
96
+ oVersion.type = Version.Type.Inactive;
97
+ }
98
+ //If the current selected version is not yet published, enable the publish button
99
+ //Original versions are not part of back end response, so publish button is not enabled by default value
100
+ if ((oVersion.version === sPersistedBasisForDisplayedVersion) && (oVersion.isPublished === false)) {
101
+ bPublishVersionEnabled = true;
51
102
  }
103
+ }
104
+ });
52
105
 
53
- aVersions.forEach(function (oVersion) {
54
- if (oVersion.version === Version.Number.Draft) {
55
- oVersion.type = Version.Type.Draft;
56
- oVersion.isPublished = false;
57
- aDraftFilenames = oVersion.filenames;
58
- } else {
59
- if (sActiveVersion === Version.Number.Original) {
60
- // no active version found yet; the first non-draft version is always the active version
61
- oVersion.type = Version.Type.Active;
62
- sActiveVersion = oVersion.version;
63
- } else {
64
- oVersion.type = Version.Type.Inactive;
65
- }
66
- //If the current selected version is not yet published, enable the publish button
67
- //Original versions are not part of back end response, so publish button is not enabled by default value
68
- if ((oVersion.version === sPersistedBasisForDisplayedVersion) && (oVersion.isPublished === false)) {
69
- bPublishVersionEnabled = true;
70
- }
71
- }
72
- });
73
-
74
- // TODO: need to update wording or add description
75
- var oModel = new JSONModel({
76
- publishVersionEnabled: bPublishVersionEnabled,
77
- versioningEnabled: bVersioningEnabled,
78
- versions: aVersions,
79
- activeVersion: sActiveVersion,
80
- backendDraft: bBackendDraft,
81
- dirtyChanges: false,
82
- draftAvailable: bBackendDraft,
83
- activateEnabled: bBackendDraft,
84
- persistedVersion: sPersistedBasisForDisplayedVersion,
85
- displayedVersion: sPersistedBasisForDisplayedVersion,
86
- draftFilenames: aDraftFilenames
87
- });
88
-
89
- oModel.setDefaultBindingMode(BindingMode.OneWay);
90
- oModel.setSizeLimit(MODEL_SIZE_LIMIT);
91
-
92
- // TODO: currently called by sap.ui.rta.RuntimeAuthoring but should be by a ChangesState
93
- oModel.setDirtyChanges = function (bDirtyChanges) {
94
- oModel.setProperty("/dirtyChanges", bDirtyChanges);
95
- oModel.updateDraftVersion();
96
- oModel.updateBindings(true);
97
- };
98
-
99
- oModel.updateDraftVersion = function () {
100
- var aVersions = oModel.getProperty("/versions");
101
- var bVersioningEnabled = oModel.getProperty("/versioningEnabled");
102
- var bDirtyChanges = oModel.getProperty("/dirtyChanges");
103
- var bBackendDraft = oModel.getProperty("/backendDraft");
104
- var bDraftAvailable = bVersioningEnabled && (bDirtyChanges || bBackendDraft);
105
- oModel.setProperty("/draftAvailable", bDraftAvailable);
106
-
107
- if (bDirtyChanges) {
108
- oModel.setProperty("/displayedVersion", Version.Number.Draft);
109
- }
110
-
111
- // add draft
112
- if (!_doesDraftExistInVersions(aVersions) && bDraftAvailable) {
113
- aVersions.splice(0, 0, {version: Version.Number.Draft, type: Version.Type.Draft, filenames: [], isPublished: false});
114
- }
115
-
116
- // remove draft
117
- if (_doesDraftExistInVersions(aVersions) && !bDraftAvailable) {
118
- aVersions.shift();
119
- oModel.setProperty("/displayedVersion", oModel.getProperty("/persistedVersion"));
120
- }
121
-
122
- var bActivateEnabled = oModel.getProperty("/displayedVersion") !== oModel.getProperty("/activeVersion");
123
- oModel.setProperty("/activateEnabled", bActivateEnabled);
124
- };
125
-
126
- return oModel;
106
+ if (oVersionsModel) {
107
+ oVersionsModel.setProperty("/publishVersionEnabled", bPublishVersionEnabled);
108
+ oVersionsModel.setProperty("/versioningEnabled", bVersioningEnabled);
109
+ oVersionsModel.setProperty("/versions", aVersions);
110
+ oVersionsModel.setProperty("/backendDraft", bBackendDraft);
111
+ oVersionsModel.setProperty("/dirtyChanges", false);
112
+ oVersionsModel.setProperty("/draftAvailable", bBackendDraft);
113
+ oVersionsModel.setProperty("/activateEnabled", bBackendDraft);
114
+ oVersionsModel.setProperty("/activeVersion", sActiveVersion);
115
+ oVersionsModel.setProperty("/persistedVersion", sPersistedBasisForDisplayedVersion);
116
+ oVersionsModel.setProperty("/displayedVersion", sPersistedBasisForDisplayedVersion);
117
+ oVersionsModel.setProperty("/draftFilenames", aDraftFilenames);
118
+ oVersionsModel.updateBindings(true);
119
+ } else {
120
+ oVersionsModel = new JSONModel({
121
+ publishVersionEnabled: bPublishVersionEnabled,
122
+ versioningEnabled: bVersioningEnabled,
123
+ versions: aVersions,
124
+ backendDraft: bBackendDraft,
125
+ dirtyChanges: false,
126
+ draftAvailable: bBackendDraft,
127
+ activateEnabled: bBackendDraft,
128
+ activeVersion: sActiveVersion,
129
+ persistedVersion: sPersistedBasisForDisplayedVersion,
130
+ displayedVersion: sPersistedBasisForDisplayedVersion,
131
+ draftFilenames: aDraftFilenames
127
132
  });
128
- }
133
+ }
129
134
 
135
+ return oVersionsModel;
136
+ }
130
137
  // TODO: the handling should move to the FlexState as soon as it is ready
131
138
  function _removeDirtyChanges(mPropertyBag, oDirtyChangeInfo) {
132
139
  // remove all dirty changes
@@ -170,12 +177,22 @@ sap.ui.define([
170
177
  });
171
178
  }
172
179
 
180
+ function _updateVersionModelWhenDiscardOrActivate(oModel, iNewVersion) {
181
+ oModel.setProperty("/backendDraft", false);
182
+ oModel.setProperty("/dirtyChanges", false);
183
+ oModel.setProperty("/draftAvailable", false);
184
+ oModel.setProperty("/activateEnabled", false);
185
+ oModel.setProperty("/displayedVersion", iNewVersion);
186
+ oModel.setProperty("/persistedVersion", iNewVersion);
187
+ oModel.updateBindings(true);
188
+ }
189
+
173
190
  /**
174
191
  *
175
192
  *
176
193
  * @namespace sap.ui.fl.write._internal.Versions
177
194
  * @since 1.74
178
- * @version 1.114.0
195
+ * @version 1.115.1
179
196
  * @private
180
197
  * @ui5-restricted sap.ui.fl
181
198
  */
@@ -248,6 +265,25 @@ sap.ui.define([
248
265
  _mInstances = {};
249
266
  };
250
267
 
268
+ /**
269
+ * Update version model with backend information.
270
+ *
271
+ * @param {object} mPropertyBag - Property Bag
272
+ * @param {string} mPropertyBag.reference - ID of the application for which the versions are requested
273
+ * @param {string} mPropertyBag.layer - Layer for which the versions should be retrieved
274
+ * @returns {Promise<sap.ui.fl.Version>} Promise resolving with the updated version model for the application from the backend
275
+ */
276
+ Versions.updateModelFromBackend = function(mPropertyBag) {
277
+ if (Versions.hasVersionsModel(mPropertyBag)) {
278
+ mPropertyBag.limit = BACKEND_REQUEST_LIMIT;
279
+ return Storage.versions.load(mPropertyBag)
280
+ .then(function (aVersions) {
281
+ var oVersionsModel = Versions.getVersionsModel(mPropertyBag);
282
+ return _prepareVersionsModel(oVersionsModel.getProperty("/versioningEnabled"), aVersions, oVersionsModel);
283
+ });
284
+ }
285
+ };
286
+
251
287
  /**
252
288
  * Updates dirty changes and the backendDraft property of the model after a saveAll was called.
253
289
  *
@@ -258,7 +294,6 @@ sap.ui.define([
258
294
  * @param {array} [mPropertyBag.draftFilenames] - Array with filesnames which was saved as draft
259
295
  */
260
296
  Versions.onAllChangesSaved = function (mPropertyBag) {
261
- mPropertyBag.reference = Utils.normalizeReference(mPropertyBag.reference);
262
297
  var oModel = Versions.getVersionsModel(mPropertyBag);
263
298
  var bVersioningEnabled = oModel.getProperty("/versioningEnabled");
264
299
  var bDirtyChanges = oModel.getProperty("/dirtyChanges");
@@ -318,16 +353,10 @@ sap.ui.define([
318
353
  aVersions.shift();
319
354
  }
320
355
  aVersions.splice(0, 0, oVersion);
321
- oModel.setProperty("/publishVersionEnabled", true);
322
- oModel.setProperty("/backendDraft", false);
323
- oModel.setProperty("/dirtyChanges", false);
324
- oModel.setProperty("/draftAvailable", false);
325
- oModel.setProperty("/publishVersionEnabled", true);
326
- oModel.setProperty("/activateEnabled", false);
327
356
  oModel.setProperty("/activeVersion", oVersion.version);
328
- oModel.setProperty("/displayedVersion", oVersion.version);
329
- oModel.setProperty("/persistedVersion", oVersion.version);
330
- oModel.updateBindings(true);
357
+ oModel.setProperty("/publishVersionEnabled", true);
358
+ oModel.setProperty("/draftFilenames", []);
359
+ _updateVersionModelWhenDiscardOrActivate(oModel, oVersion.version);
331
360
  });
332
361
  };
333
362
 
@@ -343,20 +372,14 @@ sap.ui.define([
343
372
  */
344
373
  Versions.discardDraft = function(mPropertyBag) {
345
374
  var oModel = Versions.getVersionsModel(mPropertyBag);
346
- var aVersions = oModel.getProperty("/versions");
347
375
  var oDirtyChangesInfo = _getDirtyChangesInfo(mPropertyBag);
348
376
  var bBackendDraftExists = oModel.getProperty("/backendDraft");
349
377
  var oDiscardPromise = bBackendDraftExists ? Storage.versions.discardDraft(mPropertyBag) : Promise.resolve();
350
378
 
351
379
  return oDiscardPromise.then(function () {
380
+ var aVersions = oModel.getProperty("/versions");
352
381
  aVersions.shift();
353
- oModel.setProperty("/backendDraft", false);
354
- oModel.setProperty("/dirtyChanges", false);
355
- oModel.setProperty("/draftAvailable", false);
356
- oModel.setProperty("/activateEnabled", false);
357
- oModel.setProperty("/displayedVersion", oModel.getProperty("/activeVersion"));
358
- oModel.setProperty("/persistedVersion", oModel.getProperty("/activeVersion"));
359
- oModel.updateBindings(true);
382
+ _updateVersionModelWhenDiscardOrActivate(oModel, oModel.getProperty("/activeVersion"));
360
383
  // in case of a existing draft known by the backend;
361
384
  // we remove dirty changes only after successful DELETE request
362
385
  var bDirtyChangesRemoved = _removeDirtyChanges(mPropertyBag, oDirtyChangesInfo);
@@ -380,7 +403,7 @@ sap.ui.define([
380
403
  */
381
404
  Versions.publish = function(mPropertyBag) {
382
405
  var oModel = Versions.getVersionsModel({
383
- reference: Utils.normalizeReference(mPropertyBag.reference),
406
+ reference: mPropertyBag.reference,
384
407
  layer: mPropertyBag.layer
385
408
  });
386
409
  return Storage.versions.publish(mPropertyBag)
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @constructor
36
36
  * @alias sap.ui.fl.write._internal.appVariant.AppVariant
37
37
  * @author SAP SE
38
- * @version 1.114.0
38
+ * @version 1.115.1
39
39
  * @private
40
40
  * @ui5-restricted sap.ui.rta, smart business
41
41
  */
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @namespace
35
35
  * @alias sap.ui.fl.write._internal.appVariant.AppVariantFactory
36
36
  * @author SAP SE
37
- * @version 1.114.0
37
+ * @version 1.115.1
38
38
  * @private
39
39
  * @ui5-restricted sap.ui.rta, smart business
40
40
  */
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @constructor
29
29
  * @alias sap.ui.fl.write._internal.appVariant.AppVariantInlineChange
30
30
  * @author SAP SE
31
- * @version 1.114.0
31
+ * @version 1.115.1
32
32
  * @private
33
33
  * @ui5-restricted sap.ui.rta, smart business
34
34
  */
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @namespace
34
34
  * @alias sap.ui.fl.write._internal.appVariant.AppVariantInlineChangeFactory
35
35
  * @author SAP SE
36
- * @version 1.114.0
36
+ * @version 1.115.1
37
37
  * @private
38
38
  * @ui5-restricted sap.ui.rta, smart business
39
39
  */
@@ -51,7 +51,7 @@ sap.ui.define([
51
51
  * @namespace
52
52
  * @alias sap.ui.fl.write._internal.condenser.Condenser
53
53
  * @author SAP SE
54
- * @version 1.114.0
54
+ * @version 1.115.1
55
55
  */
56
56
  var Condenser = {};
57
57
 
@@ -498,7 +498,18 @@ sap.ui.define([
498
498
  });
499
499
  }
500
500
 
501
- function handleChangeUpdate(aCondenserInfos, aReducedChanges) {
501
+ /**
502
+ * Adding a change of the same classification to the map will only add it as updateChange to the condenser info,
503
+ * which means that the condenser info holds the first (updateChange) and the last (change) change of the same classification.
504
+ * If there is an updateChange attached to the condenser info object and that change is already persisted,
505
+ * that change will be used over the newest change.
506
+ *
507
+ * @param {object[]} aCondenserInfos - Condenser info objects
508
+ * @param {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} aReducedChanges - Array of reduced changes
509
+ * @param {object[]} aReducedIndexRelatedChangesPerContainer - Array with index related reduced changes per container
510
+ * @returns {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} Updated reduced changes
511
+ */
512
+ function handleChangeUpdate(aCondenserInfos, aReducedChanges, aReducedIndexRelatedChangesPerContainer) {
502
513
  aCondenserInfos.forEach(function(oCondenserInfo) {
503
514
  var oUpdateChange = oCondenserInfo.updateChange;
504
515
  if (
@@ -508,17 +519,26 @@ sap.ui.define([
508
519
  && !_isEqual(oUpdateChange.getContent(), oCondenserInfo.change.getContent())
509
520
  && oUpdateChange.getState() !== States.LifecycleState.NEW
510
521
  ) {
511
- var oCondensedChange = oCondenserInfo.change;
512
- if (oUpdateChange.getId() !== oCondensedChange.getId()) {
513
- var oNewContent = oCondensedChange.getContent();
522
+ var oLastChange = oCondenserInfo.change;
523
+ if (oUpdateChange.getId() !== oLastChange.getId()) {
524
+ var oNewContent = oLastChange.getContent();
514
525
  oUpdateChange.setContent(oNewContent);
515
- oCondensedChange.condenserState = "delete";
526
+ oUpdateChange.setRevertData(oLastChange.getRevertData());
527
+ oLastChange.condenserState = "delete";
516
528
  aReducedChanges = aReducedChanges.map(function(oChange) {
517
- if (oChange.getId() === oCondensedChange.getId()) {
529
+ if (oChange.getId() === oLastChange.getId()) {
518
530
  return oUpdateChange;
519
531
  }
520
532
  return oChange;
521
533
  });
534
+ aReducedIndexRelatedChangesPerContainer.forEach(function(aReducedIndexRelatedChanges, iIndex) {
535
+ aReducedIndexRelatedChangesPerContainer[iIndex] = aReducedIndexRelatedChanges.map(function(oChange) {
536
+ if (oChange.getId() === oLastChange.getId()) {
537
+ return oUpdateChange;
538
+ }
539
+ return oChange;
540
+ });
541
+ });
522
542
  } else {
523
543
  oUpdateChange.setState(States.LifecycleState.DIRTY);
524
544
  }
@@ -613,9 +633,16 @@ sap.ui.define([
613
633
  Measurement.end("Condenser_sort");
614
634
 
615
635
  if (bSuccess) {
636
+ // during the simulation more changes can become obsolete
637
+ aReducedChanges = aReducedChanges.filter(function(oChange) {
638
+ return oChange.condenserState !== "delete";
639
+ });
640
+ aCondenserInfos = aCondenserInfos.filter(function(oCondenserInfo) {
641
+ return oCondenserInfo.change.condenserState !== "delete";
642
+ });
616
643
  // until now aReducedChanges still has the newer changes.
617
644
  // after replacing them with the older change they have to be sorted again
618
- aReducedChanges = handleChangeUpdate(aCondenserInfos, aReducedChanges);
645
+ aReducedChanges = handleChangeUpdate(aCondenserInfos, aReducedChanges, aReducedIndexRelatedChangesPerContainer);
619
646
  sortByInitialOrder(aChanges, aReducedChanges);
620
647
  // sort the different containers independently
621
648
  aReducedIndexRelatedChangesPerContainer.forEach(function(aReducedIndexRelatedChanges) {
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @namespace
32
32
  * @alias sap.ui.fl.write._internal.condenser.UIReconstruction
33
33
  * @author SAP SE
34
- * @version 1.114.0
34
+ * @version 1.115.1
35
35
  */
36
36
  var UIReconstruction = {};
37
37
 
@@ -205,6 +205,11 @@ sap.ui.define([
205
205
 
206
206
  var aSortedUIElementIds = mUISimulatedStates[sContainerKey][sAggregationName];
207
207
  if (isEqual(aTargetUIElementIds, aSortedUIElementIds)) {
208
+ aCondenserInfos.forEach(function(oCondenserInfo) {
209
+ if (oCondenserInfo.sameIndex) {
210
+ oCondenserInfo.change.condenserState = "delete";
211
+ }
212
+ });
208
213
  return true;
209
214
  }
210
215
  return false;
@@ -332,12 +337,14 @@ sap.ui.define([
332
337
  var aInitialElementIds = mUIReconstructions[sContainerKey][sAggregationName][Utils.INITIAL_UI];
333
338
  var bCorrectSortingFound = true;
334
339
 
335
- // Verify whether the algorithm should be ready before ;)
336
340
  if (
337
341
  containsNoPlaceholder(aTargetElementIds)
338
342
  || containsOnlyCreateChanges(aCondenserInfos)
339
343
  ) {
340
344
  sortAscendingByTargetIndex(aCondenserInfos);
345
+ // this should always be the correct sorting, but the function still needs to be called to
346
+ // remove obsolete changes during the simulation of Move
347
+ bCorrectSortingFound = isEqualReconstructedUI(sContainerKey, sAggregationName, aInitialElementIds, aTargetElementIds, aCondenserInfos);
341
348
  } else if (!isEqualReconstructedUI(sContainerKey, sAggregationName, aInitialElementIds, aTargetElementIds, aCondenserInfos)) {
342
349
  bCorrectSortingFound = false;
343
350
  var iTimes = aCondenserInfos.length;
@@ -359,7 +366,15 @@ sap.ui.define([
359
366
  throw Error("no correct sorting found for the container: " + sContainerKey);
360
367
  }
361
368
 
369
+ aCondenserInfos = aCondenserInfos.filter(function(oCondenserInfo) {
370
+ return oCondenserInfo.change.condenserState !== "delete";
371
+ });
372
+
362
373
  aSortedIndexRelatedChangesPerContainer.push(aCondenserInfos.map(function(oCondenserInfo) {
374
+ if (oCondenserInfo.revertIndex > -1) {
375
+ oCondenserInfo.setIndexInRevertData(oCondenserInfo.change, oCondenserInfo.revertIndex);
376
+ oCondenserInfo.sourceIndex = oCondenserInfo.revertIndex;
377
+ }
363
378
  return oCondenserInfo.change;
364
379
  }));
365
380
  });
@@ -49,14 +49,17 @@ sap.ui.define([
49
49
  * @param {string[]} aInitialUIElementIds - Array with the Ids of the initial elements in the container
50
50
  */
51
51
  simulate: function(aContainerElements, oCondenserInfo, aInitialUIElementIds) {
52
- var iIndex = aContainerElements.indexOf(oCondenserInfo.affectedControl);
53
- if (iIndex === -1) {
52
+ var iCurrentSourceIndex = aContainerElements.indexOf(oCondenserInfo.affectedControl);
53
+ if (iCurrentSourceIndex === -1) {
54
54
  var sUnknown = CondenserUtils.PLACEHOLDER + aInitialUIElementIds.indexOf(oCondenserInfo.affectedControl);
55
- iIndex = aContainerElements.indexOf(sUnknown);
55
+ iCurrentSourceIndex = aContainerElements.indexOf(sUnknown);
56
56
  }
57
57
 
58
- if (iIndex > -1) {
59
- aContainerElements.splice(iIndex, 1);
58
+ // to enable a revert in the same session the previous index has to be saved during the simulation
59
+ oCondenserInfo.revertIndex = iCurrentSourceIndex;
60
+
61
+ if (iCurrentSourceIndex > -1) {
62
+ aContainerElements.splice(iCurrentSourceIndex, 1);
60
63
  }
61
64
  }
62
65
  };
@@ -83,6 +83,12 @@ sap.ui.define([
83
83
  } else {
84
84
  aContainerElements.splice(iTargetIndex, 0, aContainerElements.splice(iCurrentSourceIndex, 1)[0]);
85
85
  }
86
+
87
+ // changes with the same current source and target can be deleted, if the simulation is successful
88
+ oCondenserInfo.sameIndex = iCurrentSourceIndex === iTargetIndex;
89
+
90
+ // to enable a revert in the same session the previous index has to be saved during the simulation
91
+ oCondenserInfo.revertIndex = iCurrentSourceIndex;
86
92
  }
87
93
  };
88
94
  });
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  *
75
75
  * @namespace sap.ui.fl.write._internal.connectors.BackendConnector
76
76
  * @since 1.72
77
- * @version 1.114.0
77
+ * @version 1.115.1
78
78
  * @private
79
79
  * @ui5-restricted sap.ui.fl.write._internal.connectors
80
80
  */
@@ -12,7 +12,10 @@ sap.ui.define([
12
12
  "sap/ui/fl/initial/_internal/connectors/Utils",
13
13
  "sap/ui/fl/write/_internal/connectors/Utils",
14
14
  "sap/base/util/restricted/_pick",
15
- "sap/ui/fl/write/_internal/FlexInfoSession"
15
+ "sap/ui/fl/write/_internal/FlexInfoSession",
16
+ "sap/ui/core/BusyIndicator",
17
+ "sap/base/Log",
18
+ "sap/m/MessageBox"
16
19
  ], function (
17
20
  merge,
18
21
  Layer,
@@ -21,7 +24,10 @@ sap.ui.define([
21
24
  InitialUtils,
22
25
  WriteUtils,
23
26
  _pick,
24
- FlexInfoSession
27
+ FlexInfoSession,
28
+ BusyIndicator,
29
+ Log,
30
+ MessageBox
25
31
  ) {
26
32
  "use strict";
27
33
 
@@ -32,7 +38,7 @@ sap.ui.define([
32
38
  *
33
39
  * @namespace sap.ui.fl.write._internal.connectors.KeyUserConnector
34
40
  * @since 1.70
35
- * @version 1.114.0
41
+ * @version 1.115.1
36
42
  * @private
37
43
  * @ui5-restricted sap.ui.fl.write._internal.Storage
38
44
  */
@@ -48,7 +54,8 @@ sap.ui.define([
48
54
  VERSIONS: {
49
55
  GET: PREFIX + InitialConnector.API_VERSION + "/versions/",
50
56
  ACTIVATE: PREFIX + InitialConnector.API_VERSION + "/versions/activate/",
51
- DISCARD: PREFIX + InitialConnector.API_VERSION + "/versions/draft/"
57
+ DISCARD: PREFIX + InitialConnector.API_VERSION + "/versions/draft/",
58
+ PUBLISH: PREFIX + InitialConnector.API_VERSION + "/versions/publish/"
52
59
  },
53
60
  TRANSLATION: {
54
61
  UPLOAD: PREFIX + InitialConnector.API_VERSION + "/translation/texts",
@@ -151,6 +158,29 @@ sap.ui.define([
151
158
  _enhancePropertyBagWithTokenInfo(mPropertyBag);
152
159
  var sVersionsUrl = InitialUtils.getUrl(KeyUserConnector.ROUTES.VERSIONS.DISCARD, mPropertyBag);
153
160
  return WriteUtils.sendRequest(sVersionsUrl, "DELETE", mPropertyBag);
161
+ },
162
+ publish: function (mPropertyBag) {
163
+ var oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.ui.fl");
164
+ var fnHandleAllErrors = function (oError) {
165
+ BusyIndicator.hide();
166
+ var sMessage = oResourceBundle.getText("MSG_CF_PUBLISH_ERROR", oError ? [oError.message || oError] : undefined);
167
+ var sTitle = oResourceBundle.getText("HEADER_TRANSPORT_ERROR");
168
+ Log.error("publish version error" + oError);
169
+ MessageBox.show(sMessage, {
170
+ icon: MessageBox.Icon.ERROR,
171
+ title: sTitle,
172
+ styleClass: mPropertyBag.styleClass
173
+ });
174
+ return "Error";
175
+ };
176
+
177
+ _enhancePropertyBagWithTokenInfo(mPropertyBag);
178
+ var mParameters = {version: mPropertyBag.version};
179
+ var sVersionsUrl = InitialUtils.getUrl(KeyUserConnector.ROUTES.VERSIONS.PUBLISH, mPropertyBag, mParameters);
180
+ return WriteUtils.sendRequest(sVersionsUrl, "POST", mPropertyBag).then(function () {
181
+ BusyIndicator.hide();
182
+ return oResourceBundle.getText("MSG_CF_PUBLISH_SUCCESS");
183
+ })['catch'](fnHandleAllErrors);
154
184
  }
155
185
  };
156
186
 
@@ -166,7 +166,7 @@ sap.ui.define([
166
166
  *
167
167
  * @namespace sap.ui.fl.write._internal.connectors.LrepConnector
168
168
  * @since 1.67
169
- * @version 1.114.0
169
+ * @version 1.115.1
170
170
  * @private
171
171
  * @ui5-restricted sap.ui.fl.write._internal.Storage
172
172
  */
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  *
26
26
  * @namespace sap.ui.fl.write._internal.connectors.NeoLrepConnector
27
27
  * @since 1.81
28
- * @version 1.114.0
28
+ * @version 1.115.1
29
29
  * @private
30
30
  * @ui5-restricted sap.ui.fl.write._internal.Storage
31
31
  */
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  *
25
25
  * @namespace sap.ui.fl.write._internal.connectors.ObjectPathConnector
26
26
  * @since 1.73
27
- * @version 1.114.0
27
+ * @version 1.115.1
28
28
  * @private
29
29
  * @ui5-restricted sap.ui.fl.write._internal.Storage
30
30
  */