From f4376363ebd2e3b85771ea38a160f3eff3a9b747 Mon Sep 17 00:00:00 2001 From: Sriram <153843+yesoreyeram@users.noreply.github.com> Date: Mon, 24 Feb 2025 10:01:08 +0000 Subject: [PATCH] Fix problems panel broken when selecting triggers (#1960) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR fixes an issue where the problems panel breaks when you change to query type to `Triggers`. ![](https://grafana.zendesk.com/attachments/token/MNBgVTPRKZkwa6TsMBbtBQdIp/?name=image.png) How to reproduce: 1. Go to `Zabbix data source features` dashboard 2. Open Problems panel 3. Change`Query type` to `Triggers` 4. Select `Problems` from `Count by` 5. Change the `Group` to `Backend` 6. The problems panel should not error --------- Co-authored-by: Zoltán Bedi --- .changeset/purple-carrots-rhyme.md | 5 +++++ src/panel-triggers/ProblemsPanel.tsx | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 .changeset/purple-carrots-rhyme.md diff --git a/.changeset/purple-carrots-rhyme.md b/.changeset/purple-carrots-rhyme.md new file mode 100644 index 0000000..9747d42 --- /dev/null +++ b/.changeset/purple-carrots-rhyme.md @@ -0,0 +1,5 @@ +--- +'grafana-zabbix': patch +--- + +Fix problems panel broken when selecting triggers diff --git a/src/panel-triggers/ProblemsPanel.tsx b/src/panel-triggers/ProblemsPanel.tsx index 6593962..60a435c 100644 --- a/src/panel-triggers/ProblemsPanel.tsx +++ b/src/panel-triggers/ProblemsPanel.tsx @@ -63,7 +63,7 @@ export const ProblemsPanel = (props: ProblemsPanelProps): JSX.Element => { // Filter triggers by severity problemsList = problemsList.filter((problem) => { const severity = problem.severity !== undefined ? Number(problem.severity) : Number(problem.priority); - return triggerSeverity[severity].show; + return triggerSeverity[severity]?.show; }); return problemsList; @@ -100,8 +100,9 @@ export const ProblemsPanel = (props: ProblemsPanelProps): JSX.Element => { if (trigger.comments && options.allowDangerousHTML) { trigger.comments = trigger.comments.replace('\n', '
'); } - - trigger.lastchangeUnix = Number(trigger.lastchange); + if (trigger && typeof trigger === 'object') { + trigger.lastchangeUnix = Number(trigger.lastchange); + } return trigger; };