Packages

phoenix_kit

1.7.69
1.7.208 1.7.207 1.7.206 1.7.205 1.7.204 1.7.203 1.7.202 1.7.201 1.7.200 1.7.199 1.7.198 1.7.197 1.7.196 1.7.194 1.7.193 1.7.192 1.7.191 1.7.190 1.7.189 1.7.187 1.7.186 1.7.185 1.7.184 1.7.183 1.7.182 1.7.181 1.7.180 1.7.179 1.7.178 1.7.177 1.7.176 1.7.175 1.7.174 1.7.173 1.7.172 1.7.171 1.7.170 1.7.169 1.7.168 1.7.167 1.7.166 1.7.165 1.7.164 1.7.162 1.7.161 1.7.160 1.7.159 1.7.157 1.7.156 1.7.155 1.7.154 1.7.153 1.7.152 1.7.151 1.7.150 1.7.149 1.7.146 1.7.145 1.7.144 1.7.143 1.7.138 1.7.133 1.7.132 1.7.131 1.7.130 1.7.128 1.7.126 1.7.125 1.7.121 1.7.120 1.7.119 1.7.118 1.7.117 1.7.116 1.7.115 1.7.114 1.7.113 1.7.112 1.7.111 1.7.110 1.7.109 1.7.108 1.7.107 1.7.106 1.7.105 1.7.104 1.7.103 1.7.102 1.7.101 1.7.100 1.7.99 1.7.98 1.7.97 1.7.96 1.7.95 1.7.94 1.7.93 1.7.92 1.7.91 1.7.90 1.7.89 1.7.88 1.7.87 1.7.86 1.7.85 1.7.84 1.7.83 1.7.82 1.7.81 1.7.80 1.7.79 1.7.78 1.7.77 1.7.76 1.7.75 1.7.74 1.7.71 1.7.70 1.7.69 1.7.66 1.7.65 1.7.64 1.7.63 1.7.62 1.7.61 1.7.59 1.7.58 1.7.57 1.7.56 1.7.55 1.7.54 1.7.53 1.7.52 1.7.51 1.7.49 1.7.44 1.7.43 1.7.42 1.7.41 1.7.39 1.7.38 1.7.37 1.7.36 1.7.34 1.7.33 1.7.31 1.7.30 1.7.29 1.7.28 1.7.27 1.7.26 1.7.25 1.7.24 1.7.23 1.7.22 1.7.21 1.7.20 1.7.19 1.7.18 1.7.17 1.7.16 1.7.15 1.7.14 1.7.13 1.7.12 1.7.11 1.7.10 1.7.9 1.7.8 1.7.7 1.7.6 1.7.5 1.7.4 1.7.3 1.7.2 1.7.1 1.7.0 1.6.20 1.6.19 1.6.18 1.6.17 1.6.16 1.6.15 1.6.14 1.6.13 1.6.12 1.6.11 1.6.10 1.6.9 1.6.8 1.6.7 1.6.6 1.6.5 1.6.4 1.6.3 1.5.2 1.5.1 1.5.0 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.2 1.3.1 1.3.0 1.2.10 1.2.9 1.2.8 1.2.7 1.2.5 1.2.4 1.2.2 1.2.1 1.2.0 1.1.0 1.0.0

A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more

Current section

Files

Jump to
phoenix_kit lib modules emails web email_tracking.html.heex
Raw

lib/modules/emails/web/email_tracking.html.heex

