mirror of
https://github.com/abhinavxd/libredesk.git
synced 2026-09-22 02:23:32 +00:00
Show conversation status in search results
This commit is contained in:
@@ -36,15 +36,24 @@
|
||||
>
|
||||
<div class="flex justify-between items-start">
|
||||
<div class="flex-grow">
|
||||
<!-- Reference number -->
|
||||
<!-- Reference number and status -->
|
||||
<div
|
||||
class="text-sm font-semibold mb-2 text-muted-foreground group-hover:text-primary transition duration-200"
|
||||
class="text-sm font-semibold mb-2 text-muted-foreground group-hover:text-primary transition duration-200 flex items-center gap-2"
|
||||
>
|
||||
#{{
|
||||
type === 'conversations'
|
||||
? item.reference_number
|
||||
: item.conversation_reference_number
|
||||
}}
|
||||
<span>
|
||||
#{{
|
||||
type === 'conversations'
|
||||
? item.reference_number
|
||||
: item.conversation_reference_number
|
||||
}}
|
||||
</span>
|
||||
<Badge variant="outline" class="text-xs font-medium">
|
||||
{{
|
||||
type === 'conversations'
|
||||
? item.status
|
||||
: item.conversation_status
|
||||
}}
|
||||
</Badge>
|
||||
</div>
|
||||
|
||||
<!-- Content -->
|
||||
@@ -93,6 +102,7 @@ import { computed, ref, watch } from 'vue'
|
||||
import { ChevronRightIcon, ClockIcon } from 'lucide-vue-next'
|
||||
import { format, parseISO } from 'date-fns'
|
||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@shared-ui/components/ui/tabs'
|
||||
import { Badge } from '@shared-ui/components/ui/badge'
|
||||
|
||||
const tabLabelKeys = {
|
||||
conversations: 'globals.terms.conversation',
|
||||
|
||||
@@ -7,6 +7,7 @@ type ConversationResult struct {
|
||||
UUID string `db:"uuid" json:"uuid"`
|
||||
ReferenceNumber string `db:"reference_number" json:"reference_number"`
|
||||
Subject string `db:"subject" json:"subject"`
|
||||
Status string `db:"status" json:"status"`
|
||||
}
|
||||
|
||||
type MessageResult struct {
|
||||
@@ -15,6 +16,7 @@ type MessageResult struct {
|
||||
ConversationCreatedAt time.Time `db:"conversation_created_at" json:"conversation_created_at"`
|
||||
ConversationUUID string `db:"conversation_uuid" json:"conversation_uuid"`
|
||||
ConversationReferenceNumber string `db:"conversation_reference_number" json:"conversation_reference_number"`
|
||||
ConversationStatus string `db:"conversation_status" json:"conversation_status"`
|
||||
}
|
||||
|
||||
type ContactResult struct {
|
||||
|
||||
@@ -3,8 +3,10 @@ SELECT
|
||||
conversations.created_at,
|
||||
conversations.uuid,
|
||||
conversations.reference_number,
|
||||
conversations.subject
|
||||
conversations.subject,
|
||||
cs.name AS status
|
||||
FROM conversations
|
||||
LEFT JOIN conversation_statuses cs ON conversations.status_id = cs.id
|
||||
WHERE reference_number::text = $1;
|
||||
|
||||
-- name: search-conversations-by-contact-email
|
||||
@@ -12,9 +14,11 @@ SELECT
|
||||
conversations.created_at,
|
||||
conversations.uuid,
|
||||
conversations.reference_number,
|
||||
conversations.subject
|
||||
conversations.subject,
|
||||
cs.name AS status
|
||||
FROM conversations
|
||||
JOIN users ON conversations.contact_id = users.id
|
||||
LEFT JOIN conversation_statuses cs ON conversations.status_id = cs.id
|
||||
WHERE users.email = $1
|
||||
ORDER BY conversations.created_at DESC
|
||||
LIMIT 1000;
|
||||
@@ -24,9 +28,11 @@ SELECT
|
||||
c.created_at as "conversation_created_at",
|
||||
c.reference_number as "conversation_reference_number",
|
||||
c.uuid as "conversation_uuid",
|
||||
m.text_content
|
||||
m.text_content,
|
||||
cs.name as "conversation_status"
|
||||
FROM conversation_messages m
|
||||
JOIN conversations c ON m.conversation_id = c.id
|
||||
LEFT JOIN conversation_statuses cs ON c.status_id = cs.id
|
||||
WHERE m.type != 'activity' and m.text_content ILIKE '%' || $1 || '%'
|
||||
LIMIT 30;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user