diff --git a/crates/rustmail_panel/src/components/ticket.rs b/crates/rustmail_panel/src/components/ticket.rs index 810d7c4..c4ef243 100644 --- a/crates/rustmail_panel/src/components/ticket.rs +++ b/crates/rustmail_panel/src/components/ticket.rs @@ -635,6 +635,29 @@ pub fn ticket_details(props: &TicketDetailsProps) -> Html { } } +
+ "[User]", + MessageType::Staff => "[Staff]", + MessageType::System => "[System]", + MessageType::Internal => "[Internal]", + }; + content.push_str(&format!("{} {} ({}):\n{}\n\n", prefix, msg.user_name, msg.created_at, msg.content)); + } + let encoded_content = urlencoding::encode(&content); + format!("data:text/plain;charset=utf-8,{}", encoded_content) + } + download={format!("ticket-{}.txt", ticket.id)} + class="px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white text-sm rounded-lg inline-flex items-center justify-center gap-2 transition" + > + + {i18n.t("panel.tickets.download")} + +
diff --git a/crates/rustmail_panel/src/i18n/en/en.json b/crates/rustmail_panel/src/i18n/en/en.json index 303f2db..e6975c5 100644 --- a/crates/rustmail_panel/src/i18n/en/en.json +++ b/crates/rustmail_panel/src/i18n/en/en.json @@ -196,6 +196,7 @@ "unknown_date": "Unknown date", "loading_ticket": "Loading ticket...", "ticket_not_found": "Ticket not found.", + "download": "Download ticket", "filters": "Message filters", "filter_user": "Users", "filter_staff": "Staff", diff --git a/crates/rustmail_panel/src/i18n/fr/fr.json b/crates/rustmail_panel/src/i18n/fr/fr.json index ed9b6ee..5a1b2bd 100644 --- a/crates/rustmail_panel/src/i18n/fr/fr.json +++ b/crates/rustmail_panel/src/i18n/fr/fr.json @@ -197,6 +197,7 @@ "unknown_date": "Date inconnue", "loading_ticket": "Chargement du ticket...", "ticket_not_found": "Ticket introuvable.", + "download": "Télécharger le ticket", "filters": "Filtres des messages", "filter_user": "Utilisateurs", "filter_staff": "Staff",