const fconnect = { tracesUrl: '/traces', aboutUrl: '' }; const document = window.document; function init() { fconnect.currentHost = 'fcp.integ01.dev-franceconnect.fr'; if (window.location.hostname == 'www.demarches-simplifiees.fr') fconnect.currentHost = 'app.franceconnect.gouv.fr'; var fconnectProfile = document.getElementById('fconnect-profile'); if (fconnectProfile) { var linkAccess = document.querySelector('#fconnect-profile > a'); var fcLogoutUrl = fconnectProfile.getAttribute('data-fc-logout-url'); var access = createFCAccessElement(fcLogoutUrl); fconnectProfile.appendChild(access); linkAccess.onclick = toggleElement.bind(access); } } addEventListener('DOMContentLoaded', init); addEventListener('turbolinks:load', init); function toggleElement(event) { event.preventDefault(); if (this.style.display === 'block') { this.style.display = 'none'; } else { this.style.display = 'block'; } } function closeFCPopin(event) { event.preventDefault(); fconnect.popin.className = 'fade-out'; setTimeout(function() { document.body.removeChild(fconnect.popin); }, 200); } function openFCPopin() { fconnect.popin = document.createElement('div'); fconnect.popin.id = 'fc-background'; var iframe = createFCIframe(); document.body.appendChild(fconnect.popin); fconnect.popin.appendChild(iframe); setTimeout(function() { fconnect.popin.className = 'fade-in'; }, 200); } function createFCIframe() { var iframe = document.createElement('iframe'); iframe.setAttribute('id', 'fconnect-iframe'); iframe.frameBorder = 0; iframe.name = 'fconnect-iframe'; return iframe; } function createFCAccessElement(logoutUrl) { var access = document.createElement('div'); access.id = 'fconnect-access'; access.innerHTML = '
Vous êtes identifié grâce à FranceConnect
'; access.appendChild(createAboutLink()); access.appendChild(document.createElement('hr')); access.appendChild(createHistoryLink()); access.appendChild(createLogoutElement(logoutUrl)); return access; } function createHistoryLink() { var historyLink = document.createElement('a'); historyLink.target = 'fconnect-iframe'; historyLink.href = '//' + fconnect.currentHost + fconnect.tracesUrl; historyLink.onclick = openFCPopin; historyLink.innerHTML = 'Historique des connexions/échanges de données'; return historyLink; } function createAboutLink() { var aboutLink = document.createElement('a'); aboutLink.href = fconnect.aboutUrl ? '//' + fconnect.currentHost + fconnect.aboutUrl : '#'; if (fconnect.aboutUrl) { aboutLink.target = 'fconnect-iframe'; aboutLink.onclick = openFCPopin; } aboutLink.innerHTML = "Qu'est-ce-que FranceConnect ?"; return aboutLink; } function createLogoutElement(logoutUrl) { var elm = document.createElement('div'); elm.className = 'logout'; elm.innerHTML = 'Se déconnecter'; return elm; } var eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent'; var eventer = window[eventMethod]; var messageEvent = eventMethod == 'attachEvent' ? 'onmessage' : 'message'; // Listen to message from child window eventer( messageEvent, function(e) { var key = e.message ? 'message' : 'data'; var data = e[key]; if (data === 'close_popup') { closeFCPopin(e); } }, false );