Release 1.19.5 (#3265)
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
{% set json = model.toArray %}
|
||||
{% set items = [] %}
|
||||
{% for entry in model.calculator.entries %}
|
||||
{% set items = items|merge([model.itemToArray(entry)]) %}
|
||||
{% for entry in entries %}
|
||||
{% set items = items|merge([entry]) %}
|
||||
{% endfor %}
|
||||
{% set json = json|merge({'items': items}) %}
|
||||
{% set json = invoice|merge({'items': items}) %}
|
||||
{{ json|json_encode|raw}}
|
||||
@@ -1,13 +1,12 @@
|
||||
{% for key, value in model.toArray %}
|
||||
{% for key, value in invoice %}
|
||||
{{ key }}
|
||||
{% if value is not empty %}
|
||||
{{ value|multiline_indent(' ') }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% for entry in model.calculator.entries %}
|
||||
{% for entry in entries %}
|
||||
---
|
||||
{% set items = model.itemToArray(entry) %}
|
||||
{% for key, value in items %}
|
||||
{% for key, value in entry %}
|
||||
{{ key }}
|
||||
{% if value is not empty %}
|
||||
{{ value|multiline_indent(' ') }}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kimai version="{{ constant('App\\Constants::VERSION') }}">
|
||||
{% for key, value in model.toArray %}
|
||||
{% for key, value in invoice %}
|
||||
<{{ key }}{% if value is empty %}/>{% else %}>{{ value|escape }}</{{ key }}>{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
<items>
|
||||
{%- for entry in model.calculator.entries %}
|
||||
{%- for entry in entries %}
|
||||
|
||||
<item>
|
||||
{% for key, value in model.itemToArray(entry) %}
|
||||
{% for key, value in entry %}
|
||||
<{{ key }}{% if value is empty %}/>{% else %}>{{ value|escape }}</{{ key }}>{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
{% set customer = null %}
|
||||
{% set maxLength = (stats.activities|length) * 3 + 2 %}
|
||||
<tbody>
|
||||
{% for project in stats.stats %}
|
||||
{% for project in stats.stats|sort((a, b) => (a.customer ~ '_' ~ a.customer_id) <=> (b.customer ~ '_' ~ b.customer_id)) %}
|
||||
{% set activityId = null %}
|
||||
{% set rowspan = project['max_users'] %}
|
||||
{% set currency = stats.projects[project.id]['currency'] %}
|
||||
@@ -43,57 +43,57 @@
|
||||
{% endif %}
|
||||
|
||||
{% for i in 1..rowspan %}
|
||||
<tr>
|
||||
{% if loop.first %}
|
||||
<th{% if rowspan > 1 %} rowspan="{{ rowspan }}" style="{{ rowspanStyle }}"{% endif %}>{{ project.name }}</th>
|
||||
{% endif %}
|
||||
{% for activity in stats.activities %}
|
||||
{% if project.activities[activity.id] is defined and i <= project.activities[activity.id]['users']|length %}
|
||||
{% set user = project.activities[activity.id]['users']|slice(-i) %}
|
||||
<td>{{ user.0.name }}</td>
|
||||
<td class="text-center"{% if dataTypeFormat is not null %} data-format="{{ dataTypeFormat }}"{% endif %}>
|
||||
{% set value = user.0[dataType] %}
|
||||
{% block user_activity %}
|
||||
{% if dataType == 'rate' or dataType == 'internalRate' %}
|
||||
{{ value|money(currency) }}
|
||||
{% else %}
|
||||
{{ value|duration(decimal) }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</td>
|
||||
{% if loop.parent.loop.first %}
|
||||
<td{% if rowspan > 1 %} rowspan="{{ rowspan }}"{% endif %} class="text-center text-nowrap"{% if dataTypeFormat is not null %} data-format="{{ dataTypeFormat }}"{% endif %}>
|
||||
{% set value = project.activities[activity.id][dataType] %}
|
||||
{% block project_activity %}
|
||||
{% if dataType == 'rate' or dataType == 'internalRate' %}
|
||||
{{ value|money(currency) }}
|
||||
{% else %}
|
||||
{{ value|duration(decimal) }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</td>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<td class="text-center"></td>
|
||||
<td class="text-center"></td>
|
||||
{% if loop.parent.loop.first %}
|
||||
<td{% if rowspan > 1 %} rowspan="{{ rowspan }}"{% endif %}></td>
|
||||
{% endif %}
|
||||
<tr>
|
||||
{% if loop.first %}
|
||||
<th{% if rowspan > 1 %} rowspan="{{ rowspan }}" style="{{ rowspanStyle }}"{% endif %}>{{ project.name }}</th>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if loop.first %}
|
||||
<th{% if rowspan > 1 %} rowspan="{{ rowspan }}" style="{{ rowspanStyle }}"{% endif %} class="text-center text-nowrap"{% if dataTypeFormat is not null %} data-format="{{ dataTypeFormat }}"{% endif %}>
|
||||
{% set value = project[dataType] %}
|
||||
{% block project_total %}
|
||||
{% if dataType == 'rate' or dataType == 'internalRate' %}
|
||||
{{ value|money(currency) }}
|
||||
{% else %}
|
||||
{{ value|duration(decimal) }}
|
||||
{% for activity in stats.activities %}
|
||||
{% if project.activities[activity.id] is defined and i <= project.activities[activity.id]['users']|length %}
|
||||
{% set user = project.activities[activity.id]['users']|slice(-i) %}
|
||||
<td>{{ user.0.name }}</td>
|
||||
<td class="text-center"{% if dataTypeFormat is not null %} data-format="{{ dataTypeFormat }}"{% endif %}>
|
||||
{% set value = user.0[dataType] %}
|
||||
{% block user_activity %}
|
||||
{% if dataType == 'rate' or dataType == 'internalRate' %}
|
||||
{{ value|money(currency) }}
|
||||
{% else %}
|
||||
{{ value|duration(decimal) }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</td>
|
||||
{% if loop.parent.loop.first %}
|
||||
<td{% if rowspan > 1 %} rowspan="{{ rowspan }}"{% endif %} class="text-center text-nowrap"{% if dataTypeFormat is not null %} data-format="{{ dataTypeFormat }}"{% endif %}>
|
||||
{% set value = project.activities[activity.id][dataType] %}
|
||||
{% block project_activity %}
|
||||
{% if dataType == 'rate' or dataType == 'internalRate' %}
|
||||
{{ value|money(currency) }}
|
||||
{% else %}
|
||||
{{ value|duration(decimal) }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</td>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% else %}
|
||||
<td class="text-center"></td>
|
||||
<td class="text-center"></td>
|
||||
{% if loop.parent.loop.first %}
|
||||
<td{% if rowspan > 1 %} rowspan="{{ rowspan }}"{% endif %}></td>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if loop.first %}
|
||||
<th{% if rowspan > 1 %} rowspan="{{ rowspan }}" style="{{ rowspanStyle }}"{% endif %} class="text-center text-nowrap"{% if dataTypeFormat is not null %} data-format="{{ dataTypeFormat }}"{% endif %}>
|
||||
{% set value = project[dataType] %}
|
||||
{% block project_total %}
|
||||
{% if dataType == 'rate' or dataType == 'internalRate' %}
|
||||
{{ value|money(currency) }}
|
||||
{% else %}
|
||||
{{ value|duration(decimal) }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
@@ -18,7 +18,21 @@
|
||||
{% form_theme form 'form/search-form.html.twig' %}
|
||||
{% block modal_size %}{% endblock %}
|
||||
{% block form_body %}
|
||||
{% set orderHasError = form.orderBy.vars.errors|length > 0 or form.order.vars.errors|length > 0 %}
|
||||
{% set orderBy = form_widget(form.orderBy) %}
|
||||
{% set order = form_widget(form.order) %}
|
||||
{{ form_widget(form) }}
|
||||
<div class="form-group{% if orderHasError %} has-error{% endif %}">
|
||||
{{ form_label(form.orderBy) }}
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
{{ orderBy|raw }}
|
||||
{{ form_errors(form.orderBy) }}
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-3">
|
||||
{{ order|raw }}
|
||||
{{ form_errors(form.order) }}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block submit_button %}
|
||||
<div class="btn-group pull-left" role="group">
|
||||
|
||||
Reference in New Issue
Block a user