diff --git a/viewer/static/css/old_styles.css b/viewer/static/css/old_styles.css deleted file mode 100644 index 8c9f165..0000000 --- a/viewer/static/css/old_styles.css +++ /dev/null @@ -1,128 +0,0 @@ -/**************************************************************************** - * Specific elements. * - ****************************************************************************/ - -html { - height:100%; -} - -body { - height: 100%; - margin: 0px; -} - -#id_username { -width: 100%; -} - -#id_password { -width: 100%; -} - -a:link { - color: #ffff00; -} - -a:visited { - color: #009CD9; -} - -/**************************************************************************** - * Containers. * - ****************************************************************************/ - -.centered-container { - width: 100%; - text-align: center; - margin-bottom: 0.5em; -} - -.background { - background-color: darkslategray; - color: lightgray; -} - -.image-container { - max-width: 900px; - max-height: 600px; -} - -.fc { - width: fit-content; -} - -.h90 { - height: 90%; -} - -.full-width { - width: 100%; -} - -.fixed-width { - width: 300px; -} - -/**************************************************************************** - * Content. * - ****************************************************************************/ - -.image { - max-width: 100%; - max-height: 600px; - width: auto; -} - -.mauto { - margin: auto; -} - -.mauto-top { - margin: 200px auto; -} - -.navigation-icon { - width: 100px; -} - -.small-nav-icon { - width: 3em; -} - -.mb-2 { - margin-bottom: 2em; -} - -.mr-2 { - margin-right: 2em; -} - -.ml-4 { - margin-left: 4em; -} - -.ml-2 { - margin-left: 2em; -} - -.clear-btn { - border: none; - background-color: #00000000; -} - -.search-box { - height: 2.5em; -} - -.float-right { - float: right; -} - -/**************************************************************************** - * Grid. * - ****************************************************************************/ - -.column { - text-align: center; - border: black 1px solid; -} diff --git a/viewer/static/css/styles.css b/viewer/static/css/styles.css index d1c31fa..8b6ba31 100644 --- a/viewer/static/css/styles.css +++ b/viewer/static/css/styles.css @@ -378,7 +378,16 @@ body.theme-dark .small.text-muted { background: transparent; } -@media (max-width: 991.98px) { +.login-form { + background: var(--panel-strong); + border-radius: 0 1rem 1rem 0; +} + +.card { + background: var(--bg); +} + +media (max-width: 991.98px) { .app-shell { padding: 0px; gap: 12px; @@ -405,6 +414,12 @@ body.theme-dark .small.text-muted { padding-right: 16px; } } +@media (max-width: 767px) { + .login-form { + background: var(--panel-strong); + border-radius: 1rem 1rem 1rem 1rem; + } +} @media (max-width: 575.98px) { /* On narrow viewports keep the fixed 128px thumbnails but allow the diff --git a/viewer/static/imgs/back.png b/viewer/static/imgs/back.png deleted file mode 100755 index 39c58b3..0000000 Binary files a/viewer/static/imgs/back.png and /dev/null differ diff --git a/viewer/static/imgs/boot.png b/viewer/static/imgs/boot.png deleted file mode 100755 index d32bd98..0000000 Binary files a/viewer/static/imgs/boot.png and /dev/null differ diff --git a/viewer/static/imgs/find.png b/viewer/static/imgs/find.png deleted file mode 100755 index 6be3b37..0000000 Binary files a/viewer/static/imgs/find.png and /dev/null differ diff --git a/viewer/static/imgs/folder-pictures.png b/viewer/static/imgs/folder-pictures.png deleted file mode 100755 index 591b529..0000000 Binary files a/viewer/static/imgs/folder-pictures.png and /dev/null differ diff --git a/viewer/static/imgs/forward.png b/viewer/static/imgs/forward.png deleted file mode 100755 index 89a0627..0000000 Binary files a/viewer/static/imgs/forward.png and /dev/null differ diff --git a/viewer/static/imgs/gohome.png b/viewer/static/imgs/gohome.png deleted file mode 100755 index 7936733..0000000 Binary files a/viewer/static/imgs/gohome.png and /dev/null differ diff --git a/viewer/static/imgs/login.jpg b/viewer/static/imgs/login.jpg new file mode 100644 index 0000000..eb5f547 Binary files /dev/null and b/viewer/static/imgs/login.jpg differ diff --git a/viewer/static/imgs/login.png b/viewer/static/imgs/login.png new file mode 100644 index 0000000..0ce0078 Binary files /dev/null and b/viewer/static/imgs/login.png differ diff --git a/viewer/static/imgs/logo.png b/viewer/static/imgs/logo.png new file mode 100644 index 0000000..b49ca59 Binary files /dev/null and b/viewer/static/imgs/logo.png differ diff --git a/viewer/static/imgs/pattern.png b/viewer/static/imgs/pattern.png deleted file mode 100644 index 728e142..0000000 Binary files a/viewer/static/imgs/pattern.png and /dev/null differ diff --git a/viewer/templates/registration/login.html b/viewer/templates/registration/login.html index 11744e0..25963ba 100644 --- a/viewer/templates/registration/login.html +++ b/viewer/templates/registration/login.html @@ -1,43 +1,74 @@ -{% load static %} +{% load static form_tags %} - + - - - NibasaViewer login - - + + + NibasaViewer — Login + + + - -
-
- {% csrf_token %} - - - - - - - - - - - - -
- {{ form.username.label_tag }} - - {{ form.username }} -
- {{ form.password.label_tag }} - - {{ form.password }} -
- + + +
+
+
+
+
+
+
+ login image +
+
+
-
-
+ {% endif %} + + + + + + + + + + + + - diff --git a/viewer/templatetags/__init__.py b/viewer/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/viewer/templatetags/form_tags.py b/viewer/templatetags/form_tags.py new file mode 100644 index 0000000..16f4f71 --- /dev/null +++ b/viewer/templatetags/form_tags.py @@ -0,0 +1,33 @@ +from django import template +from django.utils.safestring import mark_safe + +register = template.Library() + + +@register.simple_tag +def render_field(field, **attrs): + """Render a bound field with temporary widget attributes. + + Usage in template: + {% render_field form.username class="form-control" placeholder="Email" %} + + This updates the widget attrs just for the duration of rendering and + restores the original attrs afterwards to avoid side effects. + """ + try: + widget = field.field.widget + except Exception: + return "" + + # preserve original attrs and update temporarily + original_attrs = widget.attrs.copy() + # Convert all attr values to strings (template passes them as strings) + for k, v in attrs.items(): + widget.attrs[str(k)] = str(v) + + rendered = field.as_widget() + + # restore original attrs + widget.attrs = original_attrs + + return mark_safe(rendered)