Skip to content

Instantly share code, notes, and snippets.

@CHERTS
Last active October 3, 2019 07:28
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CHERTS/4fa1fa47c8caab68e52c4de2216d4c84 to your computer and use it in GitHub Desktop.
Save CHERTS/4fa1fa47c8caab68e52c4de2216d4c84 to your computer and use it in GitHub Desktop.
Show problems and operational data in Zabbix 4.4.0-alfa3 as one line
--- ./frontends/php/include/blocks.inc.php.orig 2019-09-27 20:57:02.214919180 +0300
+++ ./frontends/php/include/blocks.inc.php 2019-09-27 20:57:14.583818457 +0300
@@ -732,7 +732,6 @@
_('Info'),
_('Host'),
_('Problem'),
- $show_opdata ? _('Operational data') : null,
_('Duration'),
_('Ack'),
_('Actions'),
@@ -803,9 +802,8 @@
// operational data
$opdata = null;
- if ($show_opdata) {
- $opdata = ($trigger['opdata'] !== '')
- ? (new CCol(CMacrosResolverHelper::resolveTriggerOpdata(
+ if ($show_opdata and $trigger['opdata'] !== '') {
+ $opdata = ' '.CMacrosResolverHelper::resolveTriggerOpdata(
[
'triggerid' => $trigger['triggerid'],
'expression' => $trigger['expression'],
@@ -815,12 +813,9 @@
],
[
'events' => true,
- 'html' => true
+ 'html' => false
]
- )))
- ->addClass('opdata')
- ->addClass(ZBX_STYLE_WORDWRAP)
- : (new CCol(CScreenProblem::getLatestValues($trigger['items'])))->addClass('latest-values');
+ );
}
// ack
@@ -837,8 +832,7 @@
$table->addRow(array_merge($row, [
makeInformationList($info_icons),
$triggers_hosts[$trigger['triggerid']],
- getSeverityCell($problem['severity'], null, $problem['name']),
- $opdata,
+ getSeverityCell($problem['severity'], null, $problem['name'].$opdata),
zbx_date2age($problem['clock']),
$ack,
makeEventActionsIcons($problem['eventid'], $actions['all_actions'], $actions['mediatypes'],
--- ./frontends/php/include/events.inc.php.orig 2019-09-27 20:57:02.211919205 +0300
+++ ./frontends/php/include/events.inc.php 2019-09-27 20:57:14.582818465 +0300
@@ -163,11 +163,7 @@
$table = (new CTableInfo())
->addRow([
_('Event'),
- $event['name']
- ])
- ->addRow([
- _('Operational data'),
- $event['opdata']
+ $event['name'].$event['opdata']
])
->addRow([
_('Severity'),
--- ./frontends/php/include/classes/screens/CScreenProblem.php.orig 2019-09-27 10:44:12.000000000 +0300
+++ ./frontends/php/include/classes/screens/CScreenProblem.php 2019-09-27 20:57:14.582818465 +0300
@@ -921,7 +921,6 @@
_('Info'),
make_sorting_header(_('Host'), 'host', $this->data['sort'], $this->data['sortorder'], $link),
make_sorting_header(_('Problem'), 'name', $this->data['sort'], $this->data['sortorder'], $link),
- $this->data['filter']['show_opdata'] ? _('Operational data') : null,
_('Duration'),
_('Ack'),
_('Actions'),
@@ -1050,6 +1049,27 @@
$description[] = (new CLinkAction($problem['name']))
->setMenuPopup(CMenuPopupHelper::getTrigger($trigger['triggerid'], $problem['eventid']));
+ $opdata = null;
+ if ($show_opdata and $trigger['opdata'] !== '') {
+ $description[] = ' ';
+ $opdata = (new CSpan(CMacrosResolverHelper::resolveTriggerOpdata(
+ [
+ 'triggerid' => $trigger['triggerid'],
+ 'expression' => $trigger['expression'],
+ 'opdata' => $trigger['opdata'],
+ 'clock' => ($problem['r_eventid'] != 0) ? $problem['r_clock'] : $problem['clock'],
+ 'ns' => ($problem['r_eventid'] != 0) ? $problem['r_ns'] : $problem['ns']
+ ],
+ [
+ 'events' => true,
+ 'html' => true
+ ]
+ )))
+ ->addClass('opdata')
+ ->addClass(ZBX_STYLE_NOWRAP);
+ $description[] = $opdata;
+ }
+
if ($this->data['filter']['details'] == 1) {
$description[] = BR();
@@ -1091,27 +1111,6 @@
->addClass($acknowledged ? ZBX_STYLE_GREEN : ZBX_STYLE_RED)
->addClass(ZBX_STYLE_LINK_ALT);
- $opdata = null;
- if ($show_opdata) {
- $opdata = ($trigger['opdata'] !== '')
- ? (new CCol(CMacrosResolverHelper::resolveTriggerOpdata(
- [
- 'triggerid' => $trigger['triggerid'],
- 'expression' => $trigger['expression'],
- 'opdata' => $trigger['opdata'],
- 'clock' => ($problem['r_eventid'] != 0) ? $problem['r_clock'] : $problem['clock'],
- 'ns' => ($problem['r_eventid'] != 0) ? $problem['r_ns'] : $problem['ns']
- ],
- [
- 'events' => true,
- 'html' => true
- ]
- )))
- ->addClass('opdata')
- ->addClass(ZBX_STYLE_WORDWRAP)
- : (new CCol(self::getLatestValues($trigger['items'])))->addClass('latest-values');
- }
-
// Add table row.
$table->addRow(array_merge($row, [
new CCheckBox('eventids['.$problem['eventid'].']', $problem['eventid']),
@@ -1121,7 +1120,6 @@
$cell_info,
$triggers_hosts[$trigger['triggerid']],
$description,
- $opdata,
($problem['r_eventid'] != 0)
? zbx_date2age($problem['clock'], $problem['r_clock'])
: zbx_date2age($problem['clock']),
@@ -1152,7 +1150,6 @@
_('Status'),
_('Host'),
_('Problem'),
- $show_opdata ? _('Operational data') : null,
_('Duration'),
_('Ack'),
_('Actions'),
@@ -1187,9 +1184,10 @@
// operational data
$opdata = null;
- if ($show_opdata) {
- $opdata = ($trigger['opdata'] !== '')
- ? CMacrosResolverHelper::resolveTriggerOpdata(
+ $opdata_sp = null;
+ if ($show_opdata and $trigger['opdata'] !== '') {
+ $opdata_sp = ' ';
+ $opdata = CMacrosResolverHelper::resolveTriggerOpdata(
[
'triggerid' => $trigger['triggerid'],
'expression' => $trigger['expression'],
@@ -1198,8 +1196,7 @@
'ns' => ($problem['r_eventid'] != 0) ? $problem['r_ns'] : $problem['ns']
],
['events' => true]
- )
- : self::getLatestValues($trigger['items'], false);
+ );
}
$actions_performed = [];
@@ -1222,8 +1219,7 @@
: '',
$value_str,
implode(', ', $hosts),
- $problem['name'],
- $opdata,
+ $problem['name'].$opdata_sp.$opdata,
($problem['r_eventid'] != 0)
? zbx_date2age($problem['clock'], $problem['r_clock'])
: zbx_date2age($problem['clock']),
--- ./frontends/php/app/views/monitoring.widget.problems.view.php.orig 2019-09-27 10:44:12.000000000 +0300
+++ ./frontends/php/app/views/monitoring.widget.problems.view.php 2019-09-27 20:57:14.582818465 +0300
@@ -57,7 +57,6 @@
' • ',
($data['sortfield'] === 'severity') ? [_('Severity'), $sort_div] : _('Severity')
],
- $data['fields']['show_opdata'] ? _('Operational data') : null,
_('Duration'),
_('Ack'),
_('Actions'),
@@ -149,8 +148,33 @@
$info_icons[] = makeSuppressedProblemIcon($problem['suppression_data']);
}
+ // operational data
+ $opdata = null;
+ $opdata_sp = null;
+ if ($data['fields']['show_opdata'] and $trigger['opdata'] !== '') {
+ $opdata_sp = ' ';
+ $opdata = (CMacrosResolverHelper::resolveTriggerOpdata(
+ [
+ 'triggerid' => $trigger['triggerid'],
+ 'expression' => $trigger['expression'],
+ 'opdata' => $trigger['opdata'],
+ 'clock' => ($problem['r_eventid'] != 0) ? $problem['r_clock'] : $problem['clock'],
+ 'ns' => ($problem['r_eventid'] != 0) ? $problem['r_ns'] : $problem['ns']
+ ],
+ [
+ 'events' => true,
+ 'html' => false
+ ]
+ ));
+ }
+
+ /*$description = (new CCol($problem['name'].$opdata_sp.$opdata))
+ ->setAttribute('aria-label', _xs('%1$s, Severity, %2$s', 'screen reader',
+ $problem['name'], getSeverityName($problem['severity'], $data['config'])
+ ));*/
+
$description = (new CCol([
- (new CLinkAction($problem['name']))
+ (new CLinkAction($problem['name'].$opdata_sp.$opdata))
->setHint(
make_popup_eventlist(['comments' => $problem['comments'], 'url' => $problem['url'],
'triggerid' => $trigger['triggerid']], $eventid, $backurl, $show_timeline,
@@ -203,28 +227,6 @@
];
}
- // operational data
- $opdata = null;
- if ($data['fields']['show_opdata']) {
- $opdata = ($trigger['opdata'] !== '')
- ? (new CCol(CMacrosResolverHelper::resolveTriggerOpdata(
- [
- 'triggerid' => $trigger['triggerid'],
- 'expression' => $trigger['expression'],
- 'opdata' => $trigger['opdata'],
- 'clock' => ($problem['r_eventid'] != 0) ? $problem['r_clock'] : $problem['clock'],
- 'ns' => ($problem['r_eventid'] != 0) ? $problem['r_ns'] : $problem['ns']
- ],
- [
- 'events' => true,
- 'html' => true
- ]
- )))
- ->addClass('opdata')
- ->addClass(ZBX_STYLE_WORDWRAP)
- : (new CCol(CScreenProblem::getLatestValues($trigger['items'])))->addClass('latest-values');
- }
-
// Create acknowledge url.
$problem_update_url = (new CUrl('zabbix.php'))
->setArgument('action', 'acknowledge.edit')
@@ -238,7 +240,6 @@
makeInformationList($info_icons),
$triggers_hosts[$trigger['triggerid']],
$description,
- $opdata,
(new CCol(zbx_date2age($problem['clock'], ($problem['r_eventid'] != 0) ? $problem['r_clock'] : 0)))
->addClass(ZBX_STYLE_NOWRAP),
(new CLink($problem['acknowledged'] == EVENT_ACKNOWLEDGED ? _('Yes') : _('No'), $problem_update_url))
--- ./frontends/php/tr_events.php.orig 2019-09-27 20:57:02.213919188 +0300
+++ ./frontends/php/tr_events.php 2019-09-27 20:57:14.583818457 +0300
@@ -104,8 +104,9 @@
}
}
+$event['opdata'] = null;
if ($trigger['opdata'] !== '') {
- $event['opdata'] = (new CCol(CMacrosResolverHelper::resolveTriggerOpdata(
+ $event['opdata'] = ' '.CMacrosResolverHelper::resolveTriggerOpdata(
[
'triggerid' => $trigger['triggerid'],
'expression' => $trigger['expression'],
@@ -115,19 +116,9 @@
],
[
'events' => true,
- 'html' => true
+ 'html' => false
]
- )))
- ->addClass('opdata')
- ->addClass(ZBX_STYLE_WORDWRAP);
-}
-else {
- $db_items = API::Item()->get([
- 'output' => ['itemid', 'hostid', 'name', 'key_', 'value_type', 'units', 'valuemapid'],
- 'triggerids' => $event['objectid']
- ]);
- $db_items = CMacrosResolverHelper::resolveItemNames($db_items);
- $event['opdata'] = (new CCol(CScreenProblem::getLatestValues($db_items)))->addClass('latest-values');
+ );
}
$config = select_config();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment