Show visitor online state in chat list
This commit is contained in:
@@ -304,6 +304,12 @@ function adminConversations(res) {
|
||||
AND unread.sender_type = 'visitor'
|
||||
AND datetime(unread.created_at) > datetime(COALESCE(c.admin_seen_at, '1970-01-01 00:00:00'))
|
||||
) AS has_unread,
|
||||
EXISTS(
|
||||
SELECT 1 FROM visitor_sessions vs
|
||||
WHERE vs.site_id = c.site_id
|
||||
AND vs.visitor_token = c.visitor_token
|
||||
AND datetime(vs.last_seen_at) >= datetime('now', '-90 seconds')
|
||||
) AS visitor_online,
|
||||
(SELECT COUNT(*) FROM conversations vc WHERE vc.site_id = c.site_id AND vc.visitor_token = c.visitor_token) AS visitor_conversation_count
|
||||
FROM conversations c
|
||||
JOIN sites s ON s.id = c.site_id
|
||||
@@ -689,6 +695,10 @@ function formatConversationSummary(row) {
|
||||
siteId: row.site_id,
|
||||
siteKey: row.site_key,
|
||||
status: row.status,
|
||||
visitorToken: row.visitor_token,
|
||||
visitorInitials: visitorInitials(row.visitor_token),
|
||||
visitorLabel: visitorLabel(row.visitor_token),
|
||||
visitorOnline: Boolean(row.visitor_online),
|
||||
visitor: {
|
||||
name: row.visitor_name,
|
||||
email: row.visitor_email,
|
||||
@@ -765,6 +775,12 @@ function findConversation(publicId) {
|
||||
AND unread.sender_type = 'visitor'
|
||||
AND datetime(unread.created_at) > datetime(COALESCE(c.admin_seen_at, '1970-01-01 00:00:00'))
|
||||
) AS has_unread,
|
||||
EXISTS(
|
||||
SELECT 1 FROM visitor_sessions vs
|
||||
WHERE vs.site_id = c.site_id
|
||||
AND vs.visitor_token = c.visitor_token
|
||||
AND datetime(vs.last_seen_at) >= datetime('now', '-90 seconds')
|
||||
) AS visitor_online,
|
||||
(SELECT COUNT(*) FROM conversations vc WHERE vc.site_id = c.site_id AND vc.visitor_token = c.visitor_token) AS visitor_conversation_count
|
||||
FROM conversations c
|
||||
JOIN sites s ON s.id = c.site_id
|
||||
|
||||
Reference in New Issue
Block a user