Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean UI in Stat front files #16980

Merged
merged 12 commits into from May 6, 2024
171 changes: 77 additions & 94 deletions front/stat.graph.php
Expand Up @@ -33,16 +33,16 @@
* ---------------------------------------------------------------------
*/

use Glpi\Application\View\TemplateRenderer;
use Glpi\Stat\Data\Graph\StatDataSatisfaction;
use Glpi\Stat\Data\Graph\StatDataSatisfactionSurvey;
use Glpi\Stat\Data\Graph\StatDataTicketAverageTime;
use Glpi\Stat\Data\Graph\StatDataTicketNumber;

/**
* @var array $CFG_GLPI
* @var \DBmysql $DB
*/
global $CFG_GLPI, $DB;
global $DB;

include('../inc/includes.php');

Expand All @@ -59,43 +59,26 @@
if (array_key_exists($key, $_GET) && preg_match('/\d{4}-\d{2}-\d{2}/', (string)$_GET[$key]) !== 1) {
unset($_GET[$key]);
}
if (array_key_exists($key, $_POST) && preg_match('/\d{4}-\d{2}-\d{2}/', (string)$_POST[$key]) !== 1) {
unset($_POST[$key]);
}
}
if (empty($_POST["date1"]) && empty($_POST["date2"])) {
if (isset($_GET["date1"])) {
$_POST["date1"] = $_GET["date1"];
}
if (isset($_GET["date2"])) {
$_POST["date2"] = $_GET["date2"];
}
}

if (
!empty($_POST["date1"])
&& !empty($_POST["date2"])
&& (strcmp($_POST["date2"], $_POST["date1"]) < 0)
!empty($_GET["date1"])
&& !empty($_GET["date2"])
&& (strcmp($_GET["date2"], $_GET["date1"]) < 0)
) {
$tmp = $_POST["date1"];
$_POST["date1"] = $_POST["date2"];
$_POST["date2"] = $tmp;
$tmp = $_GET["date1"];
$_GET["date1"] = $_GET["date2"];
$_GET["date2"] = $tmp;
}

$cleantarget = preg_replace("/[&]date[12]=[0-9-]*/", "", $_SERVER['QUERY_STRING']);
$cleantarget = preg_replace("/[&]*id=([0-9]+[&]{0,1})/", "", $cleantarget);
$cleantarget = preg_replace("/&/", "&amp;", $cleantarget);
$cleantarget = preg_replace("/&date[12]=[0-9-]*/", "", $_SERVER['QUERY_STRING']);
$cleantarget = preg_replace("/&*id=(\d+&?)/", "", $cleantarget);

$next = 0;
$prev = 0;
$title = "";
$parent = 0;

$showuserlink = 0;
if (Session::haveRight('user', READ)) {
$showuserlink = 1;
}

$val1 = null;
$val2 = null;
$values = [];
Expand All @@ -105,31 +88,41 @@
case "technician":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$link = User::canView() ? 1 : 0;
$name = $item->getAssignName($_GET["id"], 'User', $link);
$title = sprintf(
__('%1$s: %2$s'),
__('Technician'),
$item->getAssignName($_GET["id"], 'User', $showuserlink)
__s('%1$s: %2$s'),
__s('Technician'),
$link ? $name : htmlspecialchars($name)
);
break;

case "suppliers_id_assign":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$link = Supplier::canView() ? 1 : 0;
$name = $item->getAssignName($_GET["id"], 'Supplier', $link);
$title = sprintf(
__('%1$s: %2$s'),
__s('%1$s: %2$s'),
Supplier::getTypeName(1),
$item->getAssignName($_GET["id"], 'Supplier', $showuserlink)
$link ? $name : htmlspecialchars($name)
);
break;

case "users_id_recipient":
case "user":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$title = sprintf(__('%1$s: %2$s'), User::getTypeName(1), getUserName($_GET["id"], $showuserlink));
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$link = User::canView() ? 1 : 0;
$name = getUserName($_GET["id"], $link);
$title = sprintf(
__s('%1$s: %2$s'),
User::getTypeName(1),
$link ? $name : htmlspecialchars($name)
);
break;

