@sapui5/sap.fe.templates 1.103.0 → 1.104.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 (80) hide show
  1. package/package.json +3 -4
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/ListReport/ListReport.view.xml +1 -2
  4. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +60 -296
  5. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +52 -264
  6. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +367 -0
  7. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +259 -0
  8. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +16 -9
  9. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +15 -9
  10. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +19 -27
  11. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +23 -27
  12. package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +1 -1
  13. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +19 -3
  14. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +75 -47
  15. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +1 -1
  16. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +149 -108
  17. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +56 -62
  18. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.tsx +132 -0
  19. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
  20. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +1 -1
  21. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +55 -29
  22. package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +28 -29
  23. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +2 -14
  24. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +5 -3
  25. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +1 -1
  26. package/src/sap/fe/templates/controls/Table.fragment.xml +1 -1
  27. package/src/sap/fe/templates/library.js +4 -3
  28. package/src/sap/fe/templates/library.ts +2 -0
  29. package/src/sap/fe/templates/messagebundle.properties +2 -5
  30. package/src/sap/fe/templates/messagebundle_ar.properties +3 -12
  31. package/src/sap/fe/templates/messagebundle_bg.properties +0 -9
  32. package/src/sap/fe/templates/messagebundle_ca.properties +2 -11
  33. package/src/sap/fe/templates/messagebundle_cs.properties +3 -12
  34. package/src/sap/fe/templates/messagebundle_cy.properties +0 -9
  35. package/src/sap/fe/templates/messagebundle_da.properties +3 -12
  36. package/src/sap/fe/templates/messagebundle_de.properties +2 -11
  37. package/src/sap/fe/templates/messagebundle_el.properties +2 -11
  38. package/src/sap/fe/templates/messagebundle_en.properties +2 -11
  39. package/src/sap/fe/templates/messagebundle_en_GB.properties +2 -11
  40. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +2 -11
  41. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +2 -11
  42. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +1 -5
  43. package/src/sap/fe/templates/messagebundle_es.properties +0 -9
  44. package/src/sap/fe/templates/messagebundle_es_MX.properties +2 -11
  45. package/src/sap/fe/templates/messagebundle_et.properties +0 -9
  46. package/src/sap/fe/templates/messagebundle_fi.properties +2 -11
  47. package/src/sap/fe/templates/messagebundle_fr.properties +3 -12
  48. package/src/sap/fe/templates/messagebundle_fr_CA.properties +2 -11
  49. package/src/sap/fe/templates/messagebundle_hi.properties +2 -11
  50. package/src/sap/fe/templates/messagebundle_hr.properties +2 -11
  51. package/src/sap/fe/templates/messagebundle_hu.properties +2 -11
  52. package/src/sap/fe/templates/messagebundle_id.properties +2 -11
  53. package/src/sap/fe/templates/messagebundle_it.properties +2 -11
  54. package/src/sap/fe/templates/messagebundle_iw.properties +2 -11
  55. package/src/sap/fe/templates/messagebundle_ja.properties +2 -11
  56. package/src/sap/fe/templates/messagebundle_kk.properties +2 -11
  57. package/src/sap/fe/templates/messagebundle_ko.properties +2 -11
  58. package/src/sap/fe/templates/messagebundle_lt.properties +2 -11
  59. package/src/sap/fe/templates/messagebundle_lv.properties +0 -9
  60. package/src/sap/fe/templates/messagebundle_ms.properties +2 -11
  61. package/src/sap/fe/templates/messagebundle_nl.properties +2 -11
  62. package/src/sap/fe/templates/messagebundle_no.properties +0 -9
  63. package/src/sap/fe/templates/messagebundle_pl.properties +0 -9
  64. package/src/sap/fe/templates/messagebundle_pt.properties +2 -11
  65. package/src/sap/fe/templates/messagebundle_pt_PT.properties +2 -11
  66. package/src/sap/fe/templates/messagebundle_ro.properties +0 -9
  67. package/src/sap/fe/templates/messagebundle_ru.properties +2 -11
  68. package/src/sap/fe/templates/messagebundle_sh.properties +2 -11
  69. package/src/sap/fe/templates/messagebundle_sk.properties +2 -11
  70. package/src/sap/fe/templates/messagebundle_sl.properties +2 -11
  71. package/src/sap/fe/templates/messagebundle_sv.properties +2 -11
  72. package/src/sap/fe/templates/messagebundle_th.properties +1 -10
  73. package/src/sap/fe/templates/messagebundle_tr.properties +2 -11
  74. package/src/sap/fe/templates/messagebundle_uk.properties +2 -11
  75. package/src/sap/fe/templates/messagebundle_vi.properties +0 -9
  76. package/src/sap/fe/templates/messagebundle_zh_CN.properties +0 -9
  77. package/src/sap/fe/templates/messagebundle_zh_TW.properties +2 -11
  78. package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.js +0 -103
  79. package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.ts +0 -97
  80. package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +0 -27
@@ -14,8 +14,6 @@ C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_TITLE=Phi\u00EAn \u0111a\u0303 h\u
14
14
 
15
15
  C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_MESSAGE=Phi\u00EAn hi\u00EA\u0323u chi\u0309nh cu\u0309a ba\u0323n \u0111a\u0303 h\u00EA\u0301t ha\u0323n. B\u00E2\u0301t ky\u0300 thay \u0111\u00F4\u0309i ch\u01B0a l\u01B0u na\u0300o se\u0303 bi\u0323 m\u00E2\u0301t.\nCho\u0323n OK \u0111\u00EA\u0309 quay la\u0323i trang tr\u01B0\u01A1\u0301c.
16
16
 
