@sapui5/sap.suite.ui.generic.template 1.148.2 → 1.150.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/package.json +1 -1
  2. package/src/sap/suite/ui/generic/template/.library +1 -1
  3. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/VisualFilterDialogController.js +4 -4
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  5. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  6. package/src/sap/suite/ui/generic/template/ListReport/controller/IappStateHandler.js +254 -224
  7. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_de.properties +1 -1
  8. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  9. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/DefaultVariant.fragment.xml +12 -13
  10. package/src/sap/suite/ui/generic/template/ObjectPage/Component.js +7 -0
  11. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +39 -5
  12. package/src/sap/suite/ui/generic/template/ObjectPage/controller/PasteHandler.js +100 -18
  13. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ValueHelpDataFetcher.js +178 -0
  14. package/src/sap/suite/ui/generic/template/ObjectPage/controller/inlineCreationRows/InlineCreationRowsHelper.js +76 -33
  15. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +6 -0
  16. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ar.properties +8 -0
  17. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_bg.properties +8 -0
  18. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ca.properties +8 -0
  19. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cnr.properties +8 -0
  20. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cs.properties +8 -0
  21. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cy.properties +8 -0
  22. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_da.properties +8 -0
  23. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_de.properties +10 -2
  24. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_el.properties +9 -1
  25. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en.properties +8 -0
  26. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_GB.properties +8 -0
  27. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_sappsd.properties +4 -0
  28. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +4 -0
  29. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es.properties +8 -0
  30. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es_MX.properties +8 -0
  31. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_et.properties +8 -0
  32. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fi.properties +8 -0
  33. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr.properties +8 -0
  34. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr_CA.properties +8 -0
  35. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hi.properties +8 -0
  36. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hr.properties +8 -0
  37. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hu.properties +8 -0
  38. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_id.properties +9 -1
  39. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_it.properties +8 -0
  40. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_iw.properties +8 -0
  41. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ja.properties +8 -0
  42. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_kk.properties +8 -0
  43. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ko.properties +8 -0
  44. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lt.properties +8 -0
  45. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lv.properties +8 -0
  46. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_mk.properties +8 -0
  47. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ms.properties +8 -0
  48. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_nl.properties +8 -0
  49. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_no.properties +10 -2
  50. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pl.properties +8 -0
  51. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +9 -1
  52. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt_PT.properties +8 -0
  53. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ro.properties +8 -0
  54. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ru.properties +8 -0
  55. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sh.properties +8 -0
  56. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sk.properties +8 -0
  57. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sl.properties +8 -0
  58. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sr.properties +8 -0
  59. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sv.properties +8 -0
  60. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_th.properties +8 -0
  61. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_tr.properties +8 -0
  62. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_uk.properties +9 -1
  63. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_vi.properties +8 -0
  64. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_CN.properties +8 -0
  65. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_TW.properties +8 -0
  66. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  67. package/src/sap/suite/ui/generic/template/ObjectPage/view/Details.view.xml +1 -0
  68. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +9 -11
  69. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  70. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  71. package/src/sap/suite/ui/generic/template/designtime/utils/designtimeUtils.js +2 -2
  72. package/src/sap/suite/ui/generic/template/detailTemplates/DiscardEditHandler.js +9 -0
  73. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +30 -9
  74. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartVariantManagementWrapper.js +43 -35
  75. package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +0 -1
  76. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
  77. package/src/sap/suite/ui/generic/template/lib/CRUDManager.js +24 -5
  78. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +22 -3
  79. package/src/sap/suite/ui/generic/template/lib/MessageUtils.js +4 -3
  80. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +1 -1
  81. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +2 -2
  82. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +12 -2
  83. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +12 -2
  84. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +12 -2
  85. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +12 -2
  86. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +12 -2
  87. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +12 -2
  88. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +12 -2
  89. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +13 -3
  90. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +12 -2
  91. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +12 -2
  92. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +12 -2
  93. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +12 -2
  94. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +12 -2
  95. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +12 -2
  96. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +12 -2
  97. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +12 -2
  98. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +14 -4
  99. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +12 -2
  100. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +12 -2
  101. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +12 -2
  102. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +12 -2
  103. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +12 -2
  104. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +12 -2
  105. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +12 -2
  106. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +12 -2
  107. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +12 -2
  108. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +12 -2
  109. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +12 -2
  110. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +12 -2
  111. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +12 -2
  112. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +12 -2
  113. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +12 -2
  114. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +12 -2
  115. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +12 -2
  116. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +12 -2
  117. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +12 -2
  118. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +13 -3
  119. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +12 -2
  120. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +12 -2
  121. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +12 -2
  122. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +30 -20
  123. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +12 -2
  124. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +23 -13
  125. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +12 -2
  126. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +12 -2
  127. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +12 -2
  128. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +12 -2
  129. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +12 -2
  130. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +12 -2
  131. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
  132. package/src/sap/suite/ui/generic/template/library.js +1 -1
