Release 2.0.8 (#3914)
* support parsing negative durations in JS * bump luxon dependency * make sure that 2FA is not required for session based API calls * show name of items to delete * fix permission issue for recent activity items
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
{{ include(kimai_context.modalRequest ? 'default/_form_delete_modal.html.twig' : 'default/_form_delete.html.twig', {
|
||||
'message': ("delete_warning.short_stats"|trans(params) ~ "admin_entity.delete_confirm"|trans),
|
||||
'form': form,
|
||||
'delete_item_name': activity.name,
|
||||
'used': (stats.counter > 0),
|
||||
'back': path('admin_activity')
|
||||
}) }}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
{{ include(kimai_context.modalRequest ? 'default/_form_delete_modal.html.twig' : 'default/_form_delete.html.twig', {
|
||||
'message': ("delete_warning.short_stats"|trans(params) ~ "admin_entity.delete_confirm"|trans),
|
||||
'form': form,
|
||||
'delete_item_name': customer.name,
|
||||
'used': (stats.counter > 0),
|
||||
'back': path('admin_customer')
|
||||
}) }}
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
{% endblock %}
|
||||
{% block box_body %}
|
||||
{% block form_body %}
|
||||
{% if delete_item_name is defined %}
|
||||
<p><strong>{{ delete_item_name }}</strong></p>
|
||||
{% endif %}
|
||||
{% if used is same as (false) %}
|
||||
{{ 'delete.not_in_use'|trans }}
|
||||
<div class="d-none">
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
{{ title|default('confirm.delete'|trans) }}
|
||||
{% endblock %}
|
||||
{% block modal_body %}
|
||||
{% if delete_item_name is defined %}
|
||||
<p><strong>{{ delete_item_name }}</strong></p>
|
||||
{% endif %}
|
||||
{% if used is same as (false) %}
|
||||
{{ 'delete.not_in_use'|trans }}
|
||||
<div class="d-none">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% set favorites = favorite_timesheets(app.user) %}
|
||||
{% set favorites = favorite_timesheets(app.user, 10) %}
|
||||
{% if favorites|length > 0 %}
|
||||
{% from 'macros/widgets.html.twig' import label_customer, label_project, label_activity %}
|
||||
{% set class = "btn-outline-white" %}
|
||||
@@ -6,34 +6,38 @@
|
||||
{% set class = "btn-dark" %}
|
||||
{% endif %}
|
||||
<div class="list-group list-group-flush list-group-hoverable menu">
|
||||
{% set counter = 0 %}
|
||||
{% for favorite in favorites %}
|
||||
{% set entry = favorite.getTimesheet() %}
|
||||
<div class="list-group-item">
|
||||
<div class="row align-items-center">
|
||||
<div class="col text-truncate" >
|
||||
<a class="api-link text-decoration-none text-body d-block" href="{{ path('restart_timesheet', {'id': entry.id}) }}"
|
||||
data-event="kimai.timesheetStart kimai.timesheetUpdate kimai.closeRemoteModal" data-method="PATCH" data-msg-error="timesheet.start.error"
|
||||
data-msg-success="timesheet.start.success">
|
||||
{{ label_activity(entry.activity) }}
|
||||
<div class="d-block text-truncate mt-n1">
|
||||
{{ label_project(entry.project) }}
|
||||
{{ label_customer(entry.project.customer) }}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
{% if favorite.isFavorite() %}
|
||||
<a href="{{ path('favorites_timesheets_remove', {'id': favorite.timesheet.id}) }}" class="list-group-item-actions show remote-modal-reload">
|
||||
<i class="text-yellow {{ 'bookmarked'|icon }}"></i>
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{{ path('favorites_timesheets_add', {'id': favorite.timesheet.id}) }}" class="list-group-item-actions remote-modal-reload">
|
||||
<i class="{{ 'bookmark'|icon }}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if is_granted('start', entry) and counter < 7 %}
|
||||
{% set counter = counter + 1 %}
|
||||
<div class="list-group-item">
|
||||
<div class="row align-items-center">
|
||||
<div class="col text-truncate" >
|
||||
<a class="api-link text-decoration-none text-body d-block" href="{{ path('restart_timesheet', {'id': entry.id}) }}"
|
||||
data-event="kimai.timesheetStart kimai.timesheetUpdate kimai.closeRemoteModal" data-method="PATCH" data-msg-error="timesheet.start.error"
|
||||
data-msg-success="timesheet.start.success">
|
||||
{{ label_activity(entry.activity) }}
|
||||
<div class="d-block text-truncate mt-n1">
|
||||
{{ label_project(entry.project) }}
|
||||
{{ label_customer(entry.project.customer) }}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
{% if favorite.isFavorite() %}
|
||||
<a href="{{ path('favorites_timesheets_remove', {'id': favorite.timesheet.id}) }}" class="list-group-item-actions show remote-modal-reload">
|
||||
<i class="text-yellow {{ 'bookmarked'|icon }}"></i>
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{{ path('favorites_timesheets_add', {'id': favorite.timesheet.id}) }}" class="list-group-item-actions remote-modal-reload">
|
||||
<i class="{{ 'bookmark'|icon }}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
{{ include(kimai_context.modalRequest ? 'default/_form_delete_modal.html.twig' : 'default/_form_delete.html.twig', {
|
||||
'message': ("delete_warning.short_stats"|trans(params) ~ "admin_entity.delete_confirm"|trans),
|
||||
'form': form,
|
||||
'delete_item_name': project.name,
|
||||
'used': (stats.counter > 0),
|
||||
'back': path('admin_project')
|
||||
}) }}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
{{ include(kimai_context.modalRequest ? 'default/_form_delete_modal.html.twig' : 'default/_form_delete.html.twig', {
|
||||
'message': ("delete_warning.short_stats"|trans(params) ~ "admin_entity.delete_confirm"|trans),
|
||||
'form': form,
|
||||
'delete_item_name': user.displayName,
|
||||
'used': inUse,
|
||||
'back': path('admin_user')
|
||||
}) }}
|
||||
|
||||
Reference in New Issue
Block a user