EagleCast
publish-github-pages / deploy (push) Waiting to run

This commit is contained in:
h202-wq
2026-07-09 10:03:32 -04:00
commit 66d9a033c9
446 changed files with 162542 additions and 0 deletions
+98
View File
@@ -0,0 +1,98 @@
{{ 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: #F0F1F3;
font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;
font-size: 15px;
line-height: 26px;
margin: 0;
color: #444;
}
.wrap {
background-color: #fff;
padding: 30px;
max-width: 525px;
margin: 0 auto;
border-radius: 5px;
}
.header {
border-bottom: 1px solid #eee;
padding-bottom: 15px;
margin-bottom: 15px;
}
.footer {
text-align: center;
font-size: 12px;
color: #888;
}
.footer a {
color: #888;
}
.gutter {
padding: 30px;
}
.button {
background: #1b3a5b;
color: #fff !important;
display: inline-block;
border-radius: 3px;
padding: 10px 30px;
text-align: center;
text-decoration: none;
font-weight: bold;
}
.button:hover {
background: #222;
color: #fff;
}
img {
max-width: 100%;
}
a {
color: #1b3a5b;
}
a:hover {
color: #111;
}
@media screen and (max-width: 600px) {
.wrap {
max-width: auto;
}
.gutter {
padding: 10px;
}
}
</style>
</head>
<body style="background-color: #F0F1F3;">
<div class="gutter">&nbsp;</div>
<div class="wrap">
<div class="header">
{{ if ne LogoURL "" }}
<img src="{{ LogoURL }}" alt="eaglecast" />
{{ end }}
</div>
{{ end }}
{{ define "footer" }}
</div>
<div class="footer">
<p>{{ L.T "public.poweredBy" }} EagleCast</p>
</div>
<div class="gutter">&nbsp;</div>
</body>
</html>
{{ end }}
@@ -0,0 +1,25 @@
{{ define "campaign-status" }}
{{ template "header" . }}
<h2>{{ L.Ts "email.status.campaignUpdateTitle" }}</h2>
<table width="100%">
<tr>
<td width="30%"><strong>{{ L.Ts "globals.terms.campaign" }}</strong></td>
<td><a href="{{ RootURL }}/admin/campaigns/{{ index . "ID" }}">{{ index . "Name" }}</a></td>
</tr>
<tr>
<td width="30%"><strong>{{ L.Ts "email.status.status" }}</strong></td>
<td>{{ index . "Status" }}</td>
</tr>
<tr>
<td width="30%"><strong>{{ L.Ts "email.status.campaignSent" }}</strong></td>
<td>{{ index . "Sent" }} / {{ index . "ToSend" }}</td>
</tr>
{{ if ne (index . "Reason") "" }}
<tr>
<td width="30%"><strong>{{ L.Ts "email.status.campaignReason" }}</strong></td>
<td>{{ index . "Reason" }}</td>
</tr>
{{ end }}
</table>
{{ template "footer" }}
{{ end }}
@@ -0,0 +1,98 @@
<!doctype html>
<html>
<head>
<title>{{ .Campaign.Subject }}</title>
<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: #F0F1F3;
font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;
font-size: 15px;
line-height: 26px;
margin: 0;
color: #444;
}
pre {
background: #f4f4f4f4;
padding: 2px;
}
table {
width: 100%;
border: 1px solid #ddd;
}
table td {
border-color: #ddd;
padding: 5px;
}
.wrap {
background-color: #fff;
padding: 30px;
max-width: 525px;
margin: 0 auto;
border-radius: 5px;
}
.button {
background: #1b3a5b;
border-radius: 3px;
text-decoration: none !important;
color: #fff !important;
font-weight: bold;
padding: 10px 30px;
display: inline-block;
}
.button:hover {
background: #111;
}
.footer {
text-align: center;
font-size: 12px;
color: #888;
}
.footer a {
color: #888;
margin-right: 5px;
}
.gutter {
padding: 30px;
}
img {
max-width: 100%;
height: auto;
}
a {
color: #1b3a5b;
}
a:hover {
color: #111;
}
@media screen and (max-width: 600px) {
.wrap {
max-width: auto;
}
.gutter {
padding: 10px;
}
}
</style>
</head>
<body style="background-color: #F0F1F3;font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;font-size: 15px;line-height: 26px;margin: 0;color: #444;">
<div class="gutter" style="padding: 30px;">&nbsp;</div>
<div class="wrap" style="background-color: #fff;padding: 30px;max-width: 525px;margin: 0 auto;border-radius: 5px;">
{{ template "content" . }}
</div>
<div class="footer" style="text-align: center;font-size: 12px;color: #888;">
<p>{{ L.T "public.poweredBy" }} <a href="https://source.offmarket.win/aleagle/EagleCast" target="_blank" rel="noreferrer" style="color: #888;">EagleCast</a></p>
</div>
</body>
</html>
+129
View File
@@ -0,0 +1,129 @@
{
"root": {
"type": "EmailLayout",
"data": {
"backdropColor": "#F5F5F5",
"canvasColor": "#FFFFFF",
"textColor": "#262626",
"fontFamily": "MODERN_SANS",
"childrenIds": [
"block-1744970939431",
"block-1744970976991",
"block-1744971036169",
"block-1744971054197",
"block-1764116602073"
]
}
},
"block-1744970939431": {
"type": "Heading",
"data": {
"props": {
"text": "Hello {{ .Subscriber.Name }}",
"level": "h3"
},
"style": {
"padding": {
"top": 16,
"bottom": 16,
"right": 24,
"left": 24
}
}
}
},
"block-1744970976991": {
"type": "Text",
"data": {
"style": {
"fontWeight": "normal",
"padding": {
"top": 16,
"bottom": 16,
"right": 24,
"left": 24
}
},
"props": {
"markdown": true,
"text": "This is a test e-mail campaign. Your second name is {{ .Subscriber.LastName }} and this block of text is in Markdown.\n\nHere is a [tracked link](https://example.com@TrackLink).\n\nUse the link icon in the editor toolbar or when writing raw HTML or Markdown, simply suffix @TrackLink to the end of a URL to turn it into a tracking link. Example:\n\n<a href=\"https://example.com@TrackLink\"></a>"
}
}
},
"block-1744971036169": {
"type": "Divider",
"data": {
"style": {
"padding": {
"top": 16,
"bottom": 16,
"right": 0,
"left": 0
}
},
"props": {
"lineColor": "#CCCCCC"
}
}
},
"block-1744971054197": {
"type": "Button",
"data": {
"style": {
"padding": {
"top": 16,
"bottom": 16,
"right": 24,
"left": 24
}
},
"props": {
"buttonBackgroundColor": "#1b3a5b",
"text": "This is a button",
"url": "https://example.com"
}
}
},
"block-1764115374178": {
"type": "Text",
"data": {
"style": {
"backgroundColor": "#F5F5F5",
"fontSize": 12,
"fontWeight": "normal",
"textAlign": "center",
"padding": {
"top": 16,
"bottom": 16,
"right": 24,
"left": 24
}
},
"props": {
"markdown": true,
"text": "<a href=\"{{ UnsubscribeURL }}\" style=\"color: #888;\">{{ L.T \"email.unsub\" }}</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"{{ MessageURL }}\" style=\"color: #888;\">{{ L.T \"email.viewInBrowser\" }}</a>"
}
}
},
"block-1764116602073": {
"type": "Text",
"data": {
"style": {
"backgroundColor": "#F5F5F5",
"fontSize": 12,
"fontWeight": "normal",
"textAlign": "center",
"padding": {
"top": 16,
"bottom": 16,
"right": 24,
"left": 24
}
},
"props": {
"markdown": true,
"text": "<a href=\"{{ UnsubscribeURL }}\" style=\"color: #888;\">{{ L.T \"email.unsub\" }}</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"{{ MessageURL }}\" style=\"color: #888;\">{{ L.T \"email.viewInBrowser\" }}</a>\n{{ TrackView }}"
}
}
}
}
+58
View File
@@ -0,0 +1,58 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div
style='background-color:#F5F5F5;color:#262626;font-family:"Helvetica Neue", "Arial Nova", "Nimbus Sans", Arial, sans-serif;font-size:16px;font-weight:400;letter-spacing:0.15008px;line-height:1.5;margin:0;padding:32px 0;min-height:100%;width:100%'
>
<table align="center" width="100%" style="margin:0 auto;max-width:600px;background-color:#FFFFFF" role="presentation" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr style="width:100%">
<td>
<h3 style="font-weight:bold;margin:0;font-size:20px;padding:16px 24px 16px 24px">
Hello {{ .Subscriber.Name }}
</h3>
<div style="font-weight:normal;padding:16px 24px 16px 24px">
<p>
This is a test e-mail campaign. Your second name is {{ .Subscriber.LastName }} and this block of text is in Markdown.
</p>
<p>
Here is a
<a href="https://example.com@TrackLink" target="_blank">tracked link</a>.
</p>
<p>
Use the link icon in the editor toolbar or when writing raw
HTML or Markdown, simply suffix @TrackLink to the end of a URL
to turn it into a tracking link. Example:
</p>
<p><a href="https://example.com@TrackLink"></a></p>
</div>
<div style="padding:16px 0px 16px 0px">
<hr style="width:100%;border:none;border-top:1px solid #CCCCCC;margin:0"/>
</div>
<div style="padding:16px 24px 16px 24px">
<a href="https://example.com"
style="color:#FFFFFF;font-size:16px;font-weight:bold;background-color:#1b3a5b;border-radius:4px;display:inline-block;padding:12px 20px;text-decoration:none"
target="_blank">
<span><!--[if mso]><i style="letter-spacing: 20px;mso-font-width:-100%;mso-text-raise:30" hidden>&nbsp;</i><![endif]--></span>
<span>This is a button</span>
<span><!--[if mso]><i style="letter-spacing: 20px;mso-font-width:-100%" hidden>&nbsp;</i><![endif]--></span>
</a>
</div>
<div style="background-color:#F5F5F5;font-size:12px;font-weight:normal;text-align:center;padding:16px 24px 16px 24px">
<p>
<a href="{{ UnsubscribeURL }}" style="color: #888;">{{ L.T "email.unsub" }}</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="{{ MessageURL }}"style="color: #888;">{{ L.T "email.viewInBrowser" }}</a>
{{ TrackView }}
</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
+103
View File
@@ -0,0 +1,103 @@
<!doctype html>
<html>
<head>
<title>{{ .Campaign.Subject }}</title>
<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: #F0F1F3;
font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;
font-size: 15px;
line-height: 26px;
margin: 0;
color: #444;
}
pre {
background: #f4f4f4f4;
padding: 2px;
}
table {
width: 100%;
border: 1px solid #ddd;
}
table td {
border-color: #ddd;
padding: 5px;
}
.wrap {
background-color: #fff;
padding: 30px;
max-width: 525px;
margin: 0 auto;
border-radius: 5px;
}
.button {
background: #1b3a5b;
border-radius: 3px;
text-decoration: none !important;
color: #fff !important;
font-weight: bold;
padding: 10px 30px;
display: inline-block;
}
.button:hover {
background: #111;
}
.footer {
text-align: center;
font-size: 12px;
color: #888;
}
.footer a {
color: #888;
margin-right: 5px;
}
.gutter {
padding: 30px;
}
img {
max-width: 100%;
height: auto;
}
a {
color: #1b3a5b;
}
a:hover {
color: #111;
}
@media screen and (max-width: 600px) {
.wrap {
max-width: auto;
}
.gutter {
padding: 10px;
}
}
</style>
</head>
<body style="background-color: #F0F1F3;font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;font-size: 15px;line-height: 26px;margin: 0;color: #444;">
<div class="gutter" style="padding: 30px;">&nbsp;</div>
<div class="wrap" style="background-color: #fff;padding: 30px;max-width: 525px;margin: 0 auto;border-radius: 5px;">
{{ template "content" . }}
</div>
<div class="footer" style="text-align: center;font-size: 12px;color: #888;">
<p>
<a href="{{ UnsubscribeURL }}" style="color: #888;">{{ L.T "email.unsub" }}</a>
&nbsp;&nbsp;
<a href="{{ MessageURL }}" style="color: #888;">{{ L.T "email.viewInBrowser" }}</a>
</p>
</div>
<div class="gutter" style="padding: 30px;">&nbsp;{{ TrackView }}</div>
</body>
</html>
@@ -0,0 +1,12 @@
{{ define "forgot-password" }}
{{ template "header" . }}
<h2>{{ L.T "email.forgotPassword.subject" }}</h2>
<p>
<a href="{{ .ResetURL }}" class="button">{{ L.T "email.forgotPassword.button" }}</a>
</p>
<p style="color: #666; font-size: 12px;">{{ L.T "email.forgotPassword.info" }}</p>
{{ template "footer" }}
{{ end }}
+19
View File
@@ -0,0 +1,19 @@
{{ define "import-status" }}
{{ template "header" . }}
<h2>{{ L.Ts "email.status.importTitle" }}</h2>
<table width="100%">
<tr>
<td width="30%"><strong>{{ L.Ts "email.status.importFile" }}</strong></td>
<td><a href="{{ RootURL }}/admin/subscribers/import">{{ .Name }}</a></td>
</tr>
<tr>
<td width="30%"><strong>{{ L.Ts "email.status.status" }}</strong></td>
<td>{{ .Status }}</td>
</tr>
<tr>
<td width="30%"><strong>{{ L.Ts "email.status.importRecords" }}</strong></td>
<td>{{ .Imported }} / {{ .Total }}</td>
</tr>
</table>
{{ template "footer" }}
{{ end }}
+108
View File
@@ -0,0 +1,108 @@
<!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: #F0F1F3;
font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;
font-size: 15px;
line-height: 26px;
margin: 0;
color: #444;
}
pre {
background: #f4f4f4f4;
padding: 2px;
}
table {
width: 100%;
border: 1px solid #ddd;
}
table td {
border-color: #ddd;
padding: 5px;
}
.wrap {
background-color: #fff;
padding: 30px;
max-width: 525px;
margin: 0 auto;
border-radius: 5px;
}
.button {
background: #1b3a5b;
border-radius: 3px;
text-decoration: none !important;
color: #fff !important;
font-weight: bold;
padding: 10px 30px;
display: inline-block;
}
.button:hover {
background: #111;
}
.footer {
text-align: center;
font-size: 12px;
color: #888;
}
.footer a {
color: #888;
margin-right: 5px;
}
.gutter {
padding: 30px;
}
img {
max-width: 100%;
height: auto;
}
a {
color: #1b3a5b;
}
a:hover {
color: #111;
}
@media screen and (max-width: 600px) {
.wrap {
max-width: auto;
}
.gutter {
padding: 10px;
}
}
</style>
</head>
<body style="background-color: #F0F1F3;font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;font-size: 15px;line-height: 26px;margin: 0;color: #444;">
<div class="gutter" style="padding: 30px;">&nbsp;</div>
<div class="wrap" style="background-color: #fff;padding: 30px;max-width: 525px;margin: 0 auto;border-radius: 5px;">
<p>Hello {{ .Subscriber.Name }}</p>
<p>
<strong>Order number: </strong> {{ .Tx.Data.order_id }}<br />
<strong>Shipping date: </strong> {{ .Tx.Data.shipping_date }}<br />
</p>
<br />
<p>
Transactional templates supports arbitrary parameters.
Render them using <code>.Tx.Data.YourParamName</code>. For more information,
see the transactional mailing documentation.
</p>
</div>
<div class="footer" style="text-align: center;font-size: 12px;color: #888;">
<p>{{ L.T "public.poweredBy" }} EagleCast</p>
</div>
</body>
</html>
+5
View File
@@ -0,0 +1,5 @@
{{ define "smtp-test" }}
{{ template "header" . }}
<h2>{{ L.Ts "settings.smtp.testConnection" }}</h2>
{{ template "footer" }}
{{ end }}
@@ -0,0 +1,8 @@
{{ define "subscriber-data" }}
{{ template "header" . }}
<h2>{{ L.Ts "email.data.title" }}</h2>
<p>
{{ L.Ts "email.data.info" }}
</p>
{{ template "footer" }}
{{ end }}
@@ -0,0 +1,17 @@
{{ define "optin-campaign" }}
<p>{{ L.Ts "email.optin.confirmSubWelcome" }} {{ "{{" }}.Subscriber.FirstName {{ "}}" }}</p>
<p>{{ L.Ts "email.optin.confirmSubInfo" }}</p>
<ul>
{{ range $i, $l := .Lists }}
{{ if eq .Type "public" }}
<li>{{ .Name }}</li>
{{ else }}
<li>{{ L.Ts "email.optin.privateList" }}</li>
{{ end }}
{{ end }}
</ul>
<p>
<a class="button" {{ .OptinURLAttr }}>{{ L.Ts "email.optin.confirmSub" }}</a>
</p>
{{ end }}
@@ -0,0 +1,22 @@
{{ define "subscriber-optin" }}
{{ template "header" . }}
<h2>{{ L.Ts "email.optin.confirmSubTitle" }}</h2>
<p>{{ L.Ts "email.optin.confirmSubWelcome" }} {{ .Subscriber.FirstName }}</p>
<p>{{ L.Ts "email.optin.confirmSubInfo" }}</p>
<ul>
{{ range $i, $l := .Lists }}
{{ if eq .Type "public" }}
<li>{{ .Name }}</li>
{{ else }}
<li>{{ L.Ts "email.optin.privateList" }}</li>
{{ end }}
{{ end }}
</ul>
<p>{{ L.Ts "email.optin.confirmSubHelp" }}</p>
<p>
<a href="{{ .OptinURL }}" class="button">{{ L.Ts "email.optin.confirmSub" }}</a>
</p>
<a href="{{ .UnsubURL }}?manage=true">{{ L.T "email.unsub" }}</a>
{{ template "footer" }}
{{ end }}