$p_elements = array(); //Header $trigger_data['exp_expr'] = explode_exp($trigger_data["expression"], 1); $trigger_data['exp_desc'] = expand_trigger_description_by_data($trigger_data); $text = array(S_EVENTS_BIG . ': "' . $trigger_data['exp_desc'] . '"'); $url = '?fullscreen=' . ($_REQUEST['fullscreen'] ? '0' : '1') . url_param('triggerid') . url_param('eventid'); $fs_icon = new CDiv(SPACE, 'fullscreen'); $fs_icon->addOption('title', $_REQUEST['fullscreen'] ? S_NORMAL . ' ' . S_VIEW : S_FULLSCREEN); $fs_icon->addAction('onclick', new CScript("javascript: document.location = '" . $url . "';")); //------- $left_tab = new CTable(); $left_tab->setCellPadding(3); $left_tab->setCellSpacing(3); $left_tab->addOption('border', 0); $left_tab->addRow(create_hat(S_EVENT . SPACE . S_SOURCE . SPACE . S_DETAILS, make_trigger_details($_REQUEST['triggerid'], $trigger_data), null, 'hat_triggerdetails')); $left_tab->addRow(create_hat(S_EVENT_DETAILS, make_event_details($_REQUEST['eventid']), null, 'hat_eventdetails')); $right_tab = new CTable(); $right_tab->setCellPadding(3); $right_tab->setCellSpacing(3); $right_tab->addOption('border', 0); $right_tab->addRow(create_hat(S_ACKNOWLEDGES, make_acktab_by_eventid($_REQUEST['eventid']), null, 'hat_eventack', get_profile('web.tr_events.hats.hat_eventack.state', 1))); $right_tab->addRow(create_hat(S_MESSAGE_ACTIONS, get_action_msgs_for_event($_REQUEST['eventid']), null, 'hat_eventactionmsgs', get_profile('web.tr_events.hats.hat_eventactionmsgs.state', 1))); $right_tab->addRow(create_hat(S_COMMAND_ACTIONS, get_action_cmds_for_event($_REQUEST['eventid']), null, 'hat_eventactioncmds', get_profile('web.tr_events.hats.hat_eventactioncmds.state', 1))); $right_tab->addRow(create_hat(S_EVENTS . SPACE . S_LIST . SPACE . '[' . S_LAST . ' 20]', make_small_eventlist($_REQUEST['triggerid'], $trigger_data), null, 'hat_eventlist', get_profile('web.tr_events.hats.hat_eventlist.state', 1))); $td_l = new CCol($left_tab); $td_l->addOption('valign', 'top'); $td_r = new CCol($right_tab); $td_r->addOption('valign', 'top'); $outer_table = new CTable(); $outer_table->addOption('border', 0); $outer_table->setCellPadding(1);
require_once dirname(__FILE__) . '/include/page_header.php'; define('PAGE_SIZE', 100); // VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION $fields = ['triggerid' => [T_ZBX_INT, O_OPT, P_SYS, DB_ID, PAGE_TYPE_HTML . '==' . $page['type']], 'eventid' => [T_ZBX_INT, O_OPT, P_SYS, DB_ID, PAGE_TYPE_HTML . '==' . $page['type']], 'fullscreen' => [T_ZBX_INT, O_OPT, P_SYS, IN('0,1'), null], 'widget' => [T_ZBX_STR, O_OPT, P_ACT, IN('"' . WIDGET_HAT_EVENTACK . '","' . WIDGET_HAT_EVENTACTIONMSGS . '","' . WIDGET_HAT_EVENTACTIONMCMDS . '","' . WIDGET_HAT_EVENTLIST . '"'), null], 'state' => [T_ZBX_INT, O_OPT, P_ACT, IN('0,1'), null]]; check_fields($fields); /* * Ajax */ if (hasRequest('widget') && hasRequest('state')) { CProfile::update('web.tr_events.hats.' . getRequest('widget') . '.state', getRequest('state'), PROFILE_TYPE_INT); } if ($page['type'] == PAGE_TYPE_JS || $page['type'] == PAGE_TYPE_HTML_BLOCK) { require_once dirname(__FILE__) . '/include/page_footer.php'; exit; } // triggers $triggers = API::Trigger()->get(['output' => API_OUTPUT_EXTEND, 'selectHosts' => API_OUTPUT_EXTEND, 'triggerids' => getRequest('triggerid')]); if (!$triggers) { access_deny(); } $trigger = reset($triggers); // events $events = API::Event()->get(['output' => API_OUTPUT_EXTEND, 'select_alerts' => API_OUTPUT_EXTEND, 'select_acknowledges' => API_OUTPUT_EXTEND, 'selectHosts' => API_OUTPUT_EXTEND, 'source' => EVENT_SOURCE_TRIGGERS, 'object' => EVENT_OBJECT_TRIGGER, 'eventids' => getRequest('eventid'), 'objectids' => getRequest('triggerid')]); $event = reset($events); /* * Display */ $config = select_config(); $eventTab = (new CTable())->addRow([new CDiv([(new CUiWidget(WIDGET_HAT_TRIGGERDETAILS, make_trigger_details($trigger)))->setHeader(_('Event source details')), (new CUiWidget(WIDGET_HAT_EVENTDETAILS, make_event_details($event, $trigger, $page['file'] . '?triggerid=' . getRequest('triggerid') . '&eventid=' . getRequest('eventid'))))->setHeader(_('Event details'))]), new CDiv([$config['event_ack_enable'] ? (new CCollapsibleUiWidget(WIDGET_HAT_EVENTACK, makeAckTab($event['acknowledges'])))->setExpanded((bool) CProfile::get('web.tr_events.hats.' . WIDGET_HAT_EVENTACK . '.state', true))->setHeader(_('Acknowledges'), [], false, 'tr_events.php') : null, (new CCollapsibleUiWidget(WIDGET_HAT_EVENTACTIONMSGS, getActionMessages($event['alerts'])))->setExpanded((bool) CProfile::get('web.tr_events.hats.' . WIDGET_HAT_EVENTACTIONMSGS . '.state', true))->setHeader(_('Message actions'), [], false, 'tr_events.php'), (new CCollapsibleUiWidget(WIDGET_HAT_EVENTACTIONMCMDS, getActionCommands($event['alerts'])))->setExpanded((bool) CProfile::get('web.tr_events.hats.' . WIDGET_HAT_EVENTACTIONMCMDS . '.state', true))->setHeader(_('Command actions'), [], false, 'tr_events.php'), (new CCollapsibleUiWidget(WIDGET_HAT_EVENTLIST, make_small_eventlist($event, $page['file'] . '?triggerid=' . getRequest('triggerid') . '&eventid=' . getRequest('eventid'))))->setExpanded((bool) CProfile::get('web.tr_events.hats.' . WIDGET_HAT_EVENTLIST . '.state', true))->setHeader(_('Event list [previous 20]'), [], false, 'tr_events.php')])]); $eventWidget = (new CWidget())->setTitle(_('Event details'))->setControls((new CList())->addItem(get_icon('fullscreen', ['fullscreen' => getRequest('fullscreen')])))->addItem($eventTab)->show(); require_once dirname(__FILE__) . '/include/page_footer.php';
$text = array(S_EVENTS_BIG . ': "' . $trigger['exp_desc'] . '"'); $fs_icon = get_icon('fullscreen', array('fullscreen' => $_REQUEST['fullscreen'])); $tr_event_wdgt->addHeader($text, $fs_icon); //------- $left_tab = new CTable(); $left_tab->setCellPadding(3); $left_tab->setCellSpacing(3); $left_tab->setAttribute('border', 0); // tr details $tr_dtl = new CWidget('hat_triggerdetails', make_trigger_details($_REQUEST['triggerid'], $trigger)); $tr_dtl->setClass('header'); $tr_dtl->addHeader(S_EVENT . SPACE . S_SOURCE . SPACE . S_DETAILS, SPACE); $left_tab->addRow($tr_dtl); //---------------- // event details $event_dtl = new CWidget('hat_eventdetails', make_event_details($_REQUEST['eventid'])); $event_dtl->addHeader(S_EVENT_DETAILS, SPACE); $event_dtl->setClass('header'); $left_tab->addRow($event_dtl); //---------------- $right_tab = new CTable(); $right_tab->setCellPadding(3); $right_tab->setCellSpacing(3); $right_tab->setAttribute('border', 0); // getting current configuration settings $config = select_config(); // event ack // if acknowledges are not disabled in configuration, let's show them if ($config['event_ack_enable']) { $event_ack = new CWidget('hat_eventack', make_acktab_by_eventid($_REQUEST['eventid']), CProfile::get('web.tr_events.hats.hat_eventack.state', 1)); $event_ack->addHeader(S_ACKNOWLEDGES);
$options = array('eventids' => $_REQUEST['eventid'], 'triggerids' => $_REQUEST['triggerid'], 'select_alerts' => API_OUTPUT_EXTEND, 'select_acknowledges' => API_OUTPUT_EXTEND, 'output' => API_OUTPUT_EXTEND, 'selectHosts' => API_OUTPUT_EXTEND); $events = API::Event()->get($options); $event = reset($events); $tr_event_wdgt = new CWidget(); $tr_event_wdgt->setClass('header'); // Main widget header $text = array(_('EVENTS') . ': "' . CTriggerHelper::expandDescription($trigger) . '"'); $fs_icon = get_icon('fullscreen', array('fullscreen' => $_REQUEST['fullscreen'])); $tr_event_wdgt->addHeader($text, $fs_icon); $left_col = array(); // tr details $triggerDetails = new CUIWidget('hat_triggerdetails', make_trigger_details($trigger)); $triggerDetails->setHeader(_('Event source details')); $left_col[] = $triggerDetails; // event details $eventDetails = new CUIWidget('hat_eventdetails', make_event_details($event, $trigger)); $eventDetails->setHeader(_('Event details')); $left_col[] = $eventDetails; $right_col = array(); // if acknowledges are not disabled in configuration, let's show them if ($config['event_ack_enable']) { $event_ack = new CUIWidget('hat_eventack', makeAckTab($event), CProfile::get('web.tr_events.hats.hat_eventack.state', 1)); $event_ack->setHeader(_('Acknowledges')); $right_col[] = $event_ack; } // event sms actions $actions_sms = new CUIWidget('hat_eventactionmsgs', get_action_msgs_for_event($event), CProfile::get('web.tr_events.hats.hat_eventactionmsgs.state', 1)); $actions_sms->setHeader(_('Message actions')); $right_col[] = $actions_sms; // event cmd actions $actions_cmd = new CUIWidget('hat_eventactionmcmds', get_action_cmds_for_event($event), CProfile::get('web.tr_events.hats.hat_eventactioncmds.state', 1));