case "itilcategories_tree":
Expand All @@ -141,8 +134,8 @@
$val2 = "";
$values = Stat::getItems(
$_GET["itemtype"],
$_POST["date1"],
$_POST["date2"],
$_GET["date1"],
$_GET["date2"],
$_GET["type"],
$parent
);
Expand All @@ -151,6 +144,7 @@
_n('Category', 'Categories', 1),
Dropdown::getDropdownName("glpi_itilcategories", $_GET["id"])
);
$title = htmlspecialchars($title);
break;

case 'locations_tree':
Expand All @@ -162,8 +156,8 @@
$val2 = '';
$values = Stat::getItems(
$_GET['itemtype'],
$_POST['date1'],
$_POST['date2'],
$_GET['date1'],
$_GET['date2'],
$_GET['type'],
$parent
);
Expand All @@ -172,13 +166,15 @@
Location::getTypeName(1),
Dropdown::getDropdownName('glpi_locations', $_GET['id'])
);
$title = htmlspecialchars($title);
break;

case "type":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$title = sprintf(__('%1$s: %2$s'), _n('Type', 'Types', 1), Ticket::getTicketTypeName($_GET["id"]));
$title = htmlspecialchars($title);
break;

case 'group_tree':
Expand All @@ -191,8 +187,8 @@
$val2 = "";
$values = Stat::getItems(
$_GET["itemtype"],
$_POST["date1"],
$_POST["date2"],
$_GET["date1"],
$_GET["date2"],
$_GET["type"],
$parent
);
Expand All @@ -201,74 +197,81 @@
Group::getTypeName(1),
Dropdown::getDropdownName("glpi_groups", $_GET["id"])
);
$title = htmlspecialchars($title);
break;

case "groups_id_assign":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$title = sprintf(
__('%1$s: %2$s'),
Group::getTypeName(1),
Dropdown::getDropdownName("glpi_groups", $_GET["id"])
);
$title = htmlspecialchars($title);
break;

case "priority":
case "urgency":
case "impact":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$title = match ($_GET['type']) {
'priority' => sprintf(__('%1$s: %2$s'), __('Priority'), $item::getPriorityName($_GET["id"])),
'urgency' => sprintf(__('%1$s: %2$s'), __('Urgency'), $item::getUrgencyName($_GET["id"])),
'impact' => sprintf(__('%1$s: %2$s'), __('Impact'), $item->getImpactName($_GET["id"])),
};
$title = htmlspecialchars($title);
break;

case "usertitles_id":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$title = sprintf(
__('%1$s: %2$s'),
_x('person', 'Title'),
Dropdown::getDropdownName("glpi_usertitles", $_GET["id"])
);
$title = htmlspecialchars($title);
break;

case "solutiontypes_id":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$title = sprintf(
__('%1$s: %2$s'),
SolutionType::getTypeName(1),
Dropdown::getDropdownName("glpi_solutiontypes", $_GET["id"])
);
$title = htmlspecialchars($title);
break;

case "usercategories_id":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$title = sprintf(
__('%1$s: %2$s'),
_n('Category', 'Categories', 1),
Dropdown::getDropdownName("glpi_usercategories", $_GET["id"])
);
$title = htmlspecialchars($title);
break;

case "requesttypes_id":
$val1 = $_GET["id"];
$val2 = "";
$values = Stat::getItems($_GET["itemtype"], $_POST["date1"], $_POST["date2"], $_GET["type"]);
$values = Stat::getItems($_GET["itemtype"], $_GET["date1"], $_GET["date2"], $_GET["type"]);
$title = sprintf(
__('%1$s: %2$s'),
RequestType::getTypeName(1),
Dropdown::getDropdownName("glpi_requesttypes", $_GET["id"])
);
$title = htmlspecialchars($title);
break;

