mirror of
https://github.com/abhinavxd/libredesk.git
synced 2026-09-23 11:03:43 +00:00
494bc15b0a
Before this feature the only way to create a conversation was by adding inbox and sending an email. Agents first search contacts by email, see a dropdown select an existing contact or fill a new email for new contact. The backend creates contact if it does not exist, creates a conversation, sends a reply to the conversation. Optinally assigns conversation to a user / team. fix: Replies to emails create a new conversation instead of attaching to the previous one. Was not happening in gmail, as gmail was sending the references headers in all replies and I missed this completely. So when libredesk searches a conversation by references headers it worked! Instead the right way is to generate the outgoing email message id and saving it in DB. This commit fixes that. There could be more backup strategies like putting reference number in the subject but that can be explored later. chore: new role `conversatons:write` that enables the create conversations feature for an agent. chore: migrations for v0.4.0.
117 lines
2.7 KiB
HTML
117 lines
2.7 KiB
HTML
{{ define "header" }}
|
|
<!doctype html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
|
|
<base target="_blank">
|
|
<style>
|
|
body {
|
|
background-color: #f5f7fa;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
|
font-size: 15px;
|
|
line-height: 1.6;
|
|
margin: 0;
|
|
color: #374151;
|
|
}
|
|
|
|
.wrap {
|
|
background-color: #ffffff;
|
|
padding: 40px;
|
|
max-width: 600px;
|
|
margin: 0 auto;
|
|
border-radius: 8px;
|
|
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
|
|
}
|
|
|
|
.header {
|
|
border-bottom: 1px solid #e5e7eb;
|
|
padding-bottom: 20px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.footer {
|
|
text-align: center;
|
|
font-size: 13px;
|
|
color: #6b7280;
|
|
margin-top: 32px;
|
|
}
|
|
|
|
.footer a {
|
|
color: #6b7280;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.gutter {
|
|
padding: 32px;
|
|
}
|
|
|
|
.button {
|
|
background: #2563eb;
|
|
color: #ffffff !important;
|
|
display: inline-block;
|
|
border-radius: 6px;
|
|
padding: 12px 32px;
|
|
text-align: center;
|
|
text-decoration: none;
|
|
font-weight: 500;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.button:hover {
|
|
background: #1d4ed8;
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
img {
|
|
max-width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
a {
|
|
color: #2563eb;
|
|
text-decoration: none;
|
|
}
|
|
|
|
a:hover {
|
|
color: #1d4ed8;
|
|
}
|
|
|
|
@media screen and (max-width: 600px) {
|
|
.wrap {
|
|
max-width: 100%;
|
|
border-radius: 0;
|
|
}
|
|
|
|
.gutter {
|
|
padding: 16px;
|
|
}
|
|
|
|
.wrap {
|
|
padding: 24px;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body style="background-color: #f5f7fa;">
|
|
<div class="gutter"> </div>
|
|
<div class="wrap">
|
|
<div class="header">
|
|
{{ if ne LogoURL "" }}
|
|
<img src="{{ LogoURL }}" alt="{{ SiteName }}" style="max-width: 150px;">
|
|
{{ end }}
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ define "footer" }}
|
|
</div>
|
|
<div class="footer">
|
|
<span style="opacity: 0.6;">Powered by <a href="https://libredesk.io/" target="_blank">Libredesk</a></span>
|
|
</div>
|
|
<div class="gutter"> </div>
|
|
</body>
|
|
|
|
</html>
|
|
{{ end }} |