diff --git a/renderer.js b/renderer.js index 661ceb0..2015ae2 100644 --- a/renderer.js +++ b/renderer.js @@ -157,17 +157,38 @@ async function handleLogin(e) { const loginBtn = document.querySelector('#loginForm button[type="submit"]'); // Vérifier que le terminal est sélectionné et valide - if (!terminal) { - errorDiv.textContent = 'Veuillez sélectionner un poste téléphonique'; + if (!terminal || terminal.trim() === '') { + errorDiv.textContent = 'Veuillez sélectionner ou saisir un poste téléphonique'; return; } - - // Valider que le terminal existe dans la liste + + // Valider le format du terminal (doit être numérique) + if (!/^\d+$/.test(terminal)) { + errorDiv.textContent = 'Le poste doit être un numéro (ex: 3001)'; + return; + } + + // Avertir si le poste n'est pas dans la liste officielle if (!validateTerminal(terminal)) { - errorDiv.textContent = 'Poste téléphonique invalide. Veuillez choisir un poste de la liste.'; - return; + console.log(`⚠️ Avertissement : Le poste ${terminal} n'est pas dans la liste officielle`); + + // Afficher un avertissement visuel temporaire + const warningDiv = document.createElement('div'); + warningDiv.className = 'warning-message'; + warningDiv.style.cssText = 'color: #ff9800; font-size: 0.9em; margin-top: 5px;'; + warningDiv.textContent = `⚠️ Attention : Le poste ${terminal} n'est pas dans la liste officielle`; + + // Insérer l'avertissement avant le message d'erreur + errorDiv.parentNode.insertBefore(warningDiv, errorDiv); + + // Supprimer l'avertissement après 5 secondes + setTimeout(() => { + if (warningDiv.parentNode) { + warningDiv.remove(); + } + }, 5000); } - + // Sauvegarder le terminal sélectionné pour la prochaine fois localStorage.setItem('last-terminal', terminal); @@ -841,15 +862,20 @@ async function loadTerminals() { // Créer une nouvelle instance Choices.js terminalChoices = new window.Choices(terminalSelect, { searchEnabled: true, - searchPlaceholderValue: 'Rechercher un poste...', - itemSelectText: '', - noResultsText: 'Aucun poste trouvé', + addItems: true, // Permet l'ajout d'items + addChoices: true, // IMPORTANT: Pour les