{% extends base_template %}

{% import _self as macros %}

{% block actions %}
{% endblock %}
{% block breadcrumb %}{% endblock %}
{%- block tab_menu -%}
    {{ knp_menu_render(admin.sidemenu(action), {
        'currentClass': 'active',
        'template': get_global_template('tab_menu_template')
    }, 'twig') }}
{%- endblock -%}

{% block title %}
    {{ 'Import de données'|trans }}
{% endblock %}

{% block sonata_admin_content_actions_wrappers %}
    	<div class="navbar-collapse">
			<ul class="nav navbar-nav navbar-right">
			    <li>
			        <a class="sonata-action-element" href="{{ admin.generateUrl('list') }}">
			            <i class="fa fa-list" aria-hidden="true"></i>
			            {{ 'Liste des imports'|trans }}
			        </a>
			    </li>
			</ul>
		</div>
	{% endblock sonata_admin_content_actions_wrappers %}

{% block navbar_title %}
    {{ block('title') }}
{% endblock %}

{% block content %}
    <div class="px-3">
    	<h3>Recommandations et instructions :</h3>
    	<ul>
    		<li>{{ "L'importation de données ne fonctionne qu'avec des fichiers .CSV, et ayant au moins les colonnes obligatoires (celle en rouge dans les fichiers d'instructions)"|trans }}</li>
    		<li>{{ "Pour que les accents et caractères spéciaux fonctionnent, il faut que le fichier soit enregistré avec l'encodage UTF-8. Votre tableur et/ou éditeur de texte doit vous le proposer lors de l'enregistrement/l'export du fichier !"|trans }}</li>
    		<li>{{ "L'ordre des colonnes n'a pas d'importance, mais les noms des colonnes utilisés dans la première ligne du fichier CSV ne sont pas modifiables."|trans }}</li>
    		<li>{{ "Pour chaque type de données (groupe, comptoir, prestataire, adherent, flux) à importer, vous pouvez télécharger des fichiers d'exemples et d'instructions .XLSX (Excel - Windows) et .NUMBERS (Mac - Numbers), mais seul un fichier .CSV peut être importé !"|trans }}</li>
    		<li>{{ "Les gestionnaires (de comptoir, groupe et prestataire) correspondent aux adhérents ayant accès à l'interface d'administration !"|trans }}</li>
    		<li>{{ "Les contacts (de comptoir, groupe et prestataire) correspondent à des informations publiques permettant de contacter les comptoirs, groupes et prestataires, ils n'ont pas de compte crée avec leur email !"|trans }}</li>
    		<li>{{ "Pour les comptoirs, groupes et prestataires, vous pouvez ajouter un ou plusieurs gestionnaires (gestionnaire_email1, gestionnaire_email2), un ou plusieurs contacts par défaut visible en public (contact1, contact2) et jusqu'à 10 de chaque !"|trans }}</li>
    	</ul>
    	<h3>Exemples de fichiers :</h3>
    	<div class='mb-5'>
    		{% for key, csvparam in csvparams %}
				<h4>{{ key|capitalize }}(s) : </h4>
				<p>
					<a class='btn btn-default ml-4' target='_blank' rel="noopener noreferrer" href='{{ csvparam.filexls }}'>Instructions en .xlsx</a>
					<a class='btn btn-default ml-4' target='_blank' rel="noopener noreferrer" href='{{ csvparam.filenum }}'>Instructions en .numbers</a>
					<a class='btn btn-default ml-4' target='_blank' rel="noopener noreferrer" href='{{ csvparam.filecsv }}'>Exemple .csv</a>
				</p>
				{# <p class='ml-4'><i>{{ csvparam.header }}</i></p>
				<p class='ml-4 mb-4'><i>{{ 'Exemple'|trans }} :</i> {{ csvparam.example }}</p> #}
	    	{% endfor %}
	    </div>
	    <hr class='color-blue'/>
    	{{ form_start(form) }}
			{{ form_row(form.type) }}
			{{ form_row(form.sendemail) }}
			{{ form_row(form.test) }}
			{{ form_row(form.media) }}
			{{ form_errors(form) }}
			{{ form_row(form.user) }}
			{{ form_row(form.save) }}
		{{ form_end(form) }}

		{% if errors is defined and errors|length > 0 %}
			<div class='container bg-danger w-100 py-4 row'>
				{% if errors['error'] is defined %}
					{{ errors['error'] }}
				{% else %}
					{{  macros.show_error(errors) }}
				{% endif %}
			</div>
		{% endif %}
		{% if warnings is defined and warnings|length > 0 %}
			<div class='container bg-warning w-100 py-4 row'>
				{{  macros.show_error(warnings) }}
			</div>
		{% endif %}
		{% if success is defined and success|length > 0 %}
			<div class='container bg-success w-100 py-4 row'>
				{{  macros.show_error(success) }}
			</div>
		{% endif %}
		{% if linkcsverror is defined and linkcsverror != null %}
			<div class='py-4'>
				<a href='{{ linkcsverror }}' role="button" class="btn-primary btn">{{ 'Télécharger CSV avec lignes en erreurs'|trans }}</a>
			</div>
		{% endif %}
    </div>
{% endblock %}

{% macro show_error(errors) %}
	{% for line, errorA in errors %}
		<div class='col-12'>
			<span>Ligne {{line}}</span>
			{% for key, errorB in errorA %}
				{% for csvline, errorString in errorB %}
					<span class="pl-2">{% if (key is not empty) %}[{{key}}]{% endif %}{{errorString}}</span>
				{% endfor %}
			{% endfor %}
		</div>
	{% endfor %}
{% endmacro %}