Files
tomolino-processmaker/ajax/dropdownProcesses.php
tomolimo f8dde22c50 Version 3.4.5
Compatibility with GLPI 9.2
2019-01-14 16:19:24 +01:00

81 lines
2.4 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 = Search::makeTextSearch($_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']);
$result = PluginProcessmakerProcess::getSqlSearchResult(false, $search);
if ($DB->numrows($result)) {
while ($data = $DB->fetch_array($result)) {
$process_entities = PluginProcessmakerProcess::getEntitiesForProfileByProcess($data["id"], $_SESSION['glpiactiveprofile']['id'], true);
if ($processall || in_array( $_REQUEST["entity_restrict"], $process_entities)) {
array_push( $processes, [ 'id' => $data["id"],
'text' => $data["name"] ]);
$count++;
}
}
}
$ret['results'] = $processes;
$ret['count'] = $count;
echo json_encode($ret);