static function displayHostLine($data) { global $DB, $CFG_GLPI; $pm_Host = new PluginMonitoringHost(); $pm_Host->getFromDB($data['id']); if ($data[3]['displayname'] == '') { $data[3]['displayname'] = 'UNKNOWN'; $data[4]['displayname'] = 'SOFT'; } $shortstate = $pm_Host->getState($data[3]['displayname'], $data[4]['displayname'], $data[6]['displayname'], $pm_Host->isCurrentlyAcknowledged()); echo "<td>"; echo $data[0]['displayname']; echo "</td>"; echo "<td>"; $item = new $data[1]['displayname'](); echo $item->getTypeName(); echo "</td>"; echo "<td>"; echo "<span>" . $pm_Host->getLink() . "</span>"; echo "</td>"; echo "<td class='center'>"; echo "<div class='page foldtl resource" . $data[3]['displayname'] . " resource" . $data[4]['displayname'] . "'>"; echo "<div style='vertical-align:middle;'>"; echo "<span>"; echo $data[3]['displayname']; echo "</span>"; echo "</div>"; echo "</div>"; echo "</td>"; if (isset($data['host_command_name'])) { $scriptName = $CFG_GLPI['root_doc'] . "/plugins/monitoring/scripts/" . $data['host_command_command']; $scriptArgs = $data[2]['displayname'] . " " . $data['ip']; echo "<td class='center'>"; echo "<form name='form' method='post'\n action='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/" . $data['host_command_command'] . ".php'>"; echo "<input type='hidden' name='host_id' value='" . $data[9]['displayname'] . "' />"; echo "<input type='hidden' name='host_name' value='" . $data[2]['displayname'] . "' />"; echo "<input type='hidden' name='host_ip' value='" . $data['ip'] . "' />"; echo "<input type='hidden' name='host_state' value='" . $data[3]['displayname'] . "' />"; echo "<input type='hidden' name='host_statetype' value='" . $data[4]['displayname'] . "' />"; echo "<input type='hidden' name='host_event' value='" . $data[6]['displayname'] . "' />"; echo "<input type='hidden' name='host_perfdata' value='" . $data[7]['displayname'] . "' />"; echo "<input type='hidden' name='host_last_check' value='" . $data[5]['displayname'] . "' />"; echo "<input type='hidden' name='glpi_users_id' value='" . $_SESSION['glpiID'] . "' />"; echo "<input type='submit' name='host_command' value=\"" . $data['host_command_name'] . "\" class='submit'>"; Html::closeForm(); echo "</td>"; } echo "<td class='center'>"; echo "<div class='page foldtl resource" . $data['host_services_state'] . "'>"; echo "<div style='vertical-align:middle;'>"; echo "<span>"; if (Session::haveRight("plugin_monitoring_service", READ)) { $link = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/service.php?hidesearch=1" . "&criteria[0][field]=1" . "&criteria[0][searchtype]=equals" . "&criteria[0][value]=" . $data[9]['displayname'] . "&itemtype=PluginMonitoringService" . "&start=0'"; echo '<a href="' . $link . '">' . $data['host_services_state'] . "</a>"; } else { echo '<span>' . $data['host_services_state'] . "</span>"; } if (!empty($data['host_services_state_list'])) { echo " " . Html::showToolTip($data['host_services_state_list'], array('display' => false)); } echo "</span>"; echo "</div>"; echo "</div>"; echo "</td>"; echo "<td>"; echo $data['ip']; echo "</td>"; echo "<td>"; echo Html::convDate($data[5]['displayname']) . ' ' . substr($data[5]['displayname'], 11, 8); echo "</td>"; echo "<td>"; echo $data[6]['displayname']; echo "</td>"; echo "<td>"; echo $data[7]['displayname']; echo "</td>"; if (Session::haveRight("plugin_monitoring_acknowledge", READ) || Session::haveRight("plugin_monitoring_downtime", READ)) { echo "<td>"; // Manage downtimes for an host if (Session::haveRight("plugin_monitoring_downtime", READ)) { if ($pm_Host->isInScheduledDowntime()) { $pmDowntime = new PluginMonitoringDowntime(); $pmDowntime->getFromDBByQuery("WHERE `" . $pmDowntime->getTable() . "`.`plugin_monitoring_hosts_id` = '" . $pm_Host->getID() . "' ORDER BY end_time DESC LIMIT 1"); $downtime_id = $pmDowntime->getID(); // Toolbox::logInFile("pm", "Host ".$pm_Host->getName()." is in downtime period \n"); if (Session::haveRight("plugin_monitoring_downtime", CREATE)) { echo "<div style='float: left; margin-right: 10px;'>"; echo "<span>"; echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/downtime.form.php?host_id=" . $data['id'] . "'>" . "<img src='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/pics/downtime_scheduled.png'" . " alt='" . htmlspecialchars(__('Edit the downtime scheduled for the host', 'monitoring'), ENT_QUOTES) . "'" . " title='" . htmlspecialchars(__('Edit the downtime scheduled for the host', 'monitoring'), ENT_QUOTES) . "'/>" . "</a>"; echo " </span>"; echo "</div>"; } else { echo "<div style='float: left; margin-right: 10px;'>"; echo "<span>"; echo "<img src='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/pics/downtime_scheduled.png'" . " alt='" . htmlspecialchars(__('A downtime is scheduled for the host', 'monitoring'), ENT_QUOTES) . "'" . " title='" . htmlspecialchars(__('A downtime is scheduled for the host', 'monitoring'), ENT_QUOTES) . "'/>"; echo " </span>"; echo "</div>"; } } else { if (Session::haveRight("plugin_monitoring_downtime", CREATE)) { echo "<div style='float: left; margin-right: 10px;'>"; echo "<span>"; echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/downtime.form.php?id=-1&host_id=" . $data['id'] . "'>" . "<img src='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/pics/downtime_to_schedule.png'" . " alt='" . htmlspecialchars(__('Schedule a downtime for the host', 'monitoring'), ENT_QUOTES) . "'" . " title='" . htmlspecialchars(__('Schedule a downtime for the host', 'monitoring'), ENT_QUOTES) . "'/>" . "</a>"; echo " </span>"; echo "</div>"; } } } echo "<div style='float: left;'>"; // Manage acknowledgement for an host if ($pm_Host->isCurrentlyAcknowledged()) { if (Session::haveRight("plugin_monitoring_acknowledge", CREATE)) { echo "<span>"; echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/acknowledge.form.php?itemtype=Host&items_id=" . $data['id'] . "'>" . "<img src='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/pics/acknowledge_ok.png'" . " alt='" . htmlspecialchars(__('Modify acknowledge comment for the host', 'monitoring'), ENT_QUOTES) . "'" . " title='" . htmlspecialchars(__('Modify acknowledge comment for the host', 'monitoring'), ENT_QUOTES) . "'" . " width='25' height='20'/>" . "</a>"; echo " </span>"; } else { echo "<span>"; echo "<img src='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/pics/acknowledge_ok.png'" . " alt='" . htmlspecialchars(__('Host problem has been acknowledged', 'monitoring'), ENT_QUOTES) . "'" . " title='" . htmlspecialchars(__('Host problem has been acknowledged', 'monitoring'), ENT_QUOTES) . "'" . " width='25' height='20'/>"; echo " </span>"; } // Display acknowledge data ... $pm_Host->getAcknowledge(); } else { if ($shortstate == 'red' || $shortstate == 'yellow' || $shortstate == 'orange' || !empty($data['host_services_state_list'])) { if (Session::haveRight("plugin_monitoring_acknowledge", CREATE)) { echo "<span>"; echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/acknowledge.form.php?itemtype=Host&items_id=" . $data['id'] . "'>" . "<img src='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/pics/acknowledge_ko.png'" . " alt='" . htmlspecialchars(__('Add an acknowledge for the host and all faulty services of the host', 'monitoring'), ENT_QUOTES) . "'" . " title='" . htmlspecialchars(__('Add an acknowledge for the host and all faulty services of the host', 'monitoring'), ENT_QUOTES) . "'" . " width='25' height='20'/>" . "</a>"; echo " </span>"; } } } echo "</div>"; echo "</td>"; } }
/** * Form to modify acknowledge of an host */ function showUpdateAcknowledgeForm($id=-1) { global $CFG_GLPI; Session::checkRight("plugin_monitoring_acknowledge", UPDATE); if ($id == -1) { $pm_Host = $this; } else { $pm_Host = new PluginMonitoringHost(); $pm_Host->getFromDB($id); } $hostname = $pm_Host->getName(); echo "<form name='form' method='post' action='".$CFG_GLPI['root_doc']."/plugins/monitoring/front/acknowledge.form.php'>"; echo "<input type='hidden' name='host_id' value='$id' />"; echo "<input type='hidden' name='hostname' value='$hostname' />"; echo "<input type='hidden' name='hostAcknowledge' value='$hostname' />"; echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; echo __('Modify acknowledge for the host', 'monitoring').' : '.$pm_Host->getLink(); echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>"; echo __('Acknowledge comment', 'monitoring'); echo "</td>"; echo "<td>"; echo "<textarea cols='80' rows='4' name='acknowledge_comment' >".$pm_Host->fields['acknowledge_comment']."</textarea>"; echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td colspan='2' align='center'>"; echo "<input type='hidden' name='id' value='".$pm_Host->fields['id']."' />"; echo "<input type='hidden' name='is_acknowledged' value='1' />"; echo "<input type='hidden' name='acknowledge_users_id' value='".$_SESSION['glpiID']."' />"; echo "<input type='hidden' name='referer' value='".$_SERVER['HTTP_REFERER']."' />"; echo "<tr class='tab_bg_1'>"; echo "<td>"; echo __('Acknowledge user', 'monitoring'); echo "</td>"; echo "<td>"; $user = new User(); $user->getFromDB($pm_Host->fields['acknowledge_users_id']); echo $user->getName(1); echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td colspan='3' align='center'>"; echo "<input type='submit' name='update' value=\"".__('Update acknowledge comment', 'monitoring')."\" class='submit'>"; echo "</td>"; echo "</tr>"; echo "</table>"; Html::closeForm(); }
static function getSpecificValueToDisplay($field, $values, array $options = array()) { if (!is_array($values)) { $values = array($field => $values); } switch ($field) { case 'plugin_monitoring_hosts_id': $pmHost = new PluginMonitoringHost(); $pmHost->getFromDB($values[$field]); return $pmHost->getLink(array("monitoring" => "1")); break; case 'duration_type': $a_duration_type = array(); $a_duration_type['seconds'] = __('Second(s)', 'monitoring'); $a_duration_type['minutes'] = __('Minute(s)', 'monitoring'); $a_duration_type['hours'] = __('Hour(s)', 'monitoring'); $a_duration_type['days'] = __('Day(s)', 'monitoring'); return $a_duration_type[$values[$field]]; break; case 'users_id': $user = new User(); $user->getFromDB($values[$field]); return $user->getName(1); break; } return parent::getSpecificValueToDisplay($field, $values, $options); }