39 | {% endif %}
40 |
41 | {% for field in fields %}
42 |
43 | {% set type = field['type'] %}
44 | {% set name = field['name'] %}
45 | {% set label = field['label'] %}
46 | {% set value = item.input[name] ?: field['value'] %}
47 | {% set readonly = field['is_readonly'] %}
48 | {% set rand = random() %}
49 |
50 | {% set field_options = field_options|merge({
51 | 'readonly': readonly or not canedit,
52 | 'required': field['mandatory'],
53 | 'full_width': already_wrapped
54 | }) %}
55 |
56 | {% if type == 'header' %}
57 | {{ macros.largeTitle(label) }}
58 |
59 | {% elseif type == 'text' %}
60 | {{ macros.textField(name, value, label, field_options) }}
61 |
62 | {% elseif type == 'number' %}
63 | {{ macros.numberField(name, value, label, field_options|merge({step: 'any', min: ''})) }}
64 |
65 | {% elseif type == 'url' %}
66 | {% set ext_link %}
67 | {% if value|length %}
68 |
69 |
70 | {{ __('show', 'fields') }}
71 |
72 | {% endif %}
73 | {% endset %}
74 | {{ macros.textField(name, value, label, field_options|merge({
75 | 'type': 'url',
76 | 'add_field_html': ext_link
77 | })) }}
78 |
79 | {% elseif type == 'textarea' %}
80 | {{ macros.textareaField(name, value, label, field_options) }}
81 |
82 | {% elseif type == 'richtext' %}
83 | {{ macros.textareaField(name, value, label, field_options|merge({
84 | 'enable_richtext': true,
85 | 'field_class': 'col-12',
86 | 'label_class': '',
87 | 'input_class': '',
88 | 'align_label_right': false,
89 | 'mb': 'm-2'
90 | })) }}
91 |
92 | {% elseif type == 'yesno' %}
93 | {{ macros.dropdownYesNo(name, value, label, field_options) }}
94 |
95 | {% elseif type == 'date' %}
96 | {{ macros.dateField(name, value, label, field_options) }}
97 |
98 | {% elseif type == 'datetime' %}
99 | {{ macros.datetimeField(name, value, label, field_options) }}
100 |
101 | {% elseif type == 'dropdown' %}
102 | {% set dropdown_options = {'entity': item.getEntityID()} %}
103 | {% if field['multiple'] %}
104 | {% set dropdown_options = dropdown_options|merge({'multiple': true}) %}
105 | {% endif %}
106 | {% if item.isRecursive() %}
107 | {% set dropdown_options = dropdown_options|merge({'entity_sons': true}) %}
108 | {% endif %}
109 | {% if "dropdowns_id" in name %}
110 | {% set dropdown_itemtype = call("getItemtypeForForeignKeyField", [name]) %}
111 | {% else %}
112 | {% set dropdown_itemtype = call("PluginFieldsDropdown::getClassname", [name]) %}
113 | {% endif %}
114 | {% set name_fk = call("getForeignKeyFieldForItemType", [dropdown_itemtype]) %}
115 | {{ macros.dropdownField(dropdown_itemtype, name_fk, value, label, field_options|merge(dropdown_options)) }}
116 |
117 | {% elseif type matches '/^dropdown-.+/i' %}
118 | {% if not massiveaction %}
119 | {% set dropdown_options = {'condition': field['dropdown_condition'], 'entity': item.getEntityID()} %}
120 | {% if field['dropdown_class'] == 'User' %}
121 | {% set dropdown_options = dropdown_options|merge({'entity': -1, 'right': 'all'}) %}
122 | {% elseif field['dropdown_class'] == 'Entity' or item.isRecursive() %}
123 | {% set dropdown_options = dropdown_options|merge({'entity_sons': true}) %}
124 | {% endif %}
125 | {% if field['multiple'] %}
126 | {% set dropdown_options = dropdown_options|merge({'multiple': true}) %}
127 | {% endif %}
128 | {{ macros.dropdownField(field['dropdown_class'], name, value, label, field_options|merge(dropdown_options)) }}
129 | {% endif %}
130 |
131 | {% elseif type == 'glpi_item' %}
132 | {% if not massiveaction %}
133 | {% set itemtype_prefix = 'itemtype_' %}
134 | {% set items_id_prefix = 'items_id_' %}
135 |
136 | {% if container.fields['type'] == 'tab' %}
137 | {# start new row for glpi object #}
138 |
139 | {% endif %}
140 |
141 | {{ macros.dropdownArrayField(itemtype_prefix ~ name, value.itemtype, field['allowed_values'], label, field_options|merge({
142 | 'rand': rand,
143 | 'display_emptychoice': true,
144 | })) }}
145 |
182 | {% endif %}
183 | {% endif %}
184 | {% endfor %}
185 |
186 | {% if not already_wrapped %}
187 |