Spaces:
No application file
No application file
{# | |
Variables | |
- progress | |
- import | |
- complete | |
- failedRows | |
- objectName | |
- indexRoute | |
- indexRouteParams | |
- step | |
- currentRoute | |
#} | |
{% extends '@MauticCore/Default/content.html.twig' %} | |
{% block mauticContent %}leadImport{% endblock %} | |
{% block headerTitle %} | |
{{ 'mautic.lead.import.leads'|trans({'%object%': objectName|trans}) }} | |
{% endblock %} | |
{% block content %} | |
{% set object = app.request.get('object', 'contacts') %} | |
{% set objectName = objectName|trans %} | |
{% set percent = progress.toPercent %} | |
{% set id = complete ? 'leadImportProgressComplete' : 'leadImportProgress' %} | |
{% set header = complete ? 'mautic.lead.import.success' : 'mautic.lead.import.donotleave' %} | |
<div class="row ma-lg" id="{{ id }}"> | |
<div class="col-sm-offset-3 col-sm-6 text-center"> | |
<div class="panel panel-{% if complete %}success{% else %}danger{% endif %}"> | |
<div class="panel-heading"> | |
<h4 class="panel-title">{{ header|trans({'object': object}) }}</h4> | |
</div> | |
<div class="panel-body"> | |
{% if not complete %} | |
<h4>{{ 'mautic.lead.import.inprogress'|trans }}</h4> | |
{% else %} | |
<h4>{{ 'mautic.lead.import.stats'|trans({'%merged%': import.updatedCount, '%created%': import.insertedCount, '%ignored%': import.ignoredCount}) }}</h4> | |
{% endif %} | |
<div class="progress mt-md" style="height:50px;"> | |
<div class="progress-bar-import progress-bar progress-bar-striped {% if not complete %}active{% endif %}" | |
role="progressbar" | |
aria-valuenow="{{ progress.done }}" | |
aria-valuemin="0" | |
aria-valuemax="{{ progress.total }}" | |
style="width: {{ percent }}%; height: 50px;"><span class="sr-only">{{ percent }}%</span> | |
</div> | |
</div> | |
</div> | |
{% if failedRows is not empty %} | |
<ul class="list-group"> | |
{% for row in failedRows %} | |
{% set lineNumber = row.properties.line|default('N/A') %} | |
{% set failure = row.properties.error|default('N/A') %} | |
<li class="list-group-item text-left"> | |
<a target="_new" class="text-danger">(#{{ lineNumber }}) {{ failure }}</a> | |
</li> | |
{% endfor %} | |
</ul> | |
{% endif %} | |
<div class="panel-footer"> | |
<p class="small"><span class="imported-count">{{ progress.done }}</span> / <span class="total-count">{{ progress.total }}</span></p> | |
{% if not complete %} | |
<div> | |
<a class="btn btn-danger" href="{{ path('mautic_import_action', {'objectAction': 'cancel', 'object': object}) }}" data-toggle="ajax"> | |
{{ 'mautic.core.form.cancel'|trans }} | |
</a> | |
<a class="btn btn-primary" href="{{ path('mautic_import_action', {'objectAction': 'queue', 'object': object}) }}" data-toggle="ajax"> | |
{{ 'mautic.lead.import.queue.btn'|trans }} | |
</a> | |
</div> | |
{% else %} | |
<div> | |
{% set indexRouteParams = indexRouteParams|merge({ | |
'search': 'mautic.lead.lead.searchcommand.import_id'|trans ~ ':' ~ import.id | |
}) %} | |
<a class="btn btn-success" href="{{ path(indexRoute, indexRouteParams) }}" data-toggle="ajax"> | |
{{ 'mautic.lead.list.view'|trans({'%objects%': objectName}) }} | |
</a> | |
<a class="btn btn-success" href="{{ path('mautic_import_index', {'object': object}) }}" data-toggle="ajax"> | |
{{ 'mautic.lead.view.imports'|trans }} | |
</a> | |
<a class="btn btn-success" href="{{ path('mautic_import_action', {'objectAction': 'view', 'objectId': import.id, 'object': object}) }}" data-toggle="ajax"> | |
{{ 'mautic.lead.import.result.info'|trans({'%import%': import.name()}) }} | |
</a> | |
</div> | |
{% endif %} | |
</div> | |
</div> | |
</div> | |
</div> | |
{% endblock %} | |