Release 2.44 (#5699)

This commit is contained in:
Kevin Papst
2025-11-19 14:28:54 +01:00
committed by GitHub
parent 8a42c9640f
commit a15c1e56cb
33 changed files with 144 additions and 157 deletions

View File

@@ -3,7 +3,7 @@
{% block status %}
{% from "macros/status.html.twig" import status %}
{{ status(constant('App\\Constants::VERSION')) }}
{{ status(environment, environment == 'dev' ? 'red' : 'green') }}
{{ status(environment, environment == 'dev' ? 'danger' : 'success') }}
{% endblock %}
{% block main %}

View File

@@ -15,8 +15,8 @@
<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">
data-event="kimai.timesheetStart kimai.timesheetUpdate" data-method="PATCH" data-msg-error="timesheet.start.error"
data-msg-success="timesheet.start.success" data-bs-dismiss="modal">
{{ label_activity(entry.activity) }}
<div class="d-block text-truncate mt-n1">
{{ label_project(entry.project) }}

View File

@@ -1,18 +1,16 @@
{% macro status(title, color) %}
{% from '@theme/components/status.html.twig' import status %}
{% set options = {} %}
{% if color %}{% set options = options|merge({'color': color}) %}{% endif %}
{{ status(title, options) }}
{{ status(title, {'color': color|default('primary')}) }}
{% endmacro %}
{% macro status_duration(duration) %}
{{ _self.status(duration, 'azure') }}
{{ _self.status(duration) }}
{% endmacro %}
{% macro status_money(money) %}
{{ _self.status(money, 'blue') }}
{{ _self.status(money) }}
{% endmacro %}
{% macro status_count(counter) %}
{{ _self.status(counter, 'teal') }}
{{ _self.status(counter) }}
{% endmacro %}

View File

@@ -226,10 +226,14 @@
{% endmacro %}
{% macro badge_team_access(teams) %}
{% if teams|length > 0 %}
{{ _self.badge_counter(teams|length) }}
{{ _self.badge_counted(teams|length) }}
{% endmacro %}
{% macro badge_counted(amount) %}
{% if amount > 0 %}
{{ _self.badge_counter(amount, null, 'primary') }}
{% else %}
{{ _self.badge_counter(0, null, 'gray') }}
{{ _self.badge_counter(0, null, 'secondary') }}
{% endif %}
{% endmacro %}

View File

@@ -1,6 +1,6 @@
{% if is_granted('start_own_timesheet') %}
<div class="nav-item d-flex me-1 recent-activities">
<a href="{{ path('favorites_timesheets') }}" class="btn btn-icon px-0 remote-modal-load recent-activities-btn" data-modal-title="{{ 'recent.activities'|trans }}" tabindex="-1" title="{{ 'recent.activities'|trans }}">
<a href="{{ path('favorites_timesheets') }}" class="btn btn-icon px-0 remote-modal-load recent-activities-btn" data-modal-class="p-0" data-modal-title="{{ 'recent.activities'|trans }}" tabindex="-1" title="{{ 'recent.activities'|trans }}">
{{ icon('repeat', true) }}
</a>
</div>

View File

@@ -10,7 +10,7 @@
{% if column == 'name' %}
{{ widgets.label_name(entry.name, entry.color|colorize(entry.name)) }}
{% elseif column == 'amount' %}
{{ widgets.badge_counter(entry.amount, null, (entry.amount == 0 ? 'yellow' : '')) }}
{{ widgets.badge_counted(entry.amount) }}
{% elseif column == 'visible' %}
{{ widgets.label_visible(entry.visible) }}
{% elseif column == 'actions' %}

View File

@@ -16,7 +16,7 @@
{{ widgets.user_avatar(user, tooltip, 'avatar-rounded', (member.teamlead ? 'info' : null)) }}
{% endfor %}
{% elseif column == 'amount' %}
{{ widgets.badge_counter(entry.members|length) }}
{{ widgets.badge_counted(entry.members|length) }}
{% elseif column == 'actions' %}
{% set event = actions(app.user, 'team', 'index', {'team': entry}) %}
{{ widgets.table_actions(event.actions) }}

View File

@@ -77,7 +77,7 @@
{% if lastEntry is not null and entry.end is not null and entry.user is same as (lastEntry.user) %}
{% if checkOverlappingDesc and entry.end.timestamp > lastEntry.begin.timestamp %}
{% set class = class ~ ' overlapping' %}
{% elseif checkOverlappingAsc and entry.begin.timestamp < lastEntry.end.timestamp %}
{% elseif checkOverlappingAsc and lastEntry.end is not null and entry.begin.timestamp < lastEntry.end.timestamp %}
{% set class = class ~ ' overlapping' %}
{% endif %}
{% endif %}