Files
MYSOPHAL/ajax/dropdownItilActors.php
2025-08-07 13:15:31 +01:00

217 lines
9.3 KiB
PHP

<?php
/**
* ---------------------------------------------------------------------
* GLPI - Gestionnaire Libre de Parc Informatique
* Copyright (C) 2015-2020 Teclib' and contributors.
*
* http://glpi-project.org
*
* based on GLPI - Gestionnaire Libre de Parc Informatique
* Copyright (C) 2003-2014 by the INDEPNET Development Team.
*
* ---------------------------------------------------------------------
*
* LICENSE
*
* This file is part of GLPI.
*
* GLPI is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* GLPI is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GLPI. If not, see <http://www.gnu.org/licenses/>.
* ---------------------------------------------------------------------
*/
include ('../inc/includes.php');
include_once("../functionsophalglpi.php");
header("Content-Type: text/html; charset=UTF-8");
Html::header_nocache();
Session::checkCentralAccess();
// Make a select box
if (isset($_POST["type"])
&& isset($_POST["actortype"])
&& isset($_POST["itemtype"])) {
$rand = mt_rand();
if ($item = getItemForItemtype($_POST["itemtype"])) {
switch ($_POST["type"]) {
case "user" :
$right = 'all';
// Only steal or own ticket whit empty assign
if ($_POST["actortype"] == 'assign') {
$right = "own_ticket";
if (!$item->canAssign()) {
//sophal
$CanAttribue = CanAttribue($_SESSION['glpiactiveprofile']['name']);
if($CanAttribue == 1){
$right = 'all';
}else{
$right = 'id';
}
}
}
$options = ['name' => '_itil_'.$_POST["actortype"].'[users_id]',
'entity' => $_POST['entity_restrict'],
'right' => $right,
'rand' => $rand,
'ldap_import' => true];
if ($CFG_GLPI["notifications_mailing"]) {
$withemail = (isset($_POST["allow_email"]) ? $_POST["allow_email"] : false);
$paramscomment = ['value' => '__VALUE__',
'allow_email' => $withemail,
'field' => "_itil_".$_POST["actortype"],
'use_notification' => $_POST["use_notif"]];
// Fix rand value
$options['rand'] = $rand;
$options['toupdate'] = ['value_fieldname' => 'value',
'to_update' => "notif_user_$rand",
'url' => $CFG_GLPI["root_doc"].
"/ajax/uemailUpdate.php",
'moreparams' => $paramscomment];
}
if (($_POST["itemtype"] == 'Ticket')
&& ($_POST["actortype"] == 'assign')) {
$toupdate = [];
if (isset($options['toupdate']) && is_array($options['toupdate'])) {
$toupdate[] = $options['toupdate'];
}
$toupdate[] = ['value_fieldname' => 'value',
'to_update' => "countassign_$rand",
'url' => $CFG_GLPI["root_doc"].
"/ajax/ticketassigninformation.php",
'moreparams' => ['users_id_assign' => '__VALUE__']];
$options['toupdate'] = $toupdate;
}
$rand = User::dropdown($options);
// Display active tickets for a tech
// Need to update information on dropdown changes
if (($_POST["itemtype"] == 'Ticket')
&& ($_POST["actortype"] == 'assign')) {
echo "<br><span id='countassign_$rand'>--";
echo "</span>";
}
if ($CFG_GLPI["notifications_mailing"]) {
echo "<br><span id='notif_user_$rand'>";
if ($withemail) {
echo __('Email followup').'&nbsp;';
$rand = Dropdown::showYesNo('_itil_'.$_POST["actortype"].'[use_notification]', $_POST["use_notif"]);
echo '<br>';
printf(__('%1$s: %2$s'), _n('Email', 'Emails', 1),
"<input type='text' size='25' name='_itil_".$_POST["actortype"].
"[alternative_email]'>");
}
echo "</span>";
}
break;
case "group" :
$cond = ['is_requester' => 1];
if ($_POST["actortype"] == 'assign') {
$cond = ['is_assign' => 1];
}
if ($_POST["actortype"] == 'observer') {
$cond = ['is_watcher' => 1];
}
$param = [
'name' => '_itil_'.$_POST["actortype"].'[groups_id]',
'entity' => $_POST['entity_restrict'],
'condition' => $cond,
'rand' => $rand
];
if (($_POST["itemtype"] == 'Ticket')
&& ($_POST["actortype"] == 'assign')) {
$param['toupdate'] = ['value_fieldname' => 'value',
'to_update' => "countgroupassign_$rand",
'url' => $CFG_GLPI["root_doc"].
"/ajax/ticketassigninformation.php",
'moreparams' => ['groups_id_assign'
=> '__VALUE__']];
}
$rand = Group::dropdown($param);
if (($_POST["itemtype"] == 'Ticket')
&& ($_POST["actortype"] == 'assign')) {
echo "<br><span id='countgroupassign_$rand'>";
echo "</span>";
}
break;
case "supplier" :
$options = ['name' => '_itil_'.$_POST["actortype"].'[suppliers_id]',
'entity' => $_POST['entity_restrict'],
'rand' => $rand];
if ($CFG_GLPI["notifications_mailing"]) {
$withemail = (isset($_POST["allow_email"]) ? $_POST["allow_email"] : false);
$paramscomment = ['value' => '__VALUE__',
'allow_email' => $withemail,
'field' => '_itil_'.$_POST["actortype"],
'typefield' => "supplier",
'use_notification' => $_POST["use_notif"]];
// Fix rand value
$options['rand'] = $rand;
$options['toupdate'] = ['value_fieldname' => 'value',
'to_update' => "notif_supplier_$rand",
'url' => $CFG_GLPI["root_doc"].
"/ajax/uemailUpdate.php",
'moreparams' => $paramscomment];
}
if ($_POST["itemtype"] == 'Ticket') {
$toupdate = [];
if (isset($options['toupdate']) && is_array($options['toupdate'])) {
$toupdate[] = $options['toupdate'];
}
$toupdate[] = ['value_fieldname' => 'value',
'to_update' => "countassign_$rand",
'url' => $CFG_GLPI["root_doc"].
"/ajax/ticketassigninformation.php",
'moreparams' => ['suppliers_id_assign' => '__VALUE__']];
$options['toupdate'] = $toupdate;
}
$rand = Supplier::dropdown($options);
// Display active tickets for a supplier
// Need to update information on dropdown changes
if ($_POST["itemtype"] == 'Ticket') {
echo "<span id='countassign_$rand'>";
echo "</span>";
}
if ($CFG_GLPI["notifications_mailing"]) {
echo "<br><span id='notif_supplier_$rand'>";
if ($withemail) {
echo __('Email followup').'&nbsp;';
$rand = Dropdown::showYesNo('_itil_'.$_POST["actortype"].'[use_notification]', $_POST['use_notif']);
echo '<br>';
printf(__('%1$s: %2$s'), _n('Email', 'Emails', 1),
"<input type='text' size='25' name='_itil_".$_POST["actortype"].
"[alternative_email]'>");
}
echo "</span>";
}
break;
}
}
}