@@ -17,6 +17,8 @@ DRAFT_VERSION=N\u00E1vrh
17
17
 
18
18
  SAVE=Ulo\u017Ei\u0165
19
19
 
20
+ SAVE_AND_BACK=Ulo\u017Ei\u0165 a sp\u00E4\u0165
21
+
20
22
  SAVE_AND_EDIT=Ulo\u017Ei\u0165 a spracova\u0165
21
23
 
22
24
  SAVE_AND_NEXT=Ulo\u017Ei\u0165 a \u010Falej
@@ -25,12 +27,18 @@ VALIDATE_DRAFT=Overi\u0165
25
27
 
26
28
  CREATE=Vytvori\u0165
27
29
 
30
+ CREATE_AND_BACK=Vytvori\u0165 a sp\u00E4\u0165
31
+
28
32
  CLOSE=Zavrie\u0165
29
33
 
30
34
  OK=OK
31
35
 
32
36
  ADD=Prida\u0165
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=Vlo\u017Een\u00E1 hodnota nezodpoved\u00E1 \u017Eiadnej existuj\u00FAcej hodnote.
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=Vlo\u017Een\u00E1 hodnota zodpoved\u00E1 viacer\u00FDm hodnot\u00E1m. Vyberte jednu z nasleduj\u00FAcich hodn\u00F4t\: {0}.
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=Vytvorte objekt.
@@ -17,6 +17,8 @@ DRAFT_VERSION=Osnutek
17
17
 
18
18
  SAVE=Shrani
19
19
 
20
+ SAVE_AND_BACK=Shrani in pojdi nazaj
21
+
20
22
  SAVE_AND_EDIT=Shrani in uredi
21
23
 
22
24
  SAVE_AND_NEXT=Shrani in naprej
@@ -25,12 +27,18 @@ VALIDATE_DRAFT=Validacija
25
27
 
26
28
  CREATE=Kreiraj
27
29
 
30
+ CREATE_AND_BACK=Ustvari in pojdi nazaj
31
+
28
32
  CLOSE=Zapiranje
29
33
 
30
34
  OK=OK
31
35
 
32
36
  ADD=Dodajanje
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=Prilepljena vrednost se ne ujema z obstoje\u010Dimi vrednostmi.
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=Prilepljena vrednost se ujema z ve\u010D vrednostmi. Izberite eno od naslednjih vrednosti\: {0}.
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=Kreirajte objekt.
@@ -17,6 +17,8 @@ DRAFT_VERSION=\u041D\u0430\u0446\u0440\u0442
17
17
 
18
18
  SAVE=\u0421\u0430\u0447\u0443\u0432\u0430\u0458
19
19
 
20
+ SAVE_AND_BACK=\u0421\u0430\u0447\u0443\u0432\u0430\u0458 \u0438 \u0432\u0440\u0430\u0442\u0438 \u0441\u0435
21
+
20
22
  SAVE_AND_EDIT=\u0421\u0430\u0447\u0443\u0432\u0430\u0458 \u0438 \u0443\u0440\u0435\u0434\u0438
21
23
 
22
24
  SAVE_AND_NEXT=\u0421\u0430\u0447\u0443\u0432\u0430\u0458 \u0438 \u0438\u0434\u0438 \u043D\u0430 \u0441\u043B\u0435\u0434\u0435\u045B\u0435
@@ -25,12 +27,18 @@ VALIDATE_DRAFT=\u0412\u0430\u043B\u0438\u0434\u0438\u0440\u0430\u0458
25
27
 
26
28
  CREATE=\u041A\u0440\u0435\u0438\u0440\u0430\u0458
27
29
 
30
+ CREATE_AND_BACK=\u041A\u0440\u0435\u0438\u0440\u0430\u0458 \u0438 \u0432\u0440\u0430\u0442\u0438 \u0441\u0435
31
+
28
32
  CLOSE=\u0417\u0430\u0442\u0432\u043E\u0440\u0438
29
33
 
30
34
  OK=\u041E\u041A
31
35
 
