Korjaa allekirjoituksen valinta vastattaessa tiketteihin
Poistettu virheellinen fallback joka valitsi ensimmäisen satunnaisen allekirjoituksen (esim. serverihuone.com) väärään tikettiin. Nyt generoidaan oikea oletusallekirjoitus tiketin kontekstin perusteella (käyttäjänimi + yritys + vastaanottava sähköposti + puhelin). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Noxus HUB</title>
|
||||
<link rel="stylesheet" href="style.css?v=20260313g">
|
||||
<link rel="stylesheet" href="style.css?v=20260313h">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Login -->
|
||||
@@ -2233,6 +2233,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="script.js?v=20260313g"></script>
|
||||
<script src="script.js?v=20260313h"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
52
script.js
52
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 = `<option value="zammad" selected>${esc(zTo)} (Zammad)</option>`;
|
||||
} 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
|
||||
|
||||
Reference in New Issue
Block a user