Commit 825406690c5d5896189ea3caf3e2abca65c94b40

Authored by Chantsova Ekaterina
Committed by Igor Kulikov
1 parent 518e9ac9

Flot widget pull requests: resolve conflicts for #2053, #2061 (#2289)

* Add some datakey settings to edit legend appearance for flot widget

* Fix timestamp and index search in 'line' flot charts tooltip

Co-authored-by: Mirco Pizzichini <52463156+mircopz@users.noreply.github.com>
... ... @@ -332,7 +332,8 @@ export default class Subscription {
332 332
333 333 for (var a = 0; a < datasource.dataKeys.length; a++) {
334 334 var dataKey = datasource.dataKeys[a];
335   - dataKey.hidden = false;
  335 + dataKey.hidden = dataKey.settings.hideDataByDefault ? true : false;
  336 + dataKey.inLegend = dataKey.settings.removeFromLegend ? false : true;
336 337 dataKey.pattern = angular.copy(dataKey.label);
337 338
338 339 if (this.comparisonEnabled && dataKey.settings.comparisonSettings && dataKey.settings.comparisonSettings.showValuesForComparison) {
... ...
... ... @@ -46,7 +46,9 @@ function Legend($compile, $templateCache, types) {
46 46 scope.isRowDirection = scope.legendConfig.direction === types.direction.row.value;
47 47
48 48 scope.toggleHideData = function(index) {
49   - scope.legendData.keys[index].dataKey.hidden = !scope.legendData.keys[index].dataKey.hidden;
  49 + if (!scope.legendData.keys[index].dataKey.settings.disableDataHiding) {
  50 + scope.legendData.keys[index].dataKey.hidden = !scope.legendData.keys[index].dataKey.hidden;
  51 + }
50 52 }
51 53
52 54 $compile(element.contents())(scope);
... ...
... ... @@ -27,7 +27,8 @@
27 27 </tr>
28 28 </thead>
29 29 <tbody>
30   - <tr class="tb-legend-keys" ng-repeat="legendKey in legendData.keys" ng-if="!isRowDirection">
  30 + <tr class="tb-legend-keys" ng-repeat="legendKey in legendData.keys"
  31 + ng-if="!isRowDirection && legendData.keys[legendKey.dataIndex].dataKey.inLegend">
31 32 <td><span class="tb-legend-line" ng-style="{backgroundColor: legendKey.dataKey.color}"></span></td>
32 33 <td class="tb-legend-label"
33 34 ng-click="toggleHideData(legendKey.dataIndex)"
... ... @@ -41,7 +42,7 @@
41 42 </tr>
42 43 <tr class="tb-legend-keys" ng-class="{ 'tb-row-direction': !displayHeader() }" ng-if="isRowDirection">
43 44 <td></td>
44   - <td ng-repeat="legendKey in legendData.keys">
  45 + <td ng-repeat="legendKey in legendData.keys" ng-if="legendData.keys[legendKey.dataIndex].dataKey.inLegend">
45 46 <span class="tb-legend-line" ng-style="{backgroundColor: legendKey.dataKey.color}"></span>
46 47 <span class="tb-legend-label"
47 48 ng-click="toggleHideData(legendKey.dataIndex)"
... ... @@ -52,19 +53,31 @@
52 53 </tr>
53 54 <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showMin === true">
54 55 <td class="tb-legend-type">{{ 'legend.min' | translate }}</td>
55   - <td class="tb-legend-value" ng-repeat="legendKey in legendData.keys">{{ legendData.data[legendKey.dataIndex].min }}</td>
  56 + <td class="tb-legend-value" ng-repeat="legendKey in legendData.keys"
  57 + ng-if="legendData.keys[legendKey.dataIndex].dataKey.inLegend">
  58 + {{ legendData.data[legendKey.dataIndex].min }}
  59 + </td>
56 60 </tr>
57 61 <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showMax === true">
58 62 <td class="tb-legend-type">{{ 'legend.max' | translate }}</td>
59   - <td class="tb-legend-value" ng-repeat="legendKey in legendData.keys">{{ legendData.data[legendKey.dataIndex].max }}</td>
  63 + <td class="tb-legend-value" ng-repeat="legendKey in legendData.keys"
  64 + ng-if="legendData.keys[legendKey.dataIndex].dataKey.inLegend">
  65 + {{ legendData.data[legendKey.dataIndex].max }}
  66 + </td>
60 67 </tr>
61 68 <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showAvg === true">
62 69 <td class="tb-legend-type">{{ 'legend.avg' | translate }}</td>
63   - <td class="tb-legend-value" ng-repeat="legendKey in legendData.keys">{{ legendData.data[legendKey.dataIndex].avg }}</td>
  70 + <td class="tb-legend-value" ng-repeat="legendKey in legendData.keys"
  71 + ng-if="legendData.keys[legendKey.dataIndex].dataKey.inLegend">
  72 + {{ legendData.data[legendKey.dataIndex].avg }}
  73 + </td>
64 74 </tr>
65 75 <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showTotal === true">
66 76 <td class="tb-legend-type">{{ 'legend.total' | translate }}</td>
67   - <td class="tb-legend-value" ng-repeat="legendKey in legendData.keys">{{ legendData.data[legendKey.dataIndex].total }}</td>
  77 + <td class="tb-legend-value" ng-repeat="legendKey in legendData.keys"
  78 + ng-if="legendData.keys[legendKey.dataIndex].dataKey.inLegend">
  79 + {{ legendData.data[legendKey.dataIndex].total }}
  80 + </td>
68 81 </tr>
69 82 </tbody>
70 83 </table>
... ...
... ... @@ -139,12 +139,7 @@ export default class TbFlot {
139 139 return seriesHover.index === seriesIndex;
140 140 });
141 141 if (found && found.length) {
142   - let timestamp;
143   - if (!angular.isNumber(hoverInfo[0].time) || (found[0].time < hoverInfo[0].time)) {
144   - timestamp = parseInt(hoverInfo[1].time);
145   - } else {
146   - timestamp = parseInt(hoverInfo[0].time);
147   - }
  142 + let timestamp = parseInt(found[0].time);
148 143 let date = moment(timestamp).format('YYYY-MM-DD HH:mm:ss');
149 144 let dateDiv = $('<div>' + date + '</div>');
150 145 dateDiv.css({
... ... @@ -1213,7 +1208,35 @@ export default class TbFlot {
1213 1208 }
1214 1209
1215 1210 static get pieDatakeySettingsSchema() {
1216   - return {}
  1211 + return {
  1212 + "schema": {
  1213 + "type": "object",
  1214 + "title": "DataKeySettings",
  1215 + "properties": {
  1216 + "hideDataByDefault": {
  1217 + "title": "Data is hidden by default",
  1218 + "type": "boolean",
  1219 + "default": false
  1220 + },
  1221 + "disableDataHiding": {
  1222 + "title": "Disable data hiding",
  1223 + "type": "boolean",
  1224 + "default": false
  1225 + },
  1226 + "removeFromLegend": {
  1227 + "title": "Remove datakey from legend",
  1228 + "type": "boolean",
  1229 + "default": false
  1230 + }
  1231 + },
  1232 + "required": []
  1233 + },
  1234 + "form": [
  1235 + "hideDataByDefault",
  1236 + "disableDataHiding",
  1237 + "removeFromLegend"
  1238 + ]
  1239 + };
1217 1240 }
1218 1241
1219 1242 static datakeySettingsSchema(defaultShowLines, chartType) {
... ... @@ -1228,6 +1251,21 @@ export default class TbFlot {
1228 1251 "type": "boolean",
1229 1252 "default": false
1230 1253 },
  1254 + "hideDataByDefault": {
  1255 + "title": "Data is hidden by default",
  1256 + "type": "boolean",
  1257 + "default": false
  1258 + },
  1259 + "disableDataHiding": {
  1260 + "title": "Disable data hiding",
  1261 + "type": "boolean",
  1262 + "default": false
  1263 + },
  1264 + "removeFromLegend": {
  1265 + "title": "Remove datakey from legend",
  1266 + "type": "boolean",
  1267 + "default": false
  1268 + },
1231 1269 "showLines": {
1232 1270 "title": "Show lines",
1233 1271 "type": "boolean",
... ... @@ -1316,6 +1354,9 @@ export default class TbFlot {
1316 1354 "required": ["showLines", "fillLines", "showPoints"]
1317 1355 },
1318 1356 "form": [
  1357 + "hideDataByDefault",
  1358 + "disableDataHiding",
  1359 + "removeFromLegend",
1319 1360 "excludeFromStacking",
1320 1361 "showLines",
1321 1362 "fillLines",
... ...