32
36
  ADD=\u0414\u043E\u0434\u0430\u0458
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=\u0417\u0430\u043B\u0435\u043F\u0459\u0435\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0441\u0435 \u043D\u0435 \u043F\u043E\u0434\u0443\u0434\u0430\u0440\u0430 \u0441 \u043F\u043E\u0441\u0442\u043E\u0458\u0435\u045B\u0438\u043C \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0438\u043C\u0430.
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=\u0417\u0430\u043B\u0435\u043F\u0459\u0435\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0441\u0435 \u043F\u043E\u0434\u0443\u0434\u0430\u0440\u0430 \u0441 \u0432\u0438\u0448\u0435\u0441\u0442\u0440\u0443\u043A\u0438\u043C \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0438\u043C\u0430. \u0418\u0437\u0430\u0431\u0435\u0440\u0438\u0442\u0435 \u0458\u0435\u0434\u043D\u0443 \u043E\u0434 \u0441\u043B\u0435\u0434\u0435\u045B\u0438\u0445 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0438\: {0}.
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=\u041A\u0440\u0435\u0438\u0440\u0430\u0458\u0442\u0435 \u043E\u0431\u0458\u0435\u043A\u0430\u0442.
@@ -17,6 +17,8 @@ DRAFT_VERSION=Utkast
17
17
 
18
18
  SAVE=Spara
19
19
 
20
+ SAVE_AND_BACK=Spara och tillbaka
21
+
20
22
  SAVE_AND_EDIT=Spara och bearbeta
21
23
 
22
24
  SAVE_AND_NEXT=Spara och forts\u00E4tt
@@ -25,12 +27,18 @@ VALIDATE_DRAFT=Validera
25
27
 
26
28
  CREATE=Skapa
27
29
 
30
+ CREATE_AND_BACK=Skapa och tillbaka
31
+
28
32
  CLOSE=St\u00E4ng
29
33
 
30
34
  OK=OK
31
35
 
32
36
  ADD=L\u00E4gg till
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=Inklistrat v\u00E4rde matchar inte n\u00E5gra befintliga v\u00E4rden.
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=Inklistrat v\u00E4rde matchar flera v\u00E4rden. V\u00E4lj ett av f\u00F6ljande v\u00E4rden\: {0}.
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=Skapa objekt.
@@ -17,6 +17,8 @@ DRAFT_VERSION=\u0E41\u0E1A\u0E1A\u0E23\u0E48\u0E32\u0E07
17
17
 
18
18
  SAVE=\u0E40\u0E01\u0E47\u0E1A\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01
19
19
 
20
+ SAVE_AND_BACK=\u0E40\u0E01\u0E47\u0E1A\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E41\u0E25\u0E30\u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A
21
+
20
22
  SAVE_AND_EDIT=\u0E40\u0E01\u0E47\u0E1A\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E41\u0E25\u0E30\u0E41\u0E01\u0E49\u0E44\u0E02
21
23
 
22
24
  SAVE_AND_NEXT=\u0E40\u0E01\u0E47\u0E1A\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E41\u0E25\u0E30\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E16\u0E31\u0E14\u0E44\u0E1B
@@ -25,12 +27,18 @@ VALIDATE_DRAFT=\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E04\u0E27\u0E32\u0E2
25
27
 
26
28
  CREATE=\u0E2A\u0E23\u0E49\u0E32\u0E07
27
29
 
30
+ CREATE_AND_BACK=\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E41\u0E25\u0E30\u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A
31
+
28
32
  CLOSE=\u0E1B\u0E34\u0E14
29
33
 
30
34
  OK=\u0E15\u0E01\u0E25\u0E07
31
35
 
32
36
  ADD=\u0E40\u0E1E\u0E34\u0E48\u0E21
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E27\u0E32\u0E07\u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E04\u0E48\u0E32\u0E43\u0E14\u0E46 \u0E17\u0E35\u0E48\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E27\u0E32\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E2B\u0E25\u0E32\u0E22\u0E04\u0E48\u0E32 \u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E04\u0E48\u0E32\u0E43\u0E14\u0E04\u0E48\u0E32\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E15\u0E48\u0E2D\u0E44\u0E1B\u0E19\u0E35\u0E49\: {0}
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E2D\u0E2D\u0E1A\u0E40\u0E08\u0E04
@@ -17,6 +17,8 @@ DRAFT_VERSION=Taslak
17
17
 
18
18
  SAVE=Sakla
19
19
 
20
+ SAVE_AND_BACK=Kaydet ve geri d\u00F6n
21
+
20
22
  SAVE_AND_EDIT=Sakla ve d\u00FCzenle
21
23
 
22
24
  SAVE_AND_NEXT=Sakla ve sonraki
@@ -25,12 +27,18 @@ VALIDATE_DRAFT=Do\u011Frula
25
27
 
26
28
  CREATE=Yarat
27
29
 
30
+ CREATE_AND_BACK=Olu\u015Ftur ve geri d\u00F6n
31
+
28
32
  CLOSE=Kapat
29
33
 
30
34
  OK=TAMAM
31
35
 
