Skip to content

Commit

Permalink
Add timestamp formatting to chart tooltips
Browse files Browse the repository at this point in the history
Previously chart tooltips only showed dates without time information, making
it difficult to correlate chart events with specific times. This change adds
proper timestamp formatting (including HH:mm:ss) to tooltips across all
chart components.

The changes include:
- Added timestamp formatting in chart tooltips using common.formatTimestamp()
- Applied consistent formatting across all chart components
- Maintained existing date formatting on x-axis labels

This addresses issue #1142 which requested adding timestamp information to
make it easier to investigate events shown in charts.

Signed-off-by: Rudra Garg <[email protected]>
  • Loading branch information
Rudra-Garg committed Jan 29, 2025
1 parent ffab506 commit c9f67c4
Show file tree
Hide file tree
Showing 11 changed files with 141 additions and 18 deletions.
17 changes: 15 additions & 2 deletions src/views/dashboard/ChartAuditingFindingsProgress.vue
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ export default {
let collectionLogicChangedData = [];
for (let i = 0; i < metrics.length; i++) {
labels.push(common.formatTimestamp(metrics[i].firstOccurrence));
labels.push(metrics[i].firstOccurrence);
totalData.push(metrics[i].findingsTotal);
auditedData.push(metrics[i].findingsAudited);
collectionLogicChangedData.push(metrics[i].collectionLogicChanged);
if (i === metrics.length - 1) {
labels.push(common.formatTimestamp(metrics[i].lastOccurrence));
labels.push(metrics[i].lastOccurrence);
totalData.push(metrics[i].findingsTotal);
auditedData.push(metrics[i].findingsAudited);
}
Expand Down Expand Up @@ -86,6 +86,12 @@ export default {
chart.data.datasets[tooltipItem.datasetIndex].borderColor,
};
},
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
Expand All @@ -98,6 +104,13 @@ export default {
gridLines: {
drawOnChartArea: false,
},
ticks: {
callback: function (value, index) {
return common.formatTimestamp(
this.chart.data.labels[index],
);
},
},
},
],
yAxes: [
Expand Down
17 changes: 15 additions & 2 deletions src/views/dashboard/ChartAuditingViolationsProgress.vue
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ export default {
let collectionLogicChangedData = [];
for (let i = 0; i < metrics.length; i++) {
labels.push(common.formatTimestamp(metrics[i].firstOccurrence));
labels.push(metrics[i].firstOccurrence);
totalData.push(metrics[i].policyViolationsTotal);
auditedData.push(metrics[i].policyViolationsAudited);
collectionLogicChangedData.push(metrics[i].collectionLogicChanged);
if (i === metrics.length - 1) {
labels.push(common.formatTimestamp(metrics[i].lastOccurrence));
labels.push(metrics[i].lastOccurrence);
totalData.push(metrics[i].policyViolationsTotal);
auditedData.push(metrics[i].policyViolationsAudited);
}
Expand Down Expand Up @@ -86,6 +86,12 @@ export default {
chart.data.datasets[tooltipItem.datasetIndex].borderColor,
};
},
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
Expand All @@ -98,6 +104,13 @@ export default {
gridLines: {
drawOnChartArea: false,
},
ticks: {
callback: function (value, index) {
return common.formatTimestamp(
this.chart.data.labels[index],
);
},
},
},
],
yAxes: [
Expand Down
17 changes: 15 additions & 2 deletions src/views/dashboard/ChartComponentVulnerabilities.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export default {
let collectionLogicChangedData = [];
for (let i = 0; i < metrics.length; i++) {
labels.push(common.formatTimestamp(metrics[i].firstOccurrence));
labels.push(metrics[i].firstOccurrence);
totalData.push(metrics[i].components);
affectedData.push(metrics[i].vulnerableComponents);
nonAffectedData.push(
Expand All @@ -34,7 +34,7 @@ export default {
collectionLogicChangedData.push(metrics[i].collectionLogicChanged);
if (i === metrics.length - 1) {
labels.push(common.formatTimestamp(metrics[i].lastOccurrence));
labels.push(metrics[i].lastOccurrence);
totalData.push(metrics[i].components);
affectedData.push(metrics[i].vulnerableComponents);
nonAffectedData.push(
Expand Down Expand Up @@ -101,6 +101,12 @@ export default {
chart.data.datasets[tooltipItem.datasetIndex].borderColor,
};
},
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
Expand All @@ -113,6 +119,13 @@ export default {
gridLines: {
drawOnChartArea: false,
},
ticks: {
callback: function (value, index) {
return common.formatTimestamp(
this.chart.data.labels[index],
);
},
},
},
],
yAxes: [
Expand Down
17 changes: 15 additions & 2 deletions src/views/dashboard/ChartPolicyViolationsClassification.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ export default {
let operationalData = [];
let licenseData = [];
for (let i = 0; i < metrics.length; i++) {
labels.push(common.formatTimestamp(metrics[i].firstOccurrence));
labels.push(metrics[i].firstOccurrence);
securityData.push(metrics[i].policyViolationsSecurityTotal);
operationalData.push(metrics[i].policyViolationsOperationalTotal);
licenseData.push(metrics[i].policyViolationsLicenseTotal);
if (i === metrics.length - 1) {
labels.push(common.formatTimestamp(metrics[i].lastOccurrence));
labels.push(metrics[i].lastOccurrence);
securityData.push(metrics[i].policyViolationsSecurityTotal);
operationalData.push(metrics[i].policyViolationsOperationalTotal);
licenseData.push(metrics[i].policyViolationsLicenseTotal);
Expand Down Expand Up @@ -70,6 +70,12 @@ export default {
chart.data.datasets[tooltipItem.datasetIndex].borderColor,
};
},
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
Expand All @@ -82,6 +88,13 @@ export default {
gridLines: {
drawOnChartArea: false,
},
ticks: {
callback: function (value, index) {
return common.formatTimestamp(
this.chart.data.labels[index],
);
},
},
},
],
yAxes: [
Expand Down
17 changes: 15 additions & 2 deletions src/views/dashboard/ChartPolicyViolationsState.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@ export default {
let collectionLogicChangedData = [];
for (let i = 0; i < metrics.length; i++) {
labels.push(common.formatTimestamp(metrics[i].firstOccurrence));
labels.push(metrics[i].firstOccurrence);
failData.push(metrics[i].policyViolationsFail);
warnData.push(metrics[i].policyViolationsWarn);
infoData.push(metrics[i].policyViolationsInfo);
collectionLogicChangedData.push(metrics[i].collectionLogicChanged);
if (i === metrics.length - 1) {
labels.push(common.formatTimestamp(metrics[i].lastOccurrence));
labels.push(metrics[i].lastOccurrence);
failData.push(metrics[i].policyViolationsFail);
warnData.push(metrics[i].policyViolationsWarn);
infoData.push(metrics[i].policyViolationsInfo);
Expand Down Expand Up @@ -97,6 +97,12 @@ export default {
chart.data.datasets[tooltipItem.datasetIndex].borderColor,
};
},
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
Expand All @@ -109,6 +115,13 @@ export default {
gridLines: {
drawOnChartArea: false,
},
ticks: {
callback: function (value, index) {
return common.formatTimestamp(
this.chart.data.labels[index],
);
},
},
},
],
yAxes: [
Expand Down
17 changes: 15 additions & 2 deletions src/views/dashboard/ChartPortfolioVulnerabilities.vue
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export default {
let collectionLogicChangedData = [];
for (let i = 0; i < metrics.length; i++) {
labels.push(common.formatTimestamp(metrics[i].firstOccurrence));
labels.push(metrics[i].firstOccurrence);
criticalData.push(metrics[i].critical);
highData.push(metrics[i].high);
mediumData.push(metrics[i].medium);
Expand All @@ -38,7 +38,7 @@ export default {
collectionLogicChangedData.push(metrics[i].collectionLogicChanged);
if (i === metrics.length - 1) {
labels.push(common.formatTimestamp(metrics[i].lastOccurrence));
labels.push(metrics[i].lastOccurrence);
criticalData.push(metrics[i].critical);
highData.push(metrics[i].high);
mediumData.push(metrics[i].medium);
Expand Down Expand Up @@ -119,6 +119,12 @@ export default {
chart.data.datasets[tooltipItem.datasetIndex].borderColor,
};
},
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
Expand All @@ -131,6 +137,13 @@ export default {
gridLines: {
drawOnChartArea: false,
},
ticks: {
callback: function (value, index) {
return common.formatTimestamp(
this.chart.data.labels[index],
);
},
},
},
],
yAxes: [
Expand Down
17 changes: 15 additions & 2 deletions src/views/dashboard/ChartProjectVulnerabilities.vue
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ export default {
let nonAffectedData = [];
for (let i = 0; i < metrics.length; i++) {
labels.push(common.formatTimestamp(metrics[i].firstOccurrence));
labels.push(metrics[i].firstOccurrence);
totalData.push(metrics[i].projects);
affectedData.push(metrics[i].vulnerableProjects);
nonAffectedData.push(
metrics[i].projects - metrics[i].vulnerableProjects,
);
if (i === metrics.length - 1) {
labels.push(common.formatTimestamp(metrics[i].lastOccurrence));
labels.push(metrics[i].lastOccurrence);
totalData.push(metrics[i].projects);
affectedData.push(metrics[i].vulnerableProjects);
nonAffectedData.push(
Expand Down Expand Up @@ -79,6 +79,12 @@ export default {
chart.data.datasets[tooltipItem.datasetIndex].borderColor,
};
},
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
Expand All @@ -91,6 +97,13 @@ export default {
gridLines: {
drawOnChartArea: false,
},
ticks: {
callback: function (value, index) {
return common.formatTimestamp(
this.chart.data.labels[index],
);
},
},
},
],
yAxes: [
Expand Down
10 changes: 9 additions & 1 deletion src/views/dashboard/WidgetInheritedRiskScore.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default {
let chartLabels = [];
let chartData = [];
for (let i = 0; i < metrics.length; i++) {
chartLabels.push(common.formatTimestamp(metrics[i].firstOccurrence));
chartLabels.push(metrics[i].firstOccurrence); // Store raw timestamp
chartData.push(metrics[i].inheritedRiskScore);
}
Expand All @@ -39,6 +39,14 @@ export default {
tooltips: {
enabled: false,
custom: CustomTooltips,
callbacks: {
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
legend: {
Expand Down
10 changes: 9 additions & 1 deletion src/views/dashboard/WidgetPortfolioVulnerabilities.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default {
let chartLabels = [];
let chartData = [];
for (let i = 0; i < metrics.length; i++) {
chartLabels.push(common.formatTimestamp(metrics[i].firstOccurrence));
chartLabels.push(metrics[i].firstOccurrence);
chartData.push(metrics[i].vulnerabilities);
}
Expand All @@ -39,6 +39,14 @@ export default {
tooltips: {
enabled: false,
custom: CustomTooltips,
callbacks: {
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
legend: {
Expand Down
10 changes: 9 additions & 1 deletion src/views/dashboard/WidgetProjectsAtRisk.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default {
let chartLabels = [];
let chartData = [];
for (let i = 0; i < metrics.length; i++) {
chartLabels.push(common.formatTimestamp(metrics[i].firstOccurrence));
chartLabels.push(metrics[i].firstOccurrence); // Store raw timestamp
chartData.push(metrics[i].vulnerableProjects);
}
Expand All @@ -39,6 +39,14 @@ export default {
tooltips: {
enabled: false,
custom: CustomTooltips,
callbacks: {
title: function (tooltipItems, data) {
return common.formatTimestamp(
data.labels[tooltipItems[0].index],
true,
);
},
},
},
maintainAspectRatio: false,
legend: {
Expand Down
Loading

0 comments on commit c9f67c4

Please sign in to comment.