Added two new events per tasks (new and update) Added possibility to send spontaneous emails Fixed various CS typos Set version to 3.6.3 fixes #77
90 lines
2.9 KiB
PHP
90 lines
2.9 KiB
PHP
<?php
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Original Author of file: Olivier Moron
|
|
// Purpose of file: to return list of processes which can be started by end-user
|
|
// ----------------------------------------------------------------------
|
|
|
|
// Direct access to file
|
|
if (strpos($_SERVER['PHP_SELF'], "dropdownProcesses.php")) {
|
|
include ("../../../inc/includes.php");
|
|
header("Content-Type: text/html; charset=UTF-8");
|
|
Html::header_nocache();
|
|
}
|
|
|
|
if (!defined('GLPI_ROOT')) {
|
|
die("Can not access directly to this file");
|
|
}
|
|
|
|
|
|
Session::checkLoginUser();
|
|
|
|
if (isset($_REQUEST["entity_restrict"])
|
|
&& !is_array($_REQUEST["entity_restrict"])
|
|
&& (substr($_REQUEST["entity_restrict"], 0, 1) === '[')
|
|
&& (substr($_REQUEST["entity_restrict"], -1) === ']')) {
|
|
$_REQUEST["entity_restrict"] = json_decode($_REQUEST["entity_restrict"]);
|
|
$_REQUEST["entity_restrict"] = $_REQUEST["entity_restrict"][0];
|
|
}
|
|
|
|
// Security
|
|
if (!($item = getItemForItemtype($_REQUEST['itemtype']))) {
|
|
exit();
|
|
}
|
|
|
|
$one_item = -1;
|
|
if (isset($_POST['_one_id'])) {
|
|
$one_item = $_POST['_one_id'];
|
|
}
|
|
// Count real items returned
|
|
$count = 0;
|
|
|
|
if (!isset($_REQUEST['emptylabel']) || ($_REQUEST['emptylabel'] == '')) {
|
|
$_REQUEST['emptylabel'] = Dropdown::EMPTY_VALUE;
|
|
}
|
|
|
|
$search="";
|
|
if (!empty($_REQUEST['searchText'])) {
|
|
$search = ['LIKE', Search::makeTextSearchValue($_REQUEST['searchText'])];
|
|
}
|
|
|
|
$processes = [];
|
|
|
|
// Empty search text : display first
|
|
if (empty($_REQUEST['searchText'])) {
|
|
if ($_REQUEST['display_emptychoice']) {
|
|
if (($one_item < 0) || ($one_item == 0)) {
|
|
array_push($processes, ['id' => 0,
|
|
'text' => $_REQUEST['emptylabel']]);
|
|
}
|
|
}
|
|
}
|
|
|
|
$processall = (isset($_REQUEST['specific_tags']['process_restrict']) && !$_REQUEST['specific_tags']['process_restrict']);
|
|
$count_cases_per_item = isset($_REQUEST['specific_tags']['count_cases_per_item']) ? $_REQUEST['specific_tags']['count_cases_per_item'] : [];
|
|
|
|
$result = PluginProcessmakerProcess::getSqlSearchResult(false, $search);
|
|
|
|
//if ($DB->numrows($result)) {
|
|
// while ($data = $DB->fetch_array($result)) {
|
|
//if ($result->numrows()) {
|
|
foreach ($result as $data) {
|
|
$process_entities = PluginProcessmakerProcess::getEntitiesForProfileByProcess($data["id"], $_SESSION['glpiactiveprofile']['id'], true);
|
|
$can_add = $data['max_cases_per_item'] == 0 || !isset($count_cases_per_item[$data["id"]]) || $count_cases_per_item[$data["id"]] < $data['max_cases_per_item'];
|
|
if ($processall
|
|
|| ($data['maintenance'] != 1
|
|
&& in_array( $_REQUEST["entity_restrict"], $process_entities)
|
|
&& $can_add) ) {
|
|
|
|
array_push( $processes, ['id' => $data["id"],
|
|
'text' => $data["name"]
|
|
]);
|
|
$count++;
|
|
}
|
|
}
|
|
//}
|
|
|
|
$ret['results'] = $processes;
|
|
$ret['count'] = $count;
|
|
echo json_encode($ret);
|