feat: initial import of Erugo blade templates and email views

This commit is contained in:
eldov
2026-08-30 05:16:54 +02:00
commit 43db9196cd
14 changed files with 601 additions and 0 deletions
+16
View File
@@ -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 %}
+28
View File
@@ -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 %}
+102
View File
@@ -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>
+20
View File
@@ -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 %}
+16
View File
@@ -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 %}
+27
View File
@@ -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 %}
+17
View File
@@ -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 %}
+28
View File
@@ -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 %}
+17
View File
@@ -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 %}