File size: 4,527 Bytes
d2897cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
{#
  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 %}