diff options
| author | Bobby <[email protected]> | 2025-12-24 12:18:21 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2025-12-24 12:18:21 +0530 |
| commit | 62cf64c4216a527334d4b9c312d144aaeec27ff9 (patch) | |
| tree | 121a3a6cc0773c33c78062b5aaaec90db07ffbfa /templates | |
| parent | 17b250cd4722ba281343b35b85fb645ffefedcf8 (diff) | |
| download | lain-62cf64c4216a527334d4b9c312d144aaeec27ff9.tar.xz lain-62cf64c4216a527334d4b9c312d144aaeec27ff9.zip | |
style: reformat Django templates for improved readability and consistent indentation.
Diffstat (limited to 'templates')
| -rw-r--r-- | templates/auth/login.django | 41 | ||||
| -rw-r--r-- | templates/error.django | 15 | ||||
| -rw-r--r-- | templates/layouts/generic.django | 18 | ||||
| -rw-r--r-- | templates/layouts/mailbox.django | 20 | ||||
| -rw-r--r-- | templates/layouts/main.django | 102 | ||||
| -rw-r--r-- | templates/mail/folder.django | 6 | ||||
| -rw-r--r-- | templates/partials/filters.django | 79 | ||||
| -rw-r--r-- | templates/partials/footer.django | 6 | ||||
| -rw-r--r-- | templates/partials/navbar.django | 4 | ||||
| -rw-r--r-- | templates/partials/pane.django | 53 | ||||
| -rw-r--r-- | templates/partials/preview.django | 75 | ||||
| -rw-r--r-- | templates/partials/sidebar.django | 62 |
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 }} - © <a href="https://shi.foo" target="_blank" rel="noopener noreferrer">shi.foo</a> 2025 + {{ AppName }} - Powered by {{ AppEngine }} - © + <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> <{{ Email.FromAddress }}> - </div> - <div class="email-date">{{ Email.Date }}</div> +<div class="email-sender"> + <div class="sender-info"> + <strong>{{ Email.FromName }}</strong> + <{{ Email.FromAddress }}> </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> |
