@openui5/sap.ui.support 1.117.1 → 1.118.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.support",
3
- "version": "1.117.1",
3
+ "version": "1.118.0",
4
4
  "description": "OpenUI5 UI Library sap.ui.support",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,10 +14,10 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.m": "1.117.1",
18
- "@openui5/sap.ui.codeeditor": "1.117.1",
19
- "@openui5/sap.ui.core": "1.117.1",
20
- "@openui5/sap.ui.fl": "1.117.1",
21
- "@openui5/sap.ui.layout": "1.117.1"
17
+ "@openui5/sap.m": "1.118.0",
18
+ "@openui5/sap.ui.codeeditor": "1.118.0",
19
+ "@openui5/sap.ui.core": "1.118.0",
20
+ "@openui5/sap.ui.fl": "1.118.0",
21
+ "@openui5/sap.ui.layout": "1.118.0"
22
22
  }
23
23
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.117.1</version>
9
+ <version>1.118.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.ui.support</documentation>
12
12
 
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @namespace
33
33
  * @alias sap.ui.support.RuleAnalyzer
34
34
  * @author SAP SE
35
- * @version 1.117.1
35
+ * @version 1.118.0
36
36
  * @public
37
37
  */
38
38
  var RuleAnalyzer = {
@@ -34,7 +34,7 @@ sap.ui.define(["sap/ui/thirdparty/jquery",
34
34
  * @namespace
35
35
  * @deprecated Since version 1.60.0. Please use sap/ui/support/RuleAnalyzer instead.
36
36
  * @author SAP SE
37
- * @version 1.117.1
37
+ * @version 1.118.0
38
38
  * @public
39
39
  */
40
40
  jQuery.sap.support = {
@@ -23,7 +23,7 @@ sap.ui.define(["sap/ui/core/library"],
23
23
  * @namespace
24
24
  * @alias sap.ui.support
25
25
  * @author SAP SE
26
- * @version 1.117.1
26
+ * @version 1.118.0
27
27
  * @since 1.50
28
28
  * @public
29
29
  */
@@ -37,7 +37,7 @@ sap.ui.define(["sap/ui/core/library"],
37
37
  controls: [],
38
38
  elements: [],
39
39
  noLibraryCSS: true,
40
- version: "1.117.1",
40
+ version: "1.118.0",
41
41
  extensions: {
42
42
  //Configuration used for rule loading of Support Assistant
43
43
  "sap.ui.support": {
@@ -64,16 +64,18 @@ sap.ui.define(
64
64
  function getPublicElementsInside(oControlRoot) {
65
65
  var oRoot;
66
66
 
67
- if (oControlRoot.getRootControl) {
67
+ if (oControlRoot.isA("sap.ui.core.Component")) {
68
68
  oRoot = oControlRoot.getRootControl();
69
- if (oRoot) {
70
- // TODO also exclude clones of binding templates, but include
71
- // the binding template
72
- // TODO also exclude customData etc.?
73
- return [oRoot].concat(
74
- oRoot.findAggregatedObjects(true, isInPublicAggregation)
75
- );
76
- }
69
+ } else if (oControlRoot.getContent()) { // UIArea
70
+ oRoot = oControlRoot.getContent()[0];
71
+ }
72
+
73
+ if (oRoot) {
74
+ // TODO also exclude clones of binding templates, but include the binding template
75
+ // TODO also exclude customData etc.?
76
+ return [oRoot].concat(
77
+ oRoot.findAggregatedObjects(true, isInPublicAggregation)
78
+ );
77
79
  }
78
80
 
79
81
  return [];
@@ -6,7 +6,6 @@
6
6
 
7
7
  sap.ui.define([
8
8
  "sap/base/Log",
9
- "sap/ui/VersionInfo",
10
9
  "sap/ui/base/ManagedObject",
11
10
  "sap/ui/core/Core",
12
11
  "sap/ui/core/Element",
@@ -24,11 +23,26 @@ sap.ui.define([
24
23
  "sap/ui/support/supportRules/RuleSetLoader",
25
24
  "sap/ui/support/supportRules/RuleSerializer",
26
25
  "sap/ui/support/library"
27
- ],
28
- function (Log, VersionInfo, ManagedObject, Core, Element, Component, Analyzer, CoreFacade,
29
- ExecutionScope, Highlighter, CommunicationBus,
30
- IssueManager, History, DataCollector, channelNames,
31
- constants, RuleSetLoader, RuleSerializer, library) {
26
+ ], function (
27
+ Log,
28
+ ManagedObject,
29
+ Core,
30
+ Element,
31
+ Component,
32
+ Analyzer,
33
+ CoreFacade,
34
+ ExecutionScope,
35
+ Highlighter,
36
+ CommunicationBus,
37
+ IssueManager,
38
+ History,
39
+ DataCollector,
40
+ channelNames,
41
+ constants,
42
+ RuleSetLoader,
43
+ RuleSerializer,
44
+ library
45
+ ) {
32
46
  "use strict";
33
47
 
34
48
  var IFrameController = null;
@@ -267,13 +281,7 @@ function (Log, VersionInfo, ManagedObject, Core, Element, Component, Analyzer, C
267
281
 
268
282
  CommunicationBus.subscribe(channelNames.ON_INIT_ANALYSIS_CTRL, function () {
269
283
  RuleSetLoader.updateRuleSets(function () {
270
- VersionInfo.load().then(function (oVersionInfo) {
271
- CommunicationBus.publish(channelNames.POST_APPLICATION_INFORMATION, {
272
- // Sends info about the application under test
273
- versionInfo: oVersionInfo
274
- });
275
- this.fireEvent("ready");
276
- }.bind(this));
284
+ this.fireEvent("ready");
277
285
  }.bind(this));
278
286
  }, this);
279
287
 
@@ -34,7 +34,7 @@ function (Log, Version, library, storage) {
34
34
  * @private
35
35
  * @alias sap.ui.support.RuleSet
36
36
  * @author SAP SE
37
- * @version 1.117.1
37
+ * @version 1.118.0
38
38
  * @param {object} oSettings Name of the initiated
39
39
  */
40
40
  var RuleSet = function (oSettings) {
@@ -53,7 +53,7 @@ sap.ui.define([
53
53
  *
54
54
  * @name sap.ui.support.Storage
55
55
  * @author SAP SE.
56
- * @version 1.117.1
56
+ * @version 1.118.0
57
57
  * @private
58
58
  */
59
59
  return /** @lends sap.ui.support.Storage */ {
@@ -133,14 +133,6 @@ function () {
133
133
  */
134
134
  DELETE_RULE: "DELETE_RULE",
135
135
 
136
- /**
137
- * Posts information about the application under test.
138
- * @type {string}
139
- * @const
140
- * @protected
141
- */
142
- POST_APPLICATION_INFORMATION: "POST_APPLICATION_INFORMATION",
143
-
144
136
  /**
145
137
  * Posts available libraries.
146
138
  * @type {string}
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @class
25
25
  * @alias sap.ui.support.WindowCommunicationBus
26
26
  * @author SAP SE
27
- * @version 1.117.1
27
+ * @version 1.118.0
28
28
  * @private
29
29
  */
30
30
  var WindowCommunicationBus = BaseObject.extend("sap.ui.support.supportRules.WindowCommunicationBus", {
@@ -7,7 +7,17 @@
7
7
  /**
8
8
  * Provides methods for information retrieval from the core.
9
9
  */
10
- sap.ui.define(["sap/ui/core/Core", "sap/ui/VersionInfo", "sap/base/util/LoaderExtensions", 'sap/base/security/encodeXML', "sap/ui/core/Component", "sap/ui/core/Configuration", "sap/ui/core/theming/ThemeManager", "sap/ui/core/support/ToolsAPI", "sap/ui/thirdparty/URI"],
10
+ sap.ui.define([
11
+ "sap/ui/core/Core",
12
+ "sap/ui/VersionInfo",
13
+ "sap/base/util/LoaderExtensions",
14
+ "sap/base/security/encodeXML",
15
+ "sap/ui/core/Component",
16
+ "sap/ui/core/Configuration",
17
+ "sap/ui/core/theming/ThemeManager",
18
+ "sap/ui/core/support/ToolsAPI",
19
+ "sap/ui/thirdparty/URI"
20
+ ],
11
21
  function (Core, VersionInfo, LoaderExtensions, encodeXML, Component, Configuration, ThemeManager, ToolsAPI, URI) {
12
22
  "use strict";
13
23
 
@@ -61,13 +71,13 @@ sap.ui.define(["sap/ui/core/Core", "sap/ui/VersionInfo", "sap/base/util/LoaderEx
61
71
  };
62
72
 
63
73
  /**
64
- * @returns {Array} All 'sap.app' and 'sap.fiori' entries from all loaded manifest.json files.
74
+ * @returns {object[]} All 'sap.app' and 'sap.fiori' entries from all loaded manifest.json files.
65
75
  */
66
76
  DataCollector.prototype.getAppInfo = function() {
67
77
  var aAppInfos = [];
68
78
  Component.registry.forEach(function(oComponent) {
69
- var oSapApp = oComponent.getMetadata().getManifestEntry("sap.app"),
70
- oSapFiori = oComponent.getMetadata().getManifestEntry("sap.fiori");
79
+ var oSapApp = oComponent.getManifestEntry("sap.app"),
80
+ oSapFiori = oComponent.getManifestEntry("sap.fiori");
71
81
 
72
82
  if (oSapApp) {
73
83
  aAppInfos.push(oSapApp);
@@ -5,39 +5,53 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
+ "./BaseController",
9
+ "./PresetsController",
10
+ "../models/SharedModel",
11
+ "../models/TableSettingsModel",
12
+ "../models/SelectionUtils",
13
+ "../models/PresetsUtils",
14
+ "../models/CustomJSONListSelection",
8
15
  "sap/base/util/deepExtend",
9
- "sap/ui/support/supportRules/ui/controllers/BaseController",
10
16
  "sap/ui/model/json/JSONModel",
17
+ "sap/ui/model/BindingMode",
11
18
  "sap/ui/core/Fragment",
19
+ "sap/m/library",
12
20
  "sap/m/MessageToast",
21
+ "sap/m/List",
22
+ "sap/m/StandardListItem",
23
+ "sap/m/table/columnmenu/Menu",
24
+ "sap/m/table/columnmenu/Item",
13
25
  "sap/ui/support/supportRules/CommunicationBus",
14
26
  "sap/ui/support/supportRules/WCBChannels",
15
- "sap/ui/support/supportRules/ui/models/SharedModel",
16
27
  "sap/ui/support/supportRules/RuleSerializer",
17
28
  "sap/ui/support/supportRules/Constants",
18
29
  "sap/ui/support/supportRules/Storage",
19
- "sap/ui/support/supportRules/util/EvalUtils",
20
- "sap/ui/support/supportRules/ui/models/SelectionUtils",
21
- "sap/ui/support/supportRules/ui/controllers/PresetsController",
22
- "sap/ui/support/supportRules/ui/models/PresetsUtils",
23
- "sap/ui/support/supportRules/ui/models/CustomJSONListSelection"
30
+ "sap/ui/support/supportRules/util/EvalUtils"
24
31
  ], function (
25
- deepExtend,
26
32
  BaseController,
33
+ PresetsController,
34
+ SharedModel,
35
+ TableSettingsModel,
36
+ SelectionUtils,
37
+ PresetsUtils,
38
+ CustomJSONListSelection,
39
+ deepExtend,
27
40
  JSONModel,
41
+ BindingMode,
28
42
  Fragment,
43
+ mLibrary,
29
44
  MessageToast,
45
+ List,
46
+ StandardListItem,
47
+ ColumnMenu,
48
+ ColumnMenuItem,
30
49
  CommunicationBus,
31
50
  channelNames,
32
- SharedModel,
33
51
  RuleSerializer,
34
52
  Constants,
35
53
  Storage,
36
- EvalUtils,
37
- SelectionUtils,
38
- PresetsController,
39
- PresetsUtils,
40
- CustomJSONListSelection
54
+ EvalUtils
41
55
  ) {
42
56
  "use strict";
43
57
 
@@ -51,11 +65,12 @@ sap.ui.define([
51
65
  this.treeTable = SelectionUtils.treeTable = this.byId("ruleList");
52
66
  this._oRuleSetsModel = new JSONModel();
53
67
  this.treeTable.setModel(this._oRuleSetsModel, "ruleSets");
68
+ this.treeTable.setModel(TableSettingsModel, "tableSettings");
54
69
  this.ruleSetView = this.byId("ruleSetsView");
55
70
  this.rulesViewContainer = this.byId("rulesNavContainer");
56
71
  this.bAdditionalViewLoaded = false;
57
72
  this.bAdditionalRulesetsLoaded = false;
58
- this.oApplicationinfo = {};
73
+ this.bInitFired = false;
59
74
 
60
75
  /* eslint-disable no-new */
61
76
  //attach adapter for custom selection
@@ -82,14 +97,28 @@ sap.ui.define([
82
97
  onclick: this.onPresetVariantClick.bind(this)
83
98
  });
84
99
 
85
- this.treeTable.attachEvent("rowSelectionChange", function (oEvent) {
86
- if (oEvent.getParameter("userInteraction")) {
87
- PresetsUtils.syncCurrentSelectionPreset(SelectionUtils.getSelectedRules());
88
- }
89
- });
90
-
91
100
  // "visible" property of RowAction cannot be updated trough binding, so set it directly
92
101
  this.byId("rowActionTemplate").setVisible(!this.model.getProperty("/tempRulesDisabled"));
102
+
103
+ this._associateTableColumnsMenu();
104
+ },
105
+
106
+ onAfterRendering: function () {
107
+ if (!this.bInitFired) {
108
+ var fnThemeChangeHandler = function () {
109
+ CommunicationBus.publish(channelNames.ON_INIT_ANALYSIS_CTRL);
110
+ sap.ui.getCore().detachThemeChanged(fnThemeChangeHandler);
111
+ };
112
+
113
+ // If the theme is already applied themeChanged event won't be fired.
114
+ if (sap.ui.getCore().isThemeApplied()) {
115
+ CommunicationBus.publish(channelNames.ON_INIT_ANALYSIS_CTRL);
116
+ } else {
117
+ sap.ui.getCore().attachThemeChanged(fnThemeChangeHandler);
118
+ }
119
+
120
+ this.bInitFired = true;
121
+ }
93
122
  },
94
123
 
95
124
  loadAdditionalUI: function () {
@@ -117,20 +146,6 @@ sap.ui.define([
117
146
  this._updateRuleList();
118
147
  },
119
148
 
120
- onAfterRendering: function () {
121
- var fnThemeChangeHandler = function () {
122
- CommunicationBus.publish(channelNames.ON_INIT_ANALYSIS_CTRL);
123
- sap.ui.getCore().detachThemeChanged(fnThemeChangeHandler);
124
- };
125
-
126
- // If the theme is already applied themeChanged event won't be fired.
127
- if (sap.ui.getCore().isThemeApplied()) {
128
- CommunicationBus.publish(channelNames.ON_INIT_ANALYSIS_CTRL);
129
- } else {
130
- sap.ui.getCore().attachThemeChanged(fnThemeChangeHandler);
131
- }
132
- },
133
-
134
149
  onAsyncSwitch: function (oEvent) {
135
150
  var oSource = oEvent.getSource();
136
151
 
@@ -221,10 +236,6 @@ sap.ui.define([
221
236
  this.rulesViewContainer.setBusy(false);
222
237
  }, this);
223
238
 
224
- CommunicationBus.subscribe(channelNames.POST_APPLICATION_INFORMATION, function (data) {
225
- this.oApplicationinfo = data;
226
- }, this);
227
-
228
239
  CommunicationBus.subscribe(channelNames.POST_AVAILABLE_COMPONENTS, function (data) {
229
240
  var executionScopeComponents = [],
230
241
  modelScopeComponents = this.model.getProperty("/executionScopeComponents"),
@@ -825,6 +836,13 @@ sap.ui.define([
825
836
  this.model.setProperty("/showRuleProperties", bShowRuleProperties);
826
837
  }
827
838
  },
839
+
840
+ onRowSelectionChange: function (oEvent) {
841
+ if (oEvent.getParameter("userInteraction")) {
842
+ PresetsUtils.syncCurrentSelectionPreset(SelectionUtils.getSelectedRules());
843
+ }
844
+ },
845
+
828
846
  getMainModelFromTreeViewModel: function (selectedRule) {
829
847
 
830
848
  var structeredRulesModel = this.model.getProperty("/libraries"),
@@ -971,20 +989,6 @@ sap.ui.define([
971
989
  });
972
990
  },
973
991
 
974
- /**
975
- * On column visibility change persist column visibility selection
976
- * @param {object} oEvent event
977
- **/
978
- onColumnVisibilityChange: function (oEvent) {
979
- var oColumn = oEvent.getParameter("column"),
980
- bNewVisibilityState = oEvent.getParameter("newVisible");
981
- if (!this.model.getProperty("/persistingSettings")) {
982
- return;
983
- }
984
- oColumn.setVisible(bNewVisibilityState);
985
- this.persistVisibleColumns();
986
- },
987
-
988
992
  /**
989
993
  * Handles the selection presets variant selector click.
990
994
  * Opens selection presets popover.
@@ -1072,6 +1076,57 @@ sap.ui.define([
1072
1076
  MessageToast.show("Update rule failed because: " + result);
1073
1077
  }
1074
1078
  }, this);
1079
+ },
1080
+
1081
+ _associateTableColumnsMenu: function () {
1082
+ const oColumnsData = TableSettingsModel.getProperty("/columns");
1083
+ const oList = new List({
1084
+ mode: mLibrary.ListMode.MultiSelect
1085
+ });
1086
+ oList.setModel(TableSettingsModel, "tableSettings");
1087
+
1088
+ for (const sColumnKey in oColumnsData) {
1089
+ if (oColumnsData[sColumnKey].visibilityConfigurable) {
1090
+ oList.addItem(new StandardListItem({
1091
+ title: `{tableSettings>/columns/${sColumnKey}/title}`,
1092
+ selected: {
1093
+ model: "tableSettings",
1094
+ path: `/columns/${sColumnKey}/visible`,
1095
+ mode: BindingMode.OneWay
1096
+ }
1097
+ }));
1098
+ }
1099
+ }
1100
+
1101
+ const oColumnsMenu = new ColumnMenu("tableColumnMenu", {
1102
+ beforeOpen: function () {
1103
+ oList.getItems().forEach(function (oItem) {
1104
+ oItem.setSelected(oItem.getBinding("selected").getValue());
1105
+ });
1106
+ },
1107
+ items: [
1108
+ new ColumnMenuItem({
1109
+ label: "Columns",
1110
+ content: oList,
1111
+ showResetButton: false,
1112
+ confirm: function () {
1113
+ oList.getItems().forEach(function (oItem) {
1114
+ TableSettingsModel.setProperty(oItem.getBinding("selected").getPath(), oItem.getSelected());
1115
+ });
1116
+
1117
+ if (this.model.getProperty("/persistingSettings")) {
1118
+ this.persistVisibleColumns();
1119
+ }
1120
+ }.bind(this)
1121
+ })
1122
+ ]
1123
+ });
1124
+
1125
+ this.getView().addDependent(oColumnsMenu);
1126
+
1127
+ for (const sColumnKey in oColumnsData) {
1128
+ this.byId(sColumnKey + "Column").setHeaderMenu(oColumnsMenu);
1129
+ }
1075
1130
  }
1076
1131
  });
1077
1132
  });
@@ -6,7 +6,6 @@
6
6
 
7
7
  sap.ui.define([
8
8
  "sap/ui/support/supportRules/ui/controllers/BaseController",
9
- "sap/ui/model/json/JSONModel",
10
9
  "sap/ui/support/supportRules/CommunicationBus",
11
10
  "sap/ui/support/supportRules/ui/models/SharedModel",
12
11
  "sap/ui/support/supportRules/ui/external/ElementTree",
@@ -15,7 +14,17 @@ sap.ui.define([
15
14
  "sap/ui/support/supportRules/Constants",
16
15
  "sap/m/OverflowToolbarAssociativePopoverControls",
17
16
  "sap/base/util/deepExtend"
18
- ], function (BaseController, JSONModel, CommunicationBus, SharedModel, ElementTree, channelNames, formatter, constants, OverflowToolbarAssociativePopoverControls, deepExtend) {
17
+ ], function (
18
+ BaseController,
19
+ CommunicationBus,
20
+ SharedModel,
21
+ ElementTree,
22
+ channelNames,
23
+ formatter,
24
+ constants,
25
+ OverflowToolbarAssociativePopoverControls,
26
+ deepExtend
27
+ ) {
19
28
  "use strict";
20
29
 
21
30
  var mIssueSettings = {
@@ -192,14 +201,15 @@ sap.ui.define([
192
201
  this.model.setProperty("/filterBarHeight", "4rem");
193
202
  },
194
203
  onReportPress: function(oEvent) {
195
- var oItem = oEvent.getParameter("item"),
196
- actionToTake = oItem.getText(),
197
- data = this._getReportData();
198
- if (actionToTake === 'View') {
199
- CommunicationBus.publish(channelNames.ON_SHOW_REPORT_REQUEST, data);
200
- } else {
201
- CommunicationBus.publish(channelNames.ON_DOWNLOAD_REPORT_REQUEST, data);
202
- }
204
+ var oItem = oEvent.getParameter("item"),
205
+ actionToTake = oItem.getText(),
206
+ data = this._getReportData();
207
+
208
+ if (actionToTake === 'View') {
209
+ CommunicationBus.publish(channelNames.ON_SHOW_REPORT_REQUEST, data);
210
+ } else {
211
+ CommunicationBus.publish(channelNames.ON_DOWNLOAD_REPORT_REQUEST, data);
212
+ }
203
213
  },
204
214
  _getReportData: function () {
205
215
  return {
@@ -91,7 +91,7 @@ sap.ui.define([
91
91
  *
92
92
  * @extends sap.ui.support.supportRules.ui.controllers.BaseController
93
93
  * @author SAP SE
94
- * @version 1.117.1
94
+ * @version 1.118.0
95
95
  * @private
96
96
  * @alias sap.ui.support.supportRules.ui.controllers.PresetsController
97
97
  */
@@ -0,0 +1,38 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2023 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
+ "sap/ui/model/json/JSONModel"
9
+ ], function (
10
+ JSONModel
11
+ ) {
12
+ "use strict";
13
+
14
+ return new JSONModel({
15
+ columns: {
16
+ rules: {
17
+ title: "Rules",
18
+ visible: true,
19
+ visibilityConfigurable: false
20
+ },
21
+ categories: {
22
+ title: "Categories",
23
+ visible: true,
24
+ visibilityConfigurable: true
25
+ },
26
+ audience: {
27
+ title: "Audience",
28
+ visible: false,
29
+ visibilityConfigurable: true
30
+ },
31
+ ruleId: {
32
+ title: "RuleID",
33
+ visible: false,
34
+ visibilityConfigurable: true
35
+ }
36
+ }
37
+ });
38
+ });
@@ -91,50 +91,50 @@
91
91
  path: 'ruleSets>/',
92
92
  parameters: {numberOfExpandedLevels: 1}
93
93
  }"
94
- collapseRecursive="false"
95
94
  enableColumnReordering="false"
96
- cellClick="onCellClick"
97
95
  class="sapUiSizeCondensed"
98
96
  visibleRowCountMode="Auto"
99
97
  selectionBehavior="RowSelector"
100
98
  rowActionCount="1"
101
99
  visible="{= ${/selectedSetPreviewKey} === 'availableRules' }"
102
- showColumnVisibilityMenu="true"
103
- columnVisibility="onColumnVisibilityChange"
100
+ cellClick="onCellClick"
101
+ rowSelectionChange="onRowSelectionChange"
104
102
  >
105
103
  <t:columns>
106
104
  <t:Column id="rulesColumn"
107
- label="Rules ({/selectedRulesCount} selected)"
108
105
  sortProperty="name"
109
- filterProperty="name">
106
+ filterProperty="name"
107
+ visible="{tableSettings>/columns/rules/visible}">
108
+ <m:Label text="Rules ({/selectedRulesCount} selected)"/>
110
109
  <t:template>
111
110
  <m:Text text="{ruleSets>name}" wrapping="false"/>
112
111
  </t:template>
113
112
  </t:Column>
114
113
  <t:Column id="categoriesColumn"
115
- label="Categories"
116
114
  width="10rem"
117
115
  sortProperty="categories"
118
- filterProperty="categories">
116
+ filterProperty="categories"
117
+ visible="{tableSettings>/columns/categories/visible}">
118
+ <m:Label text="{tableSettings>/columns/categories/title}"/>
119
119
  <t:template>
120
120
  <m:Text text="{ruleSets>categories}" wrapping="false"/>
121
121
  </t:template>
122
122
  </t:Column>
123
123
  <t:Column id="audienceColumn"
124
- label="Audience"
125
- visible="false"
126
124
  sortProperty="audiences"
127
- filterProperty="audiences">
125
+ filterProperty="audiences"
126
+ visible="{tableSettings>/columns/audience/visible}">
127
+ <m:Label text="{tableSettings>/columns/audience/title}"/>
128
128
  <t:template>
129
129
  <m:Text text="{ruleSets>audiences}" wrapping="false"/>
130
130
  </t:template>
131
131
  </t:Column>
132
- <t:Column id="idsColumn"
133
- label="RuleID"
132
+ <t:Column id="ruleIdColumn"
134
133
  width="10rem"
135
- visible="false"
136
134
  sortProperty="id"
137
- filterProperty="id">
135
+ filterProperty="id"
136
+ visible="{tableSettings>/columns/ruleId/visible}">
137
+ <m:Label text="{tableSettings>/columns/ruleId/title}"/>
138
138
  <t:template>
139
139
  <m:Text text="{ruleSets>id}" wrapping="false"/>
140
140
  </t:template>
@@ -67,8 +67,8 @@
67
67
  <menu>
68
68
  <Menu itemSelected="onReportPress">
69
69
  <items>
70
- <MenuItem text="View" press="onViewReport"/>
71
- <MenuItem text="Download" press="onDownloadReport"/>
70
+ <MenuItem text="View" />
71
+ <MenuItem text="Download" />
72
72
  </items>
73
73
  </Menu>
74
74
  </menu>
@@ -121,13 +121,13 @@
121
121
  selectionMode="Single"
122
122
  selectionBehavior="RowOnly"
123
123
  enableColumnReordering="false"
124
- expandFirstLevel="true"
125
124
  rows="{path: '/issues'}"
126
125
  rowSelectionChange="onRowSelectionChanged"
127
126
  rowHeight="24"
128
127
  visibleRowCountMode="Auto">
129
128
  <t:columns>
130
- <t:Column label="Issues" resizable="false">
129
+ <t:Column resizable="false">
130
+ <Label text="Issues"/>
131
131
  <t:template>
132
132
  <FormattedText htmlText="{formattedName}"/>
133
133
  </t:template>
@@ -173,8 +173,8 @@
173
173
  <t:Column
174
174
  sortProperty="context/id"
175
175
  filterProperty="context/id"
176
- label="Control Id"
177
176
  resizable="false">
177
+ <Label text="Control Id"/>
178
178
  <t:template>
179
179
  <Text text="{context/id}" wrapping="false" tooltip="{context/id}"></Text>
180
180
  </t:template>
@@ -182,8 +182,8 @@
182
182
  <t:Column
183
183
  sortProperty="context/className"
184
184
  filterProperty="context/className"
185
- label="Class name"
186
185
  resizable="false">
186
+ <Label text="Class name"/>
187
187
  <t:template>
188
188
  <Text text="{context/className}" wrapping="false" tooltip="{context/className}"></Text>
189
189
  </t:template>
@@ -28,27 +28,24 @@ sap.ui.define([],
28
28
  * Positive cases :
29
29
  * - "-"
30
30
  * - "*"
31
- * - "<digit>.<digit><digit>"
32
- * - "<digit>.<digit><digit><digit>"
31
+ * - "<number>.<number>"
33
32
  *
34
33
  * @private
35
34
  * @param {string} sVersion Version number in string format - could be - * or numeric.
36
35
  * @returns {boolean} Boolean response if the provided version is valid.
37
36
  */
38
37
  validateVersion: function(sVersion) {
39
-
40
38
  if (!sVersion || typeof sVersion !== 'string') {
41
39
  return false;
42
40
  }
43
41
 
44
- var versionRegEx = /^\*$|^\-$|^\d\.\d{2,3}$/;
42
+ var versionRegEx = /^\*$|^\-$|^\d\.\d+$/;
45
43
 
46
44
  if (sVersion.match(versionRegEx)) {
47
45
  return true;
48
46
  }
49
47
 
50
48
  return false;
51
-
52
49
  },
53
50
 
54
51
  /**