Bunch of stuff again
This commit is contained in:
84
api/src/templates/email/account-approved.html
Normal file
84
api/src/templates/email/account-approved.html
Normal file
@@ -0,0 +1,84 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Account Approved — {{ORGANIZATION_NAME}}</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
.container {
|
||||
background-color: #f9f9f9;
|
||||
border-radius: 8px;
|
||||
padding: 30px;
|
||||
border: 1px solid #e0e0e0;
|
||||
}
|
||||
.header {
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
border-bottom: 2px solid #16a34a;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.logo {
|
||||
color: #16a34a;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.content {
|
||||
background-color: white;
|
||||
padding: 25px;
|
||||
border-radius: 6px;
|
||||
margin-bottom: 20px;
|
||||
border-left: 4px solid #16a34a;
|
||||
}
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 14px 32px;
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
background: linear-gradient(135deg, #16a34a, #15803d);
|
||||
color: white;
|
||||
}
|
||||
.btn-container {
|
||||
text-align: center;
|
||||
margin: 24px 0;
|
||||
}
|
||||
.footer {
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: #6c757d;
|
||||
margin-top: 30px;
|
||||
padding-top: 20px;
|
||||
border-top: 1px solid #e9ecef;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<div class="logo">{{ORGANIZATION_NAME}}</div>
|
||||
<p style="margin: 10px 0 0 0; color: #6c757d;">Account Approved</p>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<p>Hi {{RECIPIENT_NAME}},</p>
|
||||
<p>Your account has been approved. You can now log in and start using the platform.</p>
|
||||
|
||||
<div class="btn-container">
|
||||
<a href="{{LOGIN_URL}}" class="btn">Log In Now</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>This email was sent by <strong>{{ORGANIZATION_NAME}}</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
9
api/src/templates/email/account-approved.txt
Normal file
9
api/src/templates/email/account-approved.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
{{ORGANIZATION_NAME}} — Account Approved
|
||||
|
||||
Hi {{RECIPIENT_NAME}},
|
||||
|
||||
Your account has been approved. You can now log in and start using the platform.
|
||||
|
||||
Log in: {{LOGIN_URL}}
|
||||
|
||||
— {{ORGANIZATION_NAME}}
|
||||
109
api/src/templates/email/account-pending-approval.html
Normal file
109
api/src/templates/email/account-pending-approval.html
Normal file
@@ -0,0 +1,109 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>New User Awaiting Approval — {{ORGANIZATION_NAME}}</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
.container {
|
||||
background-color: #f9f9f9;
|
||||
border-radius: 8px;
|
||||
padding: 30px;
|
||||
border: 1px solid #e0e0e0;
|
||||
}
|
||||
.header {
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
border-bottom: 2px solid #d97706;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.logo {
|
||||
color: #d97706;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.content {
|
||||
background-color: white;
|
||||
padding: 25px;
|
||||
border-radius: 6px;
|
||||
margin-bottom: 20px;
|
||||
border-left: 4px solid #d97706;
|
||||
}
|
||||
.info-section {
|
||||
background-color: #fffbeb;
|
||||
padding: 15px;
|
||||
border-radius: 4px;
|
||||
margin: 16px 0;
|
||||
border: 1px solid #fde68a;
|
||||
}
|
||||
.info-item {
|
||||
margin: 6px 0;
|
||||
}
|
||||
.info-label {
|
||||
font-weight: bold;
|
||||
color: #92400e;
|
||||
}
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 14px 32px;
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
background: linear-gradient(135deg, #d97706, #b45309);
|
||||
color: white;
|
||||
}
|
||||
.btn-container {
|
||||
text-align: center;
|
||||
margin: 24px 0;
|
||||
}
|
||||
.footer {
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: #6c757d;
|
||||
margin-top: 30px;
|
||||
padding-top: 20px;
|
||||
border-top: 1px solid #e9ecef;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<div class="logo">{{ORGANIZATION_NAME}}</div>
|
||||
<p style="margin: 10px 0 0 0; color: #6c757d;">New User Awaiting Approval</p>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<p>A new user has verified their email and is waiting for admin approval:</p>
|
||||
|
||||
<div class="info-section">
|
||||
<div class="info-item">
|
||||
<span class="info-label">Name:</span> {{NEW_USER_NAME}}
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="info-label">Email:</span> {{NEW_USER_EMAIL}}
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="info-label">Registered:</span> {{REGISTERED_AT}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-container">
|
||||
<a href="{{ADMIN_URL}}" class="btn">Review in Admin Panel</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>This is an admin notification from <strong>{{ORGANIZATION_NAME}}</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
11
api/src/templates/email/account-pending-approval.txt
Normal file
11
api/src/templates/email/account-pending-approval.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
{{ORGANIZATION_NAME}} — New User Awaiting Approval
|
||||
|
||||
A new user has verified their email and is waiting for admin approval:
|
||||
|
||||
Name: {{NEW_USER_NAME}}
|
||||
Email: {{NEW_USER_EMAIL}}
|
||||
Registered: {{REGISTERED_AT}}
|
||||
|
||||
Review in admin panel: {{ADMIN_URL}}
|
||||
|
||||
— {{ORGANIZATION_NAME}}
|
||||
102
api/src/templates/email/email-verification.html
Normal file
102
api/src/templates/email/email-verification.html
Normal file
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Verify Your Email — {{ORGANIZATION_NAME}}</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
.container {
|
||||
background-color: #f9f9f9;
|
||||
border-radius: 8px;
|
||||
padding: 30px;
|
||||
border: 1px solid #e0e0e0;
|
||||
}
|
||||
.header {
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
border-bottom: 2px solid #2563eb;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.logo {
|
||||
color: #2563eb;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.content {
|
||||
background-color: white;
|
||||
padding: 25px;
|
||||
border-radius: 6px;
|
||||
margin-bottom: 20px;
|
||||
border-left: 4px solid #2563eb;
|
||||
}
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 14px 32px;
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
background: linear-gradient(135deg, #2563eb, #1d4ed8);
|
||||
color: white;
|
||||
}
|
||||
.btn-container {
|
||||
text-align: center;
|
||||
margin: 24px 0;
|
||||
}
|
||||
.expiry-notice {
|
||||
background-color: #fef3c7;
|
||||
padding: 12px 16px;
|
||||
border-radius: 4px;
|
||||
margin: 16px 0;
|
||||
border: 1px solid #fde68a;
|
||||
font-size: 14px;
|
||||
color: #92400e;
|
||||
}
|
||||
.footer {
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: #6c757d;
|
||||
margin-top: 30px;
|
||||
padding-top: 20px;
|
||||
border-top: 1px solid #e9ecef;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<div class="logo">{{ORGANIZATION_NAME}}</div>
|
||||
<p style="margin: 10px 0 0 0; color: #6c757d;">Email Verification</p>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<p>Hi {{RECIPIENT_NAME}},</p>
|
||||
<p>Thank you for creating an account. Please verify your email address by clicking the button below:</p>
|
||||
|
||||
<div class="btn-container">
|
||||
<a href="{{VERIFICATION_URL}}" class="btn">Verify Email Address</a>
|
||||
</div>
|
||||
|
||||
<div class="expiry-notice">
|
||||
This link expires in {{EXPIRY_HOURS}} hours. If you did not create this account, you can safely ignore this email.
|
||||
</div>
|
||||
|
||||
<p style="font-size: 13px; color: #6c757d;">
|
||||
If the button doesn't work, copy and paste this URL into your browser:<br>
|
||||
<span style="word-break: break-all;">{{VERIFICATION_URL}}</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>This email was sent by <strong>{{ORGANIZATION_NAME}}</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
13
api/src/templates/email/email-verification.txt
Normal file
13
api/src/templates/email/email-verification.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
{{ORGANIZATION_NAME}} — Email Verification
|
||||
|
||||
Hi {{RECIPIENT_NAME}},
|
||||
|
||||
Thank you for creating an account. Please verify your email address by visiting the link below:
|
||||
|
||||
{{VERIFICATION_URL}}
|
||||
|
||||
This link expires in {{EXPIRY_HOURS}} hours.
|
||||
|
||||
If you did not create this account, you can safely ignore this email.
|
||||
|
||||
— {{ORGANIZATION_NAME}}
|
||||
102
api/src/templates/email/password-reset.html
Normal file
102
api/src/templates/email/password-reset.html
Normal file
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Password Reset — {{ORGANIZATION_NAME}}</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
.container {
|
||||
background-color: #f9f9f9;
|
||||
border-radius: 8px;
|
||||
padding: 30px;
|
||||
border: 1px solid #e0e0e0;
|
||||
}
|
||||
.header {
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
border-bottom: 2px solid #2563eb;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.logo {
|
||||
color: #2563eb;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.content {
|
||||
background-color: white;
|
||||
padding: 25px;
|
||||
border-radius: 6px;
|
||||
margin-bottom: 20px;
|
||||
border-left: 4px solid #2563eb;
|
||||
}
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 14px 32px;
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
background: linear-gradient(135deg, #2563eb, #1d4ed8);
|
||||
color: white;
|
||||
}
|
||||
.btn-container {
|
||||
text-align: center;
|
||||
margin: 24px 0;
|
||||
}
|
||||
.expiry-notice {
|
||||
background-color: #fef3c7;
|
||||
padding: 12px 16px;
|
||||
border-radius: 4px;
|
||||
margin: 16px 0;
|
||||
border: 1px solid #fde68a;
|
||||
font-size: 14px;
|
||||
color: #92400e;
|
||||
}
|
||||
.footer {
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: #6c757d;
|
||||
margin-top: 30px;
|
||||
padding-top: 20px;
|
||||
border-top: 1px solid #e9ecef;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<div class="logo">{{ORGANIZATION_NAME}}</div>
|
||||
<p style="margin: 10px 0 0 0; color: #6c757d;">Password Reset</p>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<p>Hi {{RECIPIENT_NAME}},</p>
|
||||
<p>We received a request to reset your password. Click the button below to set a new password:</p>
|
||||
|
||||
<div class="btn-container">
|
||||
<a href="{{RESET_URL}}" class="btn">Reset Password</a>
|
||||
</div>
|
||||
|
||||
<div class="expiry-notice">
|
||||
This link expires in 1 hour. If you didn't request a password reset, you can safely ignore this email.
|
||||
</div>
|
||||
|
||||
<p style="font-size: 13px; color: #6c757d;">
|
||||
If the button doesn't work, copy and paste this URL into your browser:<br>
|
||||
<span style="word-break: break-all;">{{RESET_URL}}</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>This email was sent by <strong>{{ORGANIZATION_NAME}}</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
11
api/src/templates/email/password-reset.txt
Normal file
11
api/src/templates/email/password-reset.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
{{ORGANIZATION_NAME}} — Password Reset
|
||||
|
||||
Hi {{RECIPIENT_NAME}},
|
||||
|
||||
We received a request to reset your password. Visit the link below to set a new password:
|
||||
|
||||
{{RESET_URL}}
|
||||
|
||||
This link expires in 1 hour. If you didn't request a password reset, you can safely ignore this email.
|
||||
|
||||
— {{ORGANIZATION_NAME}}
|
||||
Reference in New Issue
Block a user