17
- C_COMMON_OBJECT_PAGE_DELETE=Xo\u0301a
18
-
19
17
  T_OP_RELATED_APPS=\u01AF\u0301ng du\u0323ng co\u0301 li\u00EAn quan
20
18
 
21
19
  T_COMMON_OBJECT_PAGE_APPLY_DRAFT=A\u0301p du\u0323ng
@@ -80,13 +78,6 @@ T_STASHABLE_VBOX_RTA_HEADERCOLLECTIONFACET_MENU_ADD=Khi\u0301a ca\u0323nh ti\u00
80
78
  T_STASHABLE_VBOX_RTA_HEADERCOLLECTIONFACET_MENU_ADD_PLURAL=Khi\u0301a ca\u0323nh ti\u00EAu \u0111\u00EA\u0300
81
79
 
82
80
 
83
- C_ROUTING_NAVIGATION_DISABLED_TITLE=Hi\u00EA\u0323n th\u01A1\u0300i kh\u00F4ng th\u00EA\u0309 \u0111i\u00EA\u0300u h\u01B0\u01A1\u0301ng
84
-
85
- C_TRANSACTION_HELPER_TRANSIENT_CONTEXT_DESCRIPTION=\u0110i\u00EA\u0300u na\u0300y co\u0301 th\u00EA\u0309 xa\u0309y ra n\u00EA\u0301u d\u01B0\u0303 li\u00EA\u0323u \u0111a\u0303 nh\u00E2\u0323p cu\u0309a ba\u0323n kh\u00F4ng \u0111\u01B0\u01A1\u0323c n\u00EA\u0300n ch\u00E2\u0301p nh\u00E2\u0323n ho\u0103\u0323c do s\u01B0\u0323 c\u00F4\u0301 ky\u0303 thu\u00E2\u0323t b\u1EA5t k\u1EF3, v\u00ED du\u0323, ba\u0323n kh\u00F4ng \u0111\u01B0\u01A1\u0323c k\u00EA\u0301t n\u00F4\u0301i internet, tha\u0300nh ph\u00E2\u0300n n\u00EA\u0300n kh\u00F4ng co\u0301 s\u0103\u0303n, ho\u0103\u0323c h\u00EA\u0323 th\u00F4\u0301ng \u01B0u ti\u00EAn bi\u0323 l\u00F4\u0303i. \u0110\u00EA\u0309 gia\u0309i quy\u00EA\u0301t ti\u0300nh hu\u00F4\u0301ng na\u0300y, ba\u0323n co\u0301 th\u00EA\u0309 ho\u0103\u0323c chi\u0309nh s\u01B0\u0309a d\u01B0\u0303 li\u00EA\u0323u, th\u01B0\u0309 \u0111\u00F4\u0300ng b\u00F4\u0323 ho\u0301a v\u01A1\u0301i n\u00EA\u0300n l\u00E2\u0300n n\u01B0\u0303a ho\u0103\u0323c xo\u0301a d\u01B0\u0303 li\u00EA\u0323u n\u00EA\u0301u kh\u00F4ng co\u0300n c\u00E2\u0300n n\u01B0\u0303a.
86
-
87
- C_TRANSACTION_HELPER_TRANSIENT_CONTEXT_MESSAGE=Kh\u00F4ng th\u00EA\u0309 \u0111\u00F4\u0300ng b\u00F4\u0323 ho\u0301a mu\u0323c nh\u00E2\u0323p v\u01A1\u0301i n\u00EA\u0300n.
88
-
89
-
90
81
  T_COMMON_NAVIGATION_DISABLED_MULTIPLE_CONTEXTS=Chi\u0309 cho\u0323n m\u00F4\u0323t mu\u0323c.
91
82
 
92
83
 
@@ -14,8 +14,6 @@ C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_TITLE=\u4F1A\u8BDD\u5DF2\u8FC7\u67
14
14
 
15
15
  C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_MESSAGE=\u7F16\u8F91\u4F1A\u8BDD\u5DF2\u8FC7\u671F\u3002\u4EFB\u4F55\u672A\u4FDD\u5B58\u7684\u66F4\u6539\u5747\u5DF2\u4E22\u5931\u3002\n\u9009\u62E9\u201C\u786E\u5B9A\u201D\u4EE5\u8FD4\u56DE\u5230\u4E0A\u4E00\u9875\u3002
16
16
 
17
- C_COMMON_OBJECT_PAGE_DELETE=\u5220\u9664
18
-
19
17
  T_OP_RELATED_APPS=\u76F8\u5173\u5E94\u7528
20
18
 
21
19
  T_COMMON_OBJECT_PAGE_APPLY_DRAFT=\u5E94\u7528
@@ -80,13 +78,6 @@ T_STASHABLE_VBOX_RTA_HEADERCOLLECTIONFACET_MENU_ADD=\u62AC\u5934\u6784\u9762
80
78
  T_STASHABLE_VBOX_RTA_HEADERCOLLECTIONFACET_MENU_ADD_PLURAL=\u62AC\u5934\u6784\u9762
81
79
 
82
80
 