<PhoenixKitWeb.Components.LayoutWrapper.app_layout
flash={@flash}
phoenix_kit_current_scope={assigns[:phoenix_kit_current_scope]}
page_title="{@project_title} Email Tracking"
current_path={@url_path}
project_title={@project_title}
current_locale={@current_locale}
>
<div class="container flex flex-col mx-auto px-4 py-6">
<.admin_page_header
back={PhoenixKit.Utils.Routes.path("/admin/settings")}
title="Email Tracking Settings"
subtitle="Configure email tracking system behavior and data retention"
/>
<%!-- Main Content --%>
<div class="max-w-4xl mx-auto space-y-8">
<%!-- System Status Card --%>
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl mb-4">
<.icon name="hero-cog-6-tooth" class="w-6 h-6" /> System Status
</h2>
<div class="form-control">
<label class="label cursor-pointer">
<span class="label-text text-lg">
<span class="font-semibold">Enable Email Tracking System</span>
<div class="text-sm text-base-content/70 mt-1">
Track email delivery, opens, clicks, and other events
</div>
</span>
<input
type="checkbox"
class="toggle toggle-primary"
checked={@email_tracking_enabled}
phx-click="toggle_email_tracking"
/>
</label>
</div>
</div>
</div>
<%= if @email_tracking_enabled do %>
<%!-- Tracking Options Card --%>
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl mb-4">
<.icon name="hero-adjustments-horizontal" class="w-6 h-6" /> Tracking Options
</h2>
<%!-- Save Email Bodies --%>
<div class="form-control mb-4">
<label class="label cursor-pointer">
<span class="label-text text-lg">
<span class="font-semibold">Save Email Bodies</span>
<div class="text-sm text-base-content/70 mt-1">
Store the full content of sent emails for debugging and analysis
</div>
</span>
<input
type="checkbox"
class="toggle toggle-secondary"
checked={@email_tracking_save_body}
phx-click="toggle_email_tracking_save_body"
/>
</label>
</div>
<div class="divider"></div>
<%!-- AWS SES Events --%>
<div class="form-control">
<label class="label cursor-pointer">
<span class="label-text text-lg">
<span class="font-semibold">AWS SES Events Tracking</span>
<div class="text-sm text-base-content/70 mt-1">
Track delivery, bounce, and complaint events from Amazon SES
</div>
</span>
<input
type="checkbox"
class="toggle toggle-accent"
checked={@email_tracking_ses_events}
phx-click="toggle_email_tracking_ses_events"
/>
</label>
</div>
</div>
</div>
<%!-- Data Retention Card --%>
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl mb-4">
<.icon name="hero-archive-box" class="w-6 h-6" /> Data Retention
</h2>
<div class="form-control">
<label class="label">
<span class="label-text text-lg font-semibold">Email Retention Period</span>
</label>
<div class="input-group">
<input
type="number"
placeholder="Enter retention days"
class="input input-bordered w-full max-w-xs"
value={@email_tracking_retention_days}
min="1"
max="365"
phx-blur="update_email_tracking_retention"
phx-value-retention_days={assigns[:email_tracking_retention_days]}
/>
<span class="bg-base-200 px-4 py-3 text-sm">days</span>
</div>
<label class="label">
<span class="label-text-alt text-base-content/70">
How long to keep email tracking data before automatic cleanup (1-365 days)
</span>
</label>
</div>
<div class="alert alert-warning mt-4">
<.icon name="hero-exclamation-triangle" class="w-5 h-5" />
<div>
<h3 class="font-bold">Data Privacy Notice</h3>
<p class="text-sm mt-1">
Email tracking data will be automatically deleted after the retention period expires.
This helps maintain privacy compliance and reduces storage requirements.
</p>
</div>
</div>
</div>
</div>
<%!-- Current Configuration Summary --%>
<div class="alert alert-info">
<.icon name="hero-information-circle" class="w-5 h-5" />
<div>
<h3 class="font-bold">Current Configuration</h3>
<div class="text-sm mt-1">
<p>System: <span class="font-semibold">Enabled</span></p>
<p>
Save email bodies:
<span class="font-semibold">
{if @email_tracking_save_body, do: "Yes", else: "No"}
</span>
</p>
<p>
AWS SES events:
<span class="font-semibold">
{if @email_tracking_ses_events, do: "Yes", else: "No"}
</span>
</p>
<p>
Retention period:
<span class="font-semibold">{@email_tracking_retention_days} days</span>
</p>
</div>
</div>
</div>
<% else %>
<%!-- Disabled State Information --%>
<div class="alert alert-warning">
<.icon name="hero-exclamation-triangle" class="w-5 h-5" />
<div>
<h3 class="font-bold">Email Tracking Disabled</h3>
<p class="text-sm mt-1">
Enable the email tracking system above to access configuration options and start tracking email delivery events.
</p>
</div>
</div>
<%!-- Benefits Card when Disabled --%>
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl mb-4">
<.icon name="hero-light-bulb" class="w-6 h-6" /> Email Tracking Benefits
</h2>
<div class="space-y-3">
<div class="flex items-start gap-3">
<.icon name="hero-check-circle" class="w-5 h-5 text-success mt-0.5" />
<div>
<h3 class="font-semibold">Delivery Monitoring</h3>
<p class="text-sm text-base-content/70">
Track successful email deliveries and identify issues
</p>
</div>
</div>
<div class="flex items-start gap-3">
<.icon name="hero-check-circle" class="w-5 h-5 text-success mt-0.5" />
<div>
<h3 class="font-semibold">Engagement Analytics</h3>
<p class="text-sm text-base-content/70">
Monitor email opens, clicks, and user engagement
</p>
</div>
</div>
<div class="flex items-start gap-3">
<.icon name="hero-check-circle" class="w-5 h-5 text-success mt-0.5" />
<div>
<h3 class="font-semibold">Debugging Support</h3>
<p class="text-sm text-base-content/70">
Store email content for troubleshooting delivery issues
</p>
</div>
</div>
<div class="flex items-start gap-3">
<.icon name="hero-check-circle" class="w-5 h-5 text-success mt-0.5" />
<div>
<h3 class="font-semibold">AWS SES Integration</h3>
<p class="text-sm text-base-content/70">
Automatic webhook handling for bounce and complaint events
</p>
</div>
</div>
</div>
</div>
</div>
<% end %>
</div>
</div>
</PhoenixKitWeb.Components.LayoutWrapper.app_layout>