@openui5/sap.ui.documentation 1.96.5 → 1.99.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 (82) hide show
  1. package/.reuse/dep5 +26 -31
  2. package/THIRDPARTY.txt +15 -21
  3. package/package.json +6 -6
  4. package/src/sap/ui/documentation/.library +1 -1
  5. package/src/sap/ui/documentation/library.js +2 -2
  6. package/src/sap/ui/documentation/messagebundle.properties +56 -10
  7. package/src/sap/ui/documentation/messagebundle_ar.properties +32 -6
  8. package/src/sap/ui/documentation/messagebundle_bg.properties +31 -5
  9. package/src/sap/ui/documentation/messagebundle_ca.properties +32 -6
  10. package/src/sap/ui/documentation/messagebundle_cs.properties +32 -6
  11. package/src/sap/ui/documentation/messagebundle_cy.properties +32 -6
  12. package/src/sap/ui/documentation/messagebundle_da.properties +32 -6
  13. package/src/sap/ui/documentation/messagebundle_de.properties +32 -6
  14. package/src/sap/ui/documentation/messagebundle_el.properties +31 -5
  15. package/src/sap/ui/documentation/messagebundle_en.properties +32 -6
  16. package/src/sap/ui/documentation/messagebundle_en_GB.properties +32 -6
  17. package/src/sap/ui/documentation/messagebundle_en_US_sappsd.properties +35 -9
  18. package/src/sap/ui/documentation/messagebundle_en_US_saprigi.properties +4 -9
  19. package/src/sap/ui/documentation/messagebundle_en_US_saptrc.properties +35 -9
  20. package/src/sap/ui/documentation/messagebundle_es.properties +32 -6
  21. package/src/sap/ui/documentation/messagebundle_es_MX.properties +34 -8
  22. package/src/sap/ui/documentation/messagebundle_et.properties +32 -6
  23. package/src/sap/ui/documentation/messagebundle_fi.properties +33 -7
  24. package/src/sap/ui/documentation/messagebundle_fr.properties +32 -6
  25. package/src/sap/ui/documentation/messagebundle_fr_CA.properties +32 -6
  26. package/src/sap/ui/documentation/messagebundle_hi.properties +32 -6
  27. package/src/sap/ui/documentation/messagebundle_hr.properties +32 -6
  28. package/src/sap/ui/documentation/messagebundle_hu.properties +31 -5
  29. package/src/sap/ui/documentation/messagebundle_id.properties +33 -7
  30. package/src/sap/ui/documentation/messagebundle_it.properties +32 -6
  31. package/src/sap/ui/documentation/messagebundle_iw.properties +32 -6
  32. package/src/sap/ui/documentation/messagebundle_ja.properties +32 -6
  33. package/src/sap/ui/documentation/messagebundle_kk.properties +32 -6
  34. package/src/sap/ui/documentation/messagebundle_ko.properties +32 -6
  35. package/src/sap/ui/documentation/messagebundle_lt.properties +32 -6
  36. package/src/sap/ui/documentation/messagebundle_lv.properties +31 -5
  37. package/src/sap/ui/documentation/messagebundle_ms.properties +32 -6
  38. package/src/sap/ui/documentation/messagebundle_nl.properties +32 -6
  39. package/src/sap/ui/documentation/messagebundle_no.properties +33 -7
  40. package/src/sap/ui/documentation/messagebundle_pl.properties +31 -5
  41. package/src/sap/ui/documentation/messagebundle_pt.properties +32 -6
  42. package/src/sap/ui/documentation/messagebundle_pt_PT.properties +32 -6
  43. package/src/sap/ui/documentation/messagebundle_ro.properties +32 -6
  44. package/src/sap/ui/documentation/messagebundle_ru.properties +32 -6
  45. package/src/sap/ui/documentation/messagebundle_sh.properties +33 -7
  46. package/src/sap/ui/documentation/messagebundle_sk.properties +32 -6
  47. package/src/sap/ui/documentation/messagebundle_sl.properties +32 -6
  48. package/src/sap/ui/documentation/messagebundle_sv.properties +32 -6
  49. package/src/sap/ui/documentation/messagebundle_th.properties +32 -6
  50. package/src/sap/ui/documentation/messagebundle_tr.properties +32 -6
  51. package/src/sap/ui/documentation/messagebundle_uk.properties +47 -21
  52. package/src/sap/ui/documentation/messagebundle_vi.properties +32 -6
  53. package/src/sap/ui/documentation/messagebundle_zh_CN.properties +32 -6
  54. package/src/sap/ui/documentation/messagebundle_zh_TW.properties +32 -6
  55. package/src/sap/ui/documentation/sdk/controller/ApiDetail.controller.js +2 -2
  56. package/src/sap/ui/documentation/sdk/controller/App.controller.js +78 -2
  57. package/src/sap/ui/documentation/sdk/controller/BaseController.js +1 -1
  58. package/src/sap/ui/documentation/sdk/controller/ControlsMaster.controller.js +6 -5
  59. package/src/sap/ui/documentation/sdk/controller/News.controller.js +77 -0
  60. package/src/sap/ui/documentation/sdk/controller/Sample.controller.js +246 -25
  61. package/src/sap/ui/documentation/sdk/controller/TopicDetail.controller.js +7 -7
  62. package/src/sap/ui/documentation/sdk/controller/VersionNotFound.controller.js +106 -0
  63. package/src/sap/ui/documentation/sdk/controller/config/sampleForwardingConfig.js +40 -0
  64. package/src/sap/ui/documentation/sdk/controller/util/ConfigUtil.js +16 -0
  65. package/src/sap/ui/documentation/sdk/controller/util/NewsInfo.js +188 -0
  66. package/src/sap/ui/documentation/sdk/controller/util/ToolsInfo.js +7 -1
  67. package/src/sap/ui/documentation/sdk/controller/util/datatable/filters/DataTableFilterDropDownRenderer.js +7 -1
  68. package/src/sap/ui/documentation/sdk/css/style.css +42 -2
  69. package/src/sap/ui/documentation/sdk/images/tools/FlexibleProgrammingModelExplorer.jpg +0 -0
  70. package/src/sap/ui/documentation/sdk/manifest.json +16 -0
  71. package/src/sap/ui/documentation/sdk/util/DocumentationRouter.js +3 -1
  72. package/src/sap/ui/documentation/sdk/view/App.view.xml +18 -0
  73. package/src/sap/ui/documentation/sdk/view/ChangeVersionDialog.fragment.xml +1 -2
  74. package/src/sap/ui/documentation/sdk/view/News.view.xml +68 -0
  75. package/src/sap/ui/documentation/sdk/view/NewsPopover.fragment.xml +51 -0
  76. package/src/sap/ui/documentation/sdk/view/Sample.view.xml +5 -1
  77. package/src/sap/ui/documentation/sdk/view/Tools.view.xml +23 -25
  78. package/src/sap/ui/documentation/sdk/view/VersionNotFound.view.xml +44 -0
  79. package/src/sap/ui/documentation/sdk/view/Welcome.view.xml +90 -8
  80. package/src/sap/ui/documentation/sdk/view/appSettingsDialog.fragment.xml +1 -0
  81. package/src/sap/ui/documentation/themes/base/Documentation.less +1 -7
  82. package/ui5.yaml +4 -1
