[FEAT] UI: guida online, landing EN, mobile-conversion, ai-assistant, bug-reporter + help/i18n
- public/guida.html, index-en.html, service-continuity.html - public/js/ai-assistant.js, bug-reporter.js (FAB supporto) - public/mobile-conversion.css/js - index.html, common.js, help.js, risks.html: aggiornamenti UI/help Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
c0bf7b6c15
commit
1d934e4e63
+149
-18
@@ -5,6 +5,10 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>NIS2 Agile — Compliance NIS2 semplificata per aziende e consulenti</title>
|
||||
<meta name="description" content="Piattaforma SaaS multi-tenant per la compliance alla Direttiva NIS2 (EU 2022/2555) e D.Lgs. 138/2024. Gap analysis AI, risk management, incident response Art.23, policy, formazione.">
|
||||
<link rel="canonical" href="https://nis2.agile.software/">
|
||||
<link rel="alternate" hreflang="it" href="https://nis2.agile.software/">
|
||||
<link rel="alternate" hreflang="en" href="https://nis2.agile.software/index-en.html">
|
||||
<link rel="alternate" hreflang="x-default" href="https://nis2.agile.software/">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
|
||||
@@ -623,6 +627,11 @@
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
/* ── NAV TOGGLE (hamburger mobile ≤768px) ── */
|
||||
.nav-toggle { display: none; background: none; border: 1px solid rgba(255,255,255,0.15); border-radius: 8px; cursor: pointer; padding: 8px 10px; color: var(--text-white); min-height: 40px; min-width: 40px; }
|
||||
.nav-toggle:hover { background: rgba(255,255,255,0.08); border-color: var(--cyan); }
|
||||
.nav-toggle svg { display: block; }
|
||||
|
||||
/* ── RESPONSIVE ── */
|
||||
@media (max-width: 900px) {
|
||||
nav { padding: 0 20px; }
|
||||
@@ -637,11 +646,28 @@
|
||||
.steps-wrap::before { display: none; }
|
||||
.lg231-card { flex-direction: column; padding: 28px; }
|
||||
.footer-inner { flex-direction: column; align-items: flex-start; }
|
||||
.nav-actions .btn-ghost { display: none; }
|
||||
.form-grid { grid-template-columns: 1fr; }
|
||||
.form-box { padding: 28px 20px; }
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.nav-actions { display: none; }
|
||||
.nav-actions.open {
|
||||
display: flex; flex-direction: column; align-items: stretch;
|
||||
position: fixed; top: 64px; left: 0; right: 0;
|
||||
background: rgba(15,23,42,0.97); backdrop-filter: blur(16px);
|
||||
padding: 20px; gap: 12px; z-index: 99;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
max-height: calc(100vh - 64px); overflow-y: auto;
|
||||
}
|
||||
.nav-actions.open .btn, .nav-actions.open .lang-switch-nis { width: 100%; justify-content: center; }
|
||||
.nav-actions.open .lang-switch-nis { border-left: none; padding-left: 0; margin-left: 0; }
|
||||
.nav-actions.open .evix-suite-pill { margin: 0; width: 100%; justify-content: center; }
|
||||
.nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="mobile-conversion.css?v=20260519a">
|
||||
<!-- Plausible Analytics -->
|
||||
<script defer data-domain="nis2.agile.software" src="https://analytics.agile.software/js/script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -651,14 +677,27 @@
|
||||
<div class="nav-icon"><i class="fa-solid fa-shield-halved"></i></div>
|
||||
<span class="nav-name">NIS2 <span>Agile</span></span>
|
||||
</a>
|
||||
<div class="nav-actions">
|
||||
<a href="https://evix.agile.software" target="_blank" rel="noopener" class="evix-suite-pill" title="Parte della EViX Suite — Scopri tutti i moduli" style="display:inline-flex;align-items:center;gap:8px;padding:7px 14px;background:linear-gradient(135deg,rgba(227,30,36,0.18),rgba(227,30,36,0.08));border:1.5px solid rgba(227,30,36,0.5);color:#FCA5A5;border-radius:100px;font-size:12px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;text-decoration:none;transition:all .2s;white-space:nowrap;margin-left:auto;margin-right:14px;">
|
||||
<i class="fa-solid fa-layer-group" style="font-size:11px"></i>
|
||||
<span class="evix-pill-label">EViX Suite</span>
|
||||
<i class="fa-solid fa-arrow-up-right-from-square" style="font-size:9px;opacity:.75"></i>
|
||||
</a>
|
||||
<div class="nav-actions" id="navActions">
|
||||
<a href="/login.html" class="btn btn-ghost btn-sm">
|
||||
<i class="fa-solid fa-right-to-bracket"></i> Accedi
|
||||
</a>
|
||||
<a href="#richiedi-accesso" class="btn btn-primary btn-sm">
|
||||
<i class="fa-solid fa-envelope"></i> Richiedi accesso
|
||||
</a>
|
||||
<div class="lang-switch-nis" style="display:flex;align-items:center;gap:4px;padding-left:10px;border-left:1px solid rgba(255,255,255,0.15);margin-left:6px;">
|
||||
<a href="index.html" class="active" hreflang="it" style="color:#EF4444;text-decoration:none;padding:4px 8px;border-radius:5px;font-weight:700;font-size:12px;letter-spacing:0.04em;background:rgba(239,68,68,0.12);">IT</a>
|
||||
<span style="color:rgba(255,255,255,0.3);font-size:12px;">|</span>
|
||||
<a href="index-en.html" hreflang="en" style="color:#CBD5E1;text-decoration:none;padding:4px 8px;border-radius:5px;font-weight:700;font-size:12px;letter-spacing:0.04em;">EN</a>
|
||||
</div>
|
||||
</div>
|
||||
<button class="nav-toggle" onclick="document.getElementById('navActions').classList.toggle('open')" aria-label="Menu">
|
||||
<svg width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 6h18M3 12h18M3 18h18"/></svg>
|
||||
</button>
|
||||
</nav>
|
||||
|
||||
<!-- HERO -->
|
||||
@@ -666,6 +705,14 @@
|
||||
<div class="container">
|
||||
<div class="hero-wrap">
|
||||
<div class="hero-left">
|
||||
<a href="https://evix.agile.software" target="_blank" rel="noopener"
|
||||
style="display:inline-flex;align-items:center;gap:8px;background:rgba(227,30,36,0.1);border:1px solid rgba(227,30,36,0.35);color:#E31E24;font-size:12.5px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;padding:7px 14px;border-radius:100px;text-decoration:none;margin-bottom:14px;transition:all .2s;"
|
||||
onmouseover="this.style.background='rgba(227,30,36,0.18)';this.style.borderColor='#E31E24'"
|
||||
onmouseout="this.style.background='rgba(227,30,36,0.1)';this.style.borderColor='rgba(227,30,36,0.35)'">
|
||||
<i class="fa-solid fa-layer-group" style="font-size:11px"></i>
|
||||
Modulo della EViX Suite
|
||||
<i class="fa-solid fa-arrow-up-right-from-square" style="font-size:10px;opacity:.8"></i>
|
||||
</a>
|
||||
<div class="hero-badge">
|
||||
<i class="fa-solid fa-circle-check"></i>
|
||||
D.Lgs. 138/2024 — In vigore dal 16 ottobre 2024
|
||||
@@ -1013,12 +1060,23 @@
|
||||
<textarea name="messaggio" placeholder="Descrivi brevemente la tua esigenza o il settore di appartenenza NIS2..."></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group full" style="margin-top:4px">
|
||||
<label style="display:flex;gap:8px;align-items:flex-start;cursor:pointer;font-weight:400;font-size:13px;color:var(--text-light)">
|
||||
<input type="checkbox" name="consent" id="ahubConsent" required style="margin-top:4px;flex-shrink:0;accent-color:var(--cyan)">
|
||||
<span>Acconsento al trattamento dei miei dati ai sensi del GDPR (art. 13). I dati saranno usati esclusivamente per rispondere alla richiesta. <a href="https://agile.software/privacy" target="_blank" style="color:var(--cyan)">Privacy policy</a> <span style="color:var(--cyan)">*</span></span>
|
||||
</label>
|
||||
</div>
|
||||
<!-- Honeypot anti-bot -->
|
||||
<div style="position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden" aria-hidden="true">
|
||||
<label>Lascia vuoto</label>
|
||||
<input type="text" name="website_url" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary form-submit" id="submitBtn">
|
||||
<i class="fa-solid fa-paper-plane"></i> Invia richiesta
|
||||
</button>
|
||||
<p class="form-note">
|
||||
<i class="fa-solid fa-lock" style="color:var(--cyan);margin-right:4px;font-size:11px;"></i>
|
||||
I tuoi dati sono trattati nel rispetto del GDPR. Nessuna cessione a terzi.
|
||||
Risposta entro 24h lavorative · Powered by AgileHub
|
||||
</p>
|
||||
</form>
|
||||
<div class="form-success" id="formSuccess">
|
||||
@@ -1048,6 +1106,9 @@
|
||||
<a href="/login.html" class="btn btn-ghost btn-lg">
|
||||
<i class="fa-solid fa-right-to-bracket"></i> Accedi
|
||||
</a>
|
||||
<a href="https://evix.agile.software" target="_blank" rel="noopener" class="btn btn-ghost btn-lg" style="border-color:rgba(227,30,36,0.45);color:#E31E24">
|
||||
<i class="fa-solid fa-layer-group"></i> Scopri tutta la EViX Suite
|
||||
</a>
|
||||
</div>
|
||||
<p class="cta-note">Sei un consulente o MSSP? Il form di richiesta ti permette di attivare accesso per il tuo intero portfolio clienti.</p>
|
||||
</div>
|
||||
@@ -1065,7 +1126,13 @@
|
||||
<div class="footer-links">
|
||||
<a href="#richiedi-accesso">Richiedi accesso</a>
|
||||
<a href="/login.html">Accedi</a>
|
||||
<a href="https://lg231.agile.software/" target="_blank">231 Agile</a>
|
||||
<a href="https://evix.agile.software" target="_blank" rel="noopener" style="color:#E31E24;font-weight:600">EViX Suite ↗</a>
|
||||
<a href="https://lg231.agile.software/" target="_blank" rel="noopener">231 Agile</a>
|
||||
<a href="https://qsa.agile.software/" target="_blank" rel="noopener">Agile QSA</a>
|
||||
<a href="https://trpg.agile.software/" target="_blank" rel="noopener">TRPG Agile</a>
|
||||
<a href="https://sustainai.agile.software/" target="_blank" rel="noopener">SustainAI</a>
|
||||
<a href="https://platform.agile.software/" target="_blank" rel="noopener" style="color:#A78BFA;font-weight:600">Built on Agile Platform ↗</a>
|
||||
<a href="https://agile.software/" target="_blank" rel="noopener">Agile Technology</a>
|
||||
<a href="mailto:info@agile.software">info@agile.software</a>
|
||||
</div>
|
||||
<div class="footer-copy">
|
||||
@@ -1075,6 +1142,39 @@
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
/* AgileHub Lead Pipeline — NIS2 Agile (tenant agile-technology) */
|
||||
const AHUB_PK = '02fd04c434fb5e1a83d11ee001f88e2677e8660f';
|
||||
const AHUB_ENDPOINT = 'https://agilehub.agile.software/api/public/applets/' + AHUB_PK + '/submit';
|
||||
|
||||
/* Provenance tracking */
|
||||
let __scrollMax = 0;
|
||||
window.addEventListener('scroll', () => {
|
||||
const h = document.documentElement;
|
||||
const pct = Math.round((h.scrollTop || window.scrollY) / (h.scrollHeight - h.clientHeight) * 100);
|
||||
if (pct > __scrollMax) __scrollMax = Math.min(pct, 100);
|
||||
}, { passive: true });
|
||||
const __pageLoadedAt = Date.now();
|
||||
|
||||
function ahubMetadata() {
|
||||
const u = new URLSearchParams(location.search);
|
||||
const md = {
|
||||
utm_source: u.get('utm_source') || null,
|
||||
utm_medium: u.get('utm_medium') || null,
|
||||
utm_campaign: u.get('utm_campaign') || null,
|
||||
utm_content: u.get('utm_content') || null,
|
||||
utm_term: u.get('utm_term') || null,
|
||||
referrer: document.referrer || null,
|
||||
page_title: document.title,
|
||||
page_url: location.href,
|
||||
scroll_depth_pct: __scrollMax,
|
||||
time_on_page_sec: Math.round((Date.now() - __pageLoadedAt) / 1000),
|
||||
viewport: window.innerWidth + 'x' + window.innerHeight,
|
||||
language: navigator.language,
|
||||
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
|
||||
};
|
||||
return md;
|
||||
}
|
||||
|
||||
document.getElementById('inviteForm').addEventListener('submit', async function(e) {
|
||||
e.preventDefault();
|
||||
const btn = document.getElementById('submitBtn');
|
||||
@@ -1082,35 +1182,52 @@ document.getElementById('inviteForm').addEventListener('submit', async function(
|
||||
const successEl = document.getElementById('formSuccess');
|
||||
const form = e.target;
|
||||
|
||||
/* Honeypot anti-bot — silent reject */
|
||||
if (form.website_url && form.website_url.value) {
|
||||
form.style.display = 'none';
|
||||
successEl.style.display = 'block';
|
||||
return;
|
||||
}
|
||||
|
||||
if (!form.consent.checked) {
|
||||
errEl.textContent = 'È necessario accettare il trattamento dati per inviare la richiesta.';
|
||||
errEl.style.display = 'block';
|
||||
return;
|
||||
}
|
||||
|
||||
errEl.style.display = 'none';
|
||||
btn.disabled = true;
|
||||
btn.innerHTML = '<i class="fa-solid fa-spinner fa-spin"></i> Invio in corso...';
|
||||
|
||||
const data = {
|
||||
name: form.nome.value.trim(),
|
||||
email: form.email.value.trim(),
|
||||
phone: form.telefono.value.trim(),
|
||||
company: form.azienda.value.trim(),
|
||||
tipo: form.tipo.value,
|
||||
size: form.n_dipendenti.value,
|
||||
product_interest: form.interesse.value,
|
||||
source: 'nis2-landing',
|
||||
notes: form.messaggio.value.trim()
|
||||
const payload = {
|
||||
name: form.nome.value.trim(),
|
||||
email: form.email.value.trim(),
|
||||
phone: form.telefono.value.trim(),
|
||||
company: form.azienda.value.trim(),
|
||||
tipo: form.tipo.value,
|
||||
consent: true,
|
||||
fields: {
|
||||
n_dipendenti: form.n_dipendenti.value,
|
||||
interesse: form.interesse.value,
|
||||
messaggio: form.messaggio.value.trim()
|
||||
},
|
||||
metadata: ahubMetadata()
|
||||
};
|
||||
|
||||
try {
|
||||
const res = await fetch('/api/mktg-lead/submit', {
|
||||
const res = await fetch(AHUB_ENDPOINT, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data)
|
||||
body: JSON.stringify(payload)
|
||||
});
|
||||
const json = await res.json();
|
||||
|
||||
if (res.ok && json.success) {
|
||||
if (res.ok && json.success !== false) {
|
||||
form.style.display = 'none';
|
||||
successEl.style.display = 'block';
|
||||
} else {
|
||||
errEl.textContent = json.message || 'Errore nell\'invio. Riprova o scrivici a info@agile.software.';
|
||||
const code = json.error && json.error.code ? ' (' + json.error.code + ')' : '';
|
||||
errEl.textContent = (json.error && json.error.message) || ('Errore nell\'invio' + code + '. Scrivici a info@agile.software.');
|
||||
errEl.style.display = 'block';
|
||||
btn.disabled = false;
|
||||
btn.innerHTML = '<i class="fa-solid fa-paper-plane"></i> Invia richiesta';
|
||||
@@ -1123,5 +1240,19 @@ document.getElementById('inviteForm').addEventListener('submit', async function(
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- Mobile conversion layer — sticky CTA + trust ribbon -->
|
||||
<script src="mobile-conversion.js?v=20260519a"
|
||||
data-primary-text="Richiedi accesso"
|
||||
data-primary-action="anchor"
|
||||
data-primary-href="#richiedi-accesso"
|
||||
data-primary-icon="→"
|
||||
data-accent="#EF4444"
|
||||
data-accent2="#DC2626"
|
||||
data-trust-items='["D.Lgs. 138/2024","Gap analysis AI","Incident response Art.23","Multi-tenant SaaS"]'
|
||||
data-trust-after="section#hero"
|
||||
data-trust-theme="dark"
|
||||
data-scroll-trigger="400"
|
||||
defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user