function addItem($displayviews_id)
 {
     global $DB, $CFG_GLPI;
     $this->getEmpty();
     $pmDisplayview = new PluginMonitoringDisplayview();
     $pmDisplayview->getFromDB($displayviews_id);
     // Manage entity_sons
     $a_entities = array();
     if (!($pmDisplayview->fields['entities_id'] < 0)) {
         if ($pmDisplayview->fields['is_recursive'] == '0') {
             $a_entities[$pmDisplayview->fields['entities_id']] = $pmDisplayview->fields['entities_id'];
         } else {
             $a_entities = getSonsOf('glpi_entities', $pmDisplayview->fields['entities_id']);
         }
     }
     $options = array();
     $this->showFormHeader($options);
     echo "<tr class='tab_bg_1'>";
     echo "<td>";
     echo "<input type='hidden' name='plugin_monitoring_displayviews_id' value='" . $displayviews_id . "' />";
     echo __('Element to display', 'monitoring') . " :</td>";
     echo "<td>";
     $elements = array();
     $elements['NULL'] = Dropdown::EMPTY_VALUE;
     $elements['PluginMonitoringDisplayview'] = __('Views', 'monitoring');
     $elements['PluginMonitoringServicescatalog'] = __('Business rules', 'monitoring');
     //      $elements['service']                             = __('Resources (info)', 'monitoring');
     $elements['host'] = __('Host (info)', 'monitoring');
     $elements['PluginMonitoringService'] = __('Resources (graph)', 'monitoring');
     $elements['PluginMonitoringComponentscatalog'] = __('Components catalog', 'monitoring');
     $elements['PluginMonitoringWeathermap'] = __('Weathermap', 'monitoring');
     $rand = Dropdown::showFromArray('itemtype', $elements, array('value' => $this->fields['itemtype']));
     $params = array('itemtype' => '__VALUE__', 'displayviews_id' => $displayviews_id, 'myname' => "items_id", 'a_entities' => $a_entities);
     Ajax::updateItemOnSelectEvent("dropdown_itemtype" . $rand, "items_id", $CFG_GLPI["root_doc"] . "/plugins/monitoring/ajax/dropdownDisplayviewItemtype.php", $params);
     echo "<span id='items_id'></span>";
     echo "<input type='hidden' name='x' value='1' />";
     echo "<input type='hidden' name='y' value='1' />";
     echo "</td>";
     echo "<td colspan='2'></td>";
     echo "</tr>";
     $this->showFormButtons($options);
     return true;
 }
