Saisissez l’adresse email autorisée et le code reçu par email avant la première authentification.
${activation.activated && activation.email
? `Appareil déjà associé à ${escapeAttr(activation.email)}.`
: 'Le code est généré depuis le module Licences mobiles dans le back-office.'}
`;
const errBox = root.querySelector('#activationErrBox');
const form = root.querySelector('#activationForm');
form.addEventListener('submit', async (event) => {
event.preventDefault();
errBox.style.display = 'none';
const formData = new FormData(form);
const email = String(formData.get('email') || '').trim();
const code = String(formData.get('code') || '').trim();
if (!email || !code) {
errBox.textContent = 'Renseignez l’adresse email et le code d’activation.';
errBox.style.display = 'block';
return;
}
try {
const state = await activateMobileAccess({ email, code });
if (!state.activated) {
errBox.textContent = 'Activation impossible.';
errBox.style.display = 'block';
return;
}
renderActivationSuccess(root, state, onActivated);
} catch (error) {
const msg = (() => {
switch (error?.data?.error) {
case 'license_disabled':
return 'Cette licence mobile est suspendue.';
case 'code_expired':
return 'Le code d’activation a expiré. Demandez-en un nouveau.';
case 'code_invalid':
return 'Le code d’activation est invalide.';
case 'user_not_found':
return 'Aucun utilisateur actif ne correspond à cette adresse email.';
default:
return error?.status ? 'Activation refusée par le serveur.' : 'Connexion au serveur impossible. Vérifiez le réseau puis réessayez.';
}
})();
errBox.textContent = msg;
errBox.style.display = 'block';
}
});
}
function renderActivationSuccess(root, state, onActivated) {
const cfg = getStoredMobileConfig();
const logoUrl = cfg.logo_url || '/insuite-logo.svg';
const appName = cfg.app_name || 'Insuite Technicien';
const displayName = state.userName || state.email || 'Compte mobile';
root.innerHTML = `
Activation validée
Compte mobile activé
L’appareil est maintenant autorisé pour ${escapeAttr(displayName)}. Vous pouvez accéder à votre espace personnel.