feat: TO-kenttä näkyviin vastauslomakkeessa
- Vastaanottaja (TO) näkyy nyt Lähettäjä- ja CC-kenttien välissä - Esitäytetään tiketin alkuperäisen lähettäjän osoitteella - Muokattavissa ennen lähetystä - Backend käyttää frontendistä tullutta TO:ta tai fallbackina from_email Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
4
api.php
4
api.php
@@ -2075,6 +2075,7 @@ switch ($action) {
|
||||
$id = $input['id'] ?? '';
|
||||
$body = trim($input['body'] ?? '');
|
||||
$replyMailboxId = $input['mailbox_id'] ?? '';
|
||||
$replyTo = trim($input['to'] ?? '');
|
||||
$replyCc = trim($input['cc'] ?? '');
|
||||
if (empty($body)) {
|
||||
http_response_code(400);
|
||||
@@ -2124,7 +2125,8 @@ switch ($action) {
|
||||
$ccToSend = $replyCc !== '' ? $replyCc : ($t['cc'] ?? '');
|
||||
|
||||
$subject = 'Re: ' . $t['subject'];
|
||||
$sent = sendTicketMail($t['from_email'], $subject, $emailBody, $lastMsgId, trim($allRefs), $replyMailbox, $ccToSend);
|
||||
$toAddress = $replyTo !== '' ? $replyTo : $t['from_email'];
|
||||
$sent = sendTicketMail($toAddress, $subject, $emailBody, $lastMsgId, trim($allRefs), $replyMailbox, $ccToSend);
|
||||
|
||||
if (!$sent) {
|
||||
http_response_code(500);
|
||||
|
||||
@@ -452,6 +452,10 @@
|
||||
<label style="font-size:0.8rem;color:#888;min-width:60px;">Lähettäjä:</label>
|
||||
<select id="reply-mailbox-select" style="flex:1;padding:5px 10px;border:1px solid #ddd;border-radius:6px;font-size:0.85rem;"></select>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:0.5rem;">
|
||||
<label style="font-size:0.8rem;color:#888;min-width:60px;">Vast.ott.:</label>
|
||||
<input type="text" id="reply-to" style="flex:1;padding:5px 10px;border:1px solid #ddd;border-radius:6px;font-size:0.85rem;">
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:0.5rem;">
|
||||
<label style="font-size:0.8rem;color:#888;min-width:60px;">CC:</label>
|
||||
<input type="text" id="reply-cc" placeholder="email1@example.com, email2@example.com" style="flex:1;padding:5px 10px;border:1px solid #ddd;border-radius:6px;font-size:0.85rem;">
|
||||
|
||||
@@ -1579,6 +1579,10 @@ async function showTicketDetail(id, companyId = '') {
|
||||
document.querySelector('.btn-reply-tab[data-reply-type="reply"]').classList.add('active');
|
||||
document.getElementById('btn-send-reply').textContent = 'Lähetä vastaus';
|
||||
|
||||
// TO-kenttä — tiketin alkuperäinen lähettäjä
|
||||
const toField = document.getElementById('reply-to');
|
||||
if (toField) toField.value = ticket.from_email || '';
|
||||
|
||||
// CC-kenttä — täytetään tiketin CC:stä
|
||||
const ccField = document.getElementById('reply-cc');
|
||||
if (ccField) ccField.value = ticket.cc || '';
|
||||
@@ -1709,9 +1713,11 @@ document.getElementById('btn-send-reply').addEventListener('click', async () =>
|
||||
const payload = { id: currentTicketId, body };
|
||||
if (ticketReplyType !== 'note') {
|
||||
const mbSel = document.getElementById('reply-mailbox-select');
|
||||
const toFld = document.getElementById('reply-to');
|
||||
const ccFld = document.getElementById('reply-cc');
|
||||
const useSig = document.getElementById('reply-use-signature');
|
||||
if (mbSel) payload.mailbox_id = mbSel.value;
|
||||
if (toFld && toFld.value.trim()) payload.to = toFld.value.trim();
|
||||
if (ccFld) payload.cc = ccFld.value.trim();
|
||||
if (useSig && !useSig.checked) payload.no_signature = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user