@@ -0,0 +1,106 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([
8
+ "./BaseController",
9
+ "sap/ui/thirdparty/URI",
10
+ "sap/m/library"
11
+ ], function (
12
+ BaseController,
13
+ URI,
14
+ mLib
15
+ ) {
16
+ "use strict";
17
+
18
+ return BaseController.extend("sap.ui.documentation.sdk.controller.VersionNotFound", {
19
+ onInit: function () {
20
+ // Load VersionInfo model promise
21
+ this._loadVersionInfo()
22
+ .then(this._onVersionInfo.bind(this))
23
+ .catch(this._onError.bind(this));
24
+ },
25
+
26
+ onReadMore: function () {
27
+ mLib.URLHelper.redirect("https://blogs.sap.com/2021/01/26/removing-outdated-ui5-versions-from-ui5-cdn/");
28
+ },
29
+
30
+ onHomePress: function () {
31
+ // initialize the UI component
32
+ mLib.URLHelper.redirect("/");
33
+ },
34
+
35
+ _onError: function () {
36
+ var oMessagePage = this.getView().byId("page");
37
+
38
+ oMessagePage.setBusy(false);
39
+ oMessagePage.setText(this._getLibraryResourceBundle().getText("NOT_FOUND_UNAVAILABLE_TEXT"));
40
+ },
41
+
42
+ _onVersionInfo: function (oVersionInfo) {
43
+ var oMessagePage = this.getView().byId("page"),
44
+ oReadMoreBtn = this.getView().byId("readMoreButton"),
45
+ reVersion = new RegExp("^([0-9]+)(?:\\.([0-9]+)(?:\\.([0-9]+))?)?(.+)?"),
46
+ oURI = new URI(document.location.href),
47
+ aSegments = oURI.segment(),
48
+ sVersion,
49
+ isRemoved = false;
50
+
51
+ oMessagePage.setBusy(false);
52
+
53
+ for (var i = 0, l = aSegments.length; i < l; i++) {
54
+ if (reVersion.test(aSegments[i])) {
55
+ sVersion = aSegments[i];
56
+ break;
57
+ }
58
+ }
59
+
60
+ isRemoved = this._isVersionRemoved(oVersionInfo, sVersion);
61
+
62
+ if (isRemoved) {
63
+ // show removed message
64
+ oMessagePage.setText(this._getLibraryResourceBundle().getText("NOT_FOUND_REMOVED_TEXT"));
65
+ oReadMoreBtn.setVisible(true);
66
+ } else {
67
+ // show unavailable message
68
+ oReadMoreBtn.setVisible(false);
69
+ oMessagePage.setText(this._getLibraryResourceBundle().getText("NOT_FOUND_UNAVAILABLE_TEXT"));
70
+ }
71
+ },
72
+
73
+ _isVersionRemoved: function (oVersionInfo, sVersion) {
74
+ var aPatches = oVersionInfo.patches,
75
+ iVersionIndex,
76
+ reVersion;
77
+
78
+ iVersionIndex = aPatches.findIndex(function (oData) {
79
+ reVersion = new RegExp(oData.version);
80
+ return oData.removed && reVersion.test(sVersion);
81
+ });
82
+
83
+ return iVersionIndex > -1;
84
+ },
85
+
86
+ _getLibraryResourceBundle: function () {
87
+ return sap.ui.getCore().getLibraryResourceBundle("sap.ui.documentation");
88
+ },
89
+
90
+ _loadVersionInfo: function () {
91
+ return new Promise(function (resolve, reject) {
92
+ jQuery.ajax({
93
+ async: true,
94
+ url: "/versionoverview.json",
95
+ dataType: 'json',
96
+ success: function (oResponse) {
97
+ resolve(oResponse);
98
+ },
99
+ error: function (err) {
100
+ reject(err);
101
+ }
102
+ });
103
+ });
104
+ }
105
+ });
106
+ });
@@ -0,0 +1,40 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([], function () {
8
+ "use strict";
9
+
10
+ return {
11
+ "sap.f.sample.IllustratedMessageInCardNoActivities": {
12
+ entityId: "sap.m.IllustratedMessage",
13
+ sampleId: "sap.m.sample.IllustratedMessageInCardNoActivities"
14
+ },
15
+ "sap.f.sample.IllustratedMessageInCardNoEmail": {
16
+ entityId: "sap.m.IllustratedMessage",
17
+ sampleId: "sap.m.sample.IllustratedMessageInCardNoEmail"
18
+ },
19
+ "sap.f.sample.IllustratedMessageInDialog": {
20
+ entityId: "sap.m.IllustratedMessage",
21
+ sampleId: "sap.m.sample.IllustratedMessageInDialog"
22
+ },
23
+ "sap.f.sample.IllustratedMessageInPage": {
24
+ entityId: "sap.m.IllustratedMessage",
25
+ sampleId: "sap.m.sample.IllustratedMessageInPage"
26
+ },
27
+ "sap.f.sample.IllustratedMessageInPageTNT": {
28
+ entityId: "sap.m.IllustratedMessage",
29
+ sampleId: "sap.m.sample.IllustratedMessageInPageTNT"
30
+ },
31
+ "sap.f.sample.IllustratedMessageSessionTimeout": {
32
+ entityId: "sap.m.IllustratedMessage",
33
+ sampleId: "sap.m.sample.IllustratedMessageSessionTimeout"
34
+ },
35
+ "sap.f.sample.Avatar": {
36
+ entityId: "sap.m.Avatar",
37
+ sampleId: "sap.m.sample.Avatar"
38
+ }
39
+ };
40
+ });
@@ -21,6 +21,10 @@ sap.ui.define([
21
21
  "DEMOKIT_IMPORTANT_MESSAGES_READ": "IMR"
22
22
  },
23
23
 
24
+ "LOCAL_STORAGE_NAMES": {
25
+ "OLD_NEWS_IDS": "dk_old_news_ids"
26
+ },
27
+
24
28
  constructor : function (oComponent) {
25
29
  this._oComponent = oComponent;
26
30
  },
@@ -68,6 +72,18 @@ sap.ui.define([
68
72
  return "";
69
73
  },
70
74
 
75
+ setLocalStorageItem: function (sItem, vValue) {
76
+ window.localStorage.setItem(sItem, JSON.stringify(vValue));
77
+ },
78
+
79
+ getLocalStorageItem: function (sItem) {
80
+ return JSON.parse(window.localStorage.getItem(sItem));
81
+ },
82
+
83
+ removeLocalStorageItem: function (sItem) {
84
+ window.localStorage.removeItem(sItem);
85
+ },
86
+
71
87
  _getMasterTargetName: function(sRouteName) {
72
88
  var oRouteConfig = this._getRouteConfig(sRouteName),
73
89
  bIsSplitView = oRouteConfig && oRouteConfig.target.length === 2,
@@ -0,0 +1,188 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ // Provides reuse functionality for reading news from news RSS files
8
+ sap.ui.define([
9
+ "sap/ui/core/Core",
10
+ "sap/ui/thirdparty/jquery",
11
+ "sap/ui/documentation/sdk/util/Resources",
12
+ "sap/base/Log"
13
+ ],
14
+ function(Core, jQuery, ResourcesUtil, Log) {
15
+ "use strict";
16
+
17
+ var _oNewsDataCache = {},
18
+ _aNewNews = [],
19
+ _aOldNews = [],
20
+ _sPreparationFailureMessage = null,
21
+ _bInitiallySplit = false,
22
+ _sOldNewsLocalStorageKey = 'OLD_NEWS_IDS',
23
+ _sLocalStorageNewsName,
24
+ _oConfigUtilInstance;
25
+
26
+ function prepareNewsData(oConfigUtilInstance) {
27
+
28
+ if (_oNewsDataCache["newsRSS"]) {
29
+ return Promise.resolve(_oNewsDataCache["newsRSS"]);
30
+ }
31
+
32
+ _oConfigUtilInstance = oConfigUtilInstance;
33
+ _sLocalStorageNewsName = _oConfigUtilInstance.LOCAL_STORAGE_NAMES[_sOldNewsLocalStorageKey];
34
+
35
+ return _requireConfigJSON()
36
+ .then(_requireFeedXML)
37
+ .then(_parseDateToLocaleString)
38
+ .then(_splitNewAndOldItems)
39
+ .catch(function (vReason) {
40
+ _sPreparationFailureMessage = vReason.message;
41
+ Log.error(_sPreparationFailureMessage);
42
+ })
43
+ .finally(_publishNewsChangedEvent);
44
+ }
45
+
46
+ function _splitNewAndOldItems() {
47
+
48
+ if (_bInitiallySplit) {
49
+ return Promise.resolve();
50
+ }
51
+
52
+ var aLocalStorageCachedIDs = _oConfigUtilInstance.getLocalStorageItem(_sLocalStorageNewsName);
53
+
54
+ return new Promise(function (resolve) {
55
+
56
+ var aItems = _oNewsDataCache["newsRSS"].items,
57
+ oCurrItem;
58
+
59
+ if (Array.isArray(aLocalStorageCachedIDs)) {
60
+ for (var i = 0; i < aItems.length; i++) {
61
+ oCurrItem = aItems[i];
62
+ if (aLocalStorageCachedIDs.indexOf(oCurrItem.id) !== -1) {
63
+ _aOldNews.push(oCurrItem);
64
+ } else {
65
+ _aNewNews.push(oCurrItem);
66
+ }
67
+ }
68
+ } else {
69
+ _aNewNews = aItems.slice();
70
+ }
71
+ _bInitiallySplit = true;
72
+ resolve();
73
+ });
74
+ }
75
+
76
+ function getPreparationFailureMessage() {
77
+ return _sPreparationFailureMessage;
78
+ }
79
+
80
+ function getNewNewsArray() {
81
+ return _aNewNews;
82
+ }
83
+
84
+ function getOldNewsArray() {
85
+ return _aOldNews;
86
+ }
87
+
88
+ function moveNewItemToOld(oItem) {
89
+ var iIndexInNewArr = _aNewNews.indexOf(oItem),
90
+ aLocalStorageIDs = _oConfigUtilInstance.getLocalStorageItem(_sLocalStorageNewsName) || [];
91
+
92
+ if (iIndexInNewArr > -1) {
93
+ _aNewNews.splice(iIndexInNewArr, 1);
94
+ }
95
+
96
+ _aOldNews.push(oItem);
97
+ aLocalStorageIDs.push(oItem.id);
98
+
99
+ _oConfigUtilInstance.setLocalStorageItem(_sLocalStorageNewsName, aLocalStorageIDs);
100
+ _publishNewsChangedEvent();
101
+ }
102
+
103
+ function moveAllNewItemsToOld() {
104
+ var aLocalStorageIDs = _oConfigUtilInstance.getLocalStorageItem(_sLocalStorageNewsName) || [],
105
+ oCurrItem;
106
+
107
+ for (var i = 0; i < _aNewNews.length; i++) {
108
+ oCurrItem = _aNewNews[i];
109
+ _aOldNews.push(oCurrItem);
110
+ aLocalStorageIDs.push(oCurrItem.id);
111
+ }
112
+
113
+ _aNewNews = [];
114
+ _oConfigUtilInstance.setLocalStorageItem(_sLocalStorageNewsName, aLocalStorageIDs);
115
+
116
+ _publishNewsChangedEvent();
117
+ }
118
+
119
+ function _parseDateToLocaleString() {
120
+ var aItems = _oNewsDataCache["newsRSS"].items;
121
+
122
+ aItems.forEach(function(oItem) {
123
+ oItem.updated = new Date(oItem.updated).toLocaleString();
124
+ });
125
+ }
126
+
127
+ function _publishNewsChangedEvent() {
128
+ Core.getEventBus().publish("newsChanged", "onDemoKitNewsChanged");
129
+ }
130
+
131
+ function _requireConfigJSON() {
132
+ return new Promise(function (resolve) {
133
+ jQuery.ajax(ResourcesUtil.getResourceOriginPath("/news-config.json"), {
134
+ type: "GET",
135
+ dataType: "JSON",
136
+ success : function(oResult) {
137
+ resolve(oResult);
138
+ },
139
+ error : function () {
140
+ Log.error("failed to load news-config.json");
141
+ resolve();
142
+ }
143
+ });
144
+ });
145
+ }
146
+
147
+ function _requireFeedXML(oJSON) {
148
+ return new Promise(function (resolve) {
149
+ jQuery.ajax(ResourcesUtil.getResourceOriginPath(oJSON.feedPath), {
150
+ type: "GET",
151
+ dataType: "xml",
152
+ success : function(oResult) {
153
+
154
+ var items = [];
155
+ jQuery('item', oResult).each( function() {
156
+ var item = {};
157
+ item.title = jQuery(this).find('title').eq(0).text();
158
+ item.link = jQuery(this).find('link').eq(0).text();
159
+ item.description = jQuery(this).find('description').eq(0).text();
160
+ item.updated = jQuery(this).find('pubDate').eq(0).text();
161
+ item.id = jQuery(this).find('guid').eq(0).text();
162
+ items.push(item);
163
+ });
164
+
165
+ _oNewsDataCache["newsRSS"] = {"items" : items};
166
+ resolve(
167
+ _oNewsDataCache["newsRSS"]
168
+ );
169
+ },
170
+ error : function () {
171
+ Log.error("failed to load news rss");
172
+ _oNewsDataCache["newsRSS"] = null;
173
+ resolve();
174
+ }
175
+ });
176
+ });
177
+ }
178
+
179
+ return {
180
+ moveAllNewItemsToOld: moveAllNewItemsToOld,
181
+ moveNewItemToOld: moveNewItemToOld,
182
+ prepareNewsData: prepareNewsData,
183
+ getPreparationFailureMessage: getPreparationFailureMessage,
184
+ getNewNewsArray: getNewNewsArray,
185
+ getOldNewsArray: getOldNewsArray
186
+ };
187
+
188
+ });
@@ -12,7 +12,8 @@ sap.ui.define([],
12
12
  var aTools = [
13
13
  {
14
14
  "id": "uiThemeDesigner",
15
- "text": "UI Theme Designer"
15
+ "text": "UI Theme Designer",
16
+ "href": "https://www.sap.com/community/topics/ui-theme-designer.html"
16
17
  },
17
18
  {
18
19
  "id": "businessApplicationStudio",
@@ -63,6 +64,11 @@ sap.ui.define([],
63
64
  "id": "fioriTools",
64
65
  "text": "SAP Fiori Tools",
65
66
  "href": "https://help.sap.com/viewer/product/SAP_FIORI_tools/Latest/en-US"
67
+ },
68
+ {
69
+ "id": "flexibleProgrammingModelExplorer",
70
+ "text": "Flexible Programming Model Explorer",
71
+ "href": "https://sapui5.hana.ondemand.com/test-resources/sap/fe/core/fpmExplorer/index.html#/overview/introduction"
66
72
  }
67
73
  ];
68
74
 
@@ -34,6 +34,7 @@ sap.ui.define([],
34
34
  oRm.text('Filter');
35
35
  oRm.close('a');
36
36
  oRm.openStart("ul", oControl.getId() + "-optionsList");
37
+ oRm.attr("tabindex", 0);
37
38
  if (!oControl.getProperty("expanded")){
38
39
  oRm.style("display", "none");
39
40
  }
@@ -56,9 +57,14 @@ sap.ui.define([],
56
57
  oRm.attr("checked", "true");
57
58
  }
58
59
  oRm.attr("type", "checkbox");
60
+ oRm.attr("id", "dropDownFilterOption" + index);
59
61
  oRm.attr("index", index);
60
62
  oRm.voidEnd();
61
- oRm.text(sOption);
63
+ oRm.openStart("label");
64
+ oRm.attr("for", "dropDownFilterOption" + index);
65
+ oRm.openEnd("label");
66
+ oRm.text(sOption);
67
+ oRm.close("label");
62
68
  oRm.close("li");
63
69
  });
64
70
 
@@ -11,6 +11,22 @@
11
11
  vertical-align: bottom;
12
12
  }
13
13
 
14
+ .newsButton.sapMBtn .sapMBadgeTopRight.sapMBadge .sapMBadgeIndicator {
15
+ position: absolute;
16
+ top: 0;
17
+ right: 0;
18
+ padding: 0;
19
+ }
20
+
21
+ .sapUiSizeCompact .newsButton.sapMBtn .sapMBadgeTopRight.sapMBadge .sapMBadgeIndicator {
22
+ top: -0.25rem;
23
+ right: -0.125rem;
24
+ }
25
+
26
+ .sapUiDemokitCustomNLI.sapMNLI {
27
+ cursor: default;
28
+ }
29
+
14
30
  .aboutDialog .sapMMsgStrip .sapMFT {
15
31
  word-break: break-word;
16
32
  }
@@ -1089,6 +1105,21 @@ html:not(.sapUiTheme-sap_belize_hcw):not(.sapUiTheme-sap_belize_hcb):not(.sapUiT
1089
1105
  }
1090
1106
  }
1091
1107
 
1108
+ .sapUiDemokit .videoWrapper {
1109
+ position: relative;
1110
+ padding-bottom: 56.25%;
1111
+ height: 0;
1112
+ }
1113
+
1114
+ .sapUiDemokit .videoWrapper iframe {
1115
+ position: absolute;
1116
+ top: 0;
1117
+ left: 0;
1118
+ width: 100%;
1119
+ height: 100%;
1120
+ border: none;
1121
+ }
1122
+
1092
1123
  /* ==========================================================================
1093
1124
  Documentation Page Header styles
1094
1125
  ========================================================================== */
@@ -1785,12 +1816,21 @@ html[dir="rtl"] .sapUiDemoKitTreeItemIcon {
1785
1816
  .sapUiTheme-sap_fiori_3 .sapTntToolHeader .sapMSlt.menuSelect.sapUiDocumentationSelect .sapMSltLabel:after {
1786
1817
  content: "";
1787
1818
  position: absolute;
1788
- bottom: 0;
1819
+ bottom: 0.188rem;
1789
1820
  left: 0.5rem;
1790
1821
  right: 2.5rem;
1791
1822
  padding-right: 1rem;
1792
1823
  border-bottom: 0.188rem solid #d1e8ff;
1793
- border-radius: 0.125rem 0.125rem 0 0;
1824
+ border-radius: 0.125rem;
1825
+ }
1826
+
1827
+ .sapUiTheme-sap_fiori_3.sapUiMedia-Std-Phone .sapTntToolHeader .sapMSlt.sapUiDocumentationSelect,
1828
+ .sap-phone .sapTntToolHeader .sapMSlt.sapUiDocumentationSelect {
1829
+ height: 2.75rem;
1830
+ }
1831
+
1832
+ .sapUiTheme-sap_fiori_3 .sapTntToolHeader .sapMSlt.menuSelect.sapUiDocumentationSelect .sapMSltLabel {
1833
+ border: none;
1794
1834
  }
1795
1835
 
1796
1836
  /* SAP Quartz Light theme - end */
@@ -297,6 +297,13 @@
297
297
  "tools"
298
298
  ]
299
299
  },
300
+ {
301
+ "pattern": "news",
302
+ "name": "news",
303
+ "target": [
304
+ "news"
305
+ ]
306
+ },
300
307
  {
301
308
  "pattern": "search/{searchParam}:?options:",
302
309
  "name": "search",
@@ -422,6 +429,11 @@
422
429
  "viewLevel": 2,
423
430
  "viewId": "tools"
424
431
  },
432
+ "news": {
433
+ "viewName": "News",
434
+ "viewLevel": 2,
435
+ "viewId": "news"
436
+ },
425
437
  "apiDetailInitial": {
426
438
  "viewName": "ApiDetailInitial",
427
439
  "viewId": "apiDetailInitial",
@@ -477,6 +489,10 @@
477
489
  "viewName": "NotFound",
478
490
  "viewId": "notFound"
479
491
  },
492
+ "versionNotFound": {
493
+ "viewName": "VersionNotFound",
494
+ "viewId": "versionNotFound"
495
+ },
480
496
  "sitemap": {
481
497
  "viewName": "Sitemap",
482
498
  "viewId": "sitemap"
@@ -255,7 +255,9 @@ sap.ui.define([
255
255
  bParsed = /^blob:/.test(sTarget)
256
256
  || /^https?:\/\//.test(sTarget)
257
257
  || /^test-resources\//.test(sTarget)
258
- || /^resources\//.test(sTarget);
258
+ || /^resources\//.test(sTarget)
259
+ || /^tel:/.test(sTarget)
260
+ || /^mailto:/.test(sTarget);
259
261
 
260
262
  // If we have no target by here we give up
261
263
  if (sTarget && !bParsed) {
@@ -97,6 +97,24 @@
97
97
  </layoutData>
98
98
  </Button>
99
99
 
100
+ <Button
101
+ visible="{=!${news>/newsPreparationFailureMessage}}"
102
+ id="notificationsButton"
103
+ tooltip="{i18n>APP_NEWS_BTN_TOOLTIP}"
104
+ press="handleNewsPress"
105
+ icon="sap-icon://bell"
106
+ type="Transparent"
107
+ class="newsButton">
108
+ <customData>
109
+ <BadgeCustomData
110
+ key="badge"
111
+ value="{news>/newsCount}"/>
112
+ </customData>
113
+ <layoutData>
114
+ <OverflowToolbarLayoutData priority="NeverOverflow" />
115
+ </layoutData>
116
+ </Button>
117
+
100
118
  <MenuButton tooltip="{i18n>APP_INFORMATION_BTN_TOOLTIP}" id="aboutMenuButton" icon="sap-icon://action-settings" type="Transparent" visible="{=!${appView>/bSearchMode}}">
101
119
  <layoutData>
102
120
  <OverflowToolbarLayoutData priority="NeverOverflow" />
@@ -47,8 +47,7 @@
47
47
  }]
48
48
  }">
49
49
  <StandardTreeItem
50
- title="{path: 'version'}{= ${path: 'version'} === ${versionData>/latestVersion} ? ' (Latest)' : ''}"
51
- type="{= ${path: 'path'} ? 'Active' : 'Inactive'}">
50
+ title="{path: 'version'}{= ${path: 'version'} === ${versionData>/latestVersion} ? ' (Latest)' : ''}">
52
51
  <customData>
53
52
  <core:CustomData key="path" value="{path: 'path'}" />
54
53
  </customData>
@@ -0,0 +1,68 @@
1
+ <mvc:View controllerName="sap.ui.documentation.sdk.controller.News"
2
+ xmlns:mvc="sap.ui.core.mvc"
3
+ xmlns="sap.m"
4
+ xmlns:l="sap.ui.layout"
5
+ xmlns:core="sap.ui.core">
6
+
7
+ <MessagePage
8
+ visible="{=!!${/preparationFailureMessage}}"
9
+ text="{i18n>NEWS_PREP_FAILURE_TITLE}"
10
+ description="{/preparationFailureMessage}"
11
+ showHeader="false"
12
+ icon="sap-icon://message-warning"/>
13
+ <VBox visible="{=!${/preparationFailureMessage}}">
14
+ <NotificationList>
15
+
16
+ <NotificationListGroup
17
+ items="{path: '/new', templateShareable: false}"
18
+ title="{i18n>NEWS_NEW_GROUP_TITLE}"
19
+ showCloseButton="false">
20
+
21
+ <buttons>
22
+ <Button text="{i18n>NEWS_BTN_MARK_AS_READ}" press="handleMarkAsRead" />
23
+ </buttons>
24
+
25
+ <NotificationListItem
26
+ title="{title}"
27
+ description="{description}"
28
+ datetime="{updated}"
29
+ close="handleNewsItemClose"
30
+ class="sapUiDemokitCustomNLI">
31
+ <buttons>
32
+ <Button visible="{= %{link} !== ''}" text="{i18n>NEWS_BTN_VISIT_LINK}" press="handleVisitLink">
33
+ <customData>
34
+ <core:CustomData key="newsLink" value="{link}"/>
35
+ </customData>
36
+ </Button>
37
+ </buttons>
38
+ <customData>
39
+ <core:CustomData key="newsID" value="{id}"/>
40
+ </customData>
41
+ </NotificationListItem>
42
+
43
+ </NotificationListGroup>
44
+
45
+ <NotificationListGroup
46
+ items="{path: '/old', templateShareable: false}"
47
+ title="{i18n>NEWS_READ_GROUP_TITLE}"
48
+ showCloseButton="false">
49
+
50
+ <NotificationListItem
51
+ title="{title}"
52
+ description="{description}"
53
+ datetime="{updated}"
54
+ showCloseButton="false"
55
+ class="sapUiDemokitCustomNLI">
56
+ <buttons>
57
+ <Button visible="{= %{link} !== ''}" text="{i18n>NEWS_BTN_VISIT_LINK}" press="handleVisitLink">
58
+ <customData>
59
+ <core:CustomData key="newsLink" value="{link}"/>
60
+ </customData>
61
+ </Button>
62
+ </buttons>
63
+ </NotificationListItem>
64
+
65
+ </NotificationListGroup>
66
+ </NotificationList>
67
+ </VBox>
68
+ </mvc:View>
@@ -0,0 +1,51 @@
1
+ <core:FragmentDefinition
2
+ xmlns="sap.m"
3
+ xmlns:core="sap.ui.core">
4
+ <ResponsivePopover
5
+ id="newsPopover"
6
+ placement="Bottom"
7
+ title="{i18n>APP_NEWS_BTN_TOOLTIP}">
8
+ <beginButton>
9
+ <Button
10
+ id="dismissAllNotifications"
11
+ text="{i18n>APP_NEWS_DISMISS_ALL_BTN}"
12
+ press="handleDismissAllPress"
13
+ enabled="{= %{news>/newsCount} > 0}" />
14
+ </beginButton>
15
+ <endButton>
16
+ <Button
17
+ id="showAllNotifications"
18
+ text="{i18n>APP_NEWS_SHOW_ALL_BTN}"
19
+ press="handleShowAllPress" />
20
+ </endButton>
21
+ <VBox>
22
+ <NotificationList
23
+ noDataText="{i18n>APP_NEWS_NO_NEW_TEXT}"
24
+ items="{path: 'news>/items', templateShareable: false}"
25
+ >
26
+ <layoutData>
27
+ <FlexItemData maxHeight="450px" maxWidth="600px" />
28
+ </layoutData>
29
+
30
+ <NotificationListItem
31
+ title="{news>title}"
32
+ description="{news>description}"
33
+ datetime="{news>updated}"
34
+ close="handleNewsItemClose"
35
+ class="sapUiDemokitCustomNLI">
36
+ <buttons>
37
+ <Button visible="{= %{news>link} !== ''}" text="{i18n>NEWS_BTN_VISIT_LINK}" press="handleVisitNewsLink">
38
+ <customData>
39
+ <core:CustomData key="newsLink" value="{news>link}"/>
40
+ </customData>
41
+ </Button>
42
+ </buttons>
43
+ <customData>
44
+ <core:CustomData key="newsID" value="{news>id}"/>
45
+ </customData>
46
+ </NotificationListItem>
47
+
48
+ </NotificationList>
49
+ </VBox>
50
+ </ResponsivePopover>
51
+ </core:FragmentDefinition>