{# # --------------------------------------------------------------------- # # GLPI - Gestionnaire Libre de Parc Informatique # # http://glpi-project.org # # @copyright 2015-2025 Teclib' and contributors. # @licence https://www.gnu.org/licenses/gpl-3.0.html # # --------------------------------------------------------------------- # # LICENSE # # This file is part of GLPI. # # This program 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 3 of the License, or # (at your option) any later version. # # This program 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 this program. If not, see . # # --------------------------------------------------------------------- #} {% import 'components/form/fields_macros.html.twig' as fields %} {# Compute values for the dropdown #} {% set actor_values = {} %} {% set values = input_value is iterable ? input_value : [input_value] %} {% for actor in values %} {% if actor matches '/^(.+)-(.+)$/' %} {% set type = actor|split('-')[0] %} {% set id = actor|split('-')[1] %} {% if actor_values[type] is not defined %} {% set actor_values = actor_values|merge({(type): []}) %} {% endif %} {% set actor_values = actor_values|merge({ (type): actor_values[type]|merge([id]) }) %} {% endif %} {% endfor %} {% set actors_dropdown = call('Glpi\\Form\\Dropdown\\FormActorsDropdown::show', [ input_name, actor_values, { 'multiple' : multiple, 'init' : true, 'allowed_types' : allowed_actors, 'aria_label' : input_label, 'specific_tags': { 'data-glpi-conditions-editor-value': '', }, } ]) %} {{ fields.htmlField( input_name, actors_dropdown, '', { 'no_label' : true, 'wrapper_class': '', 'mb' : '', 'field_class' : [ 'me-2 value-selector flex-grow-1', ]|join(' '), } ) }}