function view($id, $config = 0) { global $DB, $CFG_GLPI; $pmDisplayview = new PluginMonitoringDisplayview(); $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview->getFromDB($id); echo "<script type='text/javascript'>\n function fittext(itemid) {\n document.getElementById(itemid).style.fontSize = '50px';\n var fontsize = 50;\n while(document.getElementById(itemid).offsetWidth > 120) {\n fontsize--;\n if (fontsize > 20) {\n fontsize--;\n }\n document.getElementById(itemid).style.fontSize = fontsize + 'px';\n }\n while(document.getElementById(itemid).offsetHeight > 67) {\n fontsize--;\n document.getElementById(itemid).style.fontSize = fontsize + 'px';\n }\n if (fontsize > 30) {\n document.getElementById(itemid).style.fontSize = '30px';\n }\n if (fontsize < 7) {\n document.getElementById(itemid).style.fontSize = '7px';\n }\n }\n </script>"; PluginMonitoringServicegraph::loadLib(); if ($config == '1') { $this->addItem($id); $pmDisplayview_rule->showReplayRulesForm($id); echo "<div id='updatecoordonates'></div>"; } else { if (!is_null($pmDisplayview->fields['counter'])) { $pmDisplay = new PluginMonitoringDisplay(); $pmDisplay->showCounters($pmDisplayview->fields['counter']); } } echo "<table class='tab_cadre_fixe' id='test' style='width:" . $pmDisplayview->fields['width'] . "px'>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; echo $pmDisplayview->fields['name']; echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; echo "<a onClick='Ext.get(\"date_text\").toggle();Ext.get(\"date_select\").toggle();" . "Ext.get(\"time_text\").toggle();Ext.get(\"time_select\").toggle();'>\n <img src='" . $CFG_GLPI["root_doc"] . "/pics/deplier_down.png' /> \n " . __('Date and time select', 'monitoring') . "\n <img src='" . $CFG_GLPI["root_doc"] . "/pics/deplier_down.png' /></a>"; echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1' id='date_text' style='display: none;'>"; echo "<th>"; echo __('Select date', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1' id='date_select' style='display: none;'>"; echo "<td>"; $query = "SELECT * FROM `glpi_plugin_monitoring_displayviews_items`\n WHERE `plugin_monitoring_displayviews_id`='" . $id . "'\n AND `itemtype`='PluginMonitoringService'"; $result = $DB->query($query); $a_items = array(); $end = time(); $start = time(); $pmComponent = new PluginMonitoringComponent(); while ($data = $DB->fetch_array($result)) { $itemtype = $data['itemtype']; $item = new $itemtype(); $item->getFromDB($data['items_id']); if (isset($item->fields['plugin_monitoring_components_id'])) { $oldvalue = current(getAllDatasFromTable('glpi_plugin_monitoring_serviceevents', "`plugin_monitoring_services_id`='" . $data['items_id'] . "'", false, 'date ASC LIMIT 1')); $date = new DateTime($oldvalue['date']); if ($date->getTimestamp() < $start) { $start = $date->getTimestamp(); } $pmComponent->getFromDB($item->fields['plugin_monitoring_components_id']); $a_items["item" . $data['id']] = array('rrdtool_template' => $pmComponent->fields['graph_template'], 'itemtype' => $data['itemtype'], 'items_id' => $data['items_id'], 'timezone' => 0, 'time' => $data['extra_infos'], 'pmComponents_id' => $pmComponent->fields['id']); } } echo "\n<script type=\"text/javascript\">\n\nExt.onReady(function(){\n\n var tip = new Ext.slider.Tip({\n getText: function(thumb){\n return String.format('<b> ' + new Date(thumb.value * 1000).format('Y-m-d') + '</b>');\n }\n });\n\n new Ext.Slider({\n renderTo: 'custom-tip-slider',\n width: 940,\n increment: 86400,\n minValue: " . $start . ",\n maxValue: " . $end . ",\n value: " . $end . ",\n plugins: tip,\n listeners: {\n dragend: function(slider, thumb, value){\n document.getElementById('custom_date').textContent = slider.getValue();\n "; $pmServicegraph = new PluginMonitoringServicegraph(); foreach ($a_items as $js_id => $js_data) { echo "mgr" . $js_data['items_id'] . $js_data['time'] . ".stopAutoRefresh();\n"; $pmServicegraph->startAutoRefresh($js_data['rrdtool_template'], $js_data['itemtype'], $js_data['items_id'], $js_data['timezone'], $js_data['time'], $js_data['pmComponents_id']); } echo "\n }\n }\n });\n\n});\n</script>"; echo '<center><div id="custom-tip-slider"></div></center>'; echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1' id='time_text' style='display: none;'>"; echo "<th>"; echo __('Select time', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1' id='time_select' style='display: none;'>"; echo "<td>"; $start = 0 + 86400 - 3600; $end = 86400 + 86400 - 3600 - 300; $current = mktime(date('H'), date('i'), 0, 1, 2, 1970); echo "\n<script type=\"text/javascript\">\n\nExt.onReady(function(){\n\n var tiptime = new Ext.slider.Tip({\n getText: function(thumb){\n return String.format('<b> ' + new Date(thumb.value * 1000).format('H:i:s') + '</b>');\n }\n });\n\n new Ext.Slider({\n renderTo: 'custom-tip-slider-time',\n width: 940,\n increment: 300,\n minValue: " . $start . ",\n maxValue: " . $end . ",\n value: " . $current . ",\n plugins: tiptime,\n listeners: {\n dragend: function(slider, thumb, value){\n document.getElementById('custom_time').textContent = slider.getValue();\n "; $pmServicegraph = new PluginMonitoringServicegraph(); foreach ($a_items as $js_id => $js_data) { echo "mgr" . $js_data['items_id'] . $js_data['time'] . ".stopAutoRefresh();\n"; $pmServicegraph->startAutoRefresh($js_data['rrdtool_template'], $js_data['itemtype'], $js_data['items_id'], $js_data['timezone'], $js_data['time'], $js_data['pmComponents_id']); } echo "\n }\n }\n });\n\n});\n</script>"; echo '<center><div id="custom-tip-slider-time"></div></center>'; echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; echo __('View', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>"; echo "<input type='hidden' name='updateviewid' id='updateviewid' value='" . $id . "' />"; if ($config == 0) { echo "<div id='filariane'> </div>"; echo "<input type='hidden' name='updatefil' id='updatefil' value='" . $id . "!' />"; echo "<script type=\"text/javascript\">\n function reloadfil() {\n Ext.get('filariane').load({\n url: '" . $CFG_GLPI["root_doc"] . "/plugins/monitoring/ajax/updateFilariane.php',\n scripts: true,\n params:'updatefil=' + Ext.get('updatefil').getValue() + '&id=" . $_GET['id'] . "¤tview=' + Ext.get('updateviewid').getValue()\n });\n }\n reloadfil();\n </script>"; } echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td height='1200' id='panel'>"; echo '<div id="custom_date" style="display:none"></div>'; echo '<div id="custom_time" style="display:none"></div>'; echo "<div id='viewform'>"; echo "<script type='text/javascript'>\n \n //Simple 'border layout' panel to house both grids\n var displayPanel = new Ext.Panel({\n id : 'viewpanel',\n width : " . $pmDisplayview->fields['width'] . ",\n height : 1200,\n layout: 'absolute',\n renderTo : 'panel',\n items : []\n });\n\n </script>"; echo "</div>"; echo "<script type=\"text/javascript\">\n function reloadview() {\n Ext.get('viewform').load({\n url: '" . $CFG_GLPI["root_doc"] . "/plugins/monitoring/ajax/loadView.php',\n scripts: true,\n params:'id=' + Ext.get('updateviewid').getValue() + '&config=" . $config . "'\n });\n }\n reloadview();\n </script>"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "<br/>"; }
static function displayTabContentForItem(CommonGLPI $item, $tabnum = 1, $withtemplate = 0) { if ($item->getType() == 'PluginMonitoringDisplayview') { switch ($tabnum) { case 1: $pmDisplayview_item = new PluginMonitoringDisplayview_item(); $pmDisplayview_item->view($item->getID(), 1); break; case 2: $item->showVisibility(); break; } if ($tabnum >= 20) { $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview_rule->ShowRulesTabs($item->getID(), $tabnum); } } else { if ($item->getType() == 'Central') { if (Session::haveRight("plugin_monitoring_displayview", PluginMonitoringDisplayview::HOMEPAGE)) { $pmDisplayview_item = new PluginMonitoringDisplayview_item(); $pmDisplayview = new PluginMonitoringDisplayview(); $a_views = $pmDisplayview->getViews(1); foreach ($a_views as $views_id => $name) { $pmDisplayview->getFromDB($views_id); if ($pmDisplayview->haveVisibilityAccess()) { $pmDisplayview_item->view($views_id); } } } } } return true; }
'condition' => "`is_frontview`='0'", 'used' => array($_POST['displayviews_id']))); } break; case 'service': case 'host': $elements = array( 'Computer' => __('Computer'), 'NetworkEquipment' => __('NetworkEquipment'), 'Peripheral' => __('Peripheral'), 'Phone' => __('Phone'), 'Printer' => __('Printer') ); $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $a_items = $pmDisplayview_rule->find("`plugin_monitoring_displayviews_id`='".$_POST['displayviews_id']."'" . " AND `type`='host'"); foreach ($a_items as $data) { if (isset($elements[$data['itemtype']])) { unset($elements[$data['itemtype']]); } } Dropdown::showFromArray('type', $elements); echo "<br/>".__('Display minemap', 'monitoring')." : "; Dropdown::showYesNo('is_minemap'); break; case 'PluginMonitoringCustomitem_Gauge': Dropdown::show('PluginMonitoringCustomitem_Gauge', array('name'=>'items_id')); break;
function plugin_monitoring_MassiveActionsProcess($data) { switch ($data['action']) { case "plugin_monitoring_activatehosts": if ($data['itemtype'] == "Computer") { $pmHost = new PluginMonitoringHost(); foreach ($data['item'] as $key => $val) { if ($val == '1') { $pmHost->massiveactionAddHost($data['itemtype'], $key, $data['template_id']); } } } break; case 'plugin_monitoring_playrule_componentscatalog': $pmComponentscatalog_rule = new PluginMonitoringComponentscatalog_rule(); foreach ($data['item'] as $key => $val) { $a_rules = $pmComponentscatalog_rule->find("`plugin_monitoring_componentscalalog_id`='" . $key . "'"); foreach ($a_rules as $data) { $pmComponentscatalog_rule->getFromDB($data['id']); PluginMonitoringComponentscatalog_rule::getItemsDynamicly($pmComponentscatalog_rule); } } break; case 'plugin_monitoring_playrule_displayview': $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); foreach ($data['item'] as $key => $val) { $a_rules = $pmDisplayview_rule->find("`plugin_monitoring_displayviews_id`='" . $key . "'"); foreach ($a_rules as $data) { $pmDisplayview_rule->getFromDB($data['id']); PluginMonitoringDisplayview_rule::getItemsDynamicly($pmDisplayview_rule); } } break; } }
static function getItemsDynamicly($parm) { global $DB; $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview_item = new PluginMonitoringDisplayview_item(); $pmDisplayview = new PluginMonitoringDisplayview(); $pmSearch = new PluginMonitoringSearch(); $pmService = new PluginMonitoringService(); $devices_present = array(); if ($pmDisplayview_rule->getFromDB($parm->fields['id'])) { if ($pmDisplayview->getFromDB($pmDisplayview_rule->fields['plugin_monitoring_displayviews_id'])) { // Load right entity $default_entity = 0; if (isset($_SESSION['glpiactive_entity'])) { $default_entity = $_SESSION['glpiactive_entity']; } $entities_isrecursive = 0; if (isset($_SESSION['glpiactiveentities']) and count($_SESSION['glpiactiveentities']) > 1) { $entities_isrecursive = 1; } Session::changeActiveEntities($pmDisplayview->fields['entities_id'], $pmDisplayview->fields['is_recursive']); $get_tmp = ''; $itemtype = $pmDisplayview_rule->fields['itemtype']; if (isset($_GET)) { $get_tmp = $_GET; } if (isset($_SESSION["glpisearchcount"][$pmDisplayview_rule->fields['itemtype']])) { unset($_SESSION["glpisearchcount"][$pmDisplayview_rule->fields['itemtype']]); } if (isset($_SESSION["glpisearchcount2"][$pmDisplayview_rule->fields['itemtype']])) { unset($_SESSION["glpisearchcount2"][$pmDisplayview_rule->fields['itemtype']]); } $_GET = importArrayFromDB($pmDisplayview_rule->fields['condition']); $_GET["glpisearchcount"] = count($_GET['field']); if (isset($_GET['field2'])) { $_GET["glpisearchcount2"] = count($_GET['field2']); } $params = Search::manageParams($pmDisplayview_rule->fields['itemtype'], $_GET); // Search::manageGetValues($pmDisplayview_rule->fields['itemtype']); $queryd = "SELECT * FROM `glpi_plugin_monitoring_displayviews_items`\n WHERE `plugin_monitoring_displayviews_id`='" . $pmDisplayview_rule->fields["plugin_monitoring_displayviews_id"] . "'\n AND `itemtype`='" . $pmDisplayview_rule->fields['type'] . "'\n AND `extra_infos`='" . $pmDisplayview_rule->fields['itemtype'] . "'"; $result = $DB->query($queryd); while ($data = $DB->fetch_array($result)) { $devices_present[$data['items_id']] = $data['id']; } $glpilist_limit = $_SESSION['glpilist_limit']; $_SESSION['glpilist_limit'] = 500000; $result = $pmSearch->constructSQL($itemtype, $_GET); $_SESSION['glpilist_limit'] = $glpilist_limit; while ($data = $DB->fetch_array($result)) { if (!isset($devices_present[$data['id']])) { // Verify this device has one or more resources $query_h = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`" . " LEFT JOIN `glpi_plugin_monitoring_services`" . " ON `plugin_monitoring_componentscatalogs_hosts_id`=" . " `glpi_plugin_monitoring_componentscatalogs_hosts`.`id`" . " WHERE `items_id`='" . $data['id'] . "'" . " AND `itemtype`='" . $pmDisplayview_rule->fields['itemtype'] . "'" . " AND `glpi_plugin_monitoring_services`.`id` IS NOT NULL"; $result_h = $DB->query($query_h); if ($DB->numrows($result_h) > 0) { $input = array(); $input['plugin_monitoring_displayviews_id'] = $pmDisplayview_rule->fields["plugin_monitoring_displayviews_id"]; $input['x'] = '1'; $input['y'] = '1'; $input['items_id'] = $data['id']; $input['itemtype'] = $pmDisplayview_rule->fields['type']; $input['extra_infos'] = $pmDisplayview_rule->fields['itemtype']; $pmDisplayview_item->add($input); } } else { // Verify this device has one or more resources $query_h = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`" . " LEFT JOIN `glpi_plugin_monitoring_services`" . " ON `plugin_monitoring_componentscatalogs_hosts_id`=" . " `glpi_plugin_monitoring_componentscatalogs_hosts`.`id`" . " WHERE `items_id`='" . $data['id'] . "'" . " AND `itemtype`='" . $pmDisplayview_rule->fields['itemtype'] . "'" . " AND `glpi_plugin_monitoring_services`.`id` IS NOT NULL"; $result_h = $DB->query($query_h); if ($DB->numrows($result_h) > 0) { unset($devices_present[$data['id']]); } } } // Reload current entity Session::changeActiveEntities($default_entity, $entities_isrecursive); } else { $pmDisplayview->delete(array('id' => $pmDisplayview_rule->fields['plugin_monitoring_displayviews_id'])); } } foreach ($devices_present as $id) { $pmDisplayview_item->delete(array('id' => $id)); } return true; }
@since 2011 ------------------------------------------------------------------------ */ include "../../../inc/includes.php"; Session::checkRight("plugin_monitoring_displayview", READ); Html::header(__('Monitoring', 'monitoring'), $_SERVER["PHP_SELF"], "plugins", "monitoring", "displayview_item"); $pmDisplayview_item = new PluginMonitoringDisplayview_item(); if (isset($_POST['plugin_monitoring_services_id']) and $_POST['plugin_monitoring_services_id'] > 0) { $_POST['items_id'] = $_POST['plugin_monitoring_services_id']; $_POST['itemtype'] = "PluginMonitoringService"; } if (isset($_POST["add"])) { if ($_POST['itemtype'] == 'host' || $_POST['itemtype'] == 'service') { $input = $_POST; $input['itemtype'] = $_POST['type']; $input['type'] = $_POST['itemtype']; $input['condition'] = exportArrayToDB(array('name' => '', 'itemtype' => $input['itemtype'], 'field' => array(1), 'searchtype' => array('contains'))); $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview_rule->add($input); } else { $pmDisplayview_item->add($_POST); } Html::back(); } else { if (isset($_POST["delete"])) { $pmDisplayview_item->delete($_POST); Html::back(); } } Html::footer();
function view($id, $config = 0) { global $DB, $CFG_GLPI; $pmDisplayview = new PluginMonitoringDisplayview(); $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview->getFromDB($id); echo "<script type='text/javascript'>\n function fittext(itemid) {\n document.getElementById(itemid).style.fontSize = '50px';\n var fontsize = 50;\n while(document.getElementById(itemid).offsetWidth > 120) {\n fontsize--;\n if (fontsize > 20) {\n fontsize--;\n }\n document.getElementById(itemid).style.fontSize = fontsize + 'px';\n }\n while(document.getElementById(itemid).offsetHeight > 67) {\n fontsize--;\n document.getElementById(itemid).style.fontSize = fontsize + 'px';\n }\n if (fontsize > 30) {\n document.getElementById(itemid).style.fontSize = '30px';\n }\n if (fontsize < 7) {\n document.getElementById(itemid).style.fontSize = '7px';\n }\n }\n </script>"; PluginMonitoringToolbox::loadLib(); $style = ''; if ($config == '1') { $this->addItem($id); $pmDisplayview_rule->showReplayRulesForm($id); echo "<div id='updatecoordonates'></div>"; if ($pmDisplayview->fields['width'] > 950) { $style = ";position:relative;left:-" . ($pmDisplayview->fields['width'] - 950) / 2 . "px"; } } else { if (!is_null($pmDisplayview->fields['counter'])) { $pmDisplay = new PluginMonitoringDisplay(); $pmDisplay->showCounters($pmDisplayview->fields['counter']); } } echo "<table class='tab_cadre_fixe' id='test' style='width:" . $pmDisplayview->fields['width'] . "px" . $style . "'>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; echo $pmDisplayview->fields['name']; echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1' id='date_text'>"; echo "<th>"; echo __('Select date', 'monitoring') . " - " . __('Select time', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>"; $query = "SELECT * FROM `glpi_plugin_monitoring_displayviews_items`\n WHERE `plugin_monitoring_displayviews_id`='" . $id . "'\n AND `itemtype`='PluginMonitoringService'"; $result = $DB->query($query); $a_items = array(); $end = time(); $start = time(); $pmComponent = new PluginMonitoringComponent(); while ($data = $DB->fetch_array($result)) { $itemtype = $data['itemtype']; $item = new $itemtype(); $item->getFromDB($data['items_id']); if (isset($item->fields['plugin_monitoring_components_id'])) { $oldvalue = current(getAllDatasFromTable('glpi_plugin_monitoring_serviceevents', "`plugin_monitoring_services_id`='" . $data['items_id'] . "'", false, 'date ASC LIMIT 1')); $date = new DateTime($oldvalue['date']); if ($date->getTimestamp() < $start) { $start = $date->getTimestamp(); } $pmComponent->getFromDB($item->fields['plugin_monitoring_components_id']); $a_items["item" . $data['id']] = array('rrdtool_template' => $pmComponent->fields['graph_template'], 'itemtype' => $data['itemtype'], 'items_id' => $data['items_id'], 'timezone' => 0, 'time' => $data['extra_infos'], 'pmComponents_id' => $pmComponent->fields['id']); } } $nbdays = round((date('U') - $start) / 86400); echo "<script type=\"text/javascript\">\n \$(function() {\n \$( \"#custom_date\" ).datepicker({ minDate: -" . $nbdays . ", maxDate: \"+0D\", dateFormat:'mm/dd/yy' });\n \$( \"#custom_time\" ).timepicker();\n\n });\n </script>"; echo '<center><input type="text" id="custom_date" value="' . date('m/d/Y') . '"> ' . ' <input type="text" id="custom_time" value="' . date('H:i') . '"></center>'; echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1' id='time_text' style='display: none;'>"; echo "<th>"; echo __('Select time', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; echo __('View', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>"; echo "<input type='hidden' name='updateviewid' id='updateviewid' value='" . $id . "' />"; if ($config == 0) { echo "<div id='filariane'> </div>"; echo "<input type='hidden' name='updatefil' id='updatefil' value='" . $id . "!' />"; echo "<script type=\"text/javascript\">\n function reloadfil() {\n \$.get('" . $CFG_GLPI["root_doc"] . "/plugins/monitoring/ajax/updateFilariane.php?updatefil=' + \$('#updatefil').val() + '&id=" . $id . "¤tview=' + \$('#updateviewid').val(), function(data) {\n \$('#filariane').html(data);\n });\n }\n reloadfil();\n </script>"; } echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td height='1200' id='panel'>"; echo "<script type=\"text/javascript\">\n \$.get('" . $CFG_GLPI["root_doc"] . "/plugins/monitoring/ajax/showPanel.php?id=" . $id . "&config=" . $config . "', function(data) {\n \$('#panel').html(data);\n });\n </script>"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "<br/>"; }
@package Plugin Monitoring for GLPI @author David Durieux @co-author @comment @copyright Copyright (c) 2011-2013 Plugin Monitoring for GLPI team @license AGPL License 3.0 or (at your option) any later version http://www.gnu.org/licenses/agpl-3.0-standalone.html @link https://forge.indepnet.net/projects/monitoring/ @since 2013 ------------------------------------------------------------------------ */ include "../../../inc/includes.php"; PluginMonitoringProfile::checkRight("view", "w"); Html::header(__('Monitoring', 'monitoring'), $_SERVER["PHP_SELF"], "plugins", "monitoring", "views"); $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview = new PluginMonitoringDisplayview(); if (isset($_GET['updaterule'])) { if (!isset($_GET['contains']) and !isset($_GET['reset'])) { // $_SESSION['plugin_monitoring_rules'] = $_POST; } else { $_POST = $_GET; $input = array(); $pmDisplayview->getFromDB($_POST['plugin_monitoring_displayviews_id']); $input['id'] = $_POST['id']; $input['entities_id'] = $pmDisplayview->fields['entities_id']; $input['is_recursive'] = $pmDisplayview->fields['is_recursive']; $input['name'] = $_POST['name']; $input['itemtype'] = $_POST['itemtype']; $input['plugin_monitoring_displayviews_id'] = $_POST['plugin_monitoring_displayviews_id']; unset($_POST['entities_id']);
function view($id, $config=0) { global $DB, $CFG_GLPI; $pmDisplayview = new PluginMonitoringDisplayview(); $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview->getFromDB($id); echo "<script type='text/javascript'> function fittext(itemid) { document.getElementById(itemid).style.fontSize = '50px'; var fontsize = 50; while(document.getElementById(itemid).offsetWidth > 120) { fontsize--; if (fontsize > 20) { fontsize--; } document.getElementById(itemid).style.fontSize = fontsize + 'px'; } while(document.getElementById(itemid).offsetHeight > 67) { fontsize--; document.getElementById(itemid).style.fontSize = fontsize + 'px'; } if (fontsize > 30) { document.getElementById(itemid).style.fontSize = '30px'; } if (fontsize < 7) { document.getElementById(itemid).style.fontSize = '7px'; } } </script>"; PluginMonitoringToolbox::loadLib(); $style = ''; if ($config == '1') { $this->addItem($id); $pmDisplayview_rule->showReplayRulesForm($id); echo "<div id='updatecoordonates'></div>"; if ($pmDisplayview->fields['width'] > 950) { $style = ";position:relative;left:-".(($pmDisplayview->fields['width'] - 950) / 2)."px"; } } else { if (!is_null($pmDisplayview->fields['counter'])) { $pmDisplay = new PluginMonitoringDisplay(); $pmDisplay->showCounters($pmDisplayview->fields['counter']); } } echo "<table class='tab_cadre_fixe' id='test' style='width:".$pmDisplayview->fields['width']."px".$style."'>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; echo $pmDisplayview->fields['name']; echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1' id='date_text'>"; echo "<th>"; echo __('Select date', 'monitoring')." - ".__('Select time', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>"; $query = "SELECT * FROM `glpi_plugin_monitoring_displayviews_items` WHERE `plugin_monitoring_displayviews_id`='".$id."' AND `itemtype`='PluginMonitoringService'"; $result = $DB->query($query); $a_items = array(); $end = time(); $start = time(); $pmComponent = new PluginMonitoringComponent(); while ($data=$DB->fetch_array($result)) { $itemtype = $data['itemtype']; $item = new $itemtype(); $item->getFromDB($data['items_id']); if (isset($item->fields['plugin_monitoring_components_id'])) { $oldvalue = current(getAllDatasFromTable( 'glpi_plugin_monitoring_serviceevents', "`plugin_monitoring_services_id`='".$data['items_id']."'", false, 'date ASC LIMIT 1')); $date = new DateTime($oldvalue['date']); if ($date->getTimestamp() < $start) { $start = $date->getTimestamp(); } $pmComponent->getFromDB($item->fields['plugin_monitoring_components_id']); $a_items["item".$data['id']] = array( 'rrdtool_template' => $pmComponent->fields['graph_template'], 'itemtype' => $data['itemtype'], 'items_id' => $data['items_id'], 'timezone' => 0, 'time' => $data['extra_infos'], 'pmComponents_id' => $pmComponent->fields['id'] ); } } $nbdays = round((date('U') - $start) / 86400); echo "<script type=\"text/javascript\"> $(function() { $( \"#custom_date\" ).datepicker({ minDate: -".$nbdays.", maxDate: \"+0D\", dateFormat:'mm/dd/yy' }); $( \"#custom_time\" ).timepicker(); }); </script>"; echo '<center><input type="text" id="custom_date" value="'.date('m/d/Y').'"> ' . ' <input type="text" id="custom_time" value="'.date('H:i').'"></center>'; echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1' id='time_text' style='display: none;'>"; echo "<th>"; echo __('Select time', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; echo __('View', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>"; echo "<input type='hidden' name='updateviewid' id='updateviewid' value='".$id."' />"; if ($config == 0) { echo "<div id='filariane'> </div>"; echo "<input type='hidden' name='updatefil' id='updatefil' value='".$id."!' />"; /* echo "<script type=\"text/javascript\"> function reloadfil() { Ext.get('filariane').load({ url: '".$CFG_GLPI["root_doc"]."/plugins/monitoring/ajax/updateFilariane.php', scripts: true, params:'updatefil=' + Ext.get('updatefil').getValue() + '&id=".$id. "¤tview=' + Ext.get('updateviewid').getValue() }); } reloadfil(); </script>"; */ } echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td height='1200' id='panel'>"; $queryitems = "SELECT * FROM `glpi_plugin_monitoring_displayviews_items` WHERE `plugin_monitoring_displayviews_id`='".$id."'"; $resultitems = $DB->query($queryitems); $a_items = array(); while ($dataitems=$DB->fetch_array($resultitems)) { // if ($this->displayItem($dataitems, $config)) { $a_items[] = $dataitems; // } // } } echo " <script type=\"text/javascript\"> $(function() { "; foreach ($a_items as $item) { if ($config == '1') { $event = ", stop: function() { pos = $('#draggable".$item['id']."').position(); $.get('".$CFG_GLPI["root_doc"]."/plugins/monitoring/ajax/displayview_itemcoordinates.php" ."?id=".$item['id'] ."&x=' + pos.left + '&y=' + pos.top); }"; } else { $event = ''; } $size = $this->getSizeOfWidget($item['itemtype']); echo "$( \"#draggable".$item['id']."\" ).draggable({ cursor: 'move', cursorAt: { " . "top: ".($size['height']/2).", left: ".($size['width']/2).", " . " }, grid: [ 10, 10 ]".$event." } );"; } echo " }); </script>"; echo "<div id='viewform' style='width: ".$pmDisplayview->fields['width']."px;height:1200px;position: relative;'>"; foreach ($a_items as $item) { $size = $this->getSizeOfWidget($item['itemtype']); echo '<div id="draggable'.$item['id'].'" '; if ($item['itemtype'] != 'PluginMonitoringServicescatalog' && $item['itemtype'] != 'PluginMonitoringComponentscatalog') { echo 'class="ui-widget-content" '; } echo 'style="width: '.$size['width'].'px; height: '.$size['height'].'px; ' . 'position: absolute; left: '.$item['x'].'px; top: '.$item['y'].'px;">'; if ($item['itemtype'] == 'PluginMonitoringService') { $pmComponent = new PluginMonitoringComponent(); $pmService = new PluginMonitoringService(); $pmService->getFromDB($item['items_id']); $pmComponent->getFromDB($pmService->fields['plugin_monitoring_components_id']); $pmServicegraph = new PluginMonitoringServicegraph(); $pmServicegraph->displayGraph($pmComponent->fields['graph_template'], "PluginMonitoringService", $item['items_id'], "0", $item['extra_infos'], "", ($size['width'] - 15)); } else if ($item['itemtype'] == 'PluginMonitoringWeathermap') { } else { echo "<div id=\"update".$item['itemtype'].$item['items_id']."\"></div>"; echo "<script type=\"text/javascript\">"; echo " (function worker() { $.get('".$CFG_GLPI["root_doc"]."/plugins/monitoring/ajax/updateWidgetComponentscatalog.php" ."?id=".$item['items_id']."&is_minemap=".$item['is_minemap']. "', function(data) { $('#update".$item['itemtype'].$item['items_id']."').html(data); setTimeout(worker, 30000); }); })();"; echo "</script>"; } echo '</div>'; } // echo "<script type='text/javascript'> // // //Simple 'border layout' panel to house both grids // var displayPanel = new Ext.Panel({ // id : 'viewpanel', // width : ".$pmDisplayview->fields['width'].", // height : 1200, // layout: 'absolute', // renderTo : 'panel', // items : [] // }); // // </script>"; echo "</div>"; // echo "<script type=\"text/javascript\"> // function reloadview() { // Ext.get('viewform').load({ // url: '".$CFG_GLPI["root_doc"]."/plugins/monitoring/ajax/loadView.php', // scripts: true, // params:'id=' + Ext.get('updateviewid').getValue() + '&config=".$config."' // }); // } // reloadview(); // </script>"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "<br/>"; }
static function displayTabContentForItem(CommonGLPI $item, $tabnum = 1, $withtemplate = 0) { if ($item->getType() == 'PluginMonitoringDisplayview') { switch ($tabnum) { case 1: $pmDisplayview_item = new PluginMonitoringDisplayview_item(); $pmDisplayview_item->view($item->getID(), 1); break; case 2: $item->showVisibility(); break; } if ($tabnum >= 20) { $pmDisplayview_rule = new PluginMonitoringDisplayview_rule(); $pmDisplayview_rule->ShowRulesTabs($item->getID(), $tabnum); } } return true; }