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:
Kevin Papst
2023-03-13 01:48:53 +01:00
committed by GitHub
parent 1310285133
commit 8449eafcb6
20 changed files with 92 additions and 50 deletions

View File

@@ -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')
}) }}

View File

@@ -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')
}) }}

View File

@@ -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">

View File

@@ -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">

View File

@@ -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 %}

View File

@@ -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')
}) }}

View File

@@ -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')
}) }}