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:
@@ -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>
|
||||||
|
|||||||
15
script.js
15
script.js
@@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user