function startAutoRefresh($rrdtool_template, $itemtype, $items_id, $timezone, $time, $pmComponents_id) { global $CFG_GLPI; $sess_id = session_id(); PluginMonitoringSecurity::updateSession(); $refresh = "50"; // all 50 seconds if ($time == '1d') { $refresh = "300"; // 5 minutes } else if ($time == '1w' || $time == '1m' || $time == '0y6m' || $time == '1y') { $refresh = "1000"; } echo "mgr".$items_id.$time.".startAutoRefresh(".$refresh.", \"".$CFG_GLPI["root_doc"]. "/plugins/monitoring/ajax/updateChart.php\", ". "\"rrdtool_template=".$rrdtool_template. "&itemtype=".$itemtype. "&items_id=".$items_id. "&timezone=".$timezone. "&time=".$time. "&customdate=\" + document.getElementById('custom_date').textContent + \"". "&customtime=\" + document.getElementById('custom_time').textContent + \"". "&components_id=".$pmComponents_id."&sess_id=".$sess_id. "&glpiID=".$_SESSION['glpiID']. // "&plugin_monitoring_securekey=".$_SESSION['plugin_monitoring_securekey']. "\", \"\", true); "; }
function drawMap($weathermaps_id, $widthw=100, $config=0) { global $DB, $CFG_GLPI; $this->getFromDB($weathermaps_id); PluginMonitoringSecurity::updateSession(); if (countElementsInTable('glpi_plugin_monitoring_weathermapnodes', "`plugin_monitoring_weathermaps_id`='".$weathermaps_id."'") == 0) { return; } $rand = mt_rand(); echo '<svg id="cloud'.$rand.'" width="'.$this->fields['width'].'" ' . 'height="'.$this->fields['height'].'"> <defs> <marker id="arrowhead'.$rand.'" orient="auto" markerWidth="2" markerHeight="4" refX="0.3" refY="0.8"> <path d="M0,0 V1.6 L0.8,0.8 Z" fill="#d0d0d0" /> </marker> <marker id="arrowheadred'.$rand.'" orient="auto" markerWidth="2" markerHeight="4" refX="0.3" refY="0.8"> <path d="M0,0 V1.6 L0.8,0.8 Z" fill="red" /> </marker> <marker id="arrowheadblack'.$rand.'" orient="auto" markerWidth="2" markerHeight="4" refX="0.3" refY="0.8"> <path d="M0,0 V1.6 L0.8,0.8 Z" fill="black" /> </marker> </defs> </svg>'; echo '<script> var width = '.$this->fields['width'].'; var height = '.$this->fields['height'].'; var color = d3.scale.category10(); var force'.$rand.' = d3.layout.force() .charge(-180) .linkDistance(20) .size([width, height]); var svg'.$rand.' = d3.select("#cloud'.$rand.'"); var drag_node = d3.behavior.drag() .on("drag", dragmove)'; if ($config) { echo ' .on("dragend", dragendconfig)'; } echo '; function dragmove(d, i) { d.px += d3.event.dx; d.py += d3.event.dy; d.x += d3.event.dx; d.y += d3.event.dy; tick'.$rand.'(); // this is the key to make it work together with updating both px,py,x,y on d ! } function dragendconfig(d, i) { $.ajax({type: "POST",url: "'.$CFG_GLPI['root_doc'].'/plugins/monitoring/ajax/updateWeathermap.php",data: {id: d.id, x: d.x, y: d.y},success: function(msg) {}}); } '; $a_data = array(); $a_mapping = array(); $i = 0; $query = "SELECT * FROM `".getTableForItemType("PluginMonitoringWeathermapnode")."` WHERE `plugin_monitoring_weathermaps_id`='".$weathermaps_id."' ORDER BY `name`"; $result = $DB->query($query); while ($data=$DB->fetch_array($result)) { $name = $data['name']; $url = ''; if ($name == '') { $itemtype = $data['itemtype']; $item = new $itemtype(); $item->getFromDB($data['items_id']); $name = $item->getName(); $url = $item->getLinkURL(); } $a_mapping[$data['id']] = $i; $i++; $a_textx = array( 'middle' => 0, 'start' => '12', 'end' => '-12'); $texty = 0; if ($data['position'] == 'middle') { $texty = -13; } $a_data['nodes'][] = array( 'name' => $name, 'id' => (int)$data['id'], 'x' => ($widthw * $data['x']) / 100, 'y' => ($widthw * $data['y']) / 100, 'fixed' => TRUE, "group" => 3, "url" => $url, "textposition" => $data['position'], "textx" => $a_textx[$data['position']], "texty" => $texty, "nodeusage" => 'grey' ); } $nodes_upusage = array(); $pmWeathermapnode = new PluginMonitoringWeathermapnode(); $pmWeathermaplink = new PluginMonitoringWeathermaplink(); $pmService = new PluginMonitoringService(); $pmComponent = new PluginMonitoringComponent(); $a_data['links'] = array(); $query = "SELECT `glpi_plugin_monitoring_weathermaplinks`.* FROM `glpi_plugin_monitoring_weathermaplinks` LEFT JOIN `glpi_plugin_monitoring_weathermapnodes` ON `plugin_monitoring_weathermapnodes_id_1` = `glpi_plugin_monitoring_weathermapnodes`.`id` WHERE `plugin_monitoring_weathermaps_id`='".$weathermaps_id."'"; $result = $DB->query($query); while ($data=$DB->fetch_array($result)) { $pmWeathermapnode->getFromDB($data['plugin_monitoring_weathermapnodes_id_2']); if (!$pmService->getFromDB($data['plugin_monitoring_services_id'])) { $pmWeathermapnode = new PluginMonitoringWeathermapnode(); $pmWeathermapnode->getFromDB($data['plugin_monitoring_weathermapnodes_id_1']); $querytt = "SELECT glpi_plugin_monitoring_services.id FROM `glpi_plugin_monitoring_services` LEFT JOIN glpi_plugin_monitoring_componentscatalogs_hosts ON plugin_monitoring_componentscatalogs_hosts_id=glpi_plugin_monitoring_componentscatalogs_hosts.id WHERE networkports_id>0 AND itemtype='".$pmWeathermapnode->fields['itemtype']."' AND items_id='".$pmWeathermapnode->fields['items_id']."'"; $resulttt = $DB->query($querytt); $s_id = 0; if ($DB->numrows($resulttt) == 1) { $datatt = $DB->fetch_assoc($resulttt); $input = array( 'id' => $data['id'], 'plugin_monitoring_services_id' => $datatt['id'] ); $pmWeathermaplink->update($input); $pmWeathermaplink->getFromDB($data['id']); $data = $pmWeathermaplink->fields; } } $queryevent = "SELECT * FROM `glpi_plugin_monitoring_serviceevents` WHERE `plugin_monitoring_services_id`='".$data['plugin_monitoring_services_id']."' ORDER BY `date` DESC LIMIT 1"; $resultevent = $DB->query($queryevent); $in = ''; $out = ''; $service_exist = 0; while ($dataevent=$DB->fetch_array($resultevent)) { if ($pmService->getFromDB($data['plugin_monitoring_services_id'])) { $pmComponent->getFromDB($pmService->fields['plugin_monitoring_components_id']); $matches1 = array(); preg_match("/".$pmComponent->fields['weathermap_regex_in']."/m", $dataevent['perf_data'], $matches1); if (isset($matches1[1])) { $in = $matches1[1]; } $matches1 = array(); preg_match("/".$pmComponent->fields['weathermap_regex_out']."/m", $dataevent['perf_data'], $matches1); if (isset($matches1[1])) { $out = $matches1[1]; } $service_exist = 1; } else { $pmService->getEmpty(); $pmComponent->getEmpty(); } } if ($service_exist) { list($downusage, $downcolor) = $this->getWBandwidth($in, $data['bandwidth_in']); list($upusage, $upcolor) = $this->getWBandwidth($out, $data['bandwidth_out']); } else { $upusage = 100; $downusage = 100; $upcolor = 'black'; $downcolor = 'black'; } $a_data['links'][] = array( 'source' => $a_mapping[$data['plugin_monitoring_weathermapnodes_id_1']], 'target' => $a_mapping[$data['plugin_monitoring_weathermapnodes_id_2']], 'up' => $upcolor, 'down' => $downcolor, 'upusage' => $upusage, 'downusage' => $downusage, 'info' => '', 'value' => 1, 'services_id' => $data['plugin_monitoring_services_id'], 'components_id' => $pmService->fields['plugin_monitoring_components_id'], 'rrdtool_template' => $pmComponent->fields['graph_template'] ); if (!isset($nodes_upusage[$a_mapping[$data['plugin_monitoring_weathermapnodes_id_1']]])) { $nodes_upusage[$a_mapping[$data['plugin_monitoring_weathermapnodes_id_1']]] = array(); } if (!isset($nodes_upusage[$a_mapping[$data['plugin_monitoring_weathermapnodes_id_2']]])) { $nodes_upusage[$a_mapping[$data['plugin_monitoring_weathermapnodes_id_2']]] = array(); } array_push($nodes_upusage[$a_mapping[$data['plugin_monitoring_weathermapnodes_id_1']]], $upusage); array_push($nodes_upusage[$a_mapping[$data['plugin_monitoring_weathermapnodes_id_2']]], $downusage); } foreach ($nodes_upusage as $nodes_num=>$datausage) { $moyusage = array_sum($datausage)/count($datausage); list($usage, $color) = $this->getWBandwidth(array_sum($datausage)/count($datausage), 100); if ($moyusage == 0) { $color = 'grey'; } $a_data['nodes'][$nodes_num]['nodeusage'] = $color; } echo 'var jsonstr'.$rand.' = \''.json_encode($a_data).'\';'; echo 'var json'.$rand.' = JSON.parse(jsonstr'.$rand.'); force'.$rand.' .nodes(json'.$rand.'.nodes) .links(json'.$rand.'.links) .start(); '; $this->d3jsLink('up', 'usage', $rand); $this->d3jsLink('up', 'notusage', $rand); $this->d3jsLink('down', 'usage', $rand); $this->d3jsLink('down', 'notusage', $rand); echo ' var nodes'.$rand.' = svg'.$rand.'.selectAll(".node") .data(force'.$rand.'.nodes()) .enter().append("g") .attr("class", "node") .call(drag_node) .append("a") .attr("xlink:href", function (d) { return d.url; }) .attr("target", "_blank"); // .on("dragend", function(d){$.ajax({url: "toto",success: function(data) {}})}); //d3.select(this).style("fill", "white");} nodes'.$rand.'.append("circle") .attr("r", 5) .attr("class", function(d) { return "circle" + d.nodeusage; }); nodes'.$rand.'.append("text") .attr("text-anchor", function(d) { return d.textposition; }) .attr("x", function(d) { return d.textx; }) .attr("y", function(d) { return d.texty; }) .attr("dy", ".35em") .attr("class", "linklabel") .text(function(d) { return d.name; }); var textdown'.$rand.' = svg'.$rand.'.selectAll("line.link") .data(force'.$rand.'.links()) .enter().append("text") .attr("dy", ".25em") .attr("text-anchor", "middle") .style("pointer-events", "none") .attr("class", function(d) { return "linklabel" + d.down;}) .text(function(d) { return d.downusage + "%";}) var textup'.$rand.' = svg'.$rand.'.selectAll("line.link") .data(force'.$rand.'.links()) .enter().append("text") .attr("dy", ".25em") .attr("text-anchor", "middle") .style("pointer-events", "none") .attr("class", function(d) { return "linklabel" + d.up;}) .text(function(d) { return d.upusage + "%";}) force'.$rand.'.on("tick", tick'.$rand.'); function tick'.$rand.'() { linksupusage'.$rand.'.attr("x1", function(d) { return d.source.x; }) .attr("y1", function(d) { return d.source.y; }) .attr("x2", function(d) { return d.source.x + (((d.target.x - d.source.x) / 200) * ((d.upusage * 97) / 100)); }) .attr("y2", function(d) { return d.source.y + (((d.target.y - d.source.y) / 200) * ((d.upusage * 97) / 100)); }); linksupnotusage'.$rand.'.attr("x1", function(d) { return d.source.x + (((d.target.x - d.source.x) / 200) * ((d.upusage * 97) / 100)); }) .attr("y1", function(d) { return d.source.y + (((d.target.y - d.source.y) / 200) * ((d.upusage * 97) / 100)); }) .attr("x2", function(d) { return d.source.x + (((d.target.x - d.source.x) / 200) * 97); }) .attr("y2", function(d) { return d.source.y + (((d.target.y - d.source.y) / 200) * 97); }); linksdownusage'.$rand.'.attr("x1", function(d) { return d.target.x; }) .attr("y1", function(d) { return d.target.y; }) .attr("x2", function(d) { return d.source.x + Math.round(((d.target.x - d.source.x) / 200) * (200 - ((d.downusage * 97) / 100))); }) .attr("y2", function(d) { return d.source.y + Math.round(((d.target.y - d.source.y) / 200) * (200 - ((d.downusage * 97) / 100))); }); linksdownnotusage'.$rand.'.attr("x1", function(d) { return d.source.x + Math.round(((d.target.x - d.source.x) / 200) * (200 - ((d.downusage * 97) / 100))); }) .attr("y1", function(d) { return d.source.y + Math.round(((d.target.y - d.source.y) / 200) * (200 - ((d.downusage * 97) / 100))); }) .attr("x2", function(d) { return d.source.x + Math.round(((d.target.x - d.source.x) / 200) * 103); }) .attr("y2", function(d) { return d.source.y + Math.round(((d.target.y - d.source.y) / 200) * 103); }); nodes'.$rand.' .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; }); '; echo ' textdown'.$rand.'.attr("x", function(d) { return d.source.x + (((d.target.x - d.source.x) / 200) * 130); }) .attr("y", function(d) { return d.source.y + (((d.target.y - d.source.y) / 200) * 130); }); textup'.$rand.'.attr("x", function(d) { return d.source.x + (((d.target.x - d.source.x) / 200) * 70); }) .attr("y", function(d) { return d.source.y + (((d.target.y - d.source.y) / 200) * 70); }); }; '; echo ' </script>'; }
function slideSlider($id) { global $CFG_GLPI, $DB; 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(); $this->getFromDB($id); echo '<div id="custom_date" style="display:none"></div>'; echo '<div id="custom_time" style="display:none"></div>'; echo '<script src="'.$CFG_GLPI["root_doc"].'/plugins/monitoring/lib/slider.js-14/js/jssor.slider.mini.js"></script> <script> jQuery(document).ready(function ($) { //Define an array of slideshow transition code var _SlideshowTransitions = [ {$Duration:0001,$Opacity:2} ]; var options = { $AutoPlay: true, $AutoPlayInterval: '.$this->fields['duration'].'000, $SlideshowOptions: { $Class: $JssorSlideshowRunner$, $Transitions: _SlideshowTransitions, $TransitionsOrder: 1, $ShowLink: true } }; var jssor_slider1 = new $JssorSlider$(\'slider1_container\', options); }); </script>'; echo "<table class='tab_cadre'>"; echo "<tr>"; echo "<td>"; $query = "SELECT * FROM `glpi_plugin_monitoring_sliders_items` WHERE `plugin_monitoring_sliders_id`='".$id."'"; $result = $DB->query($query); $maxWidth = 0; $maxHeight = 0; $is_minemap = 0; while ($data=$DB->fetch_array($result)) { if ($data['itemtype'] == 'PluginMonitoringServicescatalog' || $data['itemtype'] == 'PluginMonitoringComponentscatalog' || $data['itemtype'] == 'PluginMonitoringCustomitem_Gauge' || $data['itemtype'] == 'PluginMonitoringCustomitem_Counter') { if ($maxWidth < 180) { $maxWidth = 180; } if ($maxHeight < 180) { $maxHeight = 180; } if ($data['is_minemap'] == 1) { $is_minemap = 1; } } else if ($data['itemtype'] == 'PluginMonitoringService') { if ($maxWidth < 475) { $maxWidth = 475; } if ($maxHeight < 330) { $maxHeight = 330; } } else if ($data['itemtype'] == "PluginMapsMap") { if ($maxWidth < 950) { $maxWidth = 950; } if ($maxHeight < 800) { $maxHeight = 800; } } else { $itemtype = $data['itemtype']; $item = new $itemtype(); $item->getFromDB($data['items_id']); if ($maxWidth < $item->fields['width']) { $maxWidth = $item->fields['width']; } if (isset($item->fields['height'])) { if ($maxHeight < $item->fields['width']) { $maxHeight = $item->fields['height']; } } } } if ($is_minemap) { $maxHeight = '1500'; } $pm = new PluginMonitoringComponentscatalog(); echo '<div id="slider1_container" style="position: relative; top: 0px; left: 0px; width: '.$maxWidth.'px; height: '.$maxHeight.'px;"> <!-- Slides Container --> <div u="slides" style="cursor: move; position: absolute; overflow: hidden; left: 0px; top: 0px; width: '.$maxWidth.'px; height: '.$maxHeight.'px;">'; $result = $DB->query($query); while ($data=$DB->fetch_array($result)) { $itemtype = $data['itemtype']; $item = new $itemtype(); if ($itemtype == "PluginMonitoringService") { echo '<div>'; echo $item->showWidget($data['items_id'], $data['extra_infos']); echo '</div>'; } else if ($itemtype == "PluginMonitoringWeathermap") { echo '<div>'; echo '<div id="weathermap-'.$data['items_id'].'"></div>'; echo '</div>'; } else if ($itemtype == 'PluginMonitoringDisplayview') { echo '<div>'; $pmDisplayview_item = new PluginMonitoringDisplayview_item(); echo $pmDisplayview_item->view($data['items_id']); echo '</div>'; } else if ($itemtype == "PluginMapsMap") { echo '<div>'; echo '<div id="pluginmap"></div>'; echo '</div>'; } else { echo '<div>'; echo $item->showWidget($data['items_id']); echo '</div>'; } } echo ' </div> </div>'; $result = $DB->query($query); while ($data=$DB->fetch_array($result)) { $itemtype = $data['itemtype']; $item = new $itemtype(); // Ajax if ($itemtype == "PluginMonitoringService") { $pmComponent = new PluginMonitoringComponent(); $item = new $itemtype(); $item->getFromDB($data['items_id']); $pmComponent->getFromDB($item->fields['plugin_monitoring_components_id']); $pmServicegraph = new PluginMonitoringServicegraph(); $pmServicegraph->displayGraph($pmComponent->fields['graph_template'], "PluginMonitoringService", $data['items_id'], "0", $data['extra_infos'], "js"); } else if($itemtype == "PluginMonitoringComponentscatalog") { $pmComponentscatalog = new PluginMonitoringComponentscatalog(); $pmComponentscatalog->ajaxLoad($data['items_id'], $data['is_minemap']); } else if($itemtype == "PluginMonitoringServicescatalog") { $pmServicescatalog = new PluginMonitoringServicescatalog(); $pmServicescatalog->ajaxLoad($data['items_id']); } else if($itemtype == "PluginMonitoringDisplayview") { } else if($itemtype == "PluginMonitoringCustomitem_Gauge") { $pmCustomitem_Gauge = new PluginMonitoringCustomitem_Gauge(); $pmCustomitem_Gauge->ajaxLoad($data['items_id']); } else if($itemtype == "PluginMonitoringCustomitem_Counter") { $pmCustomitem_Counter = new PluginMonitoringCustomitem_Counter(); $pmCustomitem_Counter->ajaxLoad($data['items_id']); } if ($itemtype == "PluginMonitoringWeathermap") { $sess_id = session_id(); PluginMonitoringSecurity::updateSession(); echo "<script type='text/javascript'> var mgr = new Ext.UpdateManager('weathermap-".$data['items_id']."'); mgr.startAutoRefresh(50, \"".$CFG_GLPI["root_doc"]. "/plugins/monitoring/ajax/widgetWeathermap.php\"," . " \"id=".$data['items_id']."&extra_infos=". $data['extra_infos']."&sess_id=".$sess_id. "&glpiID=".$_SESSION['glpiID']. "&plugin_monitoring_securekey=".$_SESSION['plugin_monitoring_securekey']. "\", \"\", true); </script>"; } if ($itemtype == "PluginMapsMap") { $sess_id = session_id(); PluginMonitoringSecurity::updateSession(); echo "<script type='text/javascript'> var mgr = new Ext.UpdateManager('pluginmap'); mgr.startAutoRefresh(50, \"".$CFG_GLPI["root_doc"]. "/plugins/monitoring/ajax/widgetPluginmap.php\"," . " \"extra_infos=". $data['extra_infos']."&sess_id=".$sess_id. "&glpiID=".$_SESSION['glpiID']. "&plugin_monitoring_securekey=".$_SESSION['plugin_monitoring_securekey']. "\", \"\", true); </script>"; } } echo "</td>"; echo "</tr>"; echo "</table>"; }
function ajaxLoad($id) { global $CFG_GLPI; $sess_id = session_id(); PluginMonitoringSecurity::updateSession(); echo "<script type=\"text/javascript\"> var elcc".$id." = Ext.get(\"updatecustomitem_gauge".$id."\"); var mgrcc".$id." = elcc".$id.".getUpdateManager(); mgrcc".$id.".loadScripts=true; mgrcc".$id.".showLoadIndicator=false; mgrcc".$id.".startAutoRefresh(50, \"".$CFG_GLPI["root_doc"]. "/plugins/monitoring/ajax/updateWidgetCustomitem_gauge.php\"," . " \"id=".$id."&sess_id=".$sess_id. "&glpiID=".$_SESSION['glpiID']. "&plugin_monitoring_securekey=".$_SESSION['plugin_monitoring_securekey']. "\", \"\", true); </script>"; }
function displayItem($data, $config) { global $CFG_GLPI; $itemtype = $data['itemtype']; $itemtype2 = ''; if ($itemtype == 'host' || $itemtype == 'service') { $itemtype2 = $itemtype; $itemtype = 'PluginMonitoringDisplayview'; } $item = new $itemtype(); $content = ''; $title = $item->getTypeName(); $event = ''; $width=''; if ($itemtype == "PluginMonitoringService") { $content = $item->showWidget($data['items_id'], $data['extra_infos']); if (!isset($item->fields['plugin_monitoring_components_id'])) { return false; } $title .= " : <a href=\"".$CFG_GLPI['root_doc']."/plugins/monitoring/front/display.form.php?itemtype=PluginMonitoringService&items_id=".$data['items_id']."\">". Dropdown::getDropdownName(getTableForItemType('PluginMonitoringComponent'), $item->fields['plugin_monitoring_components_id']); $title .= '</a> '.__('on', 'monitoring').' '; $pmComponentscatalog_Host = new PluginMonitoringComponentscatalog_Host(); $pmComponentscatalog_Host->getFromDB($item->fields["plugin_monitoring_componentscatalogs_hosts_id"]); if (isset($pmComponentscatalog_Host->fields['itemtype']) AND $pmComponentscatalog_Host->fields['itemtype'] != '') { $itemtype2 = $pmComponentscatalog_Host->fields['itemtype']; $item2 = new $itemtype2(); $item2->getFromDB($pmComponentscatalog_Host->fields['items_id']); $title .= str_replace("'", "\"", $item2->getLink()." (".$item2->getTypeName()." / ".$data['extra_infos'].")"); } $width = "width: 475,"; } else if ($itemtype == "PluginMonitoringWeathermap") { // $content = $item->showWidget($data['items_id'], $data['extra_infos']); $content = '<div id="weathermap-'.$data['items_id'].'"></div>'; // $event = ", ".$item->widgetEvent($data['items_id']); if ($data['items_id'] == -1) { $title .= " : ".__('Legend', 'monitoring'); $width = "width:400,"; } else { $title .= " : ".Dropdown::getDropdownName(getTableForItemType('PluginMonitoringWeathermap'), $data['items_id']); $item->getFromDB($data['items_id']); $width = "width:".(($item->fields['width'] * $data['extra_infos']) / 100).","; } } else { if ($itemtype2 != '') { $content = $item->showWidget2($data['id']); } else { $content = $item->showWidget($data['items_id']); } if ($data['itemtype'] == 'PluginMonitoringServicescatalog') { $width = "width: 202,"; } else { $width = "width: 180,"; } } if ($config == 0 && $itemtype != "PluginMonitoringService") { $title = ''; } echo "<script> var left = 0; var topd = 0; var obj = document.getElementById('panel'); if (obj.offsetParent) { do { left += obj.offsetLeft; topd += obj.offsetTop; } while (obj = obj.offsetParent); } var item".$data['id']." = new Ext.Panel({ closable: true, title: '".$title."', x: ".$data['x'].", y: ".$data['y'].", html : '".$content."', baseCls : 'x-panel', layout : 'fit', bodyStyle: 'background:transparent', "; if ($config == 0 && $itemtype != "PluginMonitoringService") { echo "border: false,"; } echo "renderTo: Ext.getBody(), floating: false, frame: false, ".$width." autoHeight : true, layout: 'fit', draggable: { //Config option of Ext.Panel.DD class. //It's a floating Panel, so do not show a placeholder proxy in the original position. insertProxy: false, //Called for each mousemove event while dragging the DD object. onDrag : function(e){ //Record the x,y position of the drag proxy so that we can //position the Panel at end of drag. var el = this.proxy.getEl(); this.x = el.getLeft(true) - left - 5; this.y = el.getTop(true) - topd - 5; //Keep the Shadow aligned if there is one. var s = this.panel.getEl().shadow; if (s) { s.realign(this.x, this.y, pel.getWidth(), pel.getHeight()); } }, //Called on the mouseup event. endDrag : function(e){ this.panel.setPosition(this.x, this.y);\n"; if ($config == '1') { echo " Ext.get('updatecoordonates').load({ url: '".$CFG_GLPI['root_doc']."/plugins/monitoring/ajax/displayview_itemcoordinates.php', scripts: true, params:'id=".$data['id']."&x=' + (this.x) + '&y=' + (this.y) });\n"; echo " if (this.x < 1) { this.panel.destroy(); } if (this.y < 0) { this.panel.destroy(); } "; } echo " } } ".$event." }); </script>";//.show() if ($itemtype == "PluginMonitoringService") { $pmComponent = new PluginMonitoringComponent(); $item = new $itemtype(); $item->getFromDB($data['items_id']); $pmComponent->getFromDB($item->fields['plugin_monitoring_components_id']); $pmServicegraph = new PluginMonitoringServicegraph(); $pmServicegraph->displayGraph($pmComponent->fields['graph_template'], "PluginMonitoringService", $data['items_id'], "0", $data['extra_infos'], "js"); } else if($itemtype == "PluginMonitoringComponentscatalog") { $pmComponentscatalog = new PluginMonitoringComponentscatalog(); $pmComponentscatalog->ajaxLoad($data['items_id'], $data['is_minemap']); } else if($itemtype == "PluginMonitoringServicescatalog") { $pmServicescatalog = new PluginMonitoringServicescatalog(); $pmServicescatalog->ajaxLoad($data['items_id']); } else if ($itemtype2 != '') { $pmDisplayview = new PluginMonitoringDisplayview(); $pmDisplayview->ajaxLoad2($data['id'], $data['is_minemap']); } else if($itemtype == "PluginMonitoringDisplayview") { $pmDisplayview = new PluginMonitoringDisplayview(); $pmDisplayview->ajaxLoad($data['items_id']); } else if($itemtype == "PluginMonitoringCustomitem_Gauge") { $pmCustomitem_Gauge = new PluginMonitoringCustomitem_Gauge(); $pmCustomitem_Gauge->ajaxLoad($data['items_id']); } else if($itemtype == "PluginMonitoringCustomitem_Counter") { $pmCustomitem_Counter = new PluginMonitoringCustomitem_Counter(); $pmCustomitem_Counter->ajaxLoad($data['items_id']); } if ($itemtype == "PluginMonitoringWeathermap") { // echo "<script type='text/javascript'> // function updateimagew".$data['items_id']."() { // var demain=new Date(); // document.getElementById('weathermap-".$data['items_id']."').innerHTML = demain.getTime() + '".$content."'; // } // setInterval(updateimagew".$data['items_id'].", 50000); // </script>"; // } $sess_id = session_id(); PluginMonitoringSecurity::updateSession(); echo "<script type='text/javascript'> var mgr = new Ext.UpdateManager('weathermap-".$data['items_id']."'); mgr.startAutoRefresh(50, \"".$CFG_GLPI["root_doc"]. "/plugins/monitoring/ajax/widgetWeathermap.php\"," . " \"id=".$data['items_id']."&extra_infos=". $data['extra_infos']."&sess_id=".$sess_id. "&glpiID=".$_SESSION['glpiID']. "&plugin_monitoring_securekey=".$_SESSION['plugin_monitoring_securekey']. "\", \"\", true); </script>"; } return true; }
function showHostsCounters($display=1, $ajax=1) { global $CFG_GLPI; if ($display == 0) { return $this->displayHostsCounters($display); } if ($ajax == 1) { $sess_id = session_id(); PluginMonitoringSecurity::updateSession(); echo "<div id=\"updatecounter".$type."\"></div>"; echo "<script type=\"text/javascript\"> var elcc".$type." = Ext.get(\"updatecounter".$type."\"); var mgrcc".$type." = elcc".$type.".getUpdateManager(); mgrcc".$type.".loadScripts=true; mgrcc".$type.".showLoadIndicator=false; mgrcc".$type.".startAutoRefresh(50, \"".$CFG_GLPI["root_doc"]. "/plugins/monitoring/ajax/updateHostsCounter.php\"," . " \"type=".$type."&sess_id=".$sess_id. "&glpiID=".$_SESSION['glpiID']. "&plugin_monitoring_securekey=".$_SESSION['plugin_monitoring_securekey']. "\", \"\", true); </script>"; } else { $this->displayHostsCounters(); } }