83
- C_ROUTING_NAVIGATION_DISABLED_TITLE=\u5F53\u524D\u65E0\u6CD5\u8FDB\u884C\u5BFC\u822A
84
-
85
- C_TRANSACTION_HELPER_TRANSIENT_CONTEXT_DESCRIPTION=\u5982\u679C\u540E\u7AEF\u65E0\u6CD5\u63A5\u53D7\u6240\u8F93\u5165\u7684\u6570\u636E\uFF0C\u5C31\u53EF\u80FD\u4F1A\u53D1\u751F\u8FD9\u79CD\u60C5\u51B5\uFF0C\u6216\u8005\u53EF\u80FD\u662F\u7531\u4EFB\u4F55\u6280\u672F\u539F\u56E0\u6240\u5BFC\u81F4\uFF0C\u4F8B\u5982\uFF0C\u672A\u8FDE\u63A5\u5230 internet\uFF0C\u67D0\u540E\u7AEF\u7EC4\u4EF6\u4E0D\u53EF\u7528\uFF0C\u6216\u67D0\u5E95\u5C42\u7CFB\u7EDF\u505C\u673A\u3002\u8981\u89E3\u51B3\u6B64\u60C5\u51B5\uFF0C\u53EF\u66F4\u6B63\u6570\u636E\uFF0C\u91CD\u65B0\u5C1D\u8BD5\u5C06\u5176\u540C\u6B65\u5230\u540E\u7AEF\uFF0C\u6291\u6216\u5982\u679C\u4E0D\u518D\u9700\u8981\u8BE5\u6570\u636E\uFF0C\u5219\u5C06\u5176\u5220\u9664\u3002
86
-
87
- C_TRANSACTION_HELPER_TRANSIENT_CONTEXT_MESSAGE=\u6761\u76EE\u65E0\u6CD5\u540C\u6B65\u5230\u540E\u7AEF\u3002
88
-
89
-
90
81
  T_COMMON_NAVIGATION_DISABLED_MULTIPLE_CONTEXTS=\u4EC5\u9009\u62E9\u4E00\u9879\u3002
91
82
 
92
83
 
@@ -14,8 +14,6 @@ C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_TITLE=\u5DE5\u4F5C\u968E\u6BB5\u5D
14
14
 
15
15
  C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_MESSAGE=\u60A8\u7684\u7DE8\u8F2F\u5DE5\u4F5C\u968E\u6BB5\u5DF2\u5230\u671F\uFF0C\u672A\u5132\u5B58\u7684\u66F4\u6539\u5167\u5BB9\u5DF2\u907A\u5931\u3002\n\u8ACB\u9078\u64C7 [\u78BA\u5B9A] \u4EE5\u8FD4\u56DE\u4E0A\u4E00\u9801\u3002
16
16
 
17
- C_COMMON_OBJECT_PAGE_DELETE=\u522A\u9664
18
-
19
17
  T_OP_RELATED_APPS=\u76F8\u95DC\u61C9\u7528\u7A0B\u5F0F
20
18
 
21
19
  T_COMMON_OBJECT_PAGE_APPLY_DRAFT=\u5957\u7528
@@ -80,13 +78,6 @@ T_STASHABLE_VBOX_RTA_HEADERCOLLECTIONFACET_MENU_ADD=\u8868\u982D\u5C64\u9762
80
78
  T_STASHABLE_VBOX_RTA_HEADERCOLLECTIONFACET_MENU_ADD_PLURAL=\u8868\u982D\u5C64\u9762
81
79
 
82
80
 
83
- C_ROUTING_NAVIGATION_DISABLED_TITLE=\u76EE\u524D\u7121\u6CD5\u700F\u89BD
84
-
85
- C_TRANSACTION_HELPER_TRANSIENT_CONTEXT_DESCRIPTION=\u7576\u60A8\u8F38\u5165\u7684\u8CC7\u6599\u7121\u6CD5\u7531\u5F8C\u7AEF\u63A5\u53D7\u6216\u662F\u57FA\u65BC\u6280\u8853\u539F\u56E0\u6642\uFF0C\u4FBF\u6703\u767C\u751F\u6B64\u60C5\u6CC1\u3002\u4F8B\u5982\uFF0C\u60A8\u5C1A\u672A\u9023\u63A5\u7DB2\u969B\u7DB2\u8DEF\u3001\u6C92\u6709\u5F8C\u7AEF\u5143\u4EF6\uFF0C\u6216\u662F\u57FA\u790E\u7CFB\u7D71\u95DC\u9589\u3002\u82E5\u8981\u89E3\u6C7A\u6B64\u60C5\u6CC1\uFF0C\u60A8\u53EF\u66F4\u6B63\u8CC7\u6599\uFF0C\u518D\u6B21\u5617\u8A66\u8207\u5F8C\u7AEF\u540C\u6B65\u5316\uFF0C\u6216\u662F\u7576\u4E0D\u518D\u9700\u8981\u6642\u4E88\u4EE5\u522A\u9664\u3002
86
-
87
- C_TRANSACTION_HELPER_TRANSIENT_CONTEXT_MESSAGE=\u7121\u6CD5\u5C07\u8F38\u5165\u9805\u8207\u5F8C\u7AEF\u540C\u6B65\u5316\u3002
88
-
89
-
90
81
  T_COMMON_NAVIGATION_DISABLED_MULTIPLE_CONTEXTS=\u8ACB\u50C5\u9078\u64C7\u4E00\u500B\u9805\u76EE\u3002
91
82
 
92
83
 
@@ -135,10 +126,10 @@ T_KEYBOARD_SHORTCUT_SAVE_MAC=CMD+S
135
126
 
136
127
 
137
128
 
138
- T_TABLE_AND_CHART_NO_DATA_TEXT=\u82E5\u8981\u958B\u59CB\uFF0C\u8ACB\u8A2D\u5B9A\u76F8\u95DC\u7BE9\u9078\u3002
129
+ T_TABLE_AND_CHART_NO_DATA_TEXT=\u82E5\u8981\u958B\u59CB\uFF0C\u8ACB\u8A2D\u5B9A\u76F8\u95DC\u7BE9\u9078\u4E26\u9078\u64C7 [\u958B\u59CB]\u3002
139
130
 
140
131
 
