Siistimpi Hae postit -UX: ei välivaihe-tekstiä, vain vihreä tuloslaatikko

- Poistettu "Haetaan sähköpostit ja synkataan Zammad..." -teksti
- Status-laatikko näytetään vasta kun tulokset on valmiit
- scrollIntoView scrollaa tuloksen näkyviin

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 09:03:44 +02:00
parent 682de29e5a
commit 0c9a60a90b
2 changed files with 8 additions and 11 deletions

View File

@@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Noxus HUB</title> <title>Noxus HUB</title>
<link rel="stylesheet" href="style.css?v=20260313t"> <link rel="stylesheet" href="style.css?v=20260313u">
</head> </head>
<body> <body>
<!-- Login --> <!-- Login -->
@@ -2271,6 +2271,6 @@
</div> </div>
</div> </div>
<script src="script.js?v=20260313t"></script> <script src="script.js?v=20260313u"></script>
</body> </body>
</html> </html>

View File

@@ -2143,15 +2143,9 @@ document.getElementById('btn-fetch-emails').addEventListener('click', async () =
const status = document.getElementById('ticket-fetch-status'); const status = document.getElementById('ticket-fetch-status');
btn.disabled = true; btn.disabled = true;
btn.textContent = '⏳ Haetaan...'; btn.textContent = '⏳ Haetaan...';
status.style.display = 'block'; status.style.display = 'none';
status.className = '';
status.style.background = '#f0f7ff';
status.style.color = '#0f3460';
status.textContent = 'Yhdistetään sähköpostipalvelimeen...';
try { try {
// Hae IMAP ja Zammad rinnakkain — ei enää peräkkäin
status.textContent = 'Haetaan sähköpostit ja synkataan Zammad...';
const [imapResult, zammadResult] = await Promise.allSettled([ const [imapResult, zammadResult] = await Promise.allSettled([
apiCall('ticket_fetch', 'POST'), apiCall('ticket_fetch', 'POST'),
apiCall('zammad_sync', 'POST', { full: true }), apiCall('zammad_sync', 'POST', { full: true }),
@@ -2174,18 +2168,21 @@ document.getElementById('btn-fetch-emails').addEventListener('click', async () =
if (zParts.length) parts.push(`🔗 Zammad: ${zParts.join(', ')}`); if (zParts.length) parts.push(`🔗 Zammad: ${zParts.join(', ')}`);
} }
await loadTickets();
status.style.display = 'block';
status.style.background = '#eafaf1'; status.style.background = '#eafaf1';
status.style.color = '#27ae60'; status.style.color = '#27ae60';
status.textContent = parts.length ? parts.join(' | ') : 'Valmis — ei uusia viestejä.'; status.textContent = parts.length ? parts.join(' | ') : 'Valmis — ei uusia viestejä.';
await loadTickets(); status.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
} catch (e) { } catch (e) {
status.style.display = 'block';
status.style.background = '#fef2f2'; status.style.background = '#fef2f2';
status.style.color = '#e74c3c'; status.style.color = '#e74c3c';
status.textContent = 'Virhe: ' + e.message; status.textContent = 'Virhe: ' + e.message;
} finally { } finally {
btn.disabled = false; btn.disabled = false;
btn.textContent = '📧 Hae postit'; btn.textContent = '📧 Hae postit';
setTimeout(() => { status.style.display = 'none'; }, 8000); setTimeout(() => { status.style.display = 'none'; }, 6000);
} }
}); });