Please check if the feature has not already been requested.
If not, please describe it
gantt plugin - Proposal new features
We use the plugin and it works very well for us, but we are missing some functionalities. Could you consider including them in future versions?
- Improvements for the filter: make it search in the titles of projects, tasks, and subtasks.
- Export format: try to add some format like PDF or Excel for printing.
- Add the option to Show/Hide linked tickets in subtasks and make them clickable. The idea is that it should be optional. They should only be displayed if "Show" is selected.
- Add the possibility to add tickets directly, just like it currently allows adding new subtasks. Provide the option to add tickets in subtasks and have them linked to the project and the project task.
GLPIPlanning.getHeight in planning.js
I'm using GLPI 11.0.4 as a Docker container.
In planning view I was not able to use the full available window height.
The only method I found was to manually edit line 93 of file planning.js inside the container, from
height: options.height,
to
height: '100%',
and fully refresh the page in browser.
This value seems to have a default value set at line 55
height: GLPIPlanning.getHeight,
This behaviour is a bit annoying because I have to reproduce this modification at every containter recreation.
It should be nice if that value was parameterized somehow as many other parameters are already.
Sequential Approval in Enterprise Service Management
I’m trying to implement sequential approvals on Enterprise Service Management forms/tickets. I attempted to use Business Rules, but as soon as I add an additional criterion—such as Description → Contains, alongside Approval → Granted—the rule fails to trigger.
My requirement is to have different approvers for different types of service requests (e.g., recruitment requests, termination requests, leave requests). At any stage, if an approval is refused, the approval flow should stop and the ticket should close.
The challenge is that I cannot add additional criteria in the Business Rule to differentiate request types; as a result, the rule would apply globally to all tickets where approval is granted, forcing me to configure only one user or one group as the second-level approver—which defeats the purpose. ESM forms require different approvers depending on the request type.
Has anyone managed to solve this using Business Rules?
My other option is to explore configuring Entities, which in theory should work—but so should the rules, at least on paper. :(
Include Asset Definitions in capacities for an Asset Definition
Hi,
Currently, an asset definition instance can't be configured to allow displaying links to other asset definition instances.
An example:
I have an Asset Definition "A" and another Asset Definition "B".
Asset Definition "B" contains a custom field linking to an instance of Asset Definition "A".
When I open my instance of Asset Definition "A" I cannot see any reference to the linked Asset Definition "B" instance.
GLPI should be improved to allow me to se this relation, just as I can see all other relations (via the Capacities configuration page for the Asset Definition).
In my above example the asset relation is: Asset Definition "B" 0..* -- 0..1 Asset Definition "A".
Kind regards,
Peter
ICMP (Ping) to server, open a support ticket if down.
Eu criei uma página ICMP.php via API ela abre um ticket baseado em um ping para um determinado servidor via IP . Gostaria que validasse esta função, para melhorar e acrescentar no GLPI assim não preciso integrar o zabbix no GLPI.


CÓDIGO UTILIZADO COMO FONTE EU ADAPTEI O MEU ATE CHEGAR NO PONTO AI DO CHAMADO JÁ CRIADO AO GLPI.
?php
// --- PARTE 1: Configurações e Função de Ping ---
// Configurações do GLPI
$glpi_url = 'http://<seu-servidor-glpi>/apirest.php/'; // Ex: http://localhost/glpi/apirest.php/
$app_token = '<SEU_APP_TOKEN>';
$user_token = '<SEU_USER_TOKEN>';
$entidade_id = 0; // ID da entidade (0 para entidade raiz ou o ID específico)
$categoria_id = 0; // ID da categoria do chamado (ex: 9 para Problema de Rede )
$user_id = 1; // **[NOVO]** ID do usuário solicitante (substitua pelo ID real do usuário no GLPI)
// Endereço IP ou hostname a ser pingado
$target_host = '8.8.8.8'; // Ex: IP do servidor ou Google DNS
// Função para verificar se o host está online (simples ICMP ping)
function is_host_online($host) {
// Comando ping para sistemas Linux. Ajuste para Windows se necessário.
$command = 'ping -c 3 ' . escapeshellarg($host);
exec($command, $output, $status);
return ($status === 0);
}
// --- PARTE 2: Lógica Principal ---
if (!is_host_online($target_host)) {
echo "Falha no ping para {$target_host}. Abrindo chamado no GLPI...\n";
// **[MODIFICADO]** Passando o novo user_id para a função
create_glpi_ticket($glpi_url, $app_token, $user_token, $entidade_id, $categoria_id, $target_host, $user_id);
} else {
echo "O host {$target_host} está online. Nenhum chamado foi aberto.\n";
}
// --- PARTE 3: Função para Criar Chamado no GLPI via API ---
// **[MODIFICADO]** Adicionando $user_id como parâmetro
function create_glpi_ticket($url, $app_token, $user_token, $entity_id, $category_id, $host, $user_id) {
// 1. Iniciar sessão para obter o Session Token
$session_token = get_glpi_session_token($url, $app_token, $user_token);
if (!$session_token) {
echo "Erro: Não foi possível obter o Session Token.\n";
return;
}
// 2. Criar o chamado (Ticket)
$ticket_data = json_encode([
'input' => [
'name' => "FALHA DE PING: Host {$host} inacessível", // Título do chamado
'content' => "O monitoramento automático detectou que o host {$host} não responde ao ping.\nFavor verificar a conectividade.", // Descrição
'status' => 1, // Status: Novo
'urgency' => 3, // Urgência: Média
'priority' => 3, // Prioridade: Média
'entities_id' => $entity_id,
'itilcategories_id' => $category_id,
'requesttypes_id' => 1, // Tipo de requisição (1 para Incidente, ajuste se necessário)
'users_id' => $user_id // **[NOVO]** Define o usuário solicitante pelo ID
]
]);
$ch = curl_init("{$url}Ticket");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $ticket_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'App-Token: ' . $app_token,
'Session-Token: ' . $session_token
));
$result = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode == 201) {
echo "Chamado criado com sucesso! Código de status: {$httpcode}\n";
} else {
echo "Erro ao criar chamado. Código de status: {$httpcode}. Resposta: {$result}\n";
}
// Opcional: Finalizar sessão
// logout_glpi_session($url, $app_token, $session_token);
}
function get_glpi_session_token($url, $app_token, $user_token) {
$ch = curl_init("{$url}initSession");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'App-Token: ' . $app_token,
'Authorization: user_token ' . $user_token
));
$result = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode == 200) {
$response = json_decode($result, true);
return $response['session_token'];
}
return false;
}
// Função de logout opcional
function logout_glpi_session($url, $app_token, $session_token) {
$ch = curl_init("{$url}killSession");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'App-Token: ' . $app_token,
'Session-Token: ' . $session_token
));
curl_exec($ch);
curl_close($ch);
}
?>
¿Como puedo generar un informe de los cambios que se hacen en los equipos?
Hola buenas, me gustaria generar un informe/reporte diario que me informase si hubiera algun cambio en el hardware de los equipos para enterarme al momento
[Features] Stock/Warehouse state in Orders Plugin
Handling of order item status.
Adding items release status from warehouse/stock.
There is no warehouse/stock option where you can see how many items from
orders have been issued and how many we still have in warehouse/stock
available for transfer.
As a separate item in the “order/front/menu.php” menu with a table summarizing items from orders and the ability to filter them.
technician in charge as option in actors form destination
it will be a good improvement if we can select the technician in charge of currently selected ITIL category as actor(requester, observer, assignee), doesn't seem to be assigning the technician when I let the field empty
Add an option to get full form using tag in destinations
Hello dear GLPI team,
As an example, we use forms to create a session when a new employee joins the company. The HR manager uses a form that then creates a ticket with the information from the form so that our IT team has all the necessary information. Previously, with the FormsCreator plugin, we were able to add text to the ticket (instructions for the technician in our case), then use the “##FULLFORM##” tag to display the entire form in order to obtain the information.
Since the addition of native forms, this tag is no longer available, and there is only one way to display the entire form without having to rebuild it using every tags, which is to not include any text (enabling the Auto config).
Would it be possible to add this option to display the entire form using a tag? Currently, we display the entire form without being able to give instructions to the technician...
Regards
Answers by mail, notifications for replies and settings (followups for anonymous)
Please create a feature that will allow limiting follow-ups from users to other users.
What I mean is that we need a mechanism similar to the function in the general settings Setup -> General -> Notifications for my changes, which, incidentally, does not always work.
Specifically, when correspondence is conducted by email, other participants who are copied on the email but are not direct observers in the system should not receive notifications from the GLPI system about new replies from other users.
This is because they can already see these replies in the correspondence.
However, they should be able to receive replies from the system (when a technical engineer responds within the request)
I am interested in responses (Followup) so that the system accepts responses from users, but does not send them notifications with their own response or from other users who are in this correspondence. But it could send a follow-up in case of a response from a technician in the system itself.
Ideally, this would be for users who are not registered in the system or simply do not have an account, but it could also be for users who are in the system but have never logged in, and correspond and create requests via email.
Perhaps there are already some ready-made solutions for this, such as plugins or settings in the system itself?
Thank you in advance!
Service d'assistance aux clients par UserEcho