Current File : /home/escuelai/public_html/it/templates/components/kanban/item_panels/default_panel.html.twig |
{#
# ---------------------------------------------------------------------
#
# GLPI - Gestionnaire Libre de Parc Informatique
#
# http://glpi-project.org
#
# @copyright 2015-2022 Teclib' and contributors.
# @copyright 2003-2014 by the INDEPNET Development Team.
# @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 <https://www.gnu.org/licenses/>.
#
# ---------------------------------------------------------------------
#}
<div class="item-details-panel" data-itemtype="{{ itemtype }}" data-items_id="{{ item_fields.id }}">
<div class="card d-flex flex-column h-100">
<div class="card-header d-block">
<h5 class="card-title">
<a href="{{ itemtype|itemtype_form_path(item_fields.id) }}">
<i class="{{ itemtype|itemtype_icon }}" title="{{ itemtype|itemtype_name }}"></i>
{{ item_fields.name|verbatim_value }}
</a>
<button type="button" class="btn-link" onclick="$(this).closest('.item-details-panel').remove()"><i class="ti ti-x"></i></button>
</h5>
<h6 class="card-subtitle">
{% if item_fields.is_milestone %}
<i class="fas fa-map-signs me-2"></i>{{ __('Milestone') }}
{% endif %}
</h6>
</div>
<div class="card-body overflow-auto">
{% macro print_hook_section(name, itemtype, items_id) %}
{% set content = call_plugin_hook_func(name, {
"itemtype": itemtype,
"items_id": items_id
}, true) %}
{% if content is not empty and content['content']|trim is not empty %}
{{ content['content']|raw }}
<hr>
{% endif %}
{% endmacro %}
{{ _self.print_hook_section('pre_kanban_panel_content', itemtype, item_fields.id) }}
{{ _self.print_hook_section('pre_kanban_panel_main_content', itemtype, item_fields.id) }}
{% set content = item_fields.content|safe_html %}
{% set preview = content|length > 1000 ? content|slice(0, 1000) ~ ' (...)' : content %}
<div class="col-12 mb-3 rich_text_container">{{ preview|safe_html }}</div>
{{ _self.print_hook_section('post_kanban_panel_main_content', itemtype, item_fields.id) }}
<h5 class="d-flex justify-content-between">
<span>{{ __('Team') }}</span>
<button type="button" class="btn-link kanban-item-edit-team"><i class="fas fa-plus"></i></button>
</h5>
{% if team is not empty %}
{% set item = itemtype|itemtype_class %}
{% if item is usingtrait('Glpi\\Features\\Teamwork') %}
{% for team_role in item.getTeamRoles() %}
{% set role_members = team|filter(m => m.role == team_role) %}
{% if role_members|length > 0 %}
<h5>{{ item.getTeamRoleName(team_role, get_plural_number()) }}</h5>
<ul class="list-group team-list" data-role="{{ team_role }}">
{% for team_member in role_members %}
<li class="list-group-item d-flex justify-content-between p-2" data-itemtype="{{ team_member.itemtype }}"
data-items_id="{{ team_member.items_id }}"
data-name="{{ team_member.display_name|default(team_member.name)|verbatim_value }}"
data-firstname="{{ team_member.firstname|verbatim_value }}"
data-realname="{{ team_member.realname|verbatim_value }}">
{# Contents added in Kanban JS #}
</li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}
{% endif %}
{% else %}
{{ __('No team members') }}
{% endif %}
<hr>
{{ _self.print_hook_section('post_kanban_panel_content', itemtype, item_fields.id) }}
</div>
<div class="card-footer border-top flex-shrink-0 text-center p-3">
<a class="btn btn-outline w-100" target="_blank" rel="noopener" href="{{ itemtype|itemtype_form_path(item_fields.id) }}">
<span class="pr-1">{{ __('Open full form') }}</span>
</a>
</div>
</div>
</div>