Commit 825406690c5d5896189ea3caf3e2abca65c94b40
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>
Showing
4 changed files
with
72 additions
and
15 deletions
@@ -332,7 +332,8 @@ export default class Subscription { | @@ -332,7 +332,8 @@ export default class Subscription { | ||
332 | 332 | ||
333 | for (var a = 0; a < datasource.dataKeys.length; a++) { | 333 | for (var a = 0; a < datasource.dataKeys.length; a++) { |
334 | var dataKey = datasource.dataKeys[a]; | 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 | dataKey.pattern = angular.copy(dataKey.label); | 337 | dataKey.pattern = angular.copy(dataKey.label); |
337 | 338 | ||
338 | if (this.comparisonEnabled && dataKey.settings.comparisonSettings && dataKey.settings.comparisonSettings.showValuesForComparison) { | 339 | if (this.comparisonEnabled && dataKey.settings.comparisonSettings && dataKey.settings.comparisonSettings.showValuesForComparison) { |
@@ -46,7 +46,9 @@ function Legend($compile, $templateCache, types) { | @@ -46,7 +46,9 @@ function Legend($compile, $templateCache, types) { | ||
46 | scope.isRowDirection = scope.legendConfig.direction === types.direction.row.value; | 46 | scope.isRowDirection = scope.legendConfig.direction === types.direction.row.value; |
47 | 47 | ||
48 | scope.toggleHideData = function(index) { | 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 | $compile(element.contents())(scope); | 54 | $compile(element.contents())(scope); |
@@ -27,7 +27,8 @@ | @@ -27,7 +27,8 @@ | ||
27 | </tr> | 27 | </tr> |
28 | </thead> | 28 | </thead> |
29 | <tbody> | 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 | <td><span class="tb-legend-line" ng-style="{backgroundColor: legendKey.dataKey.color}"></span></td> | 32 | <td><span class="tb-legend-line" ng-style="{backgroundColor: legendKey.dataKey.color}"></span></td> |
32 | <td class="tb-legend-label" | 33 | <td class="tb-legend-label" |
33 | ng-click="toggleHideData(legendKey.dataIndex)" | 34 | ng-click="toggleHideData(legendKey.dataIndex)" |
@@ -41,7 +42,7 @@ | @@ -41,7 +42,7 @@ | ||
41 | </tr> | 42 | </tr> |
42 | <tr class="tb-legend-keys" ng-class="{ 'tb-row-direction': !displayHeader() }" ng-if="isRowDirection"> | 43 | <tr class="tb-legend-keys" ng-class="{ 'tb-row-direction': !displayHeader() }" ng-if="isRowDirection"> |
43 | <td></td> | 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 | <span class="tb-legend-line" ng-style="{backgroundColor: legendKey.dataKey.color}"></span> | 46 | <span class="tb-legend-line" ng-style="{backgroundColor: legendKey.dataKey.color}"></span> |
46 | <span class="tb-legend-label" | 47 | <span class="tb-legend-label" |
47 | ng-click="toggleHideData(legendKey.dataIndex)" | 48 | ng-click="toggleHideData(legendKey.dataIndex)" |
@@ -52,19 +53,31 @@ | @@ -52,19 +53,31 @@ | ||
52 | </tr> | 53 | </tr> |
53 | <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showMin === true"> | 54 | <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showMin === true"> |
54 | <td class="tb-legend-type">{{ 'legend.min' | translate }}</td> | 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 | </tr> | 60 | </tr> |
57 | <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showMax === true"> | 61 | <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showMax === true"> |
58 | <td class="tb-legend-type">{{ 'legend.max' | translate }}</td> | 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 | </tr> | 67 | </tr> |
61 | <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showAvg === true"> | 68 | <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showAvg === true"> |
62 | <td class="tb-legend-type">{{ 'legend.avg' | translate }}</td> | 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 | </tr> | 74 | </tr> |
65 | <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showTotal === true"> | 75 | <tr class="tb-legend-keys" ng-if="isRowDirection && legendConfig.showTotal === true"> |
66 | <td class="tb-legend-type">{{ 'legend.total' | translate }}</td> | 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 | </tr> | 81 | </tr> |
69 | </tbody> | 82 | </tbody> |
70 | </table> | 83 | </table> |
@@ -139,12 +139,7 @@ export default class TbFlot { | @@ -139,12 +139,7 @@ export default class TbFlot { | ||
139 | return seriesHover.index === seriesIndex; | 139 | return seriesHover.index === seriesIndex; |
140 | }); | 140 | }); |
141 | if (found && found.length) { | 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 | let date = moment(timestamp).format('YYYY-MM-DD HH:mm:ss'); | 143 | let date = moment(timestamp).format('YYYY-MM-DD HH:mm:ss'); |
149 | let dateDiv = $('<div>' + date + '</div>'); | 144 | let dateDiv = $('<div>' + date + '</div>'); |
150 | dateDiv.css({ | 145 | dateDiv.css({ |
@@ -1213,7 +1208,35 @@ export default class TbFlot { | @@ -1213,7 +1208,35 @@ export default class TbFlot { | ||
1213 | } | 1208 | } |
1214 | 1209 | ||
1215 | static get pieDatakeySettingsSchema() { | 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 | static datakeySettingsSchema(defaultShowLines, chartType) { | 1242 | static datakeySettingsSchema(defaultShowLines, chartType) { |
@@ -1228,6 +1251,21 @@ export default class TbFlot { | @@ -1228,6 +1251,21 @@ export default class TbFlot { | ||
1228 | "type": "boolean", | 1251 | "type": "boolean", |
1229 | "default": false | 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 | "showLines": { | 1269 | "showLines": { |
1232 | "title": "Show lines", | 1270 | "title": "Show lines", |
1233 | "type": "boolean", | 1271 | "type": "boolean", |
@@ -1316,6 +1354,9 @@ export default class TbFlot { | @@ -1316,6 +1354,9 @@ export default class TbFlot { | ||
1316 | "required": ["showLines", "fillLines", "showPoints"] | 1354 | "required": ["showLines", "fillLines", "showPoints"] |
1317 | }, | 1355 | }, |
1318 | "form": [ | 1356 | "form": [ |
1357 | + "hideDataByDefault", | ||
1358 | + "disableDataHiding", | ||
1359 | + "removeFromLegend", | ||
1319 | "excludeFromStacking", | 1360 | "excludeFromStacking", |
1320 | "showLines", | 1361 | "showLines", |
1321 | "fillLines", | 1362 | "fillLines", |