2025: A new ambition for MDS. Discover our strategy and innovations soon. In the meantime, explore our vision.

GDPR News

Mydatasolution.fr-

The IA Act and the RGPD: What are the Similarities and Differences for Compliance?

As artificial intelligence profoundly transforms our society, Europe is once again...

Notre communauté

Understanding the fundamentals of the AI Act: An introductory guide for businesses

In a world where artificial intelligence is rapidly revolutionizing all sectors,...

consultant organisation

Outsourced DPO: the cost-effective solution for meeting your RGPD obligations

In a world where the protection of personal data is becoming...

Hospital building amico 1 - My data solution

How to choose your RGPD compliance specialist company?

In a constantly evolving digital world, protecting personal data has become...

Securite transactionnel 1 - My data solution

RGPD audit and compliance: Complete solutions for companies

In a world where personal data is a strategic asset for...

RGPD compliance support: our expertise at the service of your security

In a constantly evolving digital world, the protection of personal data...

Head logiciel RGPD

Assessing Your IT Infrastructure’s Vulnerability to Cybersecurity Threats: Preparing for NIS 2 Compliance

In an increasingly digitized economic world, cybersecurity has become a fundamental...

The Importance of Critical System Resilience in the NIS 2 Era

In an increasingly connected world, where digital infrastructures play a central...

agence web 1 - My data solution

How to implement a robust cybersecurity strategy to meet NIS 2 requirements?

In today’s digital age, where cyber threats are constantly evolving, companies...

(function() { function initMdsAudit() { var form = document.querySelector('.mds-audit form.elementor-form'); if (!form) return; var ids = ['q1','q2','q3','q4','q5','q6','q7','q8','q9','q10']; function calcScore() { var total = 0; ids.forEach(function(id) { var input = form.querySelector('input[name="form_fields[' + id + ']"]:checked'); if (input && input.value) { var val = parseInt(input.value, 10); if (!isNaN(val)) total += val; } }); var hidden = form.querySelector('input[name="form_fields[score_total]"]'); if (hidden) hidden.value = total; var out = document.querySelector('#mds-score'); if (out) { out.textContent = total + '/100'; out.classList.remove('mds-score-low','mds-score-mid','mds-score-high'); if (total < 30) out.classList.add('mds-score-low'); else if (total < 70) out.classList.add('mds-score-mid'); else out.classList.add('mds-score-high'); } var msg = ''; if (total < 30) { msg = '

Risque élevé de non-conformité.
Les fondamentaux manquent (registre, bases légales, sécurité). Demandez un audit express gratuit et un plan d’action priorisé.

'; } else if (total < 70) { msg = '

Conformité partielle.
Plusieurs zones critiques subsistent (sécurité, contrats). Recevez un plan d’action et une estimation d’effort.

'; } else if (total < 85) { msg = '

Bonne conformité.
Quelques optimisations restantes (sensibilisation, audits). Visez le niveau d’excellence.

'; } else { msg = '

Conformité avancée.
Excellent niveau. Nous vous aidons à maintenir & valoriser cet avantage.

'; } var reco = document.querySelector('#mds-reco'); if (reco) reco.innerHTML = msg; } form.addEventListener('change', calcScore); form.addEventListener('keyup', calcScore); // Elementor ré-injecte le DOM entre les steps → on observe var observer = new MutationObserver(calcScore); observer.observe(form, {subtree: true, childList: true}); calcScore(); } // Le popup peut arriver après chargement → petit polling function waitForForm() { var tries = 0; var iv = setInterval(function() { if (document.querySelector('.mds-audit form.elementor-form')) { clearInterval(iv); initMdsAudit(); } else if (++tries > 20) { clearInterval(iv); } }, 300); } document.addEventListener('DOMContentLoaded', waitForForm); })(); /* === MDS – Progress bar for multi-step === */ (function () { function getForm() { return document.querySelector('.mds-popup .elementor-form'); } function getBar() { return document.querySelector('.mds-popup .mds-progress__bar'); } function updateProgress() { var form = getForm(), bar = getBar(); if (!form || !bar) return; var steps = form.querySelectorAll('.e-form__step'); if (!steps.length) { bar.style.width = '100%'; return; } // repère le step visible (Elementor masque les autres) var visibleIndex = 0; steps.forEach(function (s, i) { var hidden = s.classList.contains('elementor-hidden') || getComputedStyle(s).display === 'none'; if (!hidden) visibleIndex = i; }); var pct = Math.round(((visibleIndex + 1) / steps.length) * 100); bar.style.width = pct + '%'; } function boot() { var form = getForm(); if (!form) { setTimeout(boot, 300); return; } updateProgress(); // clic sur Next/Previous form.addEventListener('click', function (e) { if (e.target.closest('button')) setTimeout(updateProgress, 30); }); // si Elementor ré-injecte le DOM, on recalcule var mo = new MutationObserver(updateProgress); mo.observe(form, { attributes: true, childList: true, subtree: true }); } document.addEventListener('DOMContentLoaded', boot); })();