141
- T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=\u627E\u4E0D\u5230\u8CC7\u6599\uFF0C\u8ACB\u5617\u8A66\u8ABF\u6574\u641C\u5C0B\u6216\u7BE9\u9078\u6E96\u5247\u3002
132
+ T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=\u627E\u4E0D\u5230\u8CC7\u6599\uFF0C\u8ACB\u5617\u8A66\u8ABF\u6574\u641C\u5C0B\u6216\u7BE9\u9078\u53C3\u6578\u3002
142
133
 
143
134
 
144
135
  T_SEGMENTED_BUTTON_TOOLTIP_VISUAL=\u8996\u89BA\u5316\u7BE9\u9078
@@ -1,103 +0,0 @@
1
- /*!
2
- * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
- */
5
- sap.ui.define(["sap/base/Log", "sap/ui/core/Fragment", "sap/ui/core/util/XMLPreprocessor", "sap/ui/core/XMLTemplateProcessor", "sap/ui/model/json/JSONModel"], function (Log, Fragment, XMLPreprocessor, XMLTemplateProcessor, JSONModel) {
6
- "use strict";
7
-
8
- var oSwitchDraftAndActivePopOver;
9
- /**
10
- * Generic handler collection for several events in the draft topic area
11
- */
12
-
13
- var DraftHandler = {
14
- /**
15
- * The method with the behaviour on the switch draft mode button.
16
- *
17
- * @param this The type of the this refered to PageController.
18
- * @param event The event with the bound source control.
19
- */
20
- showSwitchDraftAndActivePopover: function (event) {
21
- var _this = this;
22
-
23
- var view = this.getView(),
24
- source = event.getSource(),
25
- fragmentName = "sap.fe.templates.ObjectPage.view.fragments.SwitchDraftAndActiveObjectPopOver";
26
-
27
- if (oSwitchDraftAndActivePopOver) {
28
- oSwitchDraftAndActivePopOver.openBy(source, false);
29
- } else {
30
- var localThisModel = new JSONModel({}),
31
- preprocessorSettings = {
32
- bindingContexts: {
33
- "this": localThisModel.createBindingContext("/")
34
- },
35
- models: {
36
- "this": localThisModel
37
- }
38
- };
39
- var popoverFragment = XMLTemplateProcessor.loadTemplate(fragmentName, "fragment");
40
- Promise.resolve(XMLPreprocessor.process(popoverFragment, {
41
- name: fragmentName
42
- }, preprocessorSettings)).then(function (fragment) {
43
- return Fragment.load({
44
- definition: fragment,
45
- controller: _this
46
- });
47
- }).then(function (popover) {
48
- view.addDependent(popover);
49
- popover.setModel(view.getModel("sap.fe.i18n"), "i18n");
50
- popover.setPlacement("Bottom");
51
- oSwitchDraftAndActivePopOver = popover;
52
- popover.attachAfterOpen(function () {
53
- // While the list entry corresponding to the currently displayed document version is emphasized with a blue
54
- // background, we need to pre-focus the other entry
55
- var context = _this.getView().getBindingContext(),
56
- isActiveEntity = context.getObject().IsActiveEntity;
57
-
58
- var switchDraftAndActiveOptionsList = popover.getContent().find(function (element) {
59
- return element.data("listIdentifier") === "switchDraftAndActivePopoverList";
60
- });
61
- var listItemToFocus = isActiveEntity ? switchDraftAndActiveOptionsList.getItems().find(function (element) {
62
- return element.getKey() === "switchToDraft";
63
- }) : switchDraftAndActiveOptionsList.getItems().find(function (element) {
64
- return element.getKey() === "switchToActive";
65
- });
66
- listItemToFocus.focus();
67
- });
68
- popover.openBy(source); // ensure to remove the reference to the draft popover as it would be destroyed on exit
69
-
70
- view.attachEventOnce("beforeExit", function () {
71
- oSwitchDraftAndActivePopOver.destroy();
72
- });
73
- }).catch(function (Error) {
74
- Log.error("Error while opening the draft switch popup", Error);
75
- });
76
- }
77
- },
78
-
79
- /**
80
- * The method with the behaviour on the switch draft mode button popover when an entry is selected.
81
- *
82
- * @param this The type of the this refered to PageController.
83
- * @param event The event with the bound source control.
84
- */
85
- switchDraftAndActivePopoverListSelect: function (event) {
86
- var context = this.getView().getBindingContext(),
87
- selectedItemKey = event.getParameter("item").getProperty("key"),
88
- isActiveEntity = context.getObject().IsActiveEntity; // It was decided that we should NOT set the entry in the list corresponding to the currently displayed document version to
89
- // disabled, hence the user can click entries which to not cause an action (clicking "Draft" when you already display the
90
- // draft version of the document)
91
- // Hence we check here which entry in the list was clicked and which document version we currently display and only do
92
- // the switch between draft / active version if it makes sense.
93
-
94
- if (isActiveEntity && selectedItemKey === "switchToDraft" || !isActiveEntity && selectedItemKey === "switchToActive") {
95
- this.editFlow.toggleDraftActive(context);
96
- }
97
-
98
- event.getSource().getParent().close();
99
- }
100
- };
101
- return DraftHandler;
102
- }, false);
103
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyYWZ0SGFuZGxlci50cyJdLCJuYW1lcyI6WyJvU3dpdGNoRHJhZnRBbmRBY3RpdmVQb3BPdmVyIiwiRHJhZnRIYW5kbGVyIiwic2hvd1N3aXRjaERyYWZ0QW5kQWN0aXZlUG9wb3ZlciIsImV2ZW50IiwidmlldyIsImdldFZpZXciLCJzb3VyY2UiLCJnZXRTb3VyY2UiLCJmcmFnbWVudE5hbWUiLCJvcGVuQnkiLCJsb2NhbFRoaXNNb2RlbCIsIkpTT05Nb2RlbCIsInByZXByb2Nlc3NvclNldHRpbmdzIiwiYmluZGluZ0NvbnRleHRzIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJtb2RlbHMiLCJwb3BvdmVyRnJhZ21lbnQiLCJYTUxUZW1wbGF0ZVByb2Nlc3NvciIsImxvYWRUZW1wbGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsIm5hbWUiLCJ0aGVuIiwiZnJhZ21lbnQiLCJGcmFnbWVudCIsImxvYWQiLCJkZWZpbml0aW9uIiwiY29udHJvbGxlciIsInBvcG92ZXIiLCJhZGREZXBlbmRlbnQiLCJzZXRNb2RlbCIsImdldE1vZGVsIiwic2V0UGxhY2VtZW50IiwiYXR0YWNoQWZ0ZXJPcGVuIiwiY29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiaXNBY3RpdmVFbnRpdHkiLCJnZXRPYmplY3QiLCJJc0FjdGl2ZUVudGl0eSIsInN3aXRjaERyYWZ0QW5kQWN0aXZlT3B0aW9uc0xpc3QiLCJnZXRDb250ZW50IiwiZmluZCIsImVsZW1lbnQiLCJkYXRhIiwibGlzdEl0ZW1Ub0ZvY3VzIiwiZ2V0SXRlbXMiLCJnZXRLZXkiLCJmb2N1cyIsImF0dGFjaEV2ZW50T25jZSIsImRlc3Ryb3kiLCJjYXRjaCIsIkVycm9yIiwiTG9nIiwiZXJyb3IiLCJzd2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcG92ZXJMaXN0U2VsZWN0Iiwic2VsZWN0ZWRJdGVtS2V5IiwiZ2V0UGFyYW1ldGVyIiwiZ2V0UHJvcGVydHkiLCJlZGl0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QUNyQixNQUFSLENBQWVILE1BQWYsRUFsQnVCLENBbUJ2Qjs7QUFDQUYsVUFBQUEsSUFBSSxDQUFDOEMsZUFBTCxDQUFxQixZQUFyQixFQUFtQyxZQUFNO0FBQ3hDbEQsWUFBQUEsNEJBQTRCLENBQUNtRCxPQUE3QjtBQUNBLFdBRkQ7QUFHQSxTQTNCRixFQTRCRUMsS0E1QkYsQ0E0QlEsVUFBVUMsS0FBVixFQUFpQjtBQUN2QkMsVUFBQUEsR0FBRyxDQUFDQyxLQUFKLENBQVUsNENBQVYsRUFBd0RGLEtBQXhEO0FBQ0EsU0E5QkY7QUErQkE7QUFDRCxLQXpEbUI7O0FBMERwQjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQ0csSUFBQUEscUNBaEVvQixZQWdFd0NyRCxLQWhFeEMsRUFnRXNEO0FBQ3pFLFVBQU1pQyxPQUFZLEdBQUcsS0FBSy9CLE9BQUwsR0FBZWdDLGlCQUFmLEVBQXJCO0FBQUEsVUFDQ29CLGVBQWUsR0FBR3RELEtBQUssQ0FBQ3VELFlBQU4sQ0FBbUIsTUFBbkIsRUFBMkJDLFdBQTNCLENBQXVDLEtBQXZDLENBRG5CO0FBQUEsVUFFQ3JCLGNBQWMsR0FBR0YsT0FBTyxDQUFDRyxTQUFSLEdBQW9CQyxjQUZ0QyxDQUR5RSxDQUl6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLFVBQUtGLGNBQWMsSUFBSW1CLGVBQWUsS0FBSyxlQUF2QyxJQUE0RCxDQUFDbkIsY0FBRCxJQUFtQm1CLGVBQWUsS0FBSyxnQkFBdkcsRUFBMEg7QUFDekgsYUFBS0csUUFBTCxDQUFjQyxpQkFBZCxDQUFnQ3pCLE9BQWhDO0FBQ0E7O0FBQ0NqQyxNQUFBQSxLQUFLLENBQUNJLFNBQU4sRUFBRCxDQUErQnVELFNBQS9CLEVBQUQsQ0FBd0RDLEtBQXhEO0FBQ0E7QUE3RW1CLEdBQXJCO1NBZ0ZlOUQsWSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIFBvcG92ZXIgZnJvbSBcInNhcC9tL1BvcG92ZXJcIjtcbmltcG9ydCB0eXBlIFNlbGVjdExpc3QgZnJvbSBcInNhcC9tL1NlbGVjdExpc3RcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEZyYWdtZW50IGZyb20gXCJzYXAvdWkvY29yZS9GcmFnbWVudFwiO1xuaW1wb3J0IHR5cGUgSXRlbSBmcm9tIFwic2FwL3VpL2NvcmUvSXRlbVwiO1xuaW1wb3J0IFhNTFByZXByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvdXRpbC9YTUxQcmVwcm9jZXNzb3JcIjtcbmltcG9ydCBYTUxUZW1wbGF0ZVByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvWE1MVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG5sZXQgb1N3aXRjaERyYWZ0QW5kQWN0aXZlUG9wT3ZlcjogUG9wb3Zlcjtcbi8qKlxuICogR2VuZXJpYyBoYW5kbGVyIGNvbGxlY3Rpb24gZm9yIHNldmVyYWwgZXZlbnRzIGluIHRoZSBkcmFmdCB0b3BpYyBhcmVhXG4gKi9cbmNvbnN0IERyYWZ0SGFuZGxlciA9IHtcblx0LyoqXG5cdCAqIFRoZSBtZXRob2Qgd2l0aCB0aGUgYmVoYXZpb3VyIG9uIHRoZSBzd2l0Y2ggZHJhZnQgbW9kZSBidXR0b24uXG5cdCAqXG5cdCAqIEBwYXJhbSB0aGlzIFRoZSB0eXBlIG9mIHRoZSB0aGlzIHJlZmVyZWQgdG8gUGFnZUNvbnRyb2xsZXIuXG5cdCAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgd2l0aCB0aGUgYm91bmQgc291cmNlIGNvbnRyb2wuXG5cdCAqL1xuXHRzaG93U3dpdGNoRHJhZnRBbmRBY3RpdmVQb3BvdmVyKHRoaXM6IFBhZ2VDb250cm9sbGVyLCBldmVudDogRXZlbnQpIHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRzb3VyY2UgPSBldmVudC5nZXRTb3VyY2UoKSxcblx0XHRcdGZyYWdtZW50TmFtZSA9IFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLnZpZXcuZnJhZ21lbnRzLlN3aXRjaERyYWZ0QW5kQWN0aXZlT2JqZWN0UG9wT3ZlclwiO1xuXG5cdFx0aWYgKG9Td2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcE92ZXIpIHtcblx0XHRcdG9Td2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcE92ZXIub3BlbkJ5KHNvdXJjZSwgZmFsc2UpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBsb2NhbFRoaXNNb2RlbCA9IG5ldyBKU09OTW9kZWwoe30pLFxuXHRcdFx0XHRwcmVwcm9jZXNzb3JTZXR0aW5ncyA9IHtcblx0XHRcdFx0XHRiaW5kaW5nQ29udGV4dHM6IHtcblx0XHRcdFx0XHRcdFwidGhpc1wiOiBsb2NhbFRoaXNNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIilcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG1vZGVsczoge1xuXHRcdFx0XHRcdFx0XCJ0aGlzXCI6IGxvY2FsVGhpc01vZGVsXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0Y29uc3QgcG9wb3ZlckZyYWdtZW50ID0gWE1MVGVtcGxhdGVQcm9jZXNzb3IubG9hZFRlbXBsYXRlKGZyYWdtZW50TmFtZSwgXCJmcmFnbWVudFwiKTtcblx0XHRcdFByb21pc2UucmVzb2x2ZShYTUxQcmVwcm9jZXNzb3IucHJvY2Vzcyhwb3BvdmVyRnJhZ21lbnQsIHsgbmFtZTogZnJhZ21lbnROYW1lIH0sIHByZXByb2Nlc3NvclNldHRpbmdzKSlcblx0XHRcdFx0LnRoZW4oKGZyYWdtZW50KSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIEZyYWdtZW50LmxvYWQoeyBkZWZpbml0aW9uOiBmcmFnbWVudCwgY29udHJvbGxlcjogdGhpcyB9KTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4oKHBvcG92ZXI6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHZpZXcuYWRkRGVwZW5kZW50KHBvcG92ZXIpO1xuXHRcdFx0XHRcdHBvcG92ZXIuc2V0TW9kZWwodmlldy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpLCBcImkxOG5cIik7XG5cdFx0XHRcdFx0cG9wb3Zlci5zZXRQbGFjZW1lbnQoXCJCb3R0b21cIik7XG5cdFx0XHRcdFx0b1N3aXRjaERyYWZ0QW5kQWN0aXZlUG9wT3ZlciA9IHBvcG92ZXI7XG5cdFx0XHRcdFx0cG9wb3Zlci5hdHRhY2hBZnRlck9wZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0Ly8gV2hpbGUgdGhlIGxpc3QgZW50cnkgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBkb2N1bWVudCB2ZXJzaW9uIGlzIGVtcGhhc2l6ZWQgd2l0aCBhIGJsdWVcblx0XHRcdFx0XHRcdC8vIGJhY2tncm91bmQsIHdlIG5lZWQgdG8gcHJlLWZvY3VzIHRoZSBvdGhlciBlbnRyeVxuXHRcdFx0XHRcdFx0Y29uc3QgY29udGV4dDogYW55ID0gdGhpcy5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKSxcblx0XHRcdFx0XHRcdFx0aXNBY3RpdmVFbnRpdHkgPSBjb250ZXh0LmdldE9iamVjdCgpLklzQWN0aXZlRW50aXR5O1xuXHRcdFx0XHRcdFx0Y29uc3Qgc3dpdGNoRHJhZnRBbmRBY3RpdmVPcHRpb25zTGlzdDogU2VsZWN0TGlzdCA9IChwb3BvdmVyLmdldENvbnRlbnQoKSBhcyB1bmtub3duIGFzIENvbnRyb2xbXSkuZmluZChcblx0XHRcdFx0XHRcdFx0KGVsZW1lbnQpID0+IGVsZW1lbnQuZGF0YShcImxpc3RJZGVudGlmaWVyXCIpID09PSBcInN3aXRjaERyYWZ0QW5kQWN0aXZlUG9wb3Zlckxpc3RcIlxuXHRcdFx0XHRcdFx0KSBhcyBTZWxlY3RMaXN0O1xuXHRcdFx0XHRcdFx0Y29uc3QgbGlzdEl0ZW1Ub0ZvY3VzOiBJdGVtID0gaXNBY3RpdmVFbnRpdHlcblx0XHRcdFx0XHRcdFx0PyAoc3dpdGNoRHJhZnRBbmRBY3RpdmVPcHRpb25zTGlzdC5nZXRJdGVtcygpLmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuZ2V0S2V5KCkgPT09IFwic3dpdGNoVG9EcmFmdFwiKSBhcyBJdGVtKVxuXHRcdFx0XHRcdFx0XHQ6IChzd2l0Y2hEcmFmdEFuZEFjdGl2ZU9wdGlvbnNMaXN0LmdldEl0ZW1zKCkuZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5nZXRLZXkoKSA9PT0gXCJzd2l0Y2hUb0FjdGl2ZVwiKSBhcyBJdGVtKTtcblx0XHRcdFx0XHRcdGxpc3RJdGVtVG9Gb2N1cy5mb2N1cygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHBvcG92ZXIub3BlbkJ5KHNvdXJjZSk7XG5cdFx0XHRcdFx0Ly8gZW5zdXJlIHRvIHJlbW92ZSB0aGUgcmVmZXJlbmNlIHRvIHRoZSBkcmFmdCBwb3BvdmVyIGFzIGl0IHdvdWxkIGJlIGRlc3Ryb3llZCBvbiBleGl0XG5cdFx0XHRcdFx0dmlldy5hdHRhY2hFdmVudE9uY2UoXCJiZWZvcmVFeGl0XCIsICgpID0+IHtcblx0XHRcdFx0XHRcdG9Td2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcE92ZXIuZGVzdHJveSgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKEVycm9yKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgb3BlbmluZyB0aGUgZHJhZnQgc3dpdGNoIHBvcHVwXCIsIEVycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXHQvKipcblx0ICogVGhlIG1ldGhvZCB3aXRoIHRoZSBiZWhhdmlvdXIgb24gdGhlIHN3aXRjaCBkcmFmdCBtb2RlIGJ1dHRvbiBwb3BvdmVyIHdoZW4gYW4gZW50cnkgaXMgc2VsZWN0ZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSB0aGlzIFRoZSB0eXBlIG9mIHRoZSB0aGlzIHJlZmVyZWQgdG8gUGFnZUNvbnRyb2xsZXIuXG5cdCAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgd2l0aCB0aGUgYm91bmQgc291cmNlIGNvbnRyb2wuXG5cdCAqL1xuXHRzd2l0Y2hEcmFmdEFuZEFjdGl2ZVBvcG92ZXJMaXN0U2VsZWN0KHRoaXM6IFBhZ2VDb250cm9sbGVyLCBldmVudDogRXZlbnQpIHtcblx0XHRjb25zdCBjb250ZXh0OiBhbnkgPSB0aGlzLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpLFxuXHRcdFx0c2VsZWN0ZWRJdGVtS2V5ID0gZXZlbnQuZ2V0UGFyYW1ldGVyKFwiaXRlbVwiKS5nZXRQcm9wZXJ0eShcImtleVwiKSxcblx0XHRcdGlzQWN0aXZlRW50aXR5ID0gY29udGV4dC5nZXRPYmplY3QoKS5Jc0FjdGl2ZUVudGl0eTtcblx0XHQvLyBJdCB3YXMgZGVjaWRlZCB0aGF0IHdlIHNob3VsZCBOT1Qgc2V0IHRoZSBlbnRyeSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGRvY3VtZW50IHZlcnNpb24gdG9cblx0XHQvLyBkaXNhYmxlZCwgaGVuY2UgdGhlIHVzZXIgY2FuIGNsaWNrIGVudHJpZXMgd2hpY2ggdG8gbm90IGNhdXNlIGFuIGFjdGlvbiAoY2xpY2tpbmcgXCJEcmFmdFwiIHdoZW4geW91IGFscmVhZHkgZGlzcGxheSB0aGVcblx0XHQvLyBkcmFmdCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudClcblx0XHQvLyBIZW5jZSB3ZSBjaGVjayBoZXJlIHdoaWNoIGVudHJ5IGluIHRoZSBsaXN0IHdhcyBjbGlja2VkIGFuZCB3aGljaCBkb2N1bWVudCB2ZXJzaW9uIHdlIGN1cnJlbnRseSBkaXNwbGF5IGFuZCBvbmx5IGRvXG5cdFx0Ly8gdGhlIHN3aXRjaCBiZXR3ZWVuIGRyYWZ0IC8gYWN0aXZlIHZlcnNpb24gaWYgaXQgbWFrZXMgc2Vuc2UuXG5cdFx0aWYgKChpc0FjdGl2ZUVudGl0eSAmJiBzZWxlY3RlZEl0ZW1LZXkgPT09IFwic3dpdGNoVG9EcmFmdFwiKSB8fCAoIWlzQWN0aXZlRW50aXR5ICYmIHNlbGVjdGVkSXRlbUtleSA9PT0gXCJzd2l0Y2hUb0FjdGl2ZVwiKSkge1xuXHRcdFx0dGhpcy5lZGl0Rmxvdy50b2dnbGVEcmFmdEFjdGl2ZShjb250ZXh0KTtcblx0XHR9XG5cdFx0KChldmVudC5nZXRTb3VyY2UoKSBhcyBDb250cm9sKS5nZXRQYXJlbnQoKSBhcyBQb3BvdmVyKS5jbG9zZSgpO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEcmFmdEhhbmRsZXI7XG4iXX0=
@@ -1,97 +0,0 @@
1
- import Log from "sap/base/Log";
2
- import type PageController from "sap/fe/core/PageController";
3
- import type Popover from "sap/m/Popover";
4
- import type SelectList from "sap/m/SelectList";
5
- import type Event from "sap/ui/base/Event";
6
- import type Control from "sap/ui/core/Control";
7
- import Fragment from "sap/ui/core/Fragment";
8
- import type Item from "sap/ui/core/Item";
9
- import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
10
- import XMLTemplateProcessor from "sap/ui/core/XMLTemplateProcessor";
11
- import JSONModel from "sap/ui/model/json/JSONModel";
12
-
13
- let oSwitchDraftAndActivePopOver: Popover;
14
- /**
15
- * Generic handler collection for several events in the draft topic area
16
- */
17
- const DraftHandler = {
18
- /**
19
- * The method with the behaviour on the switch draft mode button.
20
- *
21
- * @param this The type of the this refered to PageController.
22
- * @param event The event with the bound source control.
23
- */
24
- showSwitchDraftAndActivePopover(this: PageController, event: Event) {
25
- const view = this.getView(),
26
- source = event.getSource(),
27
- fragmentName = "sap.fe.templates.ObjectPage.view.fragments.SwitchDraftAndActiveObjectPopOver";
28
-
29
- if (oSwitchDraftAndActivePopOver) {
30
- oSwitchDraftAndActivePopOver.openBy(source, false);
31
- } else {
32
- const localThisModel = new JSONModel({}),
33
- preprocessorSettings = {
34
- bindingContexts: {
35
- "this": localThisModel.createBindingContext("/")
36
- },
37
- models: {
38
- "this": localThisModel
39
- }
40
- };
41
- const popoverFragment = XMLTemplateProcessor.loadTemplate(fragmentName, "fragment");
42
- Promise.resolve(XMLPreprocessor.process(popoverFragment, { name: fragmentName }, preprocessorSettings))
43
- .then((fragment) => {
44
- return Fragment.load({ definition: fragment, controller: this });
45
- })
46
- .then((popover: any) => {
47
- view.addDependent(popover);
48
- popover.setModel(view.getModel("sap.fe.i18n"), "i18n");
49
- popover.setPlacement("Bottom");
50
- oSwitchDraftAndActivePopOver = popover;
51
- popover.attachAfterOpen(() => {
52
- // While the list entry corresponding to the currently displayed document version is emphasized with a blue
53
- // background, we need to pre-focus the other entry
54
- const context: any = this.getView().getBindingContext(),
55
- isActiveEntity = context.getObject().IsActiveEntity;
56
- const switchDraftAndActiveOptionsList: SelectList = (popover.getContent() as unknown as Control[]).find(
57
- (element) => element.data("listIdentifier") === "switchDraftAndActivePopoverList"
58
- ) as SelectList;
59
- const listItemToFocus: Item = isActiveEntity
60
- ? (switchDraftAndActiveOptionsList.getItems().find((element) => element.getKey() === "switchToDraft") as Item)
61
- : (switchDraftAndActiveOptionsList.getItems().find((element) => element.getKey() === "switchToActive") as Item);
62
- listItemToFocus.focus();
63
- });
64
- popover.openBy(source);
65
- // ensure to remove the reference to the draft popover as it would be destroyed on exit
66
- view.attachEventOnce("beforeExit", () => {
67
- oSwitchDraftAndActivePopOver.destroy();
68
- });
69
- })
70
- .catch(function (Error) {
71
- Log.error("Error while opening the draft switch popup", Error);
72
- });
73
- }
74
- },
75
- /**
76
- * The method with the behaviour on the switch draft mode button popover when an entry is selected.
77
- *
78
- * @param this The type of the this refered to PageController.
79
- * @param event The event with the bound source control.
80
- */
81
- switchDraftAndActivePopoverListSelect(this: PageController, event: Event) {
82
- const context: any = this.getView().getBindingContext(),
83
- selectedItemKey = event.getParameter("item").getProperty("key"),
84
- isActiveEntity = context.getObject().IsActiveEntity;
85
- // It was decided that we should NOT set the entry in the list corresponding to the currently displayed document version to
86
- // disabled, hence the user can click entries which to not cause an action (clicking "Draft" when you already display the
87
- // draft version of the document)
88
- // Hence we check here which entry in the list was clicked and which document version we currently display and only do
89
- // the switch between draft / active version if it makes sense.
90
- if ((isActiveEntity && selectedItemKey === "switchToDraft") || (!isActiveEntity && selectedItemKey === "switchToActive")) {
91
- this.editFlow.toggleDraftActive(context);
92
- }
93
- ((event.getSource() as Control).getParent() as Popover).close();
94
- }
95
- };
96
-
97
- export default DraftHandler;
@@ -1,27 +0,0 @@
1
- <core:FragmentDefinition
2
- xmlns:core="sap.ui.core"
3
- xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
4
- xmlns:unittest="http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1"
5
- xmlns="sap.m"
6
- >
7
- <ResponsivePopover
8
- unittest:id="SwitchDraftAndActiveObjectPopOver"
9
- showHeader="false"
10
- contentWidth="15.625rem"
11
- verticalScrolling="false"
12
- class="sapUiNoContentPadding"
13
- >
14
- <content>
15
- <SelectList
16
- selectedKey="{= %{HasDraftEntity} ? 'switchToActive' : 'switchToDraft' }"
17
- itemPress="._switchDraftAndActivePopoverListSelect($event)"
18
- >
19
- <customData>
20
- <core:CustomData key="listIdentifier" value="switchDraftAndActivePopoverList" />
21
- </customData>
22
- <core:Item text="{i18n>C_COMMON_OBJECT_PAGE_DISPLAY_DRAFT_MIT}" key="switchToDraft" />
23
- <core:Item text="{i18n>C_COMMON_OBJECT_PAGE_DISPLAY_SAVED_VERSION_MIT}" key="switchToActive" />
24
- </SelectList>
25
- </content>
26
- </ResponsivePopover>
27
- </core:FragmentDefinition>