- Implemented user notification preferences table for managing default notification settings. - Created sag_reminders table to define reminder rules with various trigger types and recipient configurations. - Developed sag_reminder_queue for processing reminder events triggered by status changes or scheduled times. - Added sag_reminder_logs to track reminder notifications and user interactions. - Introduced frontend notification system using Bootstrap 5 Toast for displaying reminders. - Created email template for sending reminders with case details and action links. - Implemented rate limiting for user notifications to prevent spamming. - Added triggers and functions for automatic updates and reminder processing.
134 lines
4.0 KiB
HTML
134 lines
4.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<style>
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
line-height: 1.6;
|
|
color: #333;
|
|
}
|
|
.container {
|
|
max-width: 600px;
|
|
margin: 0 auto;
|
|
padding: 20px;
|
|
background: #f9f9f9;
|
|
}
|
|
.header {
|
|
background: #0f4c75;
|
|
color: white;
|
|
padding: 20px;
|
|
border-radius: 4px 4px 0 0;
|
|
text-align: center;
|
|
}
|
|
.content {
|
|
background: white;
|
|
padding: 20px;
|
|
border-radius: 0 0 4px 4px;
|
|
}
|
|
.reminder-title {
|
|
font-size: 18px;
|
|
font-weight: bold;
|
|
color: #0f4c75;
|
|
margin-bottom: 10px;
|
|
}
|
|
.case-info {
|
|
background: #f0f0f0;
|
|
padding: 12px;
|
|
border-left: 4px solid #0f4c75;
|
|
margin: 15px 0;
|
|
border-radius: 2px;
|
|
}
|
|
.case-info strong {
|
|
display: inline-block;
|
|
min-width: 80px;
|
|
}
|
|
.priority-low { color: #6c757d; }
|
|
.priority-normal { color: #0f4c75; }
|
|
.priority-high { color: #ffc107; }
|
|
.priority-urgent { color: #dc3545; }
|
|
.button {
|
|
display: inline-block;
|
|
padding: 10px 20px;
|
|
background: #0f4c75;
|
|
color: white;
|
|
text-decoration: none;
|
|
border-radius: 4px;
|
|
margin-top: 10px;
|
|
}
|
|
.footer {
|
|
margin-top: 20px;
|
|
padding-top: 15px;
|
|
border-top: 1px solid #ddd;
|
|
font-size: 12px;
|
|
color: #666;
|
|
text-align: center;
|
|
}
|
|
.snooze-info {
|
|
background: #e8f4f8;
|
|
padding: 12px;
|
|
border-radius: 4px;
|
|
margin: 15px 0;
|
|
font-size: 13px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="header">
|
|
<h2>{{ header_title }}</h2>
|
|
</div>
|
|
<div class="content">
|
|
<div class="reminder-title priority-{{ priority | lower }}">
|
|
{{ reminder_title }}
|
|
</div>
|
|
|
|
{% if reminder_message %}
|
|
<p>{{ reminder_message }}</p>
|
|
{% endif %}
|
|
|
|
<div class="case-info">
|
|
<strong>Sag:</strong> {{ case_title }}<br>
|
|
<strong>ID:</strong> #{{ case_id }}<br>
|
|
<strong>Status:</strong> {{ case_status }}<br>
|
|
<strong>Kunde:</strong> {{ customer_name }}<br>
|
|
{% if deadline %}
|
|
<strong>Deadline:</strong> {{ deadline | date("d. MMM yyyy") }}<br>
|
|
{% endif %}
|
|
{% if assigned_user %}
|
|
<strong>Ansvarlig:</strong> {{ assigned_user }}<br>
|
|
{% endif %}
|
|
</div>
|
|
|
|
{% if additional_info %}
|
|
<p>
|
|
<strong>Detaljer:</strong><br>
|
|
{{ additional_info }}
|
|
</p>
|
|
{% endif %}
|
|
|
|
<div style="text-align: center;">
|
|
<a href="{{ action_url }}" class="button">
|
|
Åbn sag i BMC Hub
|
|
</a>
|
|
</div>
|
|
|
|
<div class="snooze-info">
|
|
💡 <strong>Tip:</strong> Du kan slumre eller afvise denne reminder i BMC Hub-systemet eller via popup-notifikationen.
|
|
</div>
|
|
|
|
<div class="footer">
|
|
<p>
|
|
Dette er en automatisk reminder fra BMC Hub.<br>
|
|
Du modtager denne mail fordi du er tilføjet som modtager for denne sags reminders.
|
|
</p>
|
|
<p>
|
|
BMC Networks • {{ footer_date }}<br>
|
|
<em>Denne email blev sendt automatisk - svar venligst ikke direkte.</em>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|