32
36
  ADD=Ekle
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=Yap\u0131\u015Ft\u0131r\u0131lan de\u011Fer, mevcut de\u011Ferlerle e\u015Fle\u015Fmiyor.
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=Yap\u0131\u015Ft\u0131r\u0131lan de\u011Fer, birden fazla de\u011Ferle e\u015Fle\u015Fiyor. A\u015Fa\u011F\u0131daki de\u011Ferlerden birini se\u00E7in\: {0}.
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=Nesne yarat\u0131n.
@@ -17,20 +17,28 @@ DRAFT_VERSION=\u0427\u0435\u0440\u043D\u0435\u0442\u043A\u0430
17
17
 
18
18
  SAVE=\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438
19
19
 
20
+ SAVE_AND_BACK=\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0442\u0430 \u043D\u0430\u0437\u0430\u0434
21
+
20
22
  SAVE_AND_EDIT=\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0456 \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438
21
23
 
22
- SAVE_AND_NEXT=\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0456 \u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438
24
+ SAVE_AND_NEXT=\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0442\u0430 \u0434\u0430\u043B\u0456
23
25
 
24
26
  VALIDATE_DRAFT=\u041F\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438
25
27
 
26
28
  CREATE=\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438
27
29
 
30
+ CREATE_AND_BACK=\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0442\u0430 \u043D\u0430\u0437\u0430\u0434
31
+
28
32
  CLOSE=\u0417\u0430\u043A\u0440\u0438\u0442\u0438
29
33
 
30
34
  OK=OK
31
35
 
32
36
  ADD=\u0414\u043E\u0434\u0430\u0442\u0438
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=\u0412\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u043D\u0435 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0454 \u0431\u0443\u0434\u044C-\u044F\u043A\u0438\u043C \u0456\u0441\u043D\u0443\u044E\u0447\u0438\u043C \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\u043C.
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=\u0412\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0454 \u0434\u0435\u043A\u0456\u043B\u044C\u043A\u043E\u043C \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\u043C. \u041E\u0431\u0435\u0440\u0456\u0442\u044C \u043E\u0434\u043D\u0435 \u0437 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u0445 \u0437\u043D\u0430\u0447\u0435\u043D\u044C\: {0}.
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u043E\u0431'\u0454\u043A\u0442.
@@ -17,6 +17,8 @@ DRAFT_VERSION=Ba\u0309n tha\u0309o
17
17
 
18
18
  SAVE=L\u01B0u
19
19
 
20
+ SAVE_AND_BACK=L\u01B0u v\u00E0 quay l\u1EA1i
21
+
20
22
  SAVE_AND_EDIT=L\u01B0u va\u0300 hi\u00EA\u0323u chi\u0309nh
21
23
 
22
24
  SAVE_AND_NEXT=L\u01B0u va\u0300 m\u01A1\u0309 \u0111\u00F4\u0301i t\u01B0\u01A1\u0323ng k\u00EA\u0301 ti\u00EA\u0301p
@@ -25,12 +27,18 @@ VALIDATE_DRAFT=Xa\u0301c th\u01B0\u0323c
25
27
 
26
28
  CREATE=Ta\u0323o
27
29
 
30
+ CREATE_AND_BACK=T\u1EA1o v\u00E0 quay l\u1EA1i
31
+
28
32
  CLOSE=\u0110o\u0301ng
29
33
 
30
34
  OK=OK
31
35
 
32
36
  ADD=Th\u00EAm
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=Gi\u00E1 tr\u1ECB \u0111\u00E3 d\u00E1n kh\u00F4ng kh\u1EDBp v\u1EDBi b\u1EA5t k\u1EF3 gi\u00E1 tr\u1ECB hi\u1EC7n c\u00F3 n\u00E0o.
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=Gi\u00E1 tr\u1ECB \u0111\u00E3 d\u00E1n kh\u1EDBp v\u1EDBi nhi\u1EC1u gi\u00E1 tr\u1ECB. Vui l\u00F2ng ch\u1ECDn m\u1ED9t trong c\u00E1c gi\u00E1 tr\u1ECB sau \u0111\u00E2y\: {0}.
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=Ta\u0323o \u0111\u00F4\u0301i t\u01B0\u01A1\u0323ng.
@@ -17,6 +17,8 @@ DRAFT_VERSION=\u8349\u7A3F
17
17
 
18
18
  SAVE=\u4FDD\u5B58
19
19
 
20
+ SAVE_AND_BACK=\u4FDD\u5B58\u5E76\u8FD4\u56DE
21
+
20
22
  SAVE_AND_EDIT=\u4FDD\u5B58\u5E76\u7F16\u8F91
21
23
 
22
24
  SAVE_AND_NEXT=\u4FDD\u5B58\u5E76\u7EE7\u7EED
@@ -25,12 +27,18 @@ VALIDATE_DRAFT=\u9A8C\u8BC1
25
27
 
26
28
  CREATE=\u521B\u5EFA
27
29
 
30
+ CREATE_AND_BACK=\u521B\u5EFA\u5E76\u8FD4\u56DE
31
+
28
32
  CLOSE=\u5173\u95ED
