fix: PHP heredoc interpretaba template literals JS como constantes PHP
- Convierte backtick template literals con \${it.id} a concatenación de strings
- Fix query de chatConversations: GROUP BY solo por phone_number, evita duplicados
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
b308de2b3b
commit
14db6fe27f
@@ -675,20 +675,21 @@ async function refreshDrawer() {
|
|||||||
body.innerHTML = '<div style="text-align:center;color:#a0a8b8;padding:40px 0;font-size:15px">✅ Sin pendientes</div>';
|
body.innerHTML = '<div style="text-align:center;color:#a0a8b8;padding:40px 0;font-size:15px">✅ Sin pendientes</div>';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
body.innerHTML = items.map(it => `
|
body.innerHTML = items.map(function(it) {
|
||||||
<div class="dp-card" id="dp-${it.id}">
|
return '<div class="dp-card" id="dp-' + it.id + '">'
|
||||||
<div class="dp-top">
|
+ '<div class="dp-top">'
|
||||||
<span class="dp-phone">${esc(it.phone)}</span>
|
+ '<span class="dp-phone">' + esc(it.phone) + '</span>'
|
||||||
<span class="dp-name">${esc(it.contact_name || '')}</span>
|
+ '<span class="dp-name">' + esc(it.contact_name || '') + '</span>'
|
||||||
<span class="dp-time">${(it.created_at||'').substr(11,5)}</span>
|
+ '<span class="dp-time">' + (it.created_at||'').substr(11,5) + '</span>'
|
||||||
</div>
|
+ '</div>'
|
||||||
<div class="dp-in">↩ ${esc(it.incoming_message || '')}</div>
|
+ '<div class="dp-in">↩ ' + esc(it.incoming_message || '') + '</div>'
|
||||||
<div class="dp-resp">🤖 ${esc(getPreview(it.bot_response))}</div>
|
+ '<div class="dp-resp">🤖 ' + esc(getPreview(it.bot_response)) + '</div>'
|
||||||
<div class="dp-actions">
|
+ '<div class="dp-actions">'
|
||||||
<button class="dp-approve" onclick="pendingAction(${it.id},'approve',this)">✓ Aprobar</button>
|
+ '<button class="dp-approve" onclick="pendingAction(' + it.id + ',\'approve\',this)">✓ Aprobar</button>'
|
||||||
<button class="dp-reject" onclick="pendingAction(${it.id},'reject',this)">✕ Rechazar</button>
|
+ '<button class="dp-reject" onclick="pendingAction(' + it.id + ',\'reject\',this)">✕ Rechazar</button>'
|
||||||
</div>
|
+ '</div>'
|
||||||
</div>`).join('');
|
+ '</div>';
|
||||||
|
}).join('');
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
body.innerHTML = '<div style="text-align:center;color:#991b1b;padding:20px">Error al cargar</div>';
|
body.innerHTML = '<div style="text-align:center;color:#991b1b;padding:20px">Error al cargar</div>';
|
||||||
}
|
}
|
||||||
@@ -1939,12 +1940,14 @@ HTML;
|
|||||||
$db = db();
|
$db = db();
|
||||||
// Get unique conversations with last message and unread count
|
// Get unique conversations with last message and unread count
|
||||||
$rows = $db->query("
|
$rows = $db->query("
|
||||||
SELECT c.phone_number, c.contact_name, c.company_id,
|
SELECT c.phone_number,
|
||||||
MAX(c.created_at) as last_time,
|
MAX(c.contact_name) as contact_name,
|
||||||
|
MAX(c.company_id) as company_id,
|
||||||
|
MAX(c.created_at) as last_time,
|
||||||
(SELECT content FROM conversations c2 WHERE c2.phone_number = c.phone_number ORDER BY c2.id DESC LIMIT 1) as last_message,
|
(SELECT content FROM conversations c2 WHERE c2.phone_number = c.phone_number ORDER BY c2.id DESC LIMIT 1) as last_message,
|
||||||
(SELECT COUNT(*) FROM conversations c3 WHERE c3.phone_number = c.phone_number AND c3.direction = 'inbound' AND c3.id > COALESCE((SELECT MAX(c4.id) FROM conversations c4 WHERE c4.phone_number = c.phone_number AND c4.direction = 'outbound'), 0)) as unread_count
|
(SELECT COUNT(*) FROM conversations c3 WHERE c3.phone_number = c.phone_number AND c3.direction = 'inbound' AND c3.id > COALESCE((SELECT MAX(c4.id) FROM conversations c4 WHERE c4.phone_number = c.phone_number AND c4.direction = 'outbound'), 0)) as unread_count
|
||||||
FROM conversations c
|
FROM conversations c
|
||||||
GROUP BY c.phone_number, c.contact_name, c.company_id
|
GROUP BY c.phone_number
|
||||||
ORDER BY last_time DESC
|
ORDER BY last_time DESC
|
||||||
")->fetchAll();
|
")->fetchAll();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user