Example #2
0
 function menu()
 {
     global $CFG_GLPI;
     $redirect = FALSE;
     $a_url = array();
     echo "<table class='tab_cadre_fixe' width='950'>";
     echo "<tr class='tab_bg_3'>";
     echo "<td>";
     if (PluginMonitoringProfile::haveRight("restartshinken", 'w') || PluginMonitoringProfile::haveRight("servicescatalog", 'r') || PluginMonitoringProfile::haveRight("componentscatalog", 'r') || PluginMonitoringProfile::haveRight("allressources", 'r')) {
         echo "<table class='tab_cadre_fixe' width='950'>";
         echo "<tr class='tab_bg_1'>";
         echo "<th width='19%' colspan='2'>";
         if (PluginMonitoringProfile::haveRight("restartshinken", 'w')) {
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/restartshinken.form.php'>" . __('Restart Shinken', 'monitoring') . "</a>";
         }
         echo "</th>";
         echo "<th width='27%' colspan='2'>";
         if (PluginMonitoringProfile::haveRight("servicescatalog", 'r')) {
             $this->displayPuce('display_servicescatalog');
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_servicescatalog.php'>";
             echo __('Services catalog', 'monitoring');
             echo "</a>";
             $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_servicescatalog.php";
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'display_servicescatalog.php') {
                 $redirect = TRUE;
             }
         }
         echo "</th>";
         echo "<th width='27%' colspan='2'>";
         if (PluginMonitoringProfile::haveRight("componentscatalog", 'r')) {
             $this->displayPuce('display_componentscatalog');
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_componentscatalog.php'>";
             echo __('Components catalog', 'monitoring');
             echo "</a>";
             $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_componentscatalog.php";
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'display_componentscatalog.php') {
                 $redirect = TRUE;
             }
         }
         echo "</th>";
         echo "<th colspan='2'>";
         if (PluginMonitoringProfile::haveRight("allressources", 'r')) {
             $this->displayPuce('service');
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/service.php'>";
             echo __('All resources', 'monitoring');
             echo "</a>";
             $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/service.php";
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'service.php') {
                 $redirect = TRUE;
             }
         }
         echo "</th>";
         echo "</tr>";
         echo "</table>";
     } else {
         if (basename($_SERVER['PHP_SELF']) == 'display_servicescatalog.php') {
             $redirect = TRUE;
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'display_componentscatalog.php') {
                 $redirect = TRUE;
             } else {
                 if (basename($_SERVER['PHP_SELF']) == 'service.php') {
                     $redirect = TRUE;
                 }
             }
         }
     }
     $i = 1;
     $pmDisplayview = new PluginMonitoringDisplayview();
     $a_views = $pmDisplayview->getViews();
     if (count($a_views) > 0) {
         echo "<table class='tab_cadre_fixe' width='950'>";
         echo "<tr class='tab_bg_1'>";
         foreach ($a_views as $views_id => $name) {
             $pmDisplayview->getFromDB($views_id);
             if ($pmDisplayview->haveVisibilityAccess()) {
                 if ($i == 6) {
                     echo "</tr>";
                     echo "<tr class='tab_bg_1'>";
                     $i = 1;
                 }
                 echo "<th width='20%'>";
                 $this->displayPuce('display_view', $views_id);
                 echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_view.php?id=" . $views_id . "'>";
                 echo htmlentities($name);
                 echo "</a>";
                 echo "</th>";
                 $i++;
                 $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_view.php?id=" . $views_id;
             }
         }
         for ($i; $i < 6; $i++) {
             echo "<td width='20%'>";
             echo "</td>";
         }
         echo "</tr>";
         echo "</table>";
     }
     echo "</td>";
     echo "</tr>";
     echo "</table>";
     if ($redirect) {
         Html::redirect(array_shift($a_url));
     }
 }
