{% extends '@ChillEvent/layout.html.twig' %}

{% block title 'Event : %label%'|trans({ '%label%' : event.name } ) %}

{% import '@ChillPerson/Person/macro.html.twig' as person_macro %}

{% block js %}
    {{ parent() }}
    {{ encore_entry_script_tags('mod_pickentity_type') }}
    {{ encore_entry_script_tags('mod_document_action_buttons_group') }}
{% endblock %}

{% block css %}
    {{ parent() }}
    {{ encore_entry_link_tags('mod_pickentity_type') }}
    {{ encore_entry_link_tags('mod_document_action_buttons_group') }}
{% endblock %}

{% macro insert_onthefly(type, entity, parent = null) %}
    {% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with {
        action: 'show', displayBadge: true,
        targetEntity: { name: type, id: entity.id },
        buttonText: entity|chill_entity_render_string,
        isDead: entity.deathdate is defined and entity.deathdate is not null,
        parent: parent
    } %}
{% endmacro %}

{% block event_content -%}
<div class="col-10">
    <h1>{{ 'Details of an event'|trans }}</h1>

    <table class="table table-bordered border-dark align-middle">
        <tbody>
            <tr>
                <th>{{ 'Circle'|trans }}</th>
                <td>{{ event.circle.name|localize_translatable_string }}</td>
            </tr>
            <tr>
                <th>{{ 'Center'|trans }}</th>
                <td>{{ event.center.name }}</td>
            </tr>
            <tr>
                <th>{{ 'Name'|trans }}</th>
                <td>{{ event.name }}</td>
            </tr>
            <tr>
                <th>{{ 'Date'|trans }}</th>
                <td>{{ event.date|format_date('long') }}</td>
            </tr>
            <tr>
                <th>{{ 'Event type'|trans }}</th>
                <td>{{ event.type.name|localize_translatable_string }}</td>
            </tr>
            <tr>
                <th>{{ 'event.theme.label'|trans }}
                <td>
                {% for t in event.themes %}
                    {{ t|chill_entity_render_box }}
                {% endfor %}
                </td>
            </tr>
            <tr>
                <th>{{ 'Moderator'|trans }}</th>
                <td>{{ event.moderator|chill_entity_render_string }}</td>
            </tr>
            <tr>
                <th>{{ 'event.animators.intern'|trans }}</th>
                <td>
                    {% for a in event.animatorsIntern %}
                        {{ _self.insert_onthefly('user', a) }}
                    {% endfor %}
                </td>
            </tr>
            <tr>
                <th>{{ 'event.animators.extern'|trans }}</th>
                <td>
                    {% for a in event.animatorsExtern %}
                        {{ _self.insert_onthefly('thirdparty', a) }}
                    {% endfor %}
                </td>
            </tr>
            <tr>
                <th>{{ 'event.fields.location'|trans }}</th>
                <td>
                    {% if event.location is not null %}
                        {{ event.location.name }}
                        {% if event.location.address is not same as(null) %}{{ event.location.address|chill_entity_render_box({'multiline': false, 'with_picto': (event.location.name is empty), 'details_button': true}) }}{% endif %}
                    {% else %}
                        <span class="chill-no-data-statement">{{ 'Any location for this event'|trans }}</span>
                    {% endif %}
                </td>
            </tr>
        </tbody>
    </table>

    <div class="budget-wrapper" style="background-color: whitesmoke; padding: 1rem; margin-bottom: .5rem;">
        {% set resources = event.budgetElements|filter(e => e.kind.type.value == 'Resource') %}
        {% set charges = event.budgetElements|filter(e => e.kind.type.value == 'Charge') %}

        <h2>Budget de l'événement</h2>

        <h3>Ressources</h3>
        {% if resources is not empty %}
            <table class="table table-bordered border-dark align-middle">
                <thead>
                <tr>
                    <th>{{ 'event.budget.resource type'|trans }}</th>
                    <th>{{ 'event.budget.amount'|trans }}</th>
                    <th>{{ 'event.budget.comment'|trans }}</th>
                </tr>
                </thead>
                <tbody>
                {% set totalResources = 0 %}
                {% for res in resources %}
                    <tr>
                        <td>{{ res.kind.name|localize_translatable_string }}</td>
                        <td>{{ res.amount|format_currency('EUR') }}</td>
                        <td>{{ res.comment.comment|chill_print_or_message(null, 'blockquote') }}</td>
                    </tr>
                    {% set totalResources = totalResources + res.amount %}
                {% endfor %}
                </tbody>
                <tfoot>
                <tr>
                    <th>Total</th>
                    <td>{{ totalResources|format_currency('EUR') }}</td>
                </tr>
                </tfoot>
            </table>
        {% else %}
            <p class="chill-no-data-statement">{{ 'event.budget.no elements'|trans }}</p>
        {% endif %}

        <h3>Charges</h3>
        {% if charges is not empty %}
            <table class="table table-bordered border-dark align-middle">
                <thead>
                <tr>
                    <th>{{ 'event.budget.charge type'|trans }}</th>
                    <th>{{ 'event.budget.amount'|trans }}</th>
                    <th>{{ 'event.budget.comment'|trans }}</th>
                </tr>
                </thead>
                <tbody>
                {% set totalCharges = 0 %}
                {% for chg in charges %}
                    <tr>
                        <td>{{ chg.kind.name|localize_translatable_string }}</td>
                        <td>{{ chg.amount|format_currency('EUR') }}</td>
                        <td>{{ chg.comment.comment|chill_print_or_message(null, 'blockquote') }}</td>
                    </tr>
                    {% set totalCharges = totalCharges + chg.amount %}
                {% endfor %}
                </tbody>
                <tfoot>
                <tr>
                    <th>Total</th>
                    <td>{{ totalCharges|format_currency('EUR') }}</td>
                </tr>
                </tfoot>
            </table>
        {% else %}
            <p class="chill-no-data-statement">{{ 'event.budget.no elements'|trans }}</p>
        {% endif %}
    </div>

    {% if event.documents|length > 0 %}
        <div>
            <p><strong>{{ 'event.fields.documents'|trans }}</strong></p>
            <ul>
                {% for d in event.documents %}
                    <li class="document-list-item">{{ d.title|chill_print_or_message('document.Any title') }} {{ d|chill_document_button_group(d.title, is_granted('CHILL_EVENT_SEE_DETAILS', event), {small: false}) }}</li>
                {% endfor %}
            </ul>
        </div>
    {% endif %}

    {% if not event.comment.empty %}
        <div>
            {{ event.comment|chill_entity_render_box({
                'disable_markdown': false,
                'metadata': true,
            }) }}
        </div>
    {% endif %}

    <div class="participations-wrapper">
        <h2>{{ 'Participations'|trans }}</h2>
        {% set count = event.participations|length %}
        <p class="chill-no-data-statement">{{ 'count participations to this event'|trans({'count': count}) }}</p>

        {% if count > 0 %}
            <table class="table table-bordered border-dark align-middle">
                <thead>
                    <tr>
                        <th>{{ 'Person'|trans }}</th>
                        <th>{{ 'Role'|trans }}</th>
                        <th>{{ 'Status'|trans }}</th>
                        <th>{{ 'Last update'|trans }}</th>
                        <th>&nbsp;</th>
                    </tr>
                </thead>
                <tbody>
                {% for participation in event.participations %}
                    <tr>
                        <td>
                            {% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with {
                                targetEntity: { name: 'person', id: participation.person.id },
                                action: 'show',
                                displayBadge: true,
                                buttonText: participation.person|chill_entity_render_string,
                                isDead: participation.person.deathdate is not null
                            } %}
                        </td>
                        <td>{{ participation.role.name|localize_translatable_string }}</td>
                        <td>{{ participation.status.name|localize_translatable_string }}</td>
                        <td>{{ participation.lastUpdate|ago }} {# sf4 check: filter 'time_diff' is abandoned,
                             alternative: knplabs/knp-time-bundle provide filter 'ago' #}
                            <i class="fa fa-info-circle" title="{{ participation.lastUpdate|format_date("long")|escape('html_attr') }}"></i>
                        </td>
                        <td>
                            <ul class="record_actions">
                                {% if is_granted('CHILL_EVENT_PARTICIPATION_UPDATE', participation) %}
                                <li>
                                    <a href="{{ chill_path_add_return_path('chill_event_participation_edit', { 'participation_id' : participation.id }, false, 'See'|trans ) }}"
                                       class="btn btn-edit" title="{{ 'Edit'|trans }}"></a>
                                </li>
                                <li>
                                    <a href="{{ path('chill_event_participation_delete', {'participation_id' : participation.id } ) }}"
                                        class="btn btn-delete" title="{{ 'Delete'|trans }}"></a>
                                </li>
                                {% endif %}
                            </ul>
                        </td>
                    </tr>
                {% endfor %}
                </tbody>
            </table>


        {% endif %}

        <div class="row">
            <div class="col-8">
                {{ form_start(form_add_participation_by_person) }}
                <div class="input-group">
                    {{ form_widget(form_add_participation_by_person.person_id, { 'attr' : {
                        'class' : 'custom-select',
                        'style': 'min-width: 15em; max-width: 18em; display: inline-block;'
                    }} ) }}
                </div>
                <input type="hidden" name="returnPath" value="{{ app.request.requestUri }}" />
                {{ form_end(form_add_participation_by_person) }}
            </div>
        </div>

        <ul class="record_actions">
            {% if count > 0 %}
                <li>
                    {{ form_start(form_export, {'attr': {'id': 'export_tableur'}}) }}
                    <div class="input-group">
                        {{ form_widget(form_export.format, { 'attr' : { 'class': 'custom-select' } }) }}
                        <div class="input-group-append">
                            {{ form_widget(form_export.submit, { 'attr' : { 'class': 'btn btn-save' } }) }}
                        </div>
                        <a class="bt-"></a>
                    </div>
                    {{ form_rest(form_export) }}
                    {{ form_end(form_export) }}
                </li>
                <li><a href="{{ path('chill_event_participation_edit_multiple', { 'event_id' : event.id } ) }}" class="btn btn-edit">{{ 'Edit all the participations'|trans }}</a></li>
            {% endif %}
        </ul>
    </div>
    <div class="post_show">
        {{ chill_delegated_block('block_footer_show', { 'event': event }) }}
    </div>

    <ul class="record_actions">

        {% set returnPath = app.request.get('return_path') %}
        {% set returnLabel = app.request.get('return_label') %}

        <li class="cancel">
            <a href="{{ chill_return_path_or('chill_event_event_list') }}" class="btn btn-cancel">{{ 'Back to the list'|trans|chill_return_path_label }}</a>
        </li>
        <li>
            <a href="{{ chill_path_add_return_path('chill_event__event_edit', {'event_id': event.id }, false, 'See'|trans) }}" class="btn btn-edit">
                {{ 'Edit'|trans }}
            </a>
        </li>
        <li>
            <a href="{{ path('chill_event__event_delete', {'event_id' : event.id } ) }}"
               class="btn btn-delete">{{ 'Delete event'|trans }}</a>
        </li>

    </ul>
</div>
{% endblock %}