29
33
 
30
34
  OK=\u786E\u5B9A
31
35
 
32
36
  ADD=\u6DFB\u52A0
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=\u7C98\u8D34\u7684\u503C\u4E0D\u4E0E\u4EFB\u4F55\u73B0\u6709\u503C\u5339\u914D\u3002
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=\u7C98\u8D34\u7684\u503C\u4E0E\u591A\u4E2A\u503C\u5339\u914D\u3002\u8BF7\u9009\u62E9\u4EE5\u4E0B\u5404\u503C\u4E4B\u4E00\uFF1A{0}\u3002
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=\u521B\u5EFA\u5BF9\u8C61\u3002
@@ -17,6 +17,8 @@ DRAFT_VERSION=\u8349\u7A3F
17
17
 
18
18
  SAVE=\u5132\u5B58
19
19
 
20
+ SAVE_AND_BACK=\u5132\u5B58\u4E26\u8FD4\u56DE
21
+
20
22
  SAVE_AND_EDIT=\u5132\u5B58\u548C\u7DE8\u8F2F
21
23
 
22
24
  SAVE_AND_NEXT=\u5132\u5B58\u4E26\u524D\u5F80\u4E0B\u4E00\u6B65
@@ -25,12 +27,18 @@ VALIDATE_DRAFT=\u9A57\u8B49
25
27
 
26
28
  CREATE=\u5EFA\u7ACB
27
29
 
30
+ CREATE_AND_BACK=\u5EFA\u7ACB\u4E26\u8FD4\u56DE
31
+
28
32
  CLOSE=\u95DC\u9589
29
33
 
30
34
  OK=\u78BA\u5B9A
31
35
 
32
36
  ADD=\u65B0\u589E
33
37
 
38
+ PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=\u8CBC\u4E0A\u7684\u503C\u4E0D\u7B26\u5408\u73FE\u6709\u503C\u3002
39
+
40
+ PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=\u8CBC\u4E0A\u7684\u503C\u7B26\u5408\u591A\u500B\u503C\uFF0C\u8ACB\u9078\u64C7\u4E0B\u5217\u5176\u4E2D\u4E00\u500B\u503C\uFF1A{0}\u3002
41
+
34
42
  SEG_BUTTON_TEXT={0} ({1})
35
43
 
36
44
  CREATE_DRAFT_MESSAGE_TEXT=\u5EFA\u7ACB\u7269\u4EF6\u3002
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.148.2"
9
+ "version": "1.150.0"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -97,6 +97,7 @@
97
97
  press="._templateEventHandlers.onSwitchDraftAndActiveObjectPopOver"
98
98
  visible="{= ${IsActiveEntity} ? !!(${HasDraftEntity} && ${DraftAdministrativeData/DraftIsCreatedByMe}) : !!${HasActiveEntity} }"
99
99
  enabled="{ui>/enabled}"
100
+ ariaHasPopup="Menu"
100
101
  type="Transparent">
101
102
  <layoutData>
102
103
  <OverflowToolbarLayoutData priority="NeverOverflow" />
@@ -150,17 +150,15 @@
150
150
  type="Ghost"
151
151
  dt:designtime="not-adaptable"
152
152
  visible="{_templPrivGlobal>/generic/fioriAI/isSummarizationEnabled}" />
153
- <template:if test="{parameter>/settings/showRelatedApps}">
154
- <uxap:ObjectPageHeaderActionButton id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'RelatedApps'}) }"
155
- text="{i18n>RELATED_APPS}"
156
- hideText="false"
157
- importance="Medium"
158
- type="Ghost"
159
- ariaHasPopup="Dialog"
160
- fesr:press="fe:relatedApps"
161
- press="._templateEventHandlers.onRelatedApps"
162
- visible="{_templPrivGlobal>/generic/crossAppNavSupport}"/>
163
- </template:if>
153
+ <uxap:ObjectPageHeaderActionButton id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'RelatedApps'}) }"
154
+ text="{i18n>RELATED_APPS}"
155
+ hideText="false"
156
+ importance="Medium"
157
+ type="Ghost"
158
+ ariaHasPopup="Dialog"
159
+ fesr:press="fe:relatedApps"
160
+ press="._templateEventHandlers.onRelatedApps"
161
+ visible="{= ${_templPrivGlobal>/generic/crossAppNavSupport} &amp;&amp; !!${_templPriv>/objectPage/showRelatedApps} }"/>
164
162
 
165
163
  <MenuButton id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'Share'}) }"