$pmDisplayview = new PluginMonitoringDisplayview();
if (!isset($_SESSION['plugin_monitoring_view_ariane'])) {
    $_SESSION['plugin_monitoring_view_ariane'] = array();
}
if (!isset($_SESSION['plugin_monitoring_view_ariane'][$_GET['id']])) {
    $_SESSION['plugin_monitoring_view_ariane'][$_GET['id']] = array();
}
if (!isset($_SESSION['plugin_monitoring_view_arianelist'])) {
    $_SESSION['plugin_monitoring_view_arianelist'] = array();
}
if (!isset($_SESSION['plugin_monitoring_view_arianelist'][$_GET['id']])) {
    $_SESSION['plugin_monitoring_view_arianelist'][$_GET['id']] = array();
}
if (strstr($_GET['updatefil'], '!')) {
    $displayviews_id = str_replace("!", "", $_GET['updatefil']);
    $pmDisplayview->getFromDB($displayviews_id);
    if (!isset($_SESSION['plugin_monitoring_view_arianelist'][$_GET['id']][$displayviews_id])) {
        $cnt = count($_SESSION['plugin_monitoring_view_ariane'][$_GET['id']]);
        $_SESSION['plugin_monitoring_view_ariane'][$_GET['id']][$cnt] = array('id' => $displayviews_id, 'name' => $pmDisplayview->fields['name']);
        $_SESSION['plugin_monitoring_view_arianelist'][$_GET['id']][$displayviews_id] = 1;
    }
}
$elements = array();
$todelete = 0;
foreach ($_SESSION['plugin_monitoring_view_ariane'][$_GET['id']] as $num => $data) {
    if ($todelete) {
        unset($_SESSION['plugin_monitoring_view_ariane'][$_GET['id']][$num]);
        unset($_SESSION['plugin_monitoring_view_arianelist'][$_GET['id']][$data['id']]);
    } else {
        $link = '';
        if ($data['id'] != $_GET['currentview']) {
 function menu($refreshtype = '')
 {
     global $CFG_GLPI;
     $redirect = FALSE;
     $a_url = array();
     /* Moke-up for user's preferences ...
           if (PluginMonitoringProfile::haveRight("preferences", 'r')) {
              echo "<table class='tab_cadre_fixe' style='width: 120px; position: absolute; right: 15px;'>";
              echo "<tr class='tab_bg_1'>";
              echo "<td>";
              echo "<button><a href='".$CFG_GLPI['root_doc']."/plugins/monitoring/front/restartshinken.form.php'>".__('Restart Shinken', 'monitoring')."</a></button>";
              echo "</td>";
              echo "</tr>";
              echo "</table>";
           }
     */
     echo "<table class='tab_cadre_fixe' width='950'>";
     echo "<tr class='tab_bg_3'>";
     echo "<td>";
     $this->restartShinken();
     if (Session::haveRight("plugin_monitoring_systemstatus", PluginMonitoringSystem::DASHBOARD) || Session::haveRight("plugin_monitoring_hoststatus", PluginMonitoringHost::DASHBOARD) || Session::haveRight("plugin_monitoring_servicescatalog", PluginMonitoringService::DASHBOARD) || Session::haveRight("plugin_monitoring_componentscatalog", PluginMonitoringComponentscatalog::DASHBOARD) || Session::haveRight("plugin_monitoring_service", PluginMonitoringService::DASHBOARD)) {
         echo "<table class='tab_cadre_fixe'>";
         echo "<tr class='tab_bg_1'>";
         if (Session::haveRight("plugin_monitoring_systemstatus", PluginMonitoringSystem::DASHBOARD)) {
             echo "<th colspan='2'>";
             $this->displayPuce('display_system_status');
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_system_status.php'>";
             echo __('System status', 'monitoring');
             echo "</a>";
             $pmTag = new PluginMonitoringTag();
             $servers = 'OK';
             if (!$pmTag->get_servers_status()) {
                 $servers = 'CRITICAL';
             }
             echo "<div class='service service" . $servers . "' style='float : left;'></div>";
             $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_system_status.php";
             echo "</th>";
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'display_system_status.php') {
                 $redirect = TRUE;
             }
         }
         if (Session::haveRight("plugin_monitoring_hoststatus", PluginMonitoringHost::DASHBOARD)) {
             echo "<th colspan='2'>";
             $this->displayPuce('host');
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/host.php'>";
             echo __('Hosts status', 'monitoring');
             echo "</a>";
             $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/host.php";
             echo "</th>";
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'host.php') {
                 $redirect = TRUE;
             }
         }
         if (Session::haveRight("plugin_monitoring_servicescatalog", PluginMonitoringService::DASHBOARD)) {
             echo "<th colspan='2'>";
             $this->displayPuce('service');
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/service.php'>";
             echo __('All resources', 'monitoring');
             echo "</a>";
             $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/service.php";
             echo "</th>";
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'service.php') {
                 $redirect = TRUE;
             }
         }
         if (Session::haveRight("plugin_monitoring_service", PluginMonitoringService::DASHBOARD)) {
             echo "<th colspan='2'>";
             $this->displayPuce('perfdatas');
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/perfdatas.php'>";
             echo __('Performance data', 'monitoring');
             echo "</a>";
             $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/perfdatas.php";
             echo "</th>";
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'perfdatas.php') {
                 $redirect = TRUE;
             }
         }
         if (Session::haveRight("plugin_monitoring_servicescatalog", PluginMonitoringService::DASHBOARD)) {
             echo "<th colspan='2'>";
             $this->displayPuce('display_servicescatalog');
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_servicescatalog.php'>";
             echo __('Services catalogs', 'monitoring');
             echo "</a>";
             $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_servicescatalog.php";
             echo "</th>";
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'display_servicescatalog.php') {
                 $redirect = TRUE;
             }
         }
         if (Session::haveRight("plugin_monitoring_componentscatalog", PluginMonitoringComponentscatalog::DASHBOARD)) {
             echo "<th colspan='2'>";
             $this->displayPuce('display_componentscatalog');
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_componentscatalog.php'>";
             echo __('Components catalogs', 'monitoring');
             echo "</a>";
             $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_componentscatalog.php";
             echo "</th>";
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'display_componentscatalog.php') {
                 $redirect = TRUE;
             }
         }
         echo "</tr>";
         echo "</table>";
         if (Session::haveRight("plugin_monitoring_acknowledge", READ) || Session::haveRight("plugin_monitoring_downtime", READ)) {
             echo "<table class='tab_cadre_fixe'>";
             echo "<tr class='tab_bg_1'>";
             echo "<th>";
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/downtime.php'>" . __('Downtimes', 'monitoring') . "</a>";
             echo "</th>";
             echo "<th>";
             echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/acknowledge.php'>" . __('Acknowledges', 'monitoring') . "</a>";
             echo "</th>";
             echo "</tr>";
             echo "</table>";
         }
     } else {
         if (basename($_SERVER['PHP_SELF']) == 'display_servicescatalog.php') {
             $redirect = TRUE;
         } else {
             if (basename($_SERVER['PHP_SELF']) == 'display_componentscatalog.php') {
                 $redirect = TRUE;
             } else {
                 if (basename($_SERVER['PHP_SELF']) == 'service.php') {
                     $redirect = TRUE;
                 } else {
                     if (basename($_SERVER['PHP_SELF']) == 'host.php') {
                         $redirect = TRUE;
                     }
                 }
             }
         }
     }
     if (Session::haveRight("plugin_monitoring_displayview", PluginMonitoringDisplayview::DASHBOARD)) {
         $i = 1;
         $pmDisplayview = new PluginMonitoringDisplayview();
         $a_views = $pmDisplayview->getViews();
         if (count($a_views) > 0) {
             echo "<table class='tab_cadre_fixe' width='950'>";
             echo "<tr class='tab_bg_1'>";
             foreach ($a_views as $views_id => $name) {
                 $pmDisplayview->getFromDB($views_id);
                 if ($pmDisplayview->haveVisibilityAccess()) {
                     if ($i == 6) {
                         echo "</tr>";
                         echo "<tr class='tab_bg_1'>";
                         $i = 1;
                     }
                     echo "<th width='20%'>";
                     $this->displayPuce('display_view', $views_id);
                     echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_view.php?id=" . $views_id . "'>";
                     echo htmlentities($name);
                     echo "</a>";
                     echo "</th>";
                     $i++;
                     $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_view.php?id=" . $views_id;
                 }
             }
             // Fred : what is it for ?
             // It's to finish properly the table
             for ($i; $i < 6; $i++) {
                 echo "<td width='20%'>";
                 echo "</td>";
             }
             echo "</tr>";
             echo "</table>";
         }
     }
     if (Session::haveRight("plugin_monitoring_slider", PluginMonitoringSlider::DASHBOARD)) {
         $i = 1;
         $pmSlider = new PluginMonitoringSlider();
         $a_sliders = $pmSlider->getSliders();
         if (count($a_sliders) > 0) {
             echo "<table class='tab_cadre_fixe' width='950'>";
             echo "<tr class='tab_bg_1'>";
             foreach ($a_sliders as $sliders_id => $name) {
                 $pmSlider->getFromDB($sliders_id);
                 if ($pmSlider->haveVisibilityAccess()) {
                     if ($i == 6) {
                         echo "</tr>";
                         echo "<tr class='tab_bg_1'>";
                         $i = 1;
                     }
                     echo "<th width='20%'>";
                     $this->displayPuce('slider', $sliders_id);
                     echo "<a href='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_slider.php?id=" . $sliders_id . "'>";
                     echo htmlentities($name);
                     echo "</a>";
                     echo "</th>";
                     $i++;
                     $a_url[] = $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/display_slider.php?id=" . $sliders_id;
                 }
             }
             for ($i; $i < 6; $i++) {
                 echo "<td width='20%'>";
                 echo "</td>";
             }
             echo "</tr>";
             echo "</table>";
         }
     }
     if ($refreshtype == 'service') {
         $this->refreshPage();
     }
     echo "</td>";
     echo "</tr>";
     echo "</table>";
     if ($redirect) {
         Html::redirect(array_shift($a_url));
     }
 }
 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;
 }
 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;
 }
  @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     2011

  ------------------------------------------------------------------------
