Redmine/templates/project_linked.html.twig
Gemini 80d1576a80 Redmine Integration 1.3.0
Plugin de integração GLPI <-> Redmine:
- Config nativa (Twig) com API key cifrada (GLPIKey)
- Vínculo projeto GLPI <-> projeto Redmine (aba do projeto) + categoria por vínculo
- 1 issue Redmine por chamado; defaults (tracker/priority/activity) e mapa de status
- Tempo das TicketTasks -> time entries (gate em "Feito"), idempotente
- Autores via impersonation (X-Redmine-Switch-User) + auto-membership por role
- Mapeamento de usuários GLPI->Redmine (auto-match por e-mail + overrides)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 18:32:19 -03:00

38 lines
1.7 KiB
Twig

{% import 'components/form/fields_macros.html.twig' as fields %}
<div class="alert alert-success mt-3 d-flex align-items-center">
<i class="ti ti-link me-2"></i>
{{ __('Projeto vinculado à issue Redmine de ID', 'redmine') }} <strong class="ms-1">#{{ redmine_project_id }}</strong>
</div>
<form method="post" action="{{ action_url }}" class="mt-2">
<input type="hidden" name="_glpi_csrf_token" value="{{ csrf_token_value }}">
<input type="hidden" name="projects_id" value="{{ projects_id }}">
<input type="hidden" name="action" value="set_category">
<div class="card">
<div class="card-header">
<h5 class="mb-0"><i class="ti ti-category me-1"></i>{{ __('Categoria padrão das tarefas deste projeto', 'redmine') }}</h5>
</div>
<div class="card-body">
{% if cat_options is empty %}
<div class="alert alert-secondary mb-0">
{{ __('Este projeto Redmine não possui categorias cadastradas.', 'redmine') }}
</div>
{% else %}
<div class="row">
{{ fields.dropdownArrayField('default_category_id', default_category_id, cat_options, __('Categoria padrão', 'redmine'), {
'display_emptychoice': true
}) }}
</div>
{% endif %}
</div>
{% if cat_options is not empty %}
<div class="card-footer text-end">
<button type="submit" class="btn btn-primary">
<i class="ti ti-device-floppy me-1"></i>{{ _x('button', 'Save') }}
</button>
</div>
{% endif %}
</div>
</form>