166
164
  text=""
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.148.2"
9
+ "version": "1.150.0"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.148.2"
9
+ "version": "1.150.0"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -303,9 +303,9 @@ sap.ui.define([
303
303
  "sap/m/MessageStrip"
304
304
  ], function (Dialog, Button, MessageStrip) {
305
305
  const warningText = new MessageStrip({
306
- type: MessageType.Information,
306
+ type: MessageType.Warning,
307
307
  showIcon: true,
308
- text: "{i18n>RTA_CONFIGURATION_INFO_MESSAGE}"
308
+ text: "{i18n>RTA_CONFIGURATION_WARNING_MESSAGE}"
309
309
  });
310
310
  warningText.addStyleClass("sapUiSmallMarginBottom");
311
311
  const dialog = new Dialog({
@@ -107,6 +107,15 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/gener
107
107
  // Draft discard is a kind of cross navigation -> invalidate paginator info
108
108
  oTemplateUtils.oServices.oApplication.invalidatePaginatorInfo();
109
109
  fnNavigate();
110
+ // Reset any pending changes that may have been inadvertently created during the unbind/refresh cycle.
111
+ // During component teardown, SmartFields may fire change events that write back property values into the OData model,
112
+ // creating stale MERGE requests for draft entities that no longer exist. If these are not cleared, they will be
113
+ // submitted alongside the next action (e.g. Copy/Edit) in the same changeset, causing "Different strict handling
114
+ // requested within one changeset" errors (CX_SADL_GW_DIFF_STRICT_HNDL_RQ) because the MERGE lacks the Prefer header.
115
+ var oModel = oView.getModel();
116
+ if (oModel && oModel.hasPendingChanges()) {
117
+ oModel.resetChanges();
118
+ }
110
119
  };
111
120
  });
112
121
  }
