summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBobby <[email protected]>2025-12-24 12:18:21 +0530
committerBobby <[email protected]>2025-12-24 12:18:21 +0530
commit62cf64c4216a527334d4b9c312d144aaeec27ff9 (patch)
tree121a3a6cc0773c33c78062b5aaaec90db07ffbfa
parent17b250cd4722ba281343b35b85fb645ffefedcf8 (diff)
downloadlain-62cf64c4216a527334d4b9c312d144aaeec27ff9.tar.xz
lain-62cf64c4216a527334d4b9c312d144aaeec27ff9.zip
style: reformat Django templates for improved readability and consistent indentation.
-rw-r--r--templates/auth/login.django41
-rw-r--r--templates/error.django15
-rw-r--r--templates/layouts/generic.django18
-rw-r--r--templates/layouts/mailbox.django20
-rw-r--r--templates/layouts/main.django102
-rw-r--r--templates/mail/folder.django6
-rw-r--r--templates/partials/filters.django79
-rw-r--r--templates/partials/footer.django6
-rw-r--r--templates/partials/navbar.django4
-rw-r--r--templates/partials/pane.django53
-rw-r--r--templates/partials/preview.django75
-rw-r--r--templates/partials/sidebar.django62
12 files changed, 263 insertions, 218 deletions
diff --git a/templates/auth/login.django b/templates/auth/login.django
index 355c7ba..1a75162 100644
--- a/templates/auth/login.django
+++ b/templates/auth/login.django
@@ -1,27 +1,26 @@
-{% extends 'layouts/generic.django' %}
-{% block content %}
- <div class="login-page">
- <div class="login-container">
- <h1>{{ AppName }}</h1>
- <p class="subtitle">{{ AppDescription }}</p>
+{% extends 'layouts/generic.django' %} {% block content %}
+<div class="login-page">
+ <div class="login-container">
+ <h1>{{ AppName }}</h1>
+ <p class="subtitle">{{ AppDescription }}</p>
- {% if Error %}
- <div class="error">{{ Error }}</div>
- {% endif %}
+ {% if Error %}
+ <div class="error">{{ Error }}</div>
+ {% endif %}
- <form method="POST" action="{% url 'auth.login' %}">
- <div class="field">
- <label>Email</label>
- <input type="email" name="email" required autofocus />
- </div>
+ <form method="POST" action="{% url 'auth.login' %}">
+ <div class="field">
+ <label>Email</label>
+ <input type="email" name="email" required autofocus />
+ </div>
- <div class="field">
- <label>Password</label>
- <input type="password" name="password" required />
- </div>
+ <div class="field">
+ <label>Password</label>
+ <input type="password" name="password" required />
+ </div>
- <button type="submit">Login</button>
- </form>
- </div>
+ <button type="submit">Login</button>
+ </form>
</div>
+</div>
{% endblock %}
diff --git a/templates/error.django b/templates/error.django
index d38b972..30700a4 100644
--- a/templates/error.django
+++ b/templates/error.django
@@ -1,10 +1,9 @@
-{% extends 'layouts/generic.django' %}
-{% block content %}
- <div class="error-page">
- <div class="error-container">
- <h1>{{ ErrorTitle }}</h1>
- <p>{{ ErrorMessage }}</p>
- <a href="{% url 'auth.login' %}">Go back home</a>
- </div>
+{% extends 'layouts/generic.django' %} {% block content %}
+<div class="error-page">
+ <div class="error-container">
+ <h1>{{ ErrorTitle }}</h1>
+ <p>{{ ErrorMessage }}</p>
+ <a href="{% url 'auth.login' %}">Go back home</a>
</div>
+</div>
{% endblock %}
diff --git a/templates/layouts/generic.django b/templates/layouts/generic.django
index 3222516..62f9091 100644
--- a/templates/layouts/generic.django
+++ b/templates/layouts/generic.django
@@ -5,22 +5,12 @@
<title>{{ Title }}</title>
<link rel="stylesheet" href="/static/css/main.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- {% block head %}
-
- {% endblock %}
+ {% block head %} {% endblock %}
</head>
<body>
{% block body %}
- <main class="content">
- {% block content %}
-
- {% endblock %}
- </main>
- {% endblock %}
-
- {% include 'partials/footer.django' %}
+ <main class="content">{% block content %} {% endblock %}</main>
+ {% endblock %} {% include 'partials/footer.django' %}
</body>
- {% block scripts %}
-
- {% endblock %}
+ {% block scripts %} {% endblock %}
</html>
diff --git a/templates/layouts/mailbox.django b/templates/layouts/mailbox.django
index ebb0352..f422c13 100644
--- a/templates/layouts/mailbox.django
+++ b/templates/layouts/mailbox.django
@@ -1,17 +1,9 @@
-{% extends 'layouts/main.django' %}
+{% extends 'layouts/main.django' %} {% block content %}
+<div class="mailbox">
+ <aside class="sidebar">{% include 'partials/sidebar.django' %}</aside>
-{% block content %}
- <div class="mailbox">
- <aside class="sidebar">
- {% include 'partials/sidebar.django' %}
- </aside>
+ <section class="pane">{% include 'partials/pane.django' %}</section>
- <section class="pane">
- {% include 'partials/pane.django' %}
- </section>
-
- <section class="preview">
- {% include 'partials/preview.django' %}
- </section>
- </div>
+ <section class="preview">{% include 'partials/preview.django' %}</section>
+</div>
{% endblock %}
diff --git a/templates/layouts/main.django b/templates/layouts/main.django
index 929f656..c3c45b9 100644
--- a/templates/layouts/main.django
+++ b/templates/layouts/main.django
@@ -1,59 +1,55 @@
-{% extends 'layouts/generic.django' %}
+{% extends 'layouts/generic.django' %} {% block body %} {% include
+'partials/navbar.django' %}
+<main>{% block content %} {% endblock %}</main>
+{% endblock %} {% block scripts %}
+<script>
+ document.addEventListener("DOMContentLoaded", function () {
+ // Handle dropdown clicks
+ document.querySelectorAll(".options-subitem > a").forEach(function (item) {
+ item.addEventListener("click", function (e) {
+ e.preventDefault();
+ const parent = this.parentElement;
-{% block body %}
- {% include 'partials/navbar.django' %}
- <main>
- {% block content %}
-
- {% endblock %}
- </main>
-{% endblock %}
+ if (parent.classList.contains("disabled")) {
+ return;
+ }
-{% block scripts %}
- <script>
- document.addEventListener('DOMContentLoaded', function () {
- // Handle dropdown clicks
- document.querySelectorAll('.options-subitem > a').forEach(function (item) {
- item.addEventListener('click', function (e) {
- e.preventDefault()
- const parent = this.parentElement
-
- if (parent.classList.contains('disabled')) {
- return
- }
-
- document.querySelectorAll('.options-subitem.open').forEach(function (other) {
+ document
+ .querySelectorAll(".options-subitem.open")
+ .forEach(function (other) {
if (other !== parent) {
- other.classList.remove('open')
+ other.classList.remove("open");
}
- })
-
- parent.classList.toggle('open')
- })
- })
-
- document.addEventListener('click', function (e) {
- if (!e.target.closest('.options-subitem')) {
- document.querySelectorAll('.options-subitem.open').forEach(function (item) {
- item.classList.remove('open')
- })
- }
- })
-
- // Toggle search filters
- const toggleBtn = document.getElementById('toggle-filters')
- const filters = document.getElementById('search-filters')
-
- if (toggleBtn && filters) {
- toggleBtn.addEventListener('click', function (e) {
- e.preventDefault()
- if (filters.style.display === 'none') {
- filters.style.display = 'block'
- } else {
- filters.style.display = 'none'
- }
- })
+ });
+
+ parent.classList.toggle("open");
+ });
+ });
+
+ document.addEventListener("click", function (e) {
+ if (!e.target.closest(".options-subitem")) {
+ document
+ .querySelectorAll(".options-subitem.open")
+ .forEach(function (item) {
+ item.classList.remove("open");
+ });
}
- })
- </script>
+ });
+
+ // Toggle search filters
+ const toggleBtn = document.getElementById("toggle-filters");
+ const filters = document.getElementById("search-filters");
+
+ if (toggleBtn && filters) {
+ toggleBtn.addEventListener("click", function (e) {
+ e.preventDefault();
+ if (filters.style.display === "none") {
+ filters.style.display = "block";
+ } else {
+ filters.style.display = "none";
+ }
+ });
+ }
+ });
+</script>
{% endblock %}
diff --git a/templates/mail/folder.django b/templates/mail/folder.django
index 4cdce72..4769203 100644
--- a/templates/mail/folder.django
+++ b/templates/mail/folder.django
@@ -1,5 +1,3 @@
-{% extends 'layouts/mailbox.django' %}
-
-{% block scripts %}
- <script src="{% static 'js/filters.js' %}"></script>
+{% extends 'layouts/mailbox.django' %} {% block scripts %}
+<script src="{% static 'js/filters.js' %}"></script>
{% endblock %}
diff --git a/templates/partials/filters.django b/templates/partials/filters.django
index 98765be..82e803b 100644
--- a/templates/partials/filters.django
+++ b/templates/partials/filters.django
@@ -1,4 +1,4 @@
-<div class="filters" id="filters" style="display: none;">
+<div class="filters" id="filters" style="display: none">
<div class="filter-header">
<span>Advanced Search</span>
<button type="button" class="close-filters" id="close-filters">×</button>
@@ -15,7 +15,13 @@
</div>
<div class="tag-input-container">
<div class="tags" id="from-tags"></div>
- <input type="text" class="tag-input" id="from-input" placeholder="Add email..." autocomplete="off" />
+ <input
+ type="text"
+ class="tag-input"
+ id="from-input"
+ placeholder="Add email..."
+ autocomplete="off"
+ />
<input type="hidden" name="from[]" id="from-hidden" />
</div>
</div>
@@ -31,7 +37,13 @@
</div>
<div class="tag-input-container">
<div class="tags" id="to-tags"></div>
- <input type="text" class="tag-input" id="to-input" placeholder="Add email..." autocomplete="off" />
+ <input
+ type="text"
+ class="tag-input"
+ id="to-input"
+ placeholder="Add email..."
+ autocomplete="off"
+ />
<input type="hidden" name="to[]" id="to-hidden" />
</div>
</div>
@@ -47,7 +59,12 @@
<option value="endswith">ends</option>
</select>
</div>
- <input type="text" name="subject" class="filter-input" placeholder="Search..." />
+ <input
+ type="text"
+ name="subject"
+ class="filter-input"
+ placeholder="Search..."
+ />
</div>
<div class="filter-section">
@@ -58,7 +75,12 @@
<option value="excludes">excludes</option>
</select>
</div>
- <input type="text" name="body" class="filter-input" placeholder="Search..." />
+ <input
+ type="text"
+ name="body"
+ class="filter-input"
+ placeholder="Search..."
+ />
</div>
<div class="filter-section">
@@ -72,7 +94,13 @@
</div>
<div class="tag-input-container">
<div class="tags" id="filename-tags"></div>
- <input type="text" class="tag-input" id="filename-input" placeholder="Add filename..." autocomplete="off" />
+ <input
+ type="text"
+ class="tag-input"
+ id="filename-input"
+ placeholder="Add filename..."
+ autocomplete="off"
+ />
<input type="hidden" name="filename[]" id="filename-hidden" />
</div>
</div>
@@ -82,10 +110,22 @@
<label>Flags</label>
</div>
<div class="flag-checkboxes">
- <label class="flag-option"><input type="checkbox" name="has_attachment" value="1" /><span>Attachment</span></label>
- <label class="flag-option"><input type="checkbox" name="is_flagged" value="1" /><span>Flagged</span></label>
- <label class="flag-option"><input type="checkbox" name="is_unread" value="1" /><span>Unread</span></label>
- <label class="flag-option"><input type="checkbox" name="is_answered" value="1" /><span>Answered</span></label>
+ <label class="flag-option">
+ <input type="checkbox" name="has_attachment" value="1" />
+ <span>Attachment</span>
+ </label>
+ <label class="flag-option">
+ <input type="checkbox" name="is_flagged" value="1" />
+ <span>Flagged</span>
+ </label>
+ <label class="flag-option">
+ <input type="checkbox" name="is_unread" value="1" />
+ <span>Unread</span>
+ </label>
+ <label class="flag-option">
+ <input type="checkbox" name="is_answered" value="1" />
+ <span>Answered</span>
+ </label>
</div>
</div>
@@ -101,8 +141,8 @@
<option value="last30days">Last 30 days</option>
<option value="custom">Custom range</option>
</select>
- <div id="custom-date-range" style="display: none; margin-top: 5px;">
- <input type="date" name="date_from" style="margin-bottom: 4px;" />
+ <div id="custom-date-range" style="display: none; margin-top: 5px">
+ <input type="date" name="date_from" style="margin-bottom: 4px" />
<input type="date" name="date_to" />
</div>
</div>
@@ -117,7 +157,14 @@
<option value="all">All folders</option>
<option value="custom">Custom folders</option>
</select>
- <input type="text" name="custom_folders" class="filter-input" placeholder="Folder1, Folder2..." style="margin-top: 5px; display: none;" id="custom-folders-input" />
+ <input
+ type="text"
+ name="custom_folders"
+ class="filter-input"
+ placeholder="Folder1, Folder2..."
+ style="margin-top: 5px; display: none"
+ id="custom-folders-input"
+ />
</div>
<div class="filter-actions">
@@ -126,4 +173,8 @@
</div>
</div>
-<div class="autocomplete-dropdown" id="autocomplete-dropdown" style="display: none;"></div>
+<div
+ class="autocomplete-dropdown"
+ id="autocomplete-dropdown"
+ style="display: none"
+></div>
diff --git a/templates/partials/footer.django b/templates/partials/footer.django
index 3900a0c..91c1a6f 100644
--- a/templates/partials/footer.django
+++ b/templates/partials/footer.django
@@ -1,3 +1,7 @@
<footer>
- {{ AppName }} - Powered by {{ AppEngine }} - &copy; <a href="https://shi.foo" target="_blank" rel="noopener noreferrer">shi.foo</a> 2025
+ {{ AppName }} - Powered by {{ AppEngine }} - &copy;
+ <a href="https://shi.foo" target="_blank" rel="noopener noreferrer">
+ shi.foo
+ </a>
+ 2025
</footer>
diff --git a/templates/partials/navbar.django b/templates/partials/navbar.django
index 7b18bc9..88097f7 100644
--- a/templates/partials/navbar.django
+++ b/templates/partials/navbar.django
@@ -115,7 +115,9 @@
<div class="nav-search">
<form action="#" method="get">
<input type="text" name="q" placeholder="Search" class="search-input" />
- <button type="button" id="toggle-filters" class="btn-filters">Filters</button>
+ <button type="button" id="toggle-filters" class="btn-filters">
+ Filters
+ </button>
<button type="submit" class="btn-search">Search</button>
{% include 'partials/filters.django' %}
</form>
diff --git a/templates/partials/pane.django b/templates/partials/pane.django
index 873e9de..8b231d9 100644
--- a/templates/partials/pane.django
+++ b/templates/partials/pane.django
@@ -1,32 +1,35 @@
<div class="pane">
- {% if Emails %}
- {% for email in Emails %}
- <div class="email-row {% if not email.IsRead %}unread{% endif %} {% if email.Active %}active{% endif %}" data-email-id="{{ email.ID }}">
- <div class="email-checkbox">
- <input type="checkbox" />
- </div>
+ {% if Emails %} {% for email in Emails %}
+ <div
+ class="email-row {% if not email.IsRead %}unread{% endif %} {% if email.Active %}active{% endif %}"
+ data-email-id="{{ email.ID }}"
+ >
+ <div class="email-checkbox">
+ <input type="checkbox" />
+ </div>
- <div class="email-flag {% if email.IsFlagged %}flagged{% endif %}">
- {% comment %} <img src="{% static 'icons/flag.svg' %}" alt="Flag" /> (We will write the static filter later){% endcomment %}
- </div>
+ <div class="email-flag {% if email.IsFlagged %}flagged{% endif %}">
+ {% comment %}
+ <img src="{% static 'icons/flag.svg' %}" alt="Flag" />
+ (We will write the static filter later){% endcomment %}
+ </div>
- <div class="email-info">
- <div class="email-from">{{ email.FromName }}</div>
- <div class="email-subject">{{ email.Subject }}</div>
- <div class="email-preview">{{ email.Preview }}</div>
- </div>
+ <div class="email-info">
+ <div class="email-from">{{ email.FromName }}</div>
+ <div class="email-subject">{{ email.Subject }}</div>
+ <div class="email-preview">{{ email.Preview }}</div>
+ </div>
- <div class="email-meta">
- {% if email.HasAttachments %}
- <span class="attachment-icon">📎</span>
- {% endif %}
- <span class="email-date">{{ email.Date }}</span>
- </div>
- </div>
- {% endfor %}
- {% else %}
- <div class="empty-state">
- <p>No emails in this folder</p>
+ <div class="email-meta">
+ {% if email.HasAttachments %}
+ <span class="attachment-icon">📎</span>
+ {% endif %}
+ <span class="email-date">{{ email.Date }}</span>
</div>
+ </div>
+ {% endfor %} {% else %}
+ <div class="empty-state">
+ <p>No emails in this folder</p>
+ </div>
{% endif %}
</div>
diff --git a/templates/partials/preview.django b/templates/partials/preview.django
index dd40109..fbce3f2 100644
--- a/templates/partials/preview.django
+++ b/templates/partials/preview.django
@@ -1,46 +1,51 @@
{% if Email %}
- <div class="email-header">
- <h2 class="email-subject">{{ Email.Subject }}</h2>
+<div class="email-header">
+ <h2 class="email-subject">{{ Email.Subject }}</h2>
- <div class="email-actions">
- <button class="btn-icon" title="Reply">↶</button>
- <button class="btn-icon" title="Reply All">⇄</button>
- <button class="btn-icon" title="Forward">→</button>
- <button class="btn-icon" title="Archive">▼</button>
- <button class="btn-icon" title="Delete">×</button>
- </div>
+ <div class="email-actions">
+ <button class="btn-icon" title="Reply">↶</button>
+ <button class="btn-icon" title="Reply All">⇄</button>
+ <button class="btn-icon" title="Forward">→</button>
+ <button class="btn-icon" title="Archive">▼</button>
+ <button class="btn-icon" title="Delete">×</button>
</div>
+</div>
- <div class="email-sender">
- <div class="sender-info">
- <strong>{{ Email.FromName }}</strong> &lt;{{ Email.FromAddress }}&gt;
- </div>
- <div class="email-date">{{ Email.Date }}</div>
+<div class="email-sender">
+ <div class="sender-info">
+ <strong>{{ Email.FromName }}</strong>
+ &lt;{{ Email.FromAddress }}&gt;
</div>
+ <div class="email-date">{{ Email.Date }}</div>
+</div>
- <div class="email-recipients">
- <div>
- <strong>To:</strong> {{ Email.To }}
- </div>
- {% if Email.Cc %}
- <div>
- <strong>Cc:</strong> {{ Email.Cc }}
- </div>
- {% endif %}
+<div class="email-recipients">
+ <div>
+ <strong>To:</strong>
+ {{ Email.To }}
+ </div>
+ {% if Email.Cc %}
+ <div>
+ <strong>Cc:</strong>
+ {{ Email.Cc }}
</div>
-
- {% if Email.Attachments %}
- <div class="email-attachments">
- <strong>Attachments:</strong>
- {% for attachment in Email.Attachments %}
- <a href="#" class="attachment">{{ attachment.Filename }} ({{ attachment.Size }})</a>
- {% endfor %}
- </div>
{% endif %}
+</div>
- <div class="email-body">{{ Email.Body|safe }}</div>
+{% if Email.Attachments %}
+<div class="email-attachments">
+ <strong>Attachments:</strong>
+ {% for attachment in Email.Attachments %}
+ <a href="#" class="attachment">
+ {{ attachment.Filename }} ({{ attachment.Size }})
+ </a>
+ {% endfor %}
+</div>
+{% endif %}
+
+<div class="email-body">{{ Email.Body|safe }}</div>
{% else %}
- <div class="no-email-selected">
- <p>Select an email to view</p>
- </div>
+<div class="no-email-selected">
+ <p>Select an email to view</p>
+</div>
{% endif %}
diff --git a/templates/partials/sidebar.django b/templates/partials/sidebar.django
index 12df271..4e829e5 100644
--- a/templates/partials/sidebar.django
+++ b/templates/partials/sidebar.django
@@ -1,40 +1,46 @@
<ul class="folder-list">
{% for folder in Folders %}
- <li class="folder-item {% if folder.Active %}active{% endif %}">
- <a href="/mail/{{ folder.IMAPName|lower }}">
- <img src="{% if folder.Active %}
+ <li class="folder-item {% if folder.Active %}active{% endif %}">
+ <a href="/mail/{{ folder.IMAPName|lower }}">
+ <img
+ src="{% if folder.Active %}
{{ folder.IconOpen }}
{% else %}
{{ folder.IconClose }}
{% endif %}"
- alt="{{ folder.Name }}"
- class="folder-icon" />
- <span class="folder-name">{{ folder.Name }}</span>
- {% if folder.UnreadCount > 0 %}
- <span class="folder-count">{{ folder.UnreadCount }}</span>
- {% endif %}
- </a>
- {% if folder.Subfolders %}
- <ul class="subfolder-list">
- {% for subfolder in folder.Subfolders %}
- <li class="folder-item subfolder {% if subfolder.Active %}active{% endif %}">
- <a href="/mail/{{ subfolder.IMAPName|lower }}">
- <img src="{% if subfolder.Active %}
+ alt="{{ folder.Name }}"
+ class="folder-icon"
+ />
+ <span class="folder-name">{{ folder.Name }}</span>
+ {% if folder.UnreadCount > 0 %}
+ <span class="folder-count">{{ folder.UnreadCount }}</span>
+ {% endif %}
+ </a>
+ {% if folder.Subfolders %}
+ <ul class="subfolder-list">
+ {% for subfolder in folder.Subfolders %}
+ <li
+ class="folder-item subfolder {% if subfolder.Active %}active{% endif %}"
+ >
+ <a href="/mail/{{ subfolder.IMAPName|lower }}">
+ <img
+ src="{% if subfolder.Active %}
{{ subfolder.IconOpen }}
{% else %}
{{ subfolder.IconClose }}
{% endif %}"
- alt="{{ subfolder.Name }}"
- class="folder-icon" />
- <span class="folder-name">{{ subfolder.Name }}</span>
- {% if subfolder.UnreadCount > 0 %}
- <span class="folder-count">{{ subfolder.UnreadCount }}</span>
- {% endif %}
- </a>
- </li>
- {% endfor %}
- </ul>
- {% endif %}
- </li>
+ alt="{{ subfolder.Name }}"
+ class="folder-icon"
+ />
+ <span class="folder-name">{{ subfolder.Name }}</span>
+ {% if subfolder.UnreadCount > 0 %}
+ <span class="folder-count">{{ subfolder.UnreadCount }}</span>
+ {% endif %}
+ </a>
+ </li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+ </li>
{% endfor %}
</ul>