Zammad-sync automaattisesti autopäivityksessä + mailbox-valinta korjaus

1. Auto-refresh synkkaa Zammadin taustalla ennen tikettien latausta
   (joka minuutti tms. käyttäjän asetuksen mukaan).
2. Tikettiin vastatessa oletuksena valittuna se postilaatikko johon
   viesti alun perin tuli — korjattu string/number vertailu.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 00:33:44 +02:00
parent 8c950bbe8f
commit ecc0b06ba5

View File

@@ -1831,11 +1831,12 @@ async function showTicketDetail(id, companyId = '') {
const mailboxes = await apiCall('all_mailboxes'); const mailboxes = await apiCall('all_mailboxes');
// Suodata pois piilotetut postilaatikot (paitsi jos tiketin oma mailbox on piilotettu — se näytetään silti) // Suodata pois piilotetut postilaatikot (paitsi jos tiketin oma mailbox on piilotettu — se näytetään silti)
const visibleMailboxes = mailboxes.filter(mb => const visibleMailboxes = mailboxes.filter(mb =>
mb.id === (ticket.mailbox_id || '') || String(mb.id) === String(ticket.mailbox_id || '') ||
(!currentHiddenMailboxes.includes(String(mb.id)) && !currentHiddenMailboxes.includes(mb.id)) (!currentHiddenMailboxes.includes(String(mb.id)) && !currentHiddenMailboxes.includes(mb.id))
); );
const ticketMbId = String(ticket.mailbox_id || '');
mbSelect.innerHTML = visibleMailboxes.map(mb => mbSelect.innerHTML = visibleMailboxes.map(mb =>
`<option value="${esc(mb.id)}" ${mb.id === (ticket.mailbox_id || '') ? 'selected' : ''}>${esc(mb.nimi || mb.smtp_from_email)} &lt;${esc(mb.smtp_from_email)}&gt;</option>` `<option value="${esc(mb.id)}" ${String(mb.id) === ticketMbId ? 'selected' : ''}>${esc(mb.nimi || mb.smtp_from_email)} &lt;${esc(mb.smtp_from_email)}&gt;</option>`
).join(''); ).join('');
// Vaihda allekirjoitusta kun mailbox vaihtuu // Vaihda allekirjoitusta kun mailbox vaihtuu
mbSelect.addEventListener('change', function() { mbSelect.addEventListener('change', function() {
@@ -2037,11 +2038,13 @@ let ticketAutoRefreshTimer = null;
function startTicketAutoRefresh() { function startTicketAutoRefresh() {
stopTicketAutoRefresh(); stopTicketAutoRefresh();
const seconds = parseInt(document.getElementById('ticket-refresh-interval').value) || 60; const seconds = parseInt(document.getElementById('ticket-refresh-interval').value) || 60;
ticketAutoRefreshTimer = setInterval(() => { ticketAutoRefreshTimer = setInterval(async () => {
// Vain jos support-tabi on aktiivinen ja listanäkymä näkyy // Vain jos support-tabi on aktiivinen ja listanäkymä näkyy
const supportActive = document.getElementById('tab-content-support').classList.contains('active'); const supportActive = document.getElementById('tab-content-support').classList.contains('active');
const listVisible = document.getElementById('ticket-list-view').style.display !== 'none'; const listVisible = document.getElementById('ticket-list-view').style.display !== 'none';
if (supportActive && listVisible) { if (supportActive && listVisible) {
// Synkkaa Zammad taustalla ennen tikettien latausta
try { await apiCall('zammad_sync', 'POST'); } catch (e) { /* Zammad ei käytössä */ }
loadTickets(); loadTickets();
} }
}, seconds * 1000); }, seconds * 1000);