diff --git a/index.html b/index.html index 5e7e354..a69d081 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Noxus HUB - + @@ -2233,6 +2233,6 @@ - + diff --git a/script.js b/script.js index a29a12b..6baca52 100644 --- a/script.js +++ b/script.js @@ -1848,6 +1848,7 @@ async function showTicketDetail(id, companyId = '') { // Mailbox-valinta — Zammad-tiketit vastaa Zammadin kautta, muut SMTP:llä const mbSelect = document.getElementById('reply-mailbox-select'); + let replyMailboxes = []; // tallennetaan postilaatikkodata allekirjoitushakua varten if (mbSelect) { if (ticket.source === 'zammad' && ticket.zammad_ticket_id) { // Zammad-tiketti: vastaus menee Zammadin kautta @@ -1855,8 +1856,8 @@ async function showTicketDetail(id, companyId = '') { mbSelect.innerHTML = ``; } else { try { - const mailboxes = await apiCall('all_mailboxes'); - const visibleMailboxes = mailboxes.filter(mb => + replyMailboxes = await apiCall('all_mailboxes'); + const visibleMailboxes = replyMailboxes.filter(mb => String(mb.id) === String(ticket.mailbox_id || '') || (!currentHiddenMailboxes.includes(String(mb.id)) && !currentHiddenMailboxes.includes(mb.id)) ); @@ -1875,25 +1876,36 @@ async function showTicketDetail(id, companyId = '') { }); } - // Allekirjoituksen esikatselu + // Allekirjoituksen esikatselu — generoi oikea oletus jos tallennettua ei löydy + const _sigUserName = currentUser?.nimi || currentUser?.username || ''; + function _buildDefaultSig(companyName, email, phone) { + let sig = _sigUserName + '\n' + companyName + '\n' + email; + if (phone) sig += '\n' + phone; + return sig; + } function updateSignaturePreview(mbId) { const sigPreview = document.getElementById('signature-preview'); const useSigCheck = document.getElementById('reply-use-signature'); let sig = ''; - // Zammad-tiketti: hae allekirjoitus zammad:email -avaimella if (mbId === 'zammad' && ticket.zammad_to_email) { + // Zammad-tiketti: hae allekirjoitus zammad:email -avaimella sig = currentUserSignatures['zammad:' + ticket.zammad_to_email] || ''; - } - if (!sig) { - sig = currentUserSignatures[mbId] || ''; - } - if (!sig && mbId) { - sig = currentUserSignatures[String(mbId)] || currentUserSignatures[Number(mbId)] || ''; - } - if (!sig) { - // Fallback: käytä ensimmäistä löytyvää allekirjoitusta - const keys = Object.keys(currentUserSignatures); - if (keys.length > 0) sig = currentUserSignatures[keys[0]] || ''; + if (!sig) { + // Generoi oletus Zammad-tiketin tiedoilla + const cName = currentCompany?.nimi || ''; + const cPhone = currentCompany?.phone || ''; + sig = _buildDefaultSig(cName, ticket.zammad_to_email, cPhone); + } + } else if (mbId) { + // SMTP-postilaatikko: hae tallennettu allekirjoitus + sig = currentUserSignatures[mbId] || currentUserSignatures[String(mbId)] || currentUserSignatures[Number(mbId)] || ''; + if (!sig) { + // Generoi oletus postilaatikon tiedoilla + const mb = replyMailboxes.find(m => String(m.id) === String(mbId)); + if (mb) { + sig = _buildDefaultSig(mb.company_nimi || '', mb.smtp_from_email || '', mb.company_phone || ''); + } + } } if (sig && useSigCheck && useSigCheck.checked) { sigPreview.textContent = '-- \n' + sig; @@ -2004,7 +2016,15 @@ document.getElementById('btn-send-reply').addEventListener('click', async () => let zBody = body; const useSig = document.getElementById('reply-use-signature'); if (useSig && useSig.checked && currentTicketData.zammad_to_email) { - const zSig = currentUserSignatures['zammad:' + currentTicketData.zammad_to_email] || ''; + let zSig = currentUserSignatures['zammad:' + currentTicketData.zammad_to_email] || ''; + if (!zSig) { + // Generoi oletus allekirjoitus + const _un = currentUser?.nimi || currentUser?.username || ''; + const _cn = currentCompany?.nimi || ''; + const _cp = currentCompany?.phone || ''; + zSig = _un + '\n' + _cn + '\n' + currentTicketData.zammad_to_email; + if (_cp) zSig += '\n' + _cp; + } if (zSig) zBody += '\n\n-- \n' + zSig; } // Lähetä Zammad API:n kautta