@@ -72,25 +72,46 @@ sap.ui.define([
72
72
  // after this has happened, we can get the custom data from SFB.
73
73
  oSmartFilterBar.attachAfterVariantLoad(function(){
74
74
  var oCustomData = oSmartFilterBar.getCustomFilterData();
75
+ var oGenericData;
76
+ if (oCustomData && oCustomData[dataPropertyNameGeneric]) {
77
+ oGenericData = oCustomData[dataPropertyNameGeneric];
78
+ } else {
79
+ // getCustomFilterData() returns null on cold start (no prior sap-iapp-state) because
80
+ // setCustomFilterData() is only called from beforeVariantFetch (variant save path),
81
+ // never during the initial LREP variant load. The _CUSTOM section is present in the
82
+ // variant content — fall back to reading it via getVariantContent().
83
+ try {
84
+ var oSVM = oSmartFilterBar.getSmartVariant();
85
+ // getCurrentVariantId() converts STANDARDVARIANTKEY to "" which _getVariantById can't look up.
86
+ // getCurrentVariantKey() returns the raw internal key and works for all variants.
87
+ var sVariantKey = oSVM && (oSVM.getCurrentVariantKey ? oSVM.getCurrentVariantKey() : oSVM.getStandardVariantKey());
88
+ var oVariantContent = oSVM && oSVM.getVariantContent(oSmartFilterBar, sVariantKey);
89
+ var oFilterBarVariant = oVariantContent && oVariantContent.filterBarVariant && JSON.parse(oVariantContent.filterBarVariant);
90
+ var oCustomSection = oFilterBarVariant && oFilterBarVariant._CUSTOM;
91
+ oGenericData = (oCustomSection && oCustomSection[dataPropertyNameGeneric]) || Object.create(null);
92
+ } catch (e) {
93
+ oGenericData = Object.create(null);
94
+ }
95
+ }
75
96
  // variant stored with 1.103 or later: all customFilter data stored in property customFilters
76
97
  // legacy variant stored with 1.102 or earlier: customFilters (from storing point of view) separated according to their origin
77
- var oCustomFiltersState = oCustomData[dataPropertyNameGeneric].customFilters || {
78
- editState: oCustomData[dataPropertyNameGeneric].editStateFilter,
79
- appExtension: oCustomData[dataPropertyNameCustom],
80
- adaptationExtensions: oCustomData[dataPropertyNameExtension]
98
+ var oCustomFiltersState = oGenericData.customFilters || {
99
+ editState: oGenericData.editStateFilter,
100
+ appExtension: oCustomData && oCustomData[dataPropertyNameCustom],
101
+ adaptationExtensions: oCustomData && oCustomData[dataPropertyNameExtension]
81
102
  };
82
103
  aBasicFilters = oSmartFilterBar.getAllFilterItems(true);
83
104
  mParams.oCustomFiltersWrapper.setState(oCustomFiltersState);
84
- oSVMWrapperCallbacks.setManagedControlStates(oCustomData[dataPropertyNameGeneric]);
105
+ oSVMWrapperCallbacks.setManagedControlStates(oGenericData);
85
106
  if (oEasyFilterCallbacks) {
86
107
  oEasyFilterCallbacks.setState({
87
- filterMode: oCustomData[dataPropertyNameGeneric].filterMode,
88
- easyFilter: oCustomData[dataPropertyNameGeneric].easyFilter
108
+ filterMode: oGenericData.filterMode,
109
+ easyFilter: oGenericData.easyFilter
89
110
  });
90
111
  } else {
91
112
  oPendingEasyFilterState = {
92
- filterMode: oCustomData[dataPropertyNameGeneric].filterMode,
93
- easyFilter: oCustomData[dataPropertyNameGeneric].easyFilter
113
+ filterMode: oGenericData.filterMode,
114
+ easyFilter: oGenericData.easyFilter
94
115
  };
95
116
  }
96
117
  });
@@ -151,44 +151,52 @@ sap.ui.define([
151
151
  };
152
152
  }
153
153
 
154
+ function fnApplyVariantState() {
155
+ bIsApplyingVariant = true;
156
+ if (!oPreliminaryState) {
157
+ // if no state is provided set default variant (not modified)
158
+ // use cases:
159
+ // - LR: if appStateKey in the URL that cannot be read
160
+ // - OP: if switching to different object instance (in discovery mode always, in persistency mode when page was not shown)
161
+ fnSetVariant(oSmartVariantManagement.getDefaultVariantId());
162
+ } else if (oPreliminaryState.modified) {
163
+ // Special logic according to UX: If variant was modified anyway, there's no benefit for the user to see the name (but it could be confusing), so standard variant (not default!) should be
164
+ // set (which is achieved by empty string)
165
+ fnSetVariant("");
166
+ oSmartVariantManagement.currentVariantSetModified(true);
167
+ // Usually restoring the state of any of the managed controls should mark the variant as dirty, but there might be edge cases (state from an old release not containing information for any
168
+ // managed control now relevant), so to be on the safe side, we set modified=true explicitly.
169
+ fnSetManagedControlStates(oPreliminaryState);
170
+ } else {
171
+ fnSetVariant(oPreliminaryState.variantId);
172
+ // if managedControlStates is not provided (legacy or maybe broken state), applying VM state should not break
173
+ // don't apply undefined to managedControlWrappers, but just leave them untouched
174
+ if (oPreliminaryState.managedControlStates){
175
+ if (oSmartFilterBarWrapper) {
176
+ // SmartFilterBarWrapper.setState is invoked to apply the state changes modified by "modifyStartupExtension"
177
+ oSmartFilterBarWrapper.setState(oPreliminaryState.managedControlStates[oSmartFilterBarWrapper.getLocalId()]);
178
+ }
179
+ if (oPreliminaryState.variantId !== oSmartVariantManagement.getCurrentVariantId()){
180
+ // variant could not be set because it is not known, i.e. it could be private and URL was shared, or could be deleted after page was bookmarked. In this case,
181
+ // standard variant is set (by VM). Additionally, it should be marked as modified.
182
+ oSmartVariantManagement.currentVariantSetModified(true);
183
+ }
184
+ }
185
+ }
186
+ bIsApplyingVariant = false;
187
+ }
188
+
154
189
  function setState(oState) {
155
190
  oPreliminaryState = oState;
156
191
 
157
- // Wait for all managed controls to be initialized before applying state
158
- oAllControlsInitializedPromise.then(function() {
159
- bIsApplyingVariant = true;
160
- if (!oPreliminaryState) {
161
- // if no state is provided set default variant (not modified)
162
- // use cases:
163
- // - LR: if appStateKey in the URL that cannot be read
164
- // - OP: if switching to different object instance (in discovery mode always, in persistency mode when page was not shown)
165
- fnSetVariant(oSmartVariantManagement.getDefaultVariantId());
166
- } else if (oPreliminaryState.modified) {
167
- // Special logic according to UX: If variant was modified anyway, there's no benefit for the user to see the name (but it could be confusing), so standard variant (not default!) should be
168
- // set (which is achieved by empty string)
169
- fnSetVariant("");
170
- oSmartVariantManagement.currentVariantSetModified(true);
171
- // Usually restoring the state of any of the managed controls should mark the variant as dirty, but there might be edge cases (state from an old release not containing information for any
172
- // managed control now relevant), so to be on the safe side, we set modified=true explicitly.
173
- fnSetManagedControlStates(oPreliminaryState);
174
- } else {
175
- fnSetVariant(oPreliminaryState.variantId);
176
- // if managedControlStates is not provided (legacy or maybe broken state), applying VM state should not break
177
- // don't apply undefined to managedControlWrappers, but just leave them untouched
178
- if (oPreliminaryState.managedControlStates){
179
- if (oSmartFilterBarWrapper) {
180
- // SmartFilterBarWrapper.setState is invoked to apply the state changes modified by "modifyStartupExtension"
181
- oSmartFilterBarWrapper.setState(oPreliminaryState.managedControlStates[oSmartFilterBarWrapper.getLocalId()]);
182
- }
183
- if (oPreliminaryState.variantId !== oSmartVariantManagement.getCurrentVariantId()){
184
- // variant could not be set because it is not known, i.e. it could be private and URL was shared, or could be deleted after page was bookmarked. In this case,
185
- // standard variant is set (by VM). Additionally, it should be marked as modified.
186
- oSmartVariantManagement.currentVariantSetModified(true);
187
- }
188
- }
189
- }
190
- bIsApplyingVariant = false;
191
- });
192
+ // If all managed controls are already initialized (e.g., during iAppState restoration on back-navigation),
193
+ // apply state synchronously to avoid race condition with loadData() in IappStateHandler.
194
+ // When controls are not yet initialized (initial app load), defer as before.
195
+ if (bAllControlsInitialized) {
196
+ fnApplyVariantState();
197
+ } else {
198
+ oAllControlsInitializedPromise.then(fnApplyVariantState);
199
+ }
192
200
  }
193
201
 
194
202
  function attachStateChanged(fnHandler) {
@@ -734,7 +734,6 @@ sap.ui.define(["sap/ui/model/odata/AnnotationHelper",
734
734
  }
735
735
  },
736
736
 
737
-
738
737
  getShareOptionVisibility: function(bFlexibleColumnLayout) {
739
738
  if (bFlexibleColumnLayout) {
740
739
  return "{= !(" + fnGetCommonShareVisibilityPath() + " || ${_templPrivGlobal>/generic/FCL/highestViewLevel})}";
@@ -959,7 +959,7 @@ sap.ui.define([
959
959
  * @public
960
960
  * @extends sap.ui.core.UIComponent
961
961
  * @author SAP SE
962
- * @version 1.148.2
962
+ * @version 1.150.0
963
963
  * @name sap.suite.ui.generic.template.lib.AppComponent
964
964
  */
965
965
  var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
@@ -541,7 +541,13 @@ sap.ui.define(["sap/ui/base/Object",
541
541
  var aMessagesBeforeSave = CRUDHelper.fnGetMessagesFromContextFilter(oContextFilter, oMessageManager, true);
542
542
  var mMessagesBeforeSave = Object.create(null);
543
543
  aMessagesBeforeSave.forEach(function(oMessage){
544
- mMessagesBeforeSave[oMessage.getId()] = oMessage;
544
+ // Exclude transition messages (persistent === false) left over from a prior 412 response.
545
+ // Including them causes false-positive deduplication on retry: the new 412 produces
546
+ // the same message IDs, they are filtered out of aNewMessages, and fnHandleWarning
547
+ // is never called.
548
+ if (oMessage.persistent !== false) {
549
+ mMessagesBeforeSave[oMessage.getId()] = oMessage;
550
+ }
545
551
  });
546
552
 
547
553
  // Handles the 412 Warning case.
@@ -564,10 +570,23 @@ sap.ui.define(["sap/ui/base/Object",
564
570
  var aMessagesAfterSave = CRUDHelper.fnGetMessagesFromContextFilter(oContextFilter, oMessageManager, true);
565
571
  var aAllMessages = aMessagesAfterSave.map(function(oMessage){
566
572
  if (!mMessagesBeforeSave[oMessage.getId()]) { // if this is a new message
567
- oMessage.persistent = false;
568
- oMessage.technical = false;
569
- bWarningOccured = bWarningOccured || oMessage.technicalDetails.statusCode === "412" && oMessage.technicalDetails.headers["preference-applied"] === "handling=strict";
570
- aNewMessages.push(oMessage);
573
+ // Create a new Message instance instead of mutating the original object.
574
+ // The original object may be held by ODataMessageParser._lastMessages; mutating it
575
+ // in-place causes _propagateMessages to treat the message as non-persistent on the
576
+ // next successful OData response and silently remove it before the popover opens.
577
+ var oNewMessage = new Message({
578
+ message: oMessage.getMessage(),
579
+ type: oMessage.getType(),
580
+ target: oMessage.getTargets ? oMessage.getTargets() : [oMessage.getTarget()],
581
+ processor: oMessage.getMessageProcessor(),
582
+ persistent: false,
583
+ technical: false,
584
+ code: oMessage.getCode(),
585
+ description: oMessage.getDescription(),
586
+ technicalDetails: oMessage.getTechnicalDetails()
587
+ });
588
+ bWarningOccured = bWarningOccured || oNewMessage.technicalDetails.statusCode === "412" && oNewMessage.technicalDetails.headers["preference-applied"] === "handling=strict";
589
+ aNewMessages.push(oNewMessage);
571
590
  }
572
591
  return oMessage;
573
592
  });