[DOCS+I18N] Guida aggiornata, i18n idle timeout, 3 documenti commerciali
- help.js: aggiornate sezioni per idle timeout, banner AI dismissible, matrice rischi real-time - i18n.js: aggiunte 5 chiavi session.* per idle timeout (IT/EN) - common.js: _showIdleWarning() usa I18n.t() per testi IT/EN - docs/commercial/scheda-commerciale.html: scheda A4 stampabile (problema/soluzione, moduli, AI, target) - docs/commercial/scheda-tecnica.html: specifiche stack, architettura, API, DB, sicurezza, deploy - docs/commercial/presentazione.html: presentazione 10 slide completa (contesto, moduli, AI, compliance, ROI, roadmap) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
59fad22c0e
commit
1bfca3fbe3
+6
-5
@@ -510,25 +510,26 @@ function _showIdleWarning() {
|
||||
'background:rgba(0,0,0,0.55)', 'display:flex', 'align-items:center', 'justify-content:center'
|
||||
].join(';');
|
||||
|
||||
const _t = (key, fallback) => (typeof I18n !== 'undefined' ? I18n.t(key) : fallback);
|
||||
overlay.innerHTML = `
|
||||
<div style="background:var(--card-bg,#fff);border-radius:12px;padding:32px;max-width:400px;width:90%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,0.3);">
|
||||
<div style="width:56px;height:56px;background:#fff7ed;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;">
|
||||
<svg width="28" height="28" viewBox="0 0 20 20" fill="#c2410c"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z" clip-rule="evenodd"/></svg>
|
||||
</div>
|
||||
<h3 style="font-size:1.1rem;font-weight:700;color:var(--gray-800,#1f2937);margin-bottom:8px;">Sessione in scadenza</h3>
|
||||
<h3 style="font-size:1.1rem;font-weight:700;color:var(--gray-800,#1f2937);margin-bottom:8px;">${_t('session.expiring_title', 'Sessione in scadenza')}</h3>
|
||||
<p style="font-size:0.875rem;color:var(--gray-500,#6b7280);margin-bottom:20px;">
|
||||
Per motivi di sicurezza, verrai disconnesso tra<br>
|
||||
${_t('session.expiring_msg', 'Per motivi di sicurezza, verrai disconnesso tra')}<br>
|
||||
<strong id="idle-countdown" style="font-size:1.5rem;color:#c2410c;display:block;margin:8px 0;">5:00</strong>
|
||||
a causa di inattivita'.
|
||||
${_t('session.idle_reason', "a causa di inattivita'.")}
|
||||
</p>
|
||||
<div style="display:flex;gap:12px;justify-content:center;">
|
||||
<button id="idle-stay-btn"
|
||||
style="padding:10px 24px;background:var(--primary,#2563eb);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;font-size:0.875rem;">
|
||||
Rimani connesso
|
||||
${_t('session.stay', 'Rimani connesso')}
|
||||
</button>
|
||||
<button onclick="api.logout();"
|
||||
style="padding:10px 24px;background:var(--gray-100,#f3f4f6);color:var(--gray-700,#374151);border:none;border-radius:8px;font-weight:600;cursor:pointer;font-size:0.875rem;">
|
||||
Disconnetti
|
||||
${_t('session.logout_now', 'Disconnetti')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+7
-5
@@ -151,7 +151,8 @@ const HelpSystem = (function () {
|
||||
items: [
|
||||
'Ogni rischio registrato include: descrizione, categoria, asset coinvolti, owner e piano di trattamento.',
|
||||
'Lo stato di ogni rischio e\' tracciato nel tempo con lo storico delle modifiche.',
|
||||
'I rischi possono essere collegati ad asset, incidenti e controlli di compliance.'
|
||||
'I rischi possono essere collegati ad asset, incidenti e controlli di compliance.',
|
||||
'La <strong>Matrice Rischi</strong> si aggiorna in tempo reale: eliminando un rischio dalla vista dettaglio, la matrice si ricalcola automaticamente senza richiedere un refresh manuale.'
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -234,7 +235,7 @@ const HelpSystem = (function () {
|
||||
'La funzione <strong>Genera con AI</strong> crea automaticamente bozze di policy conformi NIS2.',
|
||||
'L\'AI utilizza il contesto della tua organizzazione (settore, dimensione, classificazione) per personalizzare il contenuto.',
|
||||
'Le policy generate includono: obiettivo, ambito di applicazione, responsabilita\', procedure e riferimenti normativi.',
|
||||
'Le bozze generate devono essere revisionate e personalizzate prima dell\'approvazione.'
|
||||
'Le bozze AI sono contrassegnate da un <strong>banner arancione di avviso</strong> che ricorda l\'obbligo di revisione prima dell\'approvazione. Il banner puo\' essere chiuso premendo la X.'
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -485,10 +486,11 @@ const HelpSystem = (function () {
|
||||
]
|
||||
},
|
||||
{
|
||||
heading: 'Sicurezza',
|
||||
heading: 'Sicurezza Account',
|
||||
items: [
|
||||
'Modifica la password del tuo account.',
|
||||
'Visualizza le sessioni attive e disconnetti dispositivi remoti.',
|
||||
'Modifica la password del tuo account in qualsiasi momento.',
|
||||
'La piattaforma applica un <strong>timeout di sessione automatico</strong> dopo 30 minuti di inattivita\'. Un avviso con countdown appare 5 minuti prima del logout per permetterti di rimanere connesso.',
|
||||
'Il logout automatico protegge le informazioni sensibili in caso di postazione incustodita.',
|
||||
'Configura le impostazioni di notifica per scadenze e alert.'
|
||||
]
|
||||
}
|
||||
|
||||
@@ -168,6 +168,13 @@ const I18n = (function () {
|
||||
'msg.error_connection': { it: 'Errore di connessione al server.', en: 'Server connection error.' },
|
||||
'msg.no_data': { it: 'Nessun dato disponibile.', en: 'No data available.' },
|
||||
|
||||
// ── Sessione / Idle timeout ─────────────────────
|
||||
'session.expiring_title': { it: 'Sessione in scadenza', en: 'Session expiring' },
|
||||
'session.expiring_msg': { it: 'Per motivi di sicurezza, verrai disconnesso tra', en: 'For security reasons, you will be logged out in' },
|
||||
'session.idle_reason': { it: 'a causa di inattivita\'.', en: 'due to inactivity.' },
|
||||
'session.stay': { it: 'Rimani connesso', en: 'Stay connected' },
|
||||
'session.logout_now': { it: 'Disconnetti', en: 'Log out' },
|
||||
|
||||
// ── Tempo relativo ─────────────────────────────
|
||||
'time.now': { it: 'Adesso', en: 'Just now' },
|
||||
'time.min_ago': { it: 'min fa', en: 'min ago' },
|
||||
|
||||
Reference in New Issue
Block a user