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:
@@ -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)} <${esc(mb.smtp_from_email)}></option>`
|
`<option value="${esc(mb.id)}" ${String(mb.id) === ticketMbId ? 'selected' : ''}>${esc(mb.nimi || mb.smtp_from_email)} <${esc(mb.smtp_from_email)}></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);
|
||||||
|
|||||||
Reference in New Issue
Block a user