*/
include "../../../inc/includes.php";
Session::checkCentralAccess();
Html::header(__('Monitoring', 'monitoring'), $_SERVER["PHP_SELF"], "plugins", "PluginMonitoringDashboard", "dashboard");
$pmDisplay = new PluginMonitoringDisplay();
$pmDisplayview = new PluginMonitoringDisplayview();
$pmDisplayview_item = new PluginMonitoringDisplayview_item();
$pmMessage = new PluginMonitoringMessage();
$pmMessage->getMessages();
$pmDisplay->menu();
$pass = 0;
$a_views = $pmDisplayview->getViews();
if (isset($a_views[$_GET['id']])) {
    $pmDisplayview->getFromDB($_GET['id']);
    $pass = $pmDisplayview->haveVisibilityAccess();
}
if ($pass == 0) {
    Session::checkRight("plugin_monitoring_displayview", READ);
}
if (isset($a_views[$_GET['id']])) {
    $pmDisplayview_item->view($_GET['id']);
} else {
    Html::displayRightError();
}
Html::footer();
 function show_panel($id, $config)
 {
     global $DB, $CFG_GLPI;
     $pmDisplayview = new PluginMonitoringDisplayview();
     $pmDisplayview->getFromDB($id);
     $queryitems = "SELECT * FROM `glpi_plugin_monitoring_displayviews_items`\n         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 "\n      <script type=\"text/javascript\">\n      \$(function() {\n      ";
     foreach ($a_items as $item) {
         if ($config == '1') {
             $event = ", stop: function() {\n                 pos = \$('#draggable" . $item['id'] . "').position();\n                 \$.get('" . $CFG_GLPI["root_doc"] . "/plugins/monitoring/ajax/displayview_itemcoordinates.php" . "?id=" . $item['id'] . "&x=' + pos.left + '&y=' + pos.top);\n               }";
         } 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 "\n      });\n      </script>";
     echo "<div id='viewform' style='width: " . $pmDisplayview->fields['width'] . "px;height:1200px;position: relative;'>";
     foreach ($a_items as $item) {
         $itemtype2 = '';
         $size = $this->getSizeOfWidget($item['itemtype']);
         echo '<div id="draggable' . $item['id'] . '" ';
         if ($item['itemtype'] != 'PluginMonitoringServicescatalog' && $item['itemtype'] != 'PluginMonitoringComponentscatalog' && $item['itemtype'] != 'PluginMonitoringDisplayview' && $item['itemtype'] != 'host' && !($item['itemtype'] == 'PluginMonitoringWeathermap' && $item['items_id'] == -1)) {
             echo 'class="ui-widget-content" ';
         }
         if ($item['itemtype'] == 'host' || $item['itemtype'] == 'service') {
             $itemtype2 = $item['itemtype'];
             $item['itemtype'] = 'PluginMonitoringDisplayview';
         }
         if ($item['itemtype'] == 'PluginMonitoringService') {
             echo 'style="width: ' . $size['width'] . 'px; height: ' . $size['height'] . 'px; ' . 'position: absolute; left: ' . $item['x'] . 'px; top: ' . $item['y'] . 'px;">';
             $pmComponent = new PluginMonitoringComponent();
             $pmService = new PluginMonitoringService();
             if ($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 {
                 $this->delete($item);
             }
         } else {
             if ($item['itemtype'] == 'PluginMonitoringWeathermap') {
                 if ($item['items_id'] == -1) {
                     $title = " : " . __('Legend', 'monitoring');
                     echo 'style="width: 400px; height: 51px; ' . 'position: absolute; left: ' . $item['x'] . 'px; top: ' . $item['y'] . 'px;">';
                 } else {
                     $weathermap = new PluginMonitoringWeathermap();
                     $weathermap->getFromDB($item['items_id']);
                     //            $title .= " : ".Dropdown::getDropdownName(
                     //                     getTableForItemType('PluginMonitoringWeathermap'), $item['items_id']);
                     $width = $weathermap->fields['width'] * $item['extra_infos'] / 100;
                     $height = $weathermap->fields['height'] * $item['extra_infos'] / 100;
                     echo 'style="width: ' . $width . 'px; height: ' . $height . 'px; ' . 'position: absolute; left: ' . $item['x'] . 'px; top: ' . $item['y'] . 'px;">';
                 }
                 echo '<div id="weathermap-' . $item['items_id'] . '"></div>';
                 echo "<script type=\"text/javascript\">\n                  (function worker() {\n                    \$.get('" . $CFG_GLPI["root_doc"] . "/plugins/monitoring/ajax/widgetWeathermap.php?" . "id=" . $item['items_id'] . "&extra_infos=" . $item['extra_infos'] . "&glpiID=" . $_SESSION['glpiID'] . "', function(data) {\n                      \$('#weathermap-" . $item['items_id'] . "').html(data);\n                      setTimeout(worker, 50000);\n                    });\n                  })();\n               </script>";
             } else {
                 if ($item['itemtype'] == "PluginMonitoringDisplayview") {
                     echo 'style="width: ' . $size['width'] . 'px; height: ' . $size['height'] . 'px; ' . 'position: absolute; left: ' . $item['x'] . 'px; top: ' . $item['y'] . 'px;">';
                     $pmDisplayview = new PluginMonitoringDisplayview();
                     if (!empty($itemtype2)) {
                         echo "<div id=\"updatedisplayview" . $item['id'] . "\"></div>";
                         $pmDisplayview->ajaxLoad2($item['id'], $item['is_minemap']);
                     } else {
                         echo "<div id=\"updatedisplayview" . $item['items_id'] . "\"></div>";
                         $pmDisplayview->ajaxLoad($item['items_id']);
                     }
                 } else {
                     echo 'style="width: ' . $size['width'] . 'px; height: ' . $size['height'] . 'px; ' . 'position: absolute; left: ' . $item['x'] . 'px; top: ' . $item['y'] . 'px;">';
                     echo "<div id=\"update" . $item['itemtype'] . $item['items_id'] . "\"></div>";
                     echo "<script type=\"text/javascript\">";
                     echo "\n                     (function worker() {\n                       \$.get('" . $CFG_GLPI["root_doc"] . "/plugins/monitoring/ajax/updateWidgetComponentscatalog.php" . "?id=" . $item['items_id'] . "&is_minemap=" . $item['is_minemap'] . "', function(data) {\n                         \$('#update" . $item['itemtype'] . $item['items_id'] . "').html(data);\n                         setTimeout(worker, 30000);\n                       });\n                     })();";
                     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\">\n         function reloadview() {\n              \$.get('" . $CFG_GLPI["root_doc"] . "/plugins/monitoring/ajax/loadView.php?id=' + \$('#updateviewid').val() + '&config=" . $config . "', function(data) {\n                \$('#viewform').html(data);\n               });\n         }\n      </script>";
 }
  @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']);
        unset($_POST['is_recursive']);
        unset($_POST['name']);
        unset($_POST['updaterule']);
        unset($_POST['itemtypen']);
        unset($_POST['plugin_monitoring_displayviews_id']);
        unset($_POST['id']);
        $input['condition'] = exportArrayToDB($_POST);
        $pmDisplayview_rule->update($input);