{% extends 'base.html.twig' %} {% import "macros/widgets.html.twig" as widgets %} {% block main %} {% embed '@theme/embeds/card.html.twig' %} {% from "macros/widgets.html.twig" import callout %} {% form_theme form 'form/horizontal.html.twig' %} {% block box_before %} {{ form_start(form) }} {% endblock %} {% block box_header %} {% endblock %} {% block box_body %}
{% if tab == 'timesheet' %} CSV JSON {% elseif tab == 'customer' %} CSV JSON {% elseif tab == 'project' %} CSV JSON {% elseif tab == 'clockify' %} CSV {% elseif tab == 'toggl' %} CSV {% elseif tab == 'grandtotal' %} CSV {% endif %}
{{ form_errors(form) }} {{ form_row(form.importFile) }} {{ form_row(form.delimiter) }} {% set preview = form_row(form.preview) %} {{ form_rest(form) }} {{ preview|raw }} {% if tab == 'clockify' %} {{ callout('info', 'importer.clockify_info', null, 'details', false) }} {% endif %} {% endblock %} {% block box_after %} {{ form_end(form) }} {% endblock %} {% block box_footer %} {% endblock %} {% endembed %} {% if data is not null %} {% set importData = data %} {% set countErrors = importData.countErrors() %} {% set boxtype = countErrors > 0 ? 'danger' : 'success' %} {% set headerLength = importData.header|length %} {% set statusTrans = '' %} {% for status in data.status %} {% if not loop.first %} {% set statusTrans = statusTrans ~ ', ' %} {% endif %} {% set statusTrans = statusTrans ~ status %} {% endfor %} {% if model.preview %} {{ widgets.callout('info', 'importer.how_to_upload', null, 'help') }} {{ widgets.callout('warning', 'preview'|trans ~ ': ' ~ statusTrans) }} {% elseif countErrors > 0 %} {{ widgets.callout('warning', statusTrans) }} {% else %} {{ widgets.callout('success', statusTrans) }} {% endif %} {% if countErrors > 0 or model.preview %} {% embed '@theme/embeds/card.html.twig' with {'boxtype': boxtype} %} {% from "macros/widgets.html.twig" import label_boolean %} {% block box_title %}{{ (importData.title)|trans }}{% endblock %} {% block box_body_class %}p-0 table-responsive{% endblock %} {% block box_body %} {% for header in importData.header %} {% endfor %} {% for row in importData.rows %} {% set hasError = row.hasError() %} {% if countErrors == 0 or hasError %} {% for key, data in row.data %} {% endfor %} {% if hasError %} {% endif %} {% endif %} {% endfor %}
Row{{ header }}
{{ loop.index + 1 }} {% if key == 'Begin' or key == 'End' %} {{ data|date_time }} {% elseif key == 'Billable' or key == 'Exported' %} {{ label_boolean(data) }} {% elseif key == 'Duration' %} {{ data|duration }} {% else %} {{ data }} {% endif %}
    {% for error in row.getErrors() %}
  • {{ error }}
  • {% endfor %}
{% endblock %} {% endembed %} {% endif %} {% endif %} {% endblock %}