From 7553a5703b8264bdde031f63cd2e088b2cc76b69 Mon Sep 17 00:00:00 2001 From: Dustin Kroeger Date: Mon, 25 Mar 2024 00:57:26 +0100 Subject: [PATCH] Add new menu and translations --- paw/__init__.py | 2 +- paw/locale/de/LC_MESSAGES/django.po | 167 +++++++---- paw/locale/en/LC_MESSAGES/django.po | 160 ++++++---- paw/locale/fr/LC_MESSAGES/django.po | 162 ++++++---- paw/static/css/paw.css | 439 ++++++++++++++++++++++++++++ paw/templates/base.html | 5 +- paw/templates/dashboard_base.html | 118 ++++---- 7 files changed, 832 insertions(+), 221 deletions(-) diff --git a/paw/__init__.py b/paw/__init__.py index 8ec499b..864d4f6 100644 --- a/paw/__init__.py +++ b/paw/__init__.py @@ -1,5 +1,5 @@ from django import get_version -VERSION = (0, 5, 5, "final", 0) +VERSION = (0, 5, 6, "final", 0) __version__ = get_version(VERSION) diff --git a/paw/locale/de/LC_MESSAGES/django.po b/paw/locale/de/LC_MESSAGES/django.po index 173dc53..b1ffcf1 100644 --- a/paw/locale/de/LC_MESSAGES/django.po +++ b/paw/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-12 23:27+0000\n" +"POT-Creation-Date: 2024-03-24 23:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,19 +17,34 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/models.py:27 + +#: core/forms.py:31 +msgid "Please enter your name" +msgstr "Gib bitte deinen Namen an" + +#: core/forms.py:32 +msgid "" +"Alphanumeric characters and underscores and dashes only (a-z, 0-9, _, -, @)" +msgstr "Nur Alphanumerische Zeichen, Unterstriche und Striche (a-z, 0-9, _, -, @)" + +#: core/forms.py:35 paw/templates/core/account_finish.html:29 +#: paw/templates/core/login.html:24 +msgid "Username" +msgstr "Benutzername" + +#: core/models.py:30 msgid "Google SSO User" msgstr "" -#: paw/settings.py:120 +#: paw/settings.py:133 msgid "English" msgstr "" -#: paw/settings.py:121 +#: paw/settings.py:134 msgid "French" msgstr "" -#: paw/settings.py:122 +#: paw/settings.py:135 msgid "German" msgstr "" @@ -49,36 +64,32 @@ msgstr "Account einrichten" msgid "Done" msgstr "Fertig" -#: paw/templates/core/account_finish.html:29 paw/templates/core/login.html:28 -msgid "Username" -msgstr "Benutzername" - #: paw/templates/core/account_finish.html:34 -#: paw/templates/core/settings.html:48 +#: paw/templates/core/settings.html:55 msgid "Save" msgstr "Speichern" -#: paw/templates/core/login.html:11 paw/templates/core/login.html:43 +#: paw/templates/core/login.html:7 paw/templates/core/login.html:39 msgid "Log In" msgstr "Anmelden" -#: paw/templates/core/login.html:13 +#: paw/templates/core/login.html:9 msgid "Register Account" msgstr "Account erstellen" -#: paw/templates/core/login.html:34 +#: paw/templates/core/login.html:30 msgid "Password" msgstr "Passwort" -#: paw/templates/core/login.html:39 +#: paw/templates/core/login.html:35 msgid "Password Reset" msgstr "Passwort zurücksetzen" -#: paw/templates/core/login.html:50 +#: paw/templates/core/login.html:46 msgid "Log in with Google" msgstr "Mit Google anmelden" -#: paw/templates/core/settings.html:7 paw/templates/dashboard_base.html:51 +#: paw/templates/core/settings.html:7 paw/templates/dashboard_base.html:85 msgid "Settings" msgstr "Einstellungen" @@ -95,45 +106,58 @@ msgid "Use Darkmode" msgstr "Darkmode benutzen" #: paw/templates/core/settings.html:37 +msgid "Receive Email Notifications" +msgstr "Mail-Benachrichtigungen erhalten" + +#: paw/templates/core/settings.html:44 msgid "Profile Picture" msgstr "Profilbild" -#: paw/templates/core/settings.html:42 -#: paw/templates/ticketing/ticket_detail.html:127 +#: paw/templates/core/settings.html:49 +#: paw/templates/ticketing/ticket_detail.html:152 msgid "Contact" msgstr "Kontakt" -#: paw/templates/dashboard_base.html:12 +#: paw/templates/dashboard_base.html:34 #: paw/templates/ticketing/create_ticket.html:50 msgid "Create Ticket" msgstr "Ticket erstellen" -#: paw/templates/dashboard_base.html:16 +#: paw/templates/dashboard_base.html:40 msgid "Tickets" msgstr "Tickets" -#: paw/templates/dashboard_base.html:20 +#: paw/templates/dashboard_base.html:46 +#: paw/templates/ticketing/tickets_history.html:5 msgid "History" msgstr "Historie" -#: paw/templates/dashboard_base.html:55 +#: paw/templates/dashboard_base.html:53 paw/templates/ticketing/tickets.html:20 +msgid "Status" +msgstr "" + +#: paw/templates/dashboard_base.html:79 +msgid "Admin" +msgstr "Administration" + +#: paw/templates/dashboard_base.html:89 msgid "Logout" msgstr "Abmelden" #: paw/templates/partials/assigned_to.html:17 -#: paw/templates/ticketing/ticket_detail.html:176 +#: paw/templates/ticketing/ticket_detail.html:201 msgid "Unassigned" msgstr "Nicht zugewiesen" -#: paw/templates/partials/ticket_status_badge.html:4 ticketing/models.py:37 +#: paw/templates/partials/ticket_status_badge.html:4 ticketing/models.py:40 msgid "Open" msgstr "Offen" -#: paw/templates/partials/ticket_status_badge.html:6 ticketing/models.py:38 +#: paw/templates/partials/ticket_status_badge.html:6 ticketing/models.py:41 msgid "In Progress" msgstr "In Bearbeitung" -#: paw/templates/partials/ticket_status_badge.html:8 ticketing/models.py:39 +#: paw/templates/partials/ticket_status_badge.html:8 ticketing/models.py:42 msgid "Closed" msgstr "Geschlossen" @@ -142,13 +166,15 @@ msgid "Create a new ticket" msgstr "Neues Ticket erstellen" #: paw/templates/ticketing/create_ticket.html:12 -#: paw/templates/ticketing/ticket_detail.html:140 +#: paw/templates/ticketing/ticket_detail.html:165 #: paw/templates/ticketing/tickets.html:19 +#: paw/templates/ticketing/tickets_history.html:19 msgid "Category" msgstr "Kategorie" #: paw/templates/ticketing/create_ticket.html:19 -#: paw/templates/ticketing/tickets.html:17 ticketing/forms.py:73 +#: paw/templates/ticketing/tickets.html:17 +#: paw/templates/ticketing/tickets_history.html:17 ticketing/forms.py:73 msgid "Title" msgstr "Titel" @@ -163,76 +189,89 @@ msgstr "Anhänge" #: paw/templates/ticketing/create_ticket.html:43 msgid "Create as follow-up to a closed ticket" -msgstr "Als Follow-Up zu einem geschlossenen Ticket erstellen" +msgstr "Als Nachfolge-Ticket zu einem geschlossenen Ticket erstellen" #: paw/templates/ticketing/ticket_detail.html:14 msgid "Attachment" msgstr "Anhang" -#: paw/templates/ticketing/ticket_detail.html:19 +#: paw/templates/ticketing/ticket_detail.html:21 +msgid "Follow-Up Ticket to" +msgstr "Nachfolgende-Ticket zu" + +#: paw/templates/ticketing/ticket_detail.html:28 +msgid "Followed-Up by" +msgstr "Nachfolgende-Ticket von" + +#: paw/templates/ticketing/ticket_detail.html:36 msgid "Activity" msgstr "Aktivitäten" -#: paw/templates/ticketing/ticket_detail.html:55 +#: paw/templates/ticketing/ticket_detail.html:61 +msgid "Internal" +msgstr "Intern" + +#: paw/templates/ticketing/ticket_detail.html:78 msgid "Apply Template" msgstr "Vorlage anwenden" -#: paw/templates/ticketing/ticket_detail.html:73 +#: paw/templates/ticketing/ticket_detail.html:96 msgid "Add Comment" msgstr "Kommentar hinzufügen" -#: paw/templates/ticketing/ticket_detail.html:75 +#: paw/templates/ticketing/ticket_detail.html:98 msgid "Close Ticket" msgstr "Ticket schliessen" -#: paw/templates/ticketing/ticket_detail.html:84 +#: paw/templates/ticketing/ticket_detail.html:107 msgid "Make this an internal comment" msgstr "Mache dies einen internen Kommentar" -#: paw/templates/ticketing/ticket_detail.html:91 +#: paw/templates/ticketing/ticket_detail.html:116 msgid "Ticket has been closed" msgstr "Das Ticket wurde geschlossen" -#: paw/templates/ticketing/ticket_detail.html:96 +#: paw/templates/ticketing/ticket_detail.html:121 msgid "Re-Open Ticket" msgstr "Ticket wieder öffnen" -#: paw/templates/ticketing/ticket_detail.html:107 +#: paw/templates/ticketing/ticket_detail.html:132 msgid "Created by" msgstr "Erstellt von" -#: paw/templates/ticketing/ticket_detail.html:120 +#: paw/templates/ticketing/ticket_detail.html:145 msgid "Created on" msgstr "Erstellt am" -#: paw/templates/ticketing/ticket_detail.html:124 +#: paw/templates/ticketing/ticket_detail.html:149 msgid "Last updated" msgstr "Zuletzt aktualisiert" -#: paw/templates/ticketing/ticket_detail.html:146 -#: paw/templates/ticketing/tickets.html:42 ticketing/forms.py:81 -#: ticketing/forms.py:104 +#: paw/templates/ticketing/ticket_detail.html:171 +#: paw/templates/ticketing/tickets.html:42 +#: paw/templates/ticketing/tickets_history.html:42 ticketing/forms.py:81 +#: ticketing/forms.py:104 ticketing/models.py:167 ticketing/models.py:180 msgid "General" msgstr "Allgemein" -#: paw/templates/ticketing/ticket_detail.html:152 +#: paw/templates/ticketing/ticket_detail.html:177 msgid "Assign to new category" msgstr "Kategorie zuweisen" -#: paw/templates/ticketing/ticket_detail.html:155 -#: paw/templates/ticketing/ticket_detail.html:185 +#: paw/templates/ticketing/ticket_detail.html:180 +#: paw/templates/ticketing/ticket_detail.html:210 msgid "Assign" msgstr "Zuweisen" -#: paw/templates/ticketing/ticket_detail.html:160 +#: paw/templates/ticketing/ticket_detail.html:185 msgid "Assignees" msgstr "Bearbeiter" -#: paw/templates/ticketing/ticket_detail.html:167 +#: paw/templates/ticketing/ticket_detail.html:192 msgid "Assign to me" msgstr "Weise mir zu" -#: paw/templates/ticketing/ticket_detail.html:182 +#: paw/templates/ticketing/ticket_detail.html:207 msgid "Assign to new team" msgstr "Team zuweisen" @@ -241,25 +280,39 @@ msgid "Open Tickets" msgstr "Offene Tickets" #: paw/templates/ticketing/tickets.html:7 +#: paw/templates/ticketing/tickets_history.html:7 msgid "for" msgstr "für" #: paw/templates/ticketing/tickets.html:18 +#: paw/templates/ticketing/tickets_history.html:18 msgid "Assigned to" msgstr "Zugewiesen an" -#: paw/templates/ticketing/tickets.html:20 -msgid "Status" -msgstr "" - #: paw/templates/ticketing/tickets.html:27 +#: paw/templates/ticketing/tickets_history.html:27 msgid "No tickets found" msgstr "Keine Tickets gefunden" #: paw/templates/ticketing/tickets.html:49 +#: paw/templates/ticketing/tickets_history.html:47 msgid "View" msgstr "Anzeigen" +#: paw/templates/ticketing/tickets_history.html:20 +#, fuzzy +#| msgid "Closed" +msgid "Closed on" +msgstr "Geschlossen" + +#: status/templates/status/incident_list.html:11 +msgid "Some services might not be fully operational" +msgstr "Einige Dienste sind sind nicht voll funktionstüchtig" + +#: status/templates/status/incident_list.html:16 +msgid "All services are operational" +msgstr "Alle Dienste sind voll funktionstüchtig" + #: ticketing/forms.py:39 msgid "File size must be under 5MB." msgstr "Dateigrösse muss unter 5MB sein." @@ -278,25 +331,25 @@ msgstr "Beschreibe dein Anliegen" #: ticketing/forms.py:82 msgid "No Follow-up" -msgstr "Kein Follow-Up" +msgstr "Kein Nachfolge-Ticket" #: ticketing/forms.py:99 msgid "No Team" msgstr "Kein Team" -#: ticketing/models.py:28 +#: ticketing/models.py:31 msgid "" "If a team is selected, new tickets will automatically assigned to this team." msgstr "" -#: ticketing/models.py:42 +#: ticketing/models.py:45 msgid "Low" msgstr "Niedrig" -#: ticketing/models.py:43 +#: ticketing/models.py:46 msgid "Medium" msgstr "Mittel" -#: ticketing/models.py:44 +#: ticketing/models.py:47 msgid "High" msgstr "Hoch" diff --git a/paw/locale/en/LC_MESSAGES/django.po b/paw/locale/en/LC_MESSAGES/django.po index 956a6df..eaec90e 100644 --- a/paw/locale/en/LC_MESSAGES/django.po +++ b/paw/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-12 23:27+0000\n" +"POT-Creation-Date: 2024-03-24 23:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,19 +18,33 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: core/models.py:27 +#: core/forms.py:31 +msgid "Please enter your name" +msgstr "" + +#: core/forms.py:32 +msgid "" +"Alphanumeric characters and underscores and dashes only (a-z, 0-9, _, -, @)" +msgstr "" + +#: core/forms.py:35 paw/templates/core/account_finish.html:29 +#: paw/templates/core/login.html:24 +msgid "Username" +msgstr "" + +#: core/models.py:30 msgid "Google SSO User" msgstr "" -#: paw/settings.py:120 +#: paw/settings.py:133 msgid "English" msgstr "English" -#: paw/settings.py:121 +#: paw/settings.py:134 msgid "French" msgstr "Français" -#: paw/settings.py:122 +#: paw/settings.py:135 msgid "German" msgstr "Deutsch" @@ -50,36 +64,32 @@ msgstr "" msgid "Done" msgstr "" -#: paw/templates/core/account_finish.html:29 paw/templates/core/login.html:28 -msgid "Username" -msgstr "" - #: paw/templates/core/account_finish.html:34 -#: paw/templates/core/settings.html:48 +#: paw/templates/core/settings.html:55 msgid "Save" msgstr "" -#: paw/templates/core/login.html:11 paw/templates/core/login.html:43 +#: paw/templates/core/login.html:7 paw/templates/core/login.html:39 msgid "Log In" msgstr "" -#: paw/templates/core/login.html:13 +#: paw/templates/core/login.html:9 msgid "Register Account" msgstr "" -#: paw/templates/core/login.html:34 +#: paw/templates/core/login.html:30 msgid "Password" msgstr "" -#: paw/templates/core/login.html:39 +#: paw/templates/core/login.html:35 msgid "Password Reset" msgstr "" -#: paw/templates/core/login.html:50 +#: paw/templates/core/login.html:46 msgid "Log in with Google" msgstr "" -#: paw/templates/core/settings.html:7 paw/templates/dashboard_base.html:51 +#: paw/templates/core/settings.html:7 paw/templates/dashboard_base.html:85 #, fuzzy #| msgid "SettingsHeading" msgid "Settings" @@ -98,45 +108,58 @@ msgid "Use Darkmode" msgstr "" #: paw/templates/core/settings.html:37 +msgid "Receive Email Notifications" +msgstr "" + +#: paw/templates/core/settings.html:44 msgid "Profile Picture" msgstr "" -#: paw/templates/core/settings.html:42 -#: paw/templates/ticketing/ticket_detail.html:127 +#: paw/templates/core/settings.html:49 +#: paw/templates/ticketing/ticket_detail.html:152 msgid "Contact" msgstr "" -#: paw/templates/dashboard_base.html:12 +#: paw/templates/dashboard_base.html:34 #: paw/templates/ticketing/create_ticket.html:50 msgid "Create Ticket" msgstr "" -#: paw/templates/dashboard_base.html:16 +#: paw/templates/dashboard_base.html:40 msgid "Tickets" msgstr "" -#: paw/templates/dashboard_base.html:20 +#: paw/templates/dashboard_base.html:46 +#: paw/templates/ticketing/tickets_history.html:5 msgid "History" msgstr "" -#: paw/templates/dashboard_base.html:55 +#: paw/templates/dashboard_base.html:53 paw/templates/ticketing/tickets.html:20 +msgid "Status" +msgstr "" + +#: paw/templates/dashboard_base.html:79 +msgid "Admin" +msgstr "" + +#: paw/templates/dashboard_base.html:89 msgid "Logout" msgstr "" #: paw/templates/partials/assigned_to.html:17 -#: paw/templates/ticketing/ticket_detail.html:176 +#: paw/templates/ticketing/ticket_detail.html:201 msgid "Unassigned" msgstr "" -#: paw/templates/partials/ticket_status_badge.html:4 ticketing/models.py:37 +#: paw/templates/partials/ticket_status_badge.html:4 ticketing/models.py:40 msgid "Open" msgstr "" -#: paw/templates/partials/ticket_status_badge.html:6 ticketing/models.py:38 +#: paw/templates/partials/ticket_status_badge.html:6 ticketing/models.py:41 msgid "In Progress" msgstr "" -#: paw/templates/partials/ticket_status_badge.html:8 ticketing/models.py:39 +#: paw/templates/partials/ticket_status_badge.html:8 ticketing/models.py:42 msgid "Closed" msgstr "" @@ -145,13 +168,15 @@ msgid "Create a new ticket" msgstr "" #: paw/templates/ticketing/create_ticket.html:12 -#: paw/templates/ticketing/ticket_detail.html:140 +#: paw/templates/ticketing/ticket_detail.html:165 #: paw/templates/ticketing/tickets.html:19 +#: paw/templates/ticketing/tickets_history.html:19 msgid "Category" msgstr "" #: paw/templates/ticketing/create_ticket.html:19 -#: paw/templates/ticketing/tickets.html:17 ticketing/forms.py:73 +#: paw/templates/ticketing/tickets.html:17 +#: paw/templates/ticketing/tickets_history.html:17 ticketing/forms.py:73 msgid "Title" msgstr "" @@ -172,70 +197,83 @@ msgstr "" msgid "Attachment" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:19 +#: paw/templates/ticketing/ticket_detail.html:21 +msgid "Follow-Up Ticket to" +msgstr "" + +#: paw/templates/ticketing/ticket_detail.html:28 +msgid "Followed-Up by" +msgstr "" + +#: paw/templates/ticketing/ticket_detail.html:36 msgid "Activity" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:55 +#: paw/templates/ticketing/ticket_detail.html:61 +msgid "Internal" +msgstr "" + +#: paw/templates/ticketing/ticket_detail.html:78 msgid "Apply Template" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:73 +#: paw/templates/ticketing/ticket_detail.html:96 msgid "Add Comment" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:75 +#: paw/templates/ticketing/ticket_detail.html:98 msgid "Close Ticket" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:84 +#: paw/templates/ticketing/ticket_detail.html:107 msgid "Make this an internal comment" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:91 +#: paw/templates/ticketing/ticket_detail.html:116 msgid "Ticket has been closed" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:96 +#: paw/templates/ticketing/ticket_detail.html:121 msgid "Re-Open Ticket" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:107 +#: paw/templates/ticketing/ticket_detail.html:132 msgid "Created by" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:120 +#: paw/templates/ticketing/ticket_detail.html:145 msgid "Created on" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:124 +#: paw/templates/ticketing/ticket_detail.html:149 msgid "Last updated" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:146 -#: paw/templates/ticketing/tickets.html:42 ticketing/forms.py:81 -#: ticketing/forms.py:104 +#: paw/templates/ticketing/ticket_detail.html:171 +#: paw/templates/ticketing/tickets.html:42 +#: paw/templates/ticketing/tickets_history.html:42 ticketing/forms.py:81 +#: ticketing/forms.py:104 ticketing/models.py:167 ticketing/models.py:180 msgid "General" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:152 +#: paw/templates/ticketing/ticket_detail.html:177 msgid "Assign to new category" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:155 -#: paw/templates/ticketing/ticket_detail.html:185 +#: paw/templates/ticketing/ticket_detail.html:180 +#: paw/templates/ticketing/ticket_detail.html:210 msgid "Assign" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:160 +#: paw/templates/ticketing/ticket_detail.html:185 msgid "Assignees" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:167 +#: paw/templates/ticketing/ticket_detail.html:192 msgid "Assign to me" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:182 +#: paw/templates/ticketing/ticket_detail.html:207 msgid "Assign to new team" msgstr "" @@ -244,25 +282,37 @@ msgid "Open Tickets" msgstr "" #: paw/templates/ticketing/tickets.html:7 +#: paw/templates/ticketing/tickets_history.html:7 msgid "for" msgstr "" #: paw/templates/ticketing/tickets.html:18 +#: paw/templates/ticketing/tickets_history.html:18 msgid "Assigned to" msgstr "" -#: paw/templates/ticketing/tickets.html:20 -msgid "Status" -msgstr "" - #: paw/templates/ticketing/tickets.html:27 +#: paw/templates/ticketing/tickets_history.html:27 msgid "No tickets found" msgstr "" #: paw/templates/ticketing/tickets.html:49 +#: paw/templates/ticketing/tickets_history.html:47 msgid "View" msgstr "" +#: paw/templates/ticketing/tickets_history.html:20 +msgid "Closed on" +msgstr "" + +#: status/templates/status/incident_list.html:11 +msgid "Some services might not be fully operational" +msgstr "" + +#: status/templates/status/incident_list.html:16 +msgid "All services are operational" +msgstr "" + #: ticketing/forms.py:39 msgid "File size must be under 5MB." msgstr "" @@ -287,19 +337,19 @@ msgstr "" msgid "No Team" msgstr "" -#: ticketing/models.py:28 +#: ticketing/models.py:31 msgid "" "If a team is selected, new tickets will automatically assigned to this team." msgstr "" -#: ticketing/models.py:42 +#: ticketing/models.py:45 msgid "Low" msgstr "" -#: ticketing/models.py:43 +#: ticketing/models.py:46 msgid "Medium" msgstr "" -#: ticketing/models.py:44 +#: ticketing/models.py:47 msgid "High" msgstr "" diff --git a/paw/locale/fr/LC_MESSAGES/django.po b/paw/locale/fr/LC_MESSAGES/django.po index 53bb774..1d64ab0 100644 --- a/paw/locale/fr/LC_MESSAGES/django.po +++ b/paw/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-12 23:27+0000\n" +"POT-Creation-Date: 2024-03-24 23:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,19 +18,33 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: core/models.py:27 +#: core/forms.py:31 +msgid "Please enter your name" +msgstr "" + +#: core/forms.py:32 +msgid "" +"Alphanumeric characters and underscores and dashes only (a-z, 0-9, _, -, @)" +msgstr "" + +#: core/forms.py:35 paw/templates/core/account_finish.html:29 +#: paw/templates/core/login.html:24 +msgid "Username" +msgstr "" + +#: core/models.py:30 msgid "Google SSO User" msgstr "" -#: paw/settings.py:120 +#: paw/settings.py:133 msgid "English" msgstr "" -#: paw/settings.py:121 +#: paw/settings.py:134 msgid "French" msgstr "" -#: paw/settings.py:122 +#: paw/settings.py:135 msgid "German" msgstr "" @@ -50,36 +64,32 @@ msgstr "" msgid "Done" msgstr "" -#: paw/templates/core/account_finish.html:29 paw/templates/core/login.html:28 -msgid "Username" -msgstr "" - #: paw/templates/core/account_finish.html:34 -#: paw/templates/core/settings.html:48 +#: paw/templates/core/settings.html:55 msgid "Save" msgstr "Enregistrer" -#: paw/templates/core/login.html:11 paw/templates/core/login.html:43 +#: paw/templates/core/login.html:7 paw/templates/core/login.html:39 msgid "Log In" msgstr "" -#: paw/templates/core/login.html:13 +#: paw/templates/core/login.html:9 msgid "Register Account" msgstr "" -#: paw/templates/core/login.html:34 +#: paw/templates/core/login.html:30 msgid "Password" msgstr "" -#: paw/templates/core/login.html:39 +#: paw/templates/core/login.html:35 msgid "Password Reset" msgstr "" -#: paw/templates/core/login.html:50 +#: paw/templates/core/login.html:46 msgid "Log in with Google" msgstr "" -#: paw/templates/core/settings.html:7 paw/templates/dashboard_base.html:51 +#: paw/templates/core/settings.html:7 paw/templates/dashboard_base.html:85 msgid "Settings" msgstr "Paramètres" @@ -96,45 +106,58 @@ msgid "Use Darkmode" msgstr "" #: paw/templates/core/settings.html:37 +msgid "Receive Email Notifications" +msgstr "" + +#: paw/templates/core/settings.html:44 msgid "Profile Picture" msgstr "Image du profil" -#: paw/templates/core/settings.html:42 -#: paw/templates/ticketing/ticket_detail.html:127 +#: paw/templates/core/settings.html:49 +#: paw/templates/ticketing/ticket_detail.html:152 msgid "Contact" msgstr "" -#: paw/templates/dashboard_base.html:12 +#: paw/templates/dashboard_base.html:34 #: paw/templates/ticketing/create_ticket.html:50 msgid "Create Ticket" msgstr "Nouveau ticket" -#: paw/templates/dashboard_base.html:16 +#: paw/templates/dashboard_base.html:40 msgid "Tickets" msgstr "" -#: paw/templates/dashboard_base.html:20 +#: paw/templates/dashboard_base.html:46 +#: paw/templates/ticketing/tickets_history.html:5 msgid "History" msgstr "Historique" -#: paw/templates/dashboard_base.html:55 +#: paw/templates/dashboard_base.html:53 paw/templates/ticketing/tickets.html:20 +msgid "Status" +msgstr "Statut" + +#: paw/templates/dashboard_base.html:79 +msgid "Admin" +msgstr "" + +#: paw/templates/dashboard_base.html:89 msgid "Logout" msgstr "Se déconnecter" #: paw/templates/partials/assigned_to.html:17 -#: paw/templates/ticketing/ticket_detail.html:176 +#: paw/templates/ticketing/ticket_detail.html:201 msgid "Unassigned" msgstr "Non attribué" -#: paw/templates/partials/ticket_status_badge.html:4 ticketing/models.py:37 +#: paw/templates/partials/ticket_status_badge.html:4 ticketing/models.py:40 msgid "Open" msgstr "Ouvert" -#: paw/templates/partials/ticket_status_badge.html:6 ticketing/models.py:38 +#: paw/templates/partials/ticket_status_badge.html:6 ticketing/models.py:41 msgid "In Progress" msgstr "En cours" -#: paw/templates/partials/ticket_status_badge.html:8 ticketing/models.py:39 +#: paw/templates/partials/ticket_status_badge.html:8 ticketing/models.py:42 msgid "Closed" msgstr "Fermé" @@ -143,13 +166,15 @@ msgid "Create a new ticket" msgstr "Créer un ticket" #: paw/templates/ticketing/create_ticket.html:12 -#: paw/templates/ticketing/ticket_detail.html:140 +#: paw/templates/ticketing/ticket_detail.html:165 #: paw/templates/ticketing/tickets.html:19 +#: paw/templates/ticketing/tickets_history.html:19 msgid "Category" msgstr "Catégorie" #: paw/templates/ticketing/create_ticket.html:19 -#: paw/templates/ticketing/tickets.html:17 ticketing/forms.py:73 +#: paw/templates/ticketing/tickets.html:17 +#: paw/templates/ticketing/tickets_history.html:17 ticketing/forms.py:73 msgid "Title" msgstr "Titre" @@ -170,78 +195,91 @@ msgstr "" msgid "Attachment" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:19 +#: paw/templates/ticketing/ticket_detail.html:21 +msgid "Follow-Up Ticket to" +msgstr "" + +#: paw/templates/ticketing/ticket_detail.html:28 +msgid "Followed-Up by" +msgstr "" + +#: paw/templates/ticketing/ticket_detail.html:36 msgid "Activity" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:55 +#: paw/templates/ticketing/ticket_detail.html:61 +msgid "Internal" +msgstr "" + +#: paw/templates/ticketing/ticket_detail.html:78 msgid "Apply Template" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:73 +#: paw/templates/ticketing/ticket_detail.html:96 msgid "Add Comment" msgstr "Ajouter un commentaire" -#: paw/templates/ticketing/ticket_detail.html:75 +#: paw/templates/ticketing/ticket_detail.html:98 #, fuzzy #| msgid "Create Ticket" msgid "Close Ticket" msgstr "Nouveau ticket" -#: paw/templates/ticketing/ticket_detail.html:84 +#: paw/templates/ticketing/ticket_detail.html:107 msgid "Make this an internal comment" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:91 +#: paw/templates/ticketing/ticket_detail.html:116 msgid "Ticket has been closed" msgstr "Le ticket a été fermé" -#: paw/templates/ticketing/ticket_detail.html:96 +#: paw/templates/ticketing/ticket_detail.html:121 msgid "Re-Open Ticket" msgstr "Réouverture du ticket" -#: paw/templates/ticketing/ticket_detail.html:107 +#: paw/templates/ticketing/ticket_detail.html:132 msgid "Created by" msgstr "Créé par" -#: paw/templates/ticketing/ticket_detail.html:120 +#: paw/templates/ticketing/ticket_detail.html:145 msgid "Created on" msgstr "Créé le" -#: paw/templates/ticketing/ticket_detail.html:124 +#: paw/templates/ticketing/ticket_detail.html:149 msgid "Last updated" msgstr "Dernière mise à jour le" -#: paw/templates/ticketing/ticket_detail.html:146 -#: paw/templates/ticketing/tickets.html:42 ticketing/forms.py:81 -#: ticketing/forms.py:104 +#: paw/templates/ticketing/ticket_detail.html:171 +#: paw/templates/ticketing/tickets.html:42 +#: paw/templates/ticketing/tickets_history.html:42 ticketing/forms.py:81 +#: ticketing/forms.py:104 ticketing/models.py:167 ticketing/models.py:180 msgid "General" msgstr "" -#: paw/templates/ticketing/ticket_detail.html:152 +#: paw/templates/ticketing/ticket_detail.html:177 #, fuzzy #| msgid "Assign to me" msgid "Assign to new category" msgstr "Me l'attribuer" -#: paw/templates/ticketing/ticket_detail.html:155 -#: paw/templates/ticketing/ticket_detail.html:185 +#: paw/templates/ticketing/ticket_detail.html:180 +#: paw/templates/ticketing/ticket_detail.html:210 #, fuzzy #| msgid "Assign to me" msgid "Assign" msgstr "Me l'attribuer" -#: paw/templates/ticketing/ticket_detail.html:160 +#: paw/templates/ticketing/ticket_detail.html:185 #, fuzzy #| msgid "Assign to me" msgid "Assignees" msgstr "Me l'attribuer" -#: paw/templates/ticketing/ticket_detail.html:167 +#: paw/templates/ticketing/ticket_detail.html:192 msgid "Assign to me" msgstr "Me l'attribuer" -#: paw/templates/ticketing/ticket_detail.html:182 +#: paw/templates/ticketing/ticket_detail.html:207 #, fuzzy #| msgid "Assign to me" msgid "Assign to new team" @@ -254,27 +292,41 @@ msgid "Open Tickets" msgstr "Réouverture du ticket" #: paw/templates/ticketing/tickets.html:7 +#: paw/templates/ticketing/tickets_history.html:7 msgid "for" msgstr "pour" #: paw/templates/ticketing/tickets.html:18 +#: paw/templates/ticketing/tickets_history.html:18 #, fuzzy #| msgid "Assign to me" msgid "Assigned to" msgstr "Me l'attribuer" -#: paw/templates/ticketing/tickets.html:20 -msgid "Status" -msgstr "Statut" - #: paw/templates/ticketing/tickets.html:27 +#: paw/templates/ticketing/tickets_history.html:27 msgid "No tickets found" msgstr "Aucun ticket trouvé" #: paw/templates/ticketing/tickets.html:49 +#: paw/templates/ticketing/tickets_history.html:47 msgid "View" msgstr "Ouvrir" +#: paw/templates/ticketing/tickets_history.html:20 +#, fuzzy +#| msgid "Closed" +msgid "Closed on" +msgstr "Fermé" + +#: status/templates/status/incident_list.html:11 +msgid "Some services might not be fully operational" +msgstr "" + +#: status/templates/status/incident_list.html:16 +msgid "All services are operational" +msgstr "" + #: ticketing/forms.py:39 msgid "File size must be under 5MB." msgstr "" @@ -299,20 +351,20 @@ msgstr "" msgid "No Team" msgstr "Aucune Team" -#: ticketing/models.py:28 +#: ticketing/models.py:31 msgid "" "If a team is selected, new tickets will automatically assigned to this team." msgstr "" -#: ticketing/models.py:42 +#: ticketing/models.py:45 msgid "Low" msgstr "" -#: ticketing/models.py:43 +#: ticketing/models.py:46 msgid "Medium" msgstr "" -#: ticketing/models.py:44 +#: ticketing/models.py:47 msgid "High" msgstr "" diff --git a/paw/static/css/paw.css b/paw/static/css/paw.css index 2804222..03898cf 100644 --- a/paw/static/css/paw.css +++ b/paw/static/css/paw.css @@ -866,6 +866,15 @@ html { color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); } + .menu li > *:not(ul, .menu-title, details, .btn):active, +.menu li > *:not(ul, .menu-title, details, .btn).active, +.menu li > details > summary:active { + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); + } + .table tr.hover:hover, .table tr.hover:nth-child(even):hover { --tw-bg-opacity: 1; @@ -1152,6 +1161,110 @@ html { background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); } +.drawer { + position: relative; + display: grid; + grid-auto-columns: max-content auto; + width: 100%; +} + +.drawer-content { + grid-column-start: 2; + grid-row-start: 1; + min-width: 0px; +} + +.drawer-side { + pointer-events: none; + position: fixed; + inset-inline-start: 0px; + top: 0px; + grid-column-start: 1; + grid-row-start: 1; + display: grid; + width: 100%; + grid-template-columns: repeat(1, minmax(0, 1fr)); + grid-template-rows: repeat(1, minmax(0, 1fr)); + align-items: flex-start; + justify-items: start; + overflow-x: hidden; + overflow-y: hidden; + overscroll-behavior: contain; + height: 100vh; + height: 100dvh; +} + +.drawer-side > .drawer-overlay { + position: sticky; + top: 0px; + place-self: stretch; + cursor: pointer; + background-color: transparent; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; +} + +.drawer-side > * { + grid-column-start: 1; + grid-row-start: 1; +} + +.drawer-side > *:not(.drawer-overlay) { + transition-property: transform; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 300ms; + will-change: transform; + transform: translateX(-100%); +} + +[dir="rtl"] .drawer-side > *:not(.drawer-overlay) { + transform: translateX(100%); +} + +.drawer-toggle { + position: fixed; + height: 0px; + width: 0px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + opacity: 0; +} + +.drawer-toggle:checked ~ .drawer-side { + pointer-events: auto; + visibility: visible; + overflow-y: auto; +} + +.drawer-toggle:checked ~ .drawer-side > *:not(.drawer-overlay) { + transform: translateX(0%); +} + +.drawer-end .drawer-toggle ~ .drawer-content { + grid-column-start: 1; +} + +.drawer-end .drawer-toggle ~ .drawer-side { + grid-column-start: 2; + justify-items: end; +} + +.drawer-end .drawer-toggle ~ .drawer-side > *:not(.drawer-overlay) { + transform: translateX(100%); +} + +[dir="rtl"] .drawer-end .drawer-toggle ~ .drawer-side > *:not(.drawer-overlay) { + transform: translateX(-100%); +} + +.drawer-end .drawer-toggle:checked ~ .drawer-side > *:not(.drawer-overlay) { + transform: translateX(0%); +} + @media (hover: hover) { .btn:hover { --tw-border-opacity: 1; @@ -1197,6 +1310,18 @@ html { } } + .btn-outline.btn-primary:hover { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-primary:hover { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + } + .btn-outline.btn-accent:hover { --tw-text-opacity: 1; color: var(--fallback-ac,oklch(var(--ac)/var(--tw-text-opacity))); @@ -1261,6 +1386,18 @@ html { border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); } } + + :where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):not(.active, .btn):hover, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):not(.active, .btn):hover { + cursor: pointer; + outline: 2px solid transparent; + outline-offset: 2px; + } + + @supports (color: oklch(0 0 0)) { + :where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):not(.active, .btn):hover, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):not(.active, .btn):hover { + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + } + } } .file-input { @@ -1456,6 +1593,55 @@ html { text-decoration-line: underline; } +.menu { + display: flex; + flex-direction: column; + flex-wrap: wrap; + font-size: 0.875rem; + line-height: 1.25rem; + padding: 0.5rem; +} + +.menu :where(li ul) { + position: relative; + white-space: nowrap; + margin-inline-start: 1rem; + padding-inline-start: 0.5rem; +} + +.menu :where(li:not(.menu-title) > *:not(ul, details, .menu-title, .btn)), .menu :where(li:not(.menu-title) > details > summary:not(.menu-title)) { + display: grid; + grid-auto-flow: column; + align-content: flex-start; + align-items: center; + gap: 0.5rem; + grid-auto-columns: minmax(auto, max-content) auto max-content; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.menu li.disabled { + cursor: not-allowed; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + color: var(--fallback-bc,oklch(var(--bc)/0.3)); +} + +.menu :where(li > .menu-dropdown:not(.menu-dropdown-show)) { + display: none; +} + +:where(.menu li) { + position: relative; + display: flex; + flex-shrink: 0; + flex-direction: column; + flex-wrap: wrap; + align-items: stretch; +} + :where(.menu li) .badge { justify-self: end; } @@ -1832,6 +2018,10 @@ html { border-color: var(--btn-color, var(--fallback-b2)); } + .btn-primary { + --btn-color: var(--fallback-p); + } + .btn-accent { --btn-color: var(--fallback-a); } @@ -1854,6 +2044,11 @@ html { } @supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-primary.btn-active { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + .btn-outline.btn-accent.btn-active { background-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); border-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); @@ -1881,7 +2076,17 @@ html { outline-offset: 2px; } +.btn-primary { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + outline-color: var(--fallback-p,oklch(var(--p)/1)); +} + @supports (color: oklch(0 0 0)) { + .btn-primary { + --btn-color: var(--p); + } + .btn-accent { --btn-color: var(--a); } @@ -1961,6 +2166,16 @@ html { background-color: var(--fallback-bc,oklch(var(--bc)/0.2)); } +.btn-outline.btn-primary { + --tw-text-opacity: 1; + color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity))); +} + +.btn-outline.btn-primary.btn-active { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} + .btn-outline.btn-accent { --tw-text-opacity: 1; color: var(--fallback-a,oklch(var(--a)/var(--tw-text-opacity))); @@ -2165,6 +2380,16 @@ html { gap: 1rem; } +.drawer-toggle:checked ~ .drawer-side > .drawer-overlay { + background-color: #0006; +} + +.drawer-toggle:focus-visible ~ .drawer-content label.drawer-button { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; +} + .file-input-bordered { --tw-border-opacity: 0.2; } @@ -2295,6 +2520,88 @@ html { outline-offset: 2px; } +:where(.menu li:empty) { + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.1; + margin: 0.5rem 1rem; + height: 1px; +} + +.menu :where(li ul):before { + position: absolute; + bottom: 0.75rem; + inset-inline-start: 0px; + top: 0.75rem; + width: 1px; + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.1; + content: ""; +} + +.menu :where(li:not(.menu-title) > *:not(ul, details, .menu-title, .btn)), +.menu :where(li:not(.menu-title) > details > summary:not(.menu-title)) { + border-radius: var(--rounded-btn, 0.5rem); + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + text-align: start; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; + text-wrap: balance; +} + +:where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):not(summary, .active, .btn).focus, :where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):not(summary, .active, .btn):focus, :where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):is(summary):not(.active, .btn):focus-visible, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):not(summary, .active, .btn).focus, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):not(summary, .active, .btn):focus, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):is(summary):not(.active, .btn):focus-visible { + cursor: pointer; + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + outline: 2px solid transparent; + outline-offset: 2px; +} + +.menu li > *:not(ul, .menu-title, details, .btn):active, +.menu li > *:not(ul, .menu-title, details, .btn).active, +.menu li > details > summary:active { + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); +} + +.menu :where(li > details > summary)::-webkit-details-marker { + display: none; +} + +.menu :where(li > details > summary):after, +.menu :where(li > .menu-dropdown-toggle):after { + justify-self: end; + display: block; + margin-top: -0.5rem; + height: 0.5rem; + width: 0.5rem; + transform: rotate(45deg); + transition-property: transform, margin-top; + transition-duration: 0.3s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + content: ""; + transform-origin: 75% 75%; + box-shadow: 2px 2px; + pointer-events: none; +} + +.menu :where(li > details[open] > summary):after, +.menu :where(li > .menu-dropdown-toggle.menu-dropdown-show):after { + transform: rotate(225deg); + margin-top: 0; +} + .mockup-browser .mockup-browser-toolbar .input { position: relative; margin-left: auto; @@ -2802,6 +3109,14 @@ html { font-size: 0.875rem; } +.btn-lg { + height: 4rem; + min-height: 4rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + font-size: 1.125rem; +} + .btn-square:where(.btn-xs) { height: 1.5rem; width: 1.5rem; @@ -2840,6 +3155,48 @@ html { padding: 0px; } +.btn-circle:where(.btn-lg) { + height: 4rem; + width: 4rem; + border-radius: 9999px; + padding: 0px; +} + +.drawer-open > .drawer-toggle { + display: none; +} + +.drawer-open > .drawer-toggle ~ .drawer-side { + pointer-events: auto; + visibility: visible; + position: sticky; + display: block; + width: auto; + overscroll-behavior: auto; +} + +.drawer-open > .drawer-toggle ~ .drawer-side > *:not(.drawer-overlay) { + transform: translateX(0%); +} + +[dir="rtl"] .drawer-open > .drawer-toggle ~ .drawer-side > *:not(.drawer-overlay) { + transform: translateX(0%); +} + +.drawer-open > .drawer-toggle:checked ~ .drawer-side { + pointer-events: auto; + visibility: visible; +} + +.drawer-open > .drawer-side { + overflow-y: auto; +} + +html:has(.drawer-toggle:checked) { + overflow-y: hidden; + scrollbar-gutter: stable; +} + .join.join-vertical { flex-direction: column; } @@ -2942,6 +3299,11 @@ html { right: 7%; } +.drawer-open > .drawer-toggle ~ .drawer-side > .drawer-overlay { + cursor: default; + background-color: transparent; +} + .join.join-vertical > :where(*:not(:first-child)) { margin-left: 0px; margin-right: 0px; @@ -3005,6 +3367,22 @@ html { position: fixed; } +.left-0 { + left: 0px; +} + +.top-0 { + top: 0px; +} + +.z-10 { + z-index: 10; +} + +.z-20 { + z-index: 20; +} + .order-first { order: -9999; } @@ -3139,6 +3517,10 @@ html { min-height: 100vh; } +.min-h-full { + min-height: 100%; +} + .w-10 { width: 2.5rem; } @@ -3175,6 +3557,14 @@ html { width: 100%; } +.w-80 { + width: 20rem; +} + +.w-72 { + width: 18rem; +} + .max-w-3xl { max-width: 48rem; } @@ -3371,6 +3761,11 @@ html { padding-bottom: 0.5rem; } +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + .text-center { text-align: center; } @@ -3739,6 +4134,46 @@ html { border-radius: 9999px; padding: 0px; } + + .lg\:drawer-open > .drawer-toggle { + display: none; + } + + .lg\:drawer-open > .drawer-toggle ~ .drawer-side { + pointer-events: auto; + visibility: visible; + position: sticky; + display: block; + width: auto; + overscroll-behavior: auto; + } + + .lg\:drawer-open > .drawer-toggle ~ .drawer-side > *:not(.drawer-overlay) { + transform: translateX(0%); + } + + [dir="rtl"] .lg\:drawer-open > .drawer-toggle ~ .drawer-side > *:not(.drawer-overlay) { + transform: translateX(0%); + } + + .lg\:drawer-open > .drawer-toggle:checked ~ .drawer-side { + pointer-events: auto; + visibility: visible; + } + + .lg\:drawer-open > .drawer-side { + overflow-y: auto; + } + + html:has(.lg\:drawer-open.lg\:drawer-open) { + overflow-y: auto; + scrollbar-gutter: auto; + } + + .lg\:drawer-open > .drawer-toggle ~ .drawer-side > .drawer-overlay { + cursor: default; + background-color: transparent; + } } .hover\:bg-\[\#4285F4\]\/90:hover { @@ -3768,6 +4203,10 @@ html { display: flex; } + .lg\:hidden { + display: none; + } + .lg\:w-72 { width: 18rem; } diff --git a/paw/templates/base.html b/paw/templates/base.html index 68920f7..feb938d 100644 --- a/paw/templates/base.html +++ b/paw/templates/base.html @@ -9,6 +9,7 @@ paw + {% load i18n %}