case "device":
Expand All @@ -278,8 +281,8 @@
$device_table = $item->getTable();
$values = Stat::getItems(
$_GET["itemtype"],
$_POST["date1"],
$_POST["date2"],
$_GET["date1"],
$_GET["date2"],
$_GET["champ"]
);

Expand All @@ -297,6 +300,7 @@
$item::getTypeName(),
$current['designation']
);
$title = htmlspecialchars($title);
}
break;

Expand All @@ -307,15 +311,16 @@
$table = $item::getTable();
$values = Stat::getItems(
$_GET["itemtype"],
$_POST["date1"],
$_POST["date2"],
$_GET["date1"],
$_GET["date2"],
$_GET["champ"]
);
$title = sprintf(
__('%1$s: %2$s'),
$item::getTypeName(),
Dropdown::getDropdownName($table, $_GET["id"])
);
$title = htmlspecialchars($title);
}
break;
}
Expand All @@ -339,50 +344,28 @@

$stat = new Stat();

echo "<div class='center'>";
echo "<table class='tab_cadre'>";
echo "<tr><td>";
if ($prev > 0) {
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?$cleantarget&amp;date1=" . $_POST["date1"] . "&amp;date2=" .
$_POST["date2"] . "&amp;id=$prev\">
<img src='" . $CFG_GLPI["root_doc"] . "/pics/left.png' alt=\"" . __s('Previous') . "\"
title=\"" . __s('Previous') . "\"></a>";
}
echo "</td>";

echo "<td width='400' class='center b'>$title</td>";
echo "<td>";
if ($next > 0) {
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?$cleantarget&amp;date1=" . $_POST["date1"] . "&amp;date2=" .
$_POST["date2"] . "&amp;id=$next\">
<img src='" . $CFG_GLPI["root_doc"] . "/pics/right.png' alt=\"" . __s('Next') . "\"
title=\"" . __s('Next') . "\"></a>";
}
echo "</td>";
echo "</tr>";
echo "</table></div><br>";

$target = preg_replace("/&/", "&amp;", $_SERVER["REQUEST_URI"]);

echo "<form method='post' name='form' action='$target'><div class='center'>";
echo "<table class='tab_cadre'>";
echo "<tr class='tab_bg_2'><td class='right'>" . __('Start date') . "</td><td>";
Html::showDateField("date1", ['value' => $_POST["date1"]]);
echo "</td><td rowspan='2' class='center'>";
echo "<input type='hidden' name='itemtype' value=\"" . htmlspecialchars($_GET['itemtype']) . "\">";
echo "<input type='submit' class='btn btn-primary' value=\"" . __s('Display report') . "\"></td></tr>";

echo "<tr class='tab_bg_2'><td class='right'>" . __('End date') . "</td><td>";
Html::showDateField("date2", ['value' => $_POST["date2"]]);
echo "</td></tr>";
echo "</table></div>";

Html::closeForm();
TemplateRenderer::getInstance()->display('pages/assistance/stats/single_item_pager.html.twig', [
'php_self' => $_SERVER['PHP_SELF'],
'cleantarget' => $cleantarget,
'prev' => $prev,
'next' => $next,
'title' => $title,
]);

TemplateRenderer::getInstance()->display('pages/assistance/stats/form.html.twig', [
'target' => 'stat.graph.php',
'itemtype' => $_GET['itemtype'],
'id' => $_GET["id"],
'type' => $_GET['type'],
'date1' => $_GET["date1"],
'date2' => $_GET["date2"],
'champ' => $_GET["champ"] ?? 0,
]);

$stat_params = [
'itemtype' => $_GET['itemtype'],
'date1' => $_POST['date1'],
'date2' => $_POST['date2'],
'date1' => $_GET['date1'],
'date2' => $_GET['date2'],
'type' => $_GET['type'],
'val1' => $val1,
'val2' => $val2,
Expand Down