{% extends 'Lenord/base.html.twig' %}
{% block header_epingles %}
{{ include('Lenord/Main/parts/epingles.html.twig') }}
{% endblock %}
{% block header_breadcrumb %}
{% include 'Nordinfo/Main/parts/breadcrumb.html.twig' with {'variation':'le-nord'} %}
{% endblock %}
{% block header_breadcrumb_pdf %}
{% include 'Nordinfo/Main/parts/breadcrumb.html.twig' with {'variation':'le-nord'} %}
{% endblock %}
{% block body %}
<main role="main" tabindex="-1" id="mainContent">
{% include 'Nordinfo/Main/parts/back_btn.html.twig' with {'back_btn_class':'--leNord --barHeading --blueDark'} %}
<div class="barHeading --leNord --blueDark">
<h1>{{ page.titre }}</h1>
</div>
{% if page.sommaireAffiche == 1 %}
<div class="barInternalLinks --leNord" data-sticky data-submenu-target="contentContainer">
<nav>
<ul></ul>
</nav>
</div>
{% endif %}
<article>
<div class="containerSm containerPostDetails --nordServices">
<div class="containerContent --nordServices" id="contentContainer">
<p class="__intro">{# page.metaDescription|raw #}</p>
<div class="wrapperSectionsBackground">
{{ content_post|raw }}
</div>
</div>
</div>
{% if page.relatedPost1 != null or page.relatedPost2 != null or page.relatedPost3 != null %}
<section>
<h2>À lire aussi</h2>
<ul class="listLinks">
{% if page.relatedPost1 != null %}
<li>
<a
href="{{ path('page_detail', {"slug": page.relatedPost1.slug}) }}"><span>{{ page.relatedPost1.title }}</span></a>
</li>
{% endif %}
{% if page.relatedPost2 != null %}
<li>
<a
href="{{ path('page_detail', {"slug": page.relatedPost2.slug}) }}"><span>{{ page.relatedPost2.title }}</span></a>
</li>
{% endif %}
{% if page.relatedPost3 != null %}
<li>
<a
href="{{ path('page_detail', {"slug": page.relatedPost3.slug}) }}"><span>{{ page.relatedPost3.title }}</span></a>
</li>
{% endif %}
</ul>
</section>
{% endif %}
</article>
{% if isElus == 1 %}
<div class="containerSm">
<h2 class="textCenter">Liste des conseillers départementaux</h2>
<div class="containerContactsFilters">
<div>
<form id="formContactsCanton">
<div class="form-group">
<label for="selectCanton">Votre canton</label>
<select class="form-control" name="canton_id" id="selectCanton" aria-label="Votre canton, mise à jour de la liste des conseillers départementaux à la sélection d'un canton">
<option value="" selected>Votre canton</option>
{% for canton in cantons %}
<option value="{{ canton.id }}">{{ canton.canton }}</option>
{% endfor %}
</select>
</div>
</form>
</div>
<div>
<form class="formSearchMain form" id="formContactsSearch">
<label for="inputSearchContacts">Recherche</label>
<div class="__input-wrapper">
<input name="search" type="text" id="inputSearchContacts" placeholder="Rechercher"
class="form-control __input-search" title="Rechercher">
<button type="submit" class="__btn-search">
<img src="{{ asset('img/brandmaster/icon-search-le-nord.svg') }}" alt="">
<span class="sr-only">rechercher un élu</span>
</button>
</div>
</form>
</div>
</div>
<div class="containerContactsResults mBMd" aria-live="polite">
<div class="containerContactResults__loader" id="loaderContacts" style="display:none;">
<span class="loader"></span>
</div>
<h3 class="containerContactsResults__title mB" id="titleResults" aria-live="polite">{{ filter_title }}</h3>
<div class="containerContactsResults__reset mB" style="display:none;" id="containerBtnReset"><button role="button" id="bthResetSearch">Réinitialiser ma recherche</button></div>
<ul class="containerContactsResults__list" id="listResults">
{% for contact in contacts %}
<li>
<a href="{{ path('elus_lenord_detail', {'slug': contact.slug}) }}" class="itemContact --searchResult"
data-first-letter="{{ contact.firstName|first }}">
<div class="__inner">
<div class="__col-img">
<div class="__img"
style="background-image:url('{{ asset('upload/images/'~contact.picture) }}')"></div>
</div>
<div class="__col-text">
<div class="__name">
<span>{{ contact.firstName }}
{{ contact.lastName }}</span>
</div>
<div class="__info">
{% if contact.civilite == "Mr" %}Conseiller départemental{% else %}Conseillère départementale{% endif %}
{% if contact.shortDescription is not null %}
-
{{ contact.shortDescription }}
{% endif %}
{% if contact.canton is not null %}
-
{{ contact.canton.canton }}
{% endif %}
</div>
</div>
</div>
</a>
</li>
{% endfor %}
</ul>
</div>
</div>
<script>
(function() {
const inputSearchContacts = document.getElementById('inputSearchContacts');
const formContactsSearch = document.getElementById('formContactsSearch');
const titleResults = document.getElementById('titleResults');
const listResults = document.getElementById('listResults');
const selectCanton = document.getElementById('selectCanton');
const loaderContacts = document.getElementById('loaderContacts');
const containerBtnReset = document.getElementById('containerBtnReset');
const bthResetSearch = document.getElementById('bthResetSearch');
const params = new URLSearchParams(location.search);
if (params.get('canton_id') && params.get('canton_id') !== '') {
selectCanton.value = params.get('canton_id');
containerBtnReset.style.display = 'block';
}
if (params.get('search') && params.get('search') !== '') {
inputSearchContacts.value = params.get('search');
containerBtnReset.style.display = 'block';
}
selectCanton.addEventListener('change', function(e) {
listResults.innerHTML = '';
loaderContacts.style.display = 'block';
containerBtnReset.style.display = 'none';
titleResults.innerText = '';
inputSearchContacts.value = '';
let xhttp;
let formData = new FormData();
formData.append('function', 'ajax_search_contacts');
formData.append('canton_id', e.target.value);
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
const response = JSON.parse(this.responseText);
let wrapper = document.createElement('div');
wrapper.innerHTML = response['html'];
let elems = wrapper.querySelectorAll('li');
let fragment = document.createDocumentFragment();
for ( let i = 0; i < elems.length; i++ ) {
let elem = elems[i];
fragment.appendChild(elem);
}
listResults.appendChild(fragment);
titleResults.innerText = response.filter_title;
loaderContacts.style.display = 'none';
containerBtnReset.style.display = 'block';
window.history.replaceState(null, null, "?canton_id=" + e.target.value);
}
};
xhttp.open('POST', '', true);
xhttp.send(formData);
});
bthResetSearch.addEventListener('click', function(e) {
listResults.innerHTML = '';
loaderContacts.style.display = 'block';
containerBtnReset.style.display = 'none';
titleResults.innerText = '';
inputSearchContacts.value = '';
selectCanton.value = '';
let xhttp;
let formData = new FormData();
formData.append('function', 'ajax_search_contacts_reset');
formData.append('canton_id', '');
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
const response = JSON.parse(this.responseText);
let wrapper = document.createElement('div');
wrapper.innerHTML = response['html'];
let elems = wrapper.querySelectorAll('li');
let fragment = document.createDocumentFragment();
for ( let i = 0; i < elems.length; i++ ) {
let elem = elems[i];
fragment.appendChild(elem);
}
listResults.appendChild(fragment);
loaderContacts.style.display = 'none';
window.history.replaceState(null, null, "?canton_id=");
}
};
xhttp.open('POST', '', true);
xhttp.send(formData);
});
formContactsSearch.addEventListener('submit', (e) => {
e.preventDefault();
listResults.innerHTML = '';
loaderContacts.style.display = 'block';
containerBtnReset.style.display = 'none';
titleResults.innerText = '';
selectCanton.value = '';
let xhttp;
let formData = new FormData();
formData.append('function', 'ajax_search_contacts');
formData.append('search', inputSearchContacts.value);
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
const response = JSON.parse(this.responseText);
let wrapper = document.createElement('div');
wrapper.innerHTML = response['html'];
let elems = wrapper.querySelectorAll('li');
let fragment = document.createDocumentFragment();
for ( let i = 0; i < elems.length; i++ ) {
let elem = elems[i];
fragment.appendChild(elem);
}
listResults.appendChild(fragment);
titleResults.innerText = response.filter_title;
loaderContacts.style.display = 'none';
containerBtnReset.style.display = 'block';
window.history.replaceState(null, null, "?search=" + inputSearchContacts.value);
}
};
xhttp.open('POST', '', true);
xhttp.send(formData);
});
})();
</script>
{% endif %}
</main>
{% endblock %}
{% block footer_top %}
{% if is_preview != 1 %}
<div class="container pB pT">
{% include 'Nordinfo/Main/parts/article-actions.html.twig' with {'post_title':'test', 'post_id':'test', 'is_nord_services':true} %}
</div>
{% endif %}
{% if nordinfo_rss|length > 0 %}
<div class="containerGridPosts --nordInfo">
<div class="container">
<h2 class="headingSection --white mTMd--imp mBMd--imp">{{ nordinfo_rss_description }}</h2>
<ul class="gridPosts">
{% for post in nordinfo_rss %}
<li class="__col">
{{ include('Lenord/Main/parts/item-post.html.twig') }}
</li>
{% endfor %}
<li class="__col">
<a href="https://info.lenord.fr" class="__btnLoadMore" title="Toute l'info">
<div class="__inner">
<div>
<div>{{ source('svg/icons/icon-plus.svg') }}</div>
<div><p><span class="__text">Toute l'info</span> <span class="__icon-external">{{ source('svg/icons/icon-external.svg') }}</span></p></div>
</div>
</div>
</a>
</li>
</ul>
</div>
</div>
{% endif %}
{{ include('Lenord/Main/js/submenu.js.html.twig') }}
{% endblock %}