Edit file File name : details.html.twig Content :{% extends 'base.html.twig' %} {% import "macros/widgets.html.twig" as widgets %} {% import "activity/actions.html.twig" as actions %} {% block page_title %}{{ 'activities'|trans }}{% endblock %} {% block page_actions %}{{ actions.activity(activity, 'activity_details') }}{% endblock %} {% block main %} {% set can_edit = is_granted('edit', activity) %} {% set currency = null %} {% if activity.project is not null %} {% set currency = activity.project.customer.currency %} {% endif %} {% embed '@AdminLTE/Widgets/box-widget.html.twig' %} {% import "macros/widgets.html.twig" as widgets %} {% import "customer/actions.html.twig" as customerActions %} {% import "project/actions.html.twig" as projectActions %} {% block box_attributes %}id="activity_details_box"{% endblock %} {% block box_title %} {{ widgets.label_name(activity.name, activity.color) }} {% endblock %} {% block box_tools %} {% if can_edit %} <a class="modal-ajax-form open-edit btn btn-default btn-sm" data-href="{{ path('admin_activity_edit', {'id': activity.id}) }}" data-toggle="tooltip" data-placement="top" title="{{ 'action.edit'|trans }}"><i class="{{ 'edit'|icon }}"></i></a> {% endif %} {% endblock %} {% block box_body_class %}no-padding{% endblock %} {% block box_body %} {% if activity.comment is not empty %} <div class="comment"> {{ activity.comment|comment2html(true) }} </div> {% endif %} <table class="table table-hover dataTable"> {% if not activity.visible %} <tr class="{{ widgets.class_activity_row(activity, now) }}"> <th>{{ 'label.visible'|trans }}</th> <td colspan="3"> {{ widgets.label_boolean(activity.visible) }} </td> </tr> {% endif %} {% if not activity.billable %} <tr> <th>{{ 'label.billable'|trans }}</th> <td colspan="3"> {{ widgets.label_boolean(activity.billable) }} </td> </tr> {% endif %} {% if not activity.global %} <tr {{ widgets.customer_row_attr(activity.project.customer, now) }}> <th>{{ 'label.customer'|trans }}</th> <td> {{ widgets.label_customer(activity.project.customer) }} </td> <td class="w-min"> {{ widgets.badge_team_access(activity.project.customer.teams) }} </td> <td class="actions"> {{ customerActions.customer(activity.project.customer, 'custom') }} </td> </tr> <tr {{ widgets.project_row_attr(activity.project, now) }}> <th>{{ 'label.project'|trans }}</th> <td> {{ widgets.label_project(activity.project) }} </td> <td class="w-min"> {{ widgets.badge_team_access(activity.project.teams) }} </td> <td class="actions"> {{ projectActions.project(activity.project, 'custom') }} </td> </tr> {% endif %} {% for metaField in activity.visibleMetaFields|sort((a, b) => a.order <=> b.order) %} <tr> <th>{{ metaField.label|trans }}</th> <td colspan="3">{{ widgets.form_type_value(metaField.type, metaField.value, activity) }}</td> </tr> {% endfor %} </table> {% endblock %} {% endembed %} {% if stats is not null %} {% set currency = kimai_config.getCustomerDefaultCurrency() %} {% if activity.project is not null %} {% set currency = activity.project.customer.currency %} {% endif %} {{ include('embeds/budgets.html.twig', {'entity': activity, 'stats': stats, 'currency': currency}) }} {% endif %} {% for controller in boxes %} {{ render(controller(controller, {'activity': activity, 'page': 1})) }} {% endfor %} {% if can_edit %} {{ include('embeds/rates-table.html.twig', {'id': 'activity_rates_box', 'entity': activity, 'create_url': path('admin_activity_rate_add', {'id': activity.id}), 'delete_route': 'delete_activity_rate', 'currency': currency}) }} {% endif %} {% if teams is not null %} {% set options = {'teams': teams, 'team': team} %} {% if is_granted('permissions', activity) %} {% set options = options|merge({'route_create': path('activity_team_create', {'id': activity.id}), 'route_edit': path('admin_activity_permissions', {'id': activity.id})}) %} {% endif %} {% if activity.project is not null and (activity.project.teams|length > 0 or activity.project.customer.teams|length > 0) %} {% set options = options|merge({'empty_message': 'team.activity_visibility_inherited'}) %} {% endif %} {{ include('embeds/teams.html.twig', options) }} {% endif %} {% endblock %} {% block javascripts %} {{ parent() }} <script type="text/javascript"> document.addEventListener('kimai.initialized', function() { KimaiReloadPageWidget.create('kimai.activityUpdate kimai.teamUpdate kimai.activityTeamUpdate kimai.projectTeamUpdate kimai.customerTeamUpdate kimai.customerUpdate kimai.projectUpdate kimai.rateUpdate'); }); </script> {% endblock %} Save