feat: initial import of Erugo blade templates and email views
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %}Account Created! Set your password
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ user.name }},</h2>
|
||||
|
||||
<p>We've created an account for you on {{ settings.application_name }}.</p>
|
||||
<p>Please set your password to get started.</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block action_url %}{{ settings.application_url }}/reset-password/{{ token }}{% endblock %}
|
||||
{% block action_text %}
|
||||
Set Password
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,28 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %}Verify your email address
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ user.name }},</h2>
|
||||
|
||||
<p>Thanks for creating an account on {{ settings.application_name }}.</p>
|
||||
<p>Please enter the following verification code to activate your account:</p>
|
||||
|
||||
<div style="text-align: center; margin: 30px 0;">
|
||||
<div style="display: inline-block; background-color: #f3f4f6; padding: 20px 40px; border-radius: 8px; font-size: 32px; font-weight: bold; letter-spacing: 8px; font-family: monospace;">
|
||||
{{ code }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p style="text-align: center; color: #6b7280; font-size: 14px;">
|
||||
This code will expire in 15 minutes.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<small>Didn't create an account? You can safely ignore this email.</small>
|
||||
</p>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>
|
||||
{% block title %}{% endblock %}
|
||||
</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
||||
background-color: #f8fafc;
|
||||
color: #374151;
|
||||
line-height: 1.5;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.header {
|
||||
text-align: center;
|
||||
padding: 20px 0;
|
||||
background-color: #ffffff;
|
||||
border-radius: 8px 8px 0 0;
|
||||
border-bottom: 2px solid #e5e7eb;
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #ffffff;
|
||||
padding: 30px;
|
||||
border-radius: 0 0 8px 8px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
font-size: 0.875rem;
|
||||
color: #6b7280;
|
||||
}
|
||||
|
||||
.button {
|
||||
display: inline-block;
|
||||
padding: 12px 24px;
|
||||
background-color: #2563eb;
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
border-radius: 6px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
.button:hover {
|
||||
background-color: #1d4ed8;
|
||||
}
|
||||
|
||||
@media only screen and(max-width: 600px) {
|
||||
.container {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<div
|
||||
class="header">
|
||||
<!-- You can add your logo here -->
|
||||
<h1>
|
||||
{% block header %}{% endblock %}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="content"> {% block content %}{% endblock %}
|
||||
{% if block('action_url') is defined %}
|
||||
<div style="text-align: center">
|
||||
<a href="{{ block('action_url') }}" class="button">{{ block('action_text')|default('Click Here') }}</a>
|
||||
</div>
|
||||
<br><br>
|
||||
<p class="f-fallback sub">{{ settings.email_template_fallback_text }}</p>
|
||||
<p class="f-fallback sub">{{ block('action_url') }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>
|
||||
<small>
|
||||
<a href="{{ settings.application_url }}">{{ settings.application_name }}</a>
|
||||
</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %}Reset your password
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ user.name }},</h2>
|
||||
|
||||
<p>We've received a request to reset your password.</p>
|
||||
<p>Use the link below to reset your password and get back into your account.</p>
|
||||
|
||||
<p>
|
||||
<small>Didn't request a password reset? Ignore this email.</small>
|
||||
</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block action_url %}{{ settings.application_url }}/reset-password/{{ token }}{% endblock %}
|
||||
{% block action_text %}
|
||||
Reset Password
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,27 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %} You have a new reverse share request
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ recipient_name }},</h2>
|
||||
|
||||
<p>{{ sender_name }} is requesting files from you.</p>
|
||||
{% if isExistingUser %}
|
||||
<p>Click the button below to log in to your account and upload files for {{ sender_name }}.</p>
|
||||
{% else %}
|
||||
<p>Click the button below to accept the request and upload files for {{ sender_name }}.</p>
|
||||
{% endif %}
|
||||
|
||||
{% if invite.message %}
|
||||
<hr>
|
||||
<p>Message: {{ invite.message }}</p>
|
||||
<hr>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block action_url %}{% if isExistingUser %}{{ settings.application_url }}/?invite_id={{ invite.id }}{% else %}{{ settings.application_url }}/?invite_token={{ token }}{% endif %}{% endblock %}
|
||||
|
||||
{% block action_text %}{% if isExistingUser %}Log In & Upload{% else %}Accept Request{% endif %}{% endblock %}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %} You have files to download
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ recipient_name }},</h2>
|
||||
|
||||
<p>{{ sender_name }} shared {{ share.file_count }} file{{ share.file_count == 1 ? '' : 's' }} with you.</p>
|
||||
<p>Click the button below to access your files.</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block action_url %}{{ settings.application_url }}/shares/{{ share.long_id }}{% endblock %}
|
||||
{% block action_text %}
|
||||
Download Files
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,27 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %}
|
||||
Your share has been deleted
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ share.user.first_name }},</h2>
|
||||
|
||||
<p>This is a reminder that your share "{{ share.name }}" ({{ share.long_id }}) has been deleted.</p>
|
||||
|
||||
{% if share.download_count > 0 %}
|
||||
<p>The share has been downloaded
|
||||
{{ share.download_count }}
|
||||
time{{ share.download_count == 1 ? '' : 's' }}.</p>
|
||||
{% else %}
|
||||
<p>The share wasn't downloaded.</p>
|
||||
{% endif %}
|
||||
|
||||
<p>This share can no longer be revived.</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block action_url %}{{ settings.application_url }}{% endblock %}
|
||||
{% block action_text %}
|
||||
Visit
|
||||
{{ settings.application_name }}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,29 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %}
|
||||
Your share will be deleted soon
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ share.user.first_name }},</h2>
|
||||
<p>This is a reminder that your share ({{ share.name }}
|
||||
/
|
||||
{{ share.long_id }}) will be deleted in
|
||||
{{ deletes_in }}.</p>
|
||||
|
||||
{% if share.download_count > 0 %}
|
||||
<p>The share has been downloaded
|
||||
{{ share.download_count }}
|
||||
time{{ share.download_count == 1 ? '' : 's' }}.</p>
|
||||
{% else %}
|
||||
<p>The share wasn't downloaded.</p>
|
||||
{% endif %}
|
||||
|
||||
<p>You can revive it in the "My Shares" section of the app. This will prevent it from being deleted.</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block action_url %}{{ settings.application_url }}{% endblock %}
|
||||
{% block action_text %}
|
||||
Visit
|
||||
{{ settings.application_name }}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,17 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %}Share Downloaded
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ share.user.name }},</h2>
|
||||
<p>Just thought you'd like to know that your share "{{ share.name }}" was downloaded.</p>
|
||||
<p>
|
||||
<small>We'll only send this the first time a share is downloaded.</small>
|
||||
</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block action_url %}{{ settings.application_url }}/shares/{{ share.long_id }}{% endblock %}
|
||||
{% block action_text %}
|
||||
View Share
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,28 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %}
|
||||
Your share has expired
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ share.user.first_name }},</h2>
|
||||
<p>This is a reminder that your share ({{ share.name }}
|
||||
/
|
||||
{{ share.long_id }}) has expired.</p>
|
||||
|
||||
{% if share.download_count > 0 %}
|
||||
<p>The share has been downloaded
|
||||
{{ share.download_count }}
|
||||
time{{ share.download_count == 1 ? '' : 's' }}.</p>
|
||||
{% else %}
|
||||
<p>The share wasn't downloaded.</p>
|
||||
{% endif %}
|
||||
|
||||
<p>You can revive it in the "My Shares" section of the app.</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block action_url %}{{ settings.application_url }}{% endblock %}
|
||||
{% block action_text %}
|
||||
Visit
|
||||
{{ settings.application_name }}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,17 @@
|
||||
{% extends 'emails/layout' %}
|
||||
|
||||
{% block header %}
|
||||
Your share is expiring soon
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Hi {{ share.user.first_name }},</h2>
|
||||
<p>This is a reminder that your share ({{ share.name }} / {{ share.long_id }}) will expire in
|
||||
{{ share_expires_in }}.</p>
|
||||
<p>You can extend the expiry date in the "My Shares" section of the app.</p>
|
||||
{% endblock %}
|
||||
|
||||
{% block action_url %}{{ settings.application_url }}{% endblock %}
|
||||
{% block action_text %}
|
||||
Visit {{ settings.application_name }}
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user