From 4086409f99a22a3a2f028e2424a029c6cafc6258 Mon Sep 17 00:00:00 2001 From: Jukka Lampikoski Date: Fri, 13 Mar 2026 02:02:11 +0200 Subject: [PATCH] =?UTF-8?q?V=C3=A4lit=C3=A4=20To/CC-kent=C3=A4t=20Zammad-v?= =?UTF-8?q?astauksissa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit JS ei lähettänyt käyttäjän muokkaamaa To/CC-kenttää Zammad-vastauksen mukana — backend käytti aina alkuperäistä lähettäjää tietokannasta. Nyt käyttäjän syöttämä To/CC välitetään API:lle ja Zammadille. Co-Authored-By: Claude Opus 4.6 --- api.php | 11 ++++++++--- index.html | 4 ++-- script.js | 9 +++++++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/api.php b/api.php index a34ca73..f716b90 100644 --- a/api.php +++ b/api.php @@ -304,7 +304,7 @@ class ZammadClient { } /** Lähetä vastaus tikettiin */ - public function createArticle(int $ticketId, string $body, string $to = '', string $subject = '', string $type = 'email'): array { + public function createArticle(int $ticketId, string $body, string $to = '', string $subject = '', string $type = 'email', string $cc = ''): array { // Muunna plain-text HTML:ksi jos body ei sisällä HTML-tageja $htmlBody = $body; if (strip_tags($body) === $body) { @@ -320,6 +320,7 @@ class ZammadClient { 'sender' => 'Agent', ]; if ($to) $data['to'] = $to; + if ($cc) $data['cc'] = $cc; if ($subject) $data['subject'] = 'Re: ' . preg_replace('/^Re:\s*/i', '', $subject); return $this->request('POST', 'ticket_articles', $data); } @@ -5319,11 +5320,15 @@ switch ($action) { try { $z = new ZammadClient($integ['config']['url'], $integ['config']['token']); + $to = !empty($input['to']) ? trim($input['to']) : ($ticket['from_email'] ?? ''); + $cc = !empty($input['cc']) ? trim($input['cc']) : ''; $result = $z->createArticle( (int)$ticket['zammad_ticket_id'], $body, - $ticket['from_email'] ?? '', - $ticket['subject'] ?? '' + $to, + $ticket['subject'] ?? '', + 'email', + $cc ); // Tallenna myös paikalliseen tietokantaan diff --git a/index.html b/index.html index a69d081..19e157a 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 6baca52..70965ae 100644 --- a/script.js +++ b/script.js @@ -2027,8 +2027,13 @@ document.getElementById('btn-send-reply').addEventListener('click', async () => } if (zSig) zBody += '\n\n-- \n' + zSig; } - // Lähetä Zammad API:n kautta - await apiCall('zammad_reply' + ticketCompanyParam(), 'POST', { ticket_id: currentTicketId, body: zBody }); + // Lähetä Zammad API:n kautta — välitä myös to/cc-kentät + const zPayload = { ticket_id: currentTicketId, body: zBody }; + const zToFld = document.getElementById('reply-to'); + const zCcFld = document.getElementById('reply-cc'); + if (zToFld && zToFld.value.trim()) zPayload.to = zToFld.value.trim(); + if (zCcFld && zCcFld.value.trim()) zPayload.cc = zCcFld.value.trim(); + await apiCall('zammad_reply' + ticketCompanyParam(), 'POST', zPayload); } else { const action = ticketReplyType === 'note' ? 'ticket_note' : 'ticket_reply'; const payload = { id: currentTicketId, body };