function getWidgetContentForItem($widgetId) { global $CFG_GLPI, $DB; if (empty($this->form)) { $this->init(); } switch ($widgetId) { case $this->getType() . "1": $plugin = new Plugin(); if ($plugin->isActivated("tasklists")) { $widget = new PluginMydashboardDatatable(); $headers = array(__('Name'), __('Priority'), _n('Context', 'Contexts', 1, 'tasklists'), __('User'), __('Percent done'), __('Due date'), __('Action')); $query = "SELECT `glpi_plugin_tasklists_tasks`.*,`glpi_plugin_tasklists_tasktypes`.`completename` as 'type' \n FROM `glpi_plugin_tasklists_tasks`\n LEFT JOIN `glpi_plugin_tasklists_tasktypes` ON (`glpi_plugin_tasklists_tasks`.`plugin_tasklists_tasktypes_id` = `glpi_plugin_tasklists_tasktypes`.`id`) \n WHERE NOT `glpi_plugin_tasklists_tasks`.`is_deleted`\n AND `glpi_plugin_tasklists_tasks`.`state` < 2 "; $query .= getEntitiesRestrictRequest('AND', 'glpi_plugin_tasklists_tasks'); $query .= "ORDER BY `glpi_plugin_tasklists_tasks`.`priority`DESC "; $tasks = array(); if ($result = $DB->query($query)) { if ($DB->numrows($result)) { while ($data = $DB->fetch_array($result)) { //$groups = Group_User::getGroupUsers($data['groups_id']); $groupusers = Group_User::getGroupUsers($data['groups_id']); $groups = array(); foreach ($groupusers as $groupuser) { $groups[] = $groupuser["id"]; } if ($data['visibility'] == 1 && $data['users_id'] == Session::getLoginUserID() || $data['visibility'] == 2 && ($data['users_id'] == Session::getLoginUserID() || in_array(Session::getLoginUserID(), $groups)) || $data['visibility'] == 3) { $ID = $data['id']; $rand = mt_rand(); $url = Toolbox::getItemTypeFormURL("PluginTasklistsTask") . "?id=" . $data['id']; $tasks[$data['id']][0] = "<a id='task" . $data["id"] . $rand . "' target='_blank' href='{$url}'>" . $data['name'] . "</a>"; $tasks[$data['id']][0] .= Html::showToolTip($data['comment'], array('applyto' => 'task' . $data["id"] . $rand, 'display' => false)); $bgcolor = $_SESSION["glpipriority_" . $data['priority']]; $tasks[$data['id']][1] = "<div class='center' style='background-color:{$bgcolor};'>" . CommonITILObject::getPriorityName($data['priority']) . "</div>"; $tasks[$data['id']][2] = $data['type']; $tasks[$data['id']][3] = getUserName($data['users_id']); $tasks[$data['id']][4] = Dropdown::getValueWithUnit($data['percent_done'], "%"); $due_date = $data['due_date']; $display = Html::convDate($data['due_date']); if ($due_date <= date('Y-m-d') && !empty($due_date)) { $display = "<div class='deleted'>" . Html::convDate($data['due_date']) . "</div>"; } $tasks[$data['id']][5] = $display; $tasks[$data['id']][6] = "<div align='center'>"; if (Session::haveRight("plugin_tasklists", UPDATE)) { $tasks[$data['id']][6] .= "<a class='pointer' onclick=\" submitGetLink('" . $CFG_GLPI['root_doc'] . "/plugins/tasklists/front/task.form.php', {'done': 'done', 'id': '" . $data['id'] . "', '_glpi_csrf_token': '" . Session::getNewCSRFToken() . "', '_glpi_simple_form': '1'});\"><img src='" . $CFG_GLPI['root_doc'] . "/plugins/tasklists/pics/ok.png' title='" . __('Mark as done', 'tasklists') . "'></a>"; } if (Session::haveRight("plugin_tasklists", UPDATENOTE)) { $link = " <a href=\"javascript:" . Html::jsGetElementbyID('comment' . $rand) . ".dialog('open');\">"; $link .= "<img class='pointer' src='" . $CFG_GLPI['root_doc'] . "/plugins/tasklists/pics/plus.png' title='" . __('Add comment', 'tasklists') . "'>"; $link .= "</a>"; $link .= Ajax::createIframeModalWindow('comment' . $rand, $CFG_GLPI["root_doc"] . "/plugins/tasklists/front/comment.form.php?id=" . $ID, array('title' => __('Add comment', 'tasklists'), 'reloadonclose' => false, 'width' => 1100, 'display' => false, 'height' => 300)); $tasks[$data['id']][6] .= $link; } $tasks[$data['id']][6] .= "</div>"; } } } } $widget->setTabDatas($tasks); $widget->setTabNames($headers); $widget->setOption("bSort", false); $widget->toggleWidgetRefresh(); $link = "<div align='right'><a class='vsubmit' href=\"javascript:" . Html::jsGetElementbyID('task') . ".dialog('open');\">"; $link .= __('Add task', 'tasklists'); $link .= "</a></div>"; $link .= Ajax::createIframeModalWindow('task', $CFG_GLPI["root_doc"] . "/plugins/tasklists/front/task.form.php", array('title' => __('Add task', 'tasklists'), 'reloadonclose' => false, 'width' => 1180, 'display' => false, 'height' => 600)); $widget->appendWidgetHtmlContent($link); $widget->setWidgetTitle(__("Tasks list", 'tasklists')); return $widget; } else { $widget = new PluginMydashboardDatatable(); $widget->setWidgetTitle(__("Tasks list", 'tasklists')); return $widget; } break; } }
/** * @param $widgetId * @return PluginMydashboardDatatable|PluginMydashboardHBarChart|PluginMydashboardHtml|PluginMydashboardLineChart|PluginMydashboardPieChart|PluginMydashboardVBarChart */ function getWidgetContentForItem($widgetId) { global $DB; if (empty($this->form)) { $this->init(); } switch ($widgetId) { case $this->getType() . "1": $plugin = new Plugin(); if ($plugin->isActivated("ocsinventoryng")) { $query = "SELECT DISTINCT\n DATE_FORMAT(`glpi_plugin_ocsinventoryng_ocslinks`.`last_update`, '%b %Y') AS period_name,\n COUNT(`glpi_plugin_ocsinventoryng_ocslinks`.`id`) AS nb,\n DATE_FORMAT(`glpi_plugin_ocsinventoryng_ocslinks`.`last_update`, '%y%m') AS period\n FROM `glpi_plugin_ocsinventoryng_ocslinks`\n LEFT JOIN `glpi_computers`\n ON `glpi_computers`.`id`=`glpi_plugin_ocsinventoryng_ocslinks`.`computers_id`\n WHERE `glpi_computers`.`is_deleted` = '0' AND `glpi_computers`.`entities_id` = '" . $_SESSION["glpiactive_entity"] . "'"; //$query .= getEntitiesRestrictRequest("AND", Computer::getTable()) $query .= " GROUP BY period_name ORDER BY period ASC"; $widget = PluginMydashboardHelper::getWidgetsFromDBQuery('vbarchart', $query); $datas = $widget->getTabDatas(); $widget->setWidgetTitle(__("Last synchronization of computers by month", "ocsinventoryng")); $widget->setOption("xaxis", array("ticks" => PluginMydashboardBarChart::getTicksFromLabels($datas))); $widget->setOption("markers", array("show" => true, "position" => "ct", "labelFormatter" => PluginMydashboardBarChart::getLabelFormatter(2))); $widget->setOption('legend', array('show' => false)); $widget->toggleWidgetRefresh(); return $widget; } else { $widget = new PluginMydashboardDatatable(); $widget->setWidgetTitle(__("Last synchronization of computers by month", "ocsinventoryng")); return $widget; } break; case $this->getType() . "2": $plugin = new Plugin(); if ($plugin->isActivated("ocsinventoryng")) { $counts = array(); $query = "SELECT DISTINCT `glpi_computers`.`id`, COUNT(`glpi_computers`.`id`) as nb\n FROM `glpi_computers`\n LEFT JOIN `glpi_plugin_ocsinventoryng_ocslinks` ON (`glpi_computers`.`id` = `glpi_plugin_ocsinventoryng_ocslinks`.`computers_id` ) \n WHERE `glpi_computers`.`is_deleted` = '0' AND `glpi_computers`.`is_template` = '0' AND `glpi_computers`.`entities_id` = '" . $_SESSION["glpiactive_entity"] . "' "; //$query .= getEntitiesRestrictRequest("AND", Computer::getTable()) $query .= " AND ( (`glpi_plugin_ocsinventoryng_ocslinks`.`use_auto_update` = 1) )"; $result = $DB->query($query); $nb = $DB->numrows($result); if ($nb) { while ($data = $DB->fetch_assoc($result)) { $counts[__('OCS Inventory NG', 'ocsinventoryng')] = $data["nb"]; } } if ($plugin->isActivated("fusioninventory")) { $query = "SELECT DISTINCT `glpi_computers`.`id`, COUNT(`glpi_computers`.`id`) AS nb\n FROM `glpi_computers`\n LEFT JOIN `glpi_plugin_fusioninventory_inventorycomputercomputers` ON (`glpi_computers`.`id` = `glpi_plugin_fusioninventory_inventorycomputercomputers`.`computers_id` ) \n WHERE `glpi_computers`.`is_deleted` = '0' AND `glpi_computers`.`is_template` = '0' AND `glpi_computers`.`entities_id` = '" . $_SESSION["glpiactive_entity"] . "'"; //$query .= getEntitiesRestrictRequest("AND", Computer::getTable()) $query .= " AND ( `glpi_plugin_fusioninventory_inventorycomputercomputers`.`last_fusioninventory_update` NOT LIKE '' )"; $result = $DB->query($query); $nb = $DB->numrows($result); if ($nb) { while ($data = $DB->fetch_assoc($result)) { $counts[__('Fusion Inventory', 'ocsinventoryng')] = $data["nb"]; } } } if ($plugin->isActivated("fusioninventory")) { $query = "SELECT DISTINCT `glpi_computers`.`id`, COUNT(`glpi_computers`.`id`) AS nb\n FROM `glpi_computers`\n LEFT JOIN `glpi_plugin_ocsinventoryng_ocslinks` ON (`glpi_computers`.`id` = `glpi_plugin_ocsinventoryng_ocslinks`.`computers_id` ) \n LEFT JOIN `glpi_plugin_fusioninventory_inventorycomputercomputers` ON (`glpi_computers`.`id` = `glpi_plugin_fusioninventory_inventorycomputercomputers`.`computers_id` ) \n WHERE `glpi_computers`.`is_deleted` = '0' AND `glpi_computers`.`is_template` = '0' AND `glpi_computers`.`entities_id` = '" . $_SESSION["glpiactive_entity"] . "'"; //$query .= getEntitiesRestrictRequest("AND", Computer::getTable()) $query .= " AND ( (`glpi_plugin_ocsinventoryng_ocslinks`.`last_update` LIKE '' OR `glpi_plugin_ocsinventoryng_ocslinks`.`last_update` IS NULL) AND (`glpi_plugin_fusioninventory_inventorycomputercomputers`.`last_fusioninventory_update` LIKE '' OR `glpi_plugin_fusioninventory_inventorycomputercomputers`.`last_fusioninventory_update` IS NULL) )"; } else { $query = "SELECT DISTINCT `glpi_computers`.`id`, COUNT(`glpi_computers`.`id`) AS nb\n FROM `glpi_computers`\n LEFT JOIN `glpi_plugin_ocsinventoryng_ocslinks` ON (`glpi_computers`.`id` = `glpi_plugin_ocsinventoryng_ocslinks`.`computers_id` ) \n WHERE `glpi_computers`.`is_deleted` = '0' AND `glpi_computers`.`is_template` = '0' AND `glpi_computers`.`entities_id` = '" . $_SESSION["glpiactive_entity"] . "'"; //$query .= getEntitiesRestrictRequest("AND", Computer::getTable()) $query .= " AND (`glpi_plugin_ocsinventoryng_ocslinks`.`last_update` LIKE '' OR `glpi_plugin_ocsinventoryng_ocslinks`.`last_update` IS NULL) "; } $result = $DB->query($query); $nb = $DB->numrows($result); if ($nb) { while ($data = $DB->fetch_assoc($result)) { $counts[__('Without agent', 'ocsinventoryng')] = $data["nb"]; } } $widget = PluginMydashboardHelper::getWidgetsFromDBQuery('piechart', $query); $datas = $widget->getTabDatas(); $widget->setWidgetTitle(__("Detail of imported computers", "ocsinventoryng")); //$widget->setOption("spreadsheet", array("tickFormatter" => PluginMydashboardPieChart::getTickFormatter($widget->getWidgetTitle()))); $widget->setTabDatas($counts); $widget->toggleWidgetRefresh(); return $widget; } else { $widget = new PluginMydashboardDatatable(); $widget->setWidgetTitle(__("Detail of imported computers", "ocsinventoryng")); return $widget; } break; } }