diff --git a/admin_interface/admin.py b/admin_interface/admin.py index 5238bad..f39c3bc 100644 --- a/admin_interface/admin.py +++ b/admin_interface/admin.py @@ -45,6 +45,7 @@ class ThemeAdmin(admin.ModelAdmin): "classes": ("wide",), "fields": ( "language_chooser_active", + "language_chooser_control", "language_chooser_display", ), }, diff --git a/admin_interface/migrations/0025_theme_language_chooser_control.py b/admin_interface/migrations/0025_theme_language_chooser_control.py new file mode 100644 index 0000000..e25e5cb --- /dev/null +++ b/admin_interface/migrations/0025_theme_language_chooser_control.py @@ -0,0 +1,24 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("admin_interface", "0024_remove_theme_css"), + ] + + operations = [ + migrations.AddField( + model_name="theme", + name="language_chooser_control", + field=models.CharField( + choices=[ + ("default-select", "Default Select"), + ("minimal-select", "Minimal Select"), + ], + default="select", + max_length=20, + verbose_name="control", + ), + ), + ] diff --git a/admin_interface/models.py b/admin_interface/models.py index b16f589..63b8b3d 100644 --- a/admin_interface/models.py +++ b/admin_interface/models.py @@ -143,6 +143,16 @@ class Theme(models.Model): language_chooser_active = models.BooleanField( default=True, verbose_name=_("active") ) + language_chooser_control_choices = ( + ("default-select", _("Default Select")), + ("minimal-select", _("Minimal Select")), + ) + language_chooser_control = models.CharField( + max_length=20, + choices=language_chooser_control_choices, + default="default-select", + verbose_name=_("control"), + ) language_chooser_display_choices = ( ("code", _("code")), ("name", _("name")), diff --git a/admin_interface/static/admin_interface/css/language-chooser.css b/admin_interface/static/admin_interface/css/language-chooser.css index d9ca1dd..c5a870c 100644 --- a/admin_interface/static/admin_interface/css/language-chooser.css +++ b/admin_interface/static/admin_interface/css/language-chooser.css @@ -15,15 +15,65 @@ @media (min-width: 1024px) { .admin-interface .language-chooser { position: static; - float: right; margin-left: 20px; } } -.admin-interface .language-chooser-hidden-form { +.admin-interface .language-chooser .language-chooser-hidden-form { display: none; } -.admin-interface .language-chooser-select-form { +.admin-interface .language-chooser .language-chooser-select-form { display: inline-block; -} \ No newline at end of file + position: relative; + z-index: 0; +} + +.admin-interface .language-chooser select { + width: auto; + min-width: auto; +} + +.admin-interface .language-chooser.minimal .language-chooser-select-form::after { + content: ""; + position: absolute; + right: 2px; + top: 50%; + border: solid var(--admin-interface-header-text-color); + border-width: 0px 0px 1px 1px; + display: inline-block; + padding: 2px; + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); + pointer-events: none; + margin-top: -4px; +} + +.admin-interface .language-chooser.minimal .language-chooser-select-form:hover select { + border-bottom: 1px solid transparent; + color: var(--admin-interface-header-link-hover-color); +} + +.admin-interface .language-chooser.minimal select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: transparent; + border: none; + border-bottom: 1px solid rgba(255, 255, 255, 0.25); + border-radius: 0; + color: var(--admin-interface-header-link-color); + cursor: pointer; + font-weight: inherit; + font-size: inherit; + letter-spacing: inherit; + height: auto; + margin: 0; + padding: 0 12px 0 0; +} + +@-moz-document url-prefix() { + .admin-interface .language-chooser.minimal select { + text-indent: -1px !important; + } +} diff --git a/admin_interface/templates/admin/base_site.html b/admin_interface/templates/admin/base_site.html index da7e7f8..c676834 100644 --- a/admin_interface/templates/admin/base_site.html +++ b/admin_interface/templates/admin/base_site.html @@ -165,9 +165,15 @@ flat-theme admin-interface {% block welcome-msg %} {% get_admin_interface_theme as theme %} +{% if theme.env_visible_in_header %}{{ theme.env_name }}
{% endif %}{{ block.super }}
+{{ block.super }} +{% endblock %} + +{% block userlinks %} +{{ block.super }} +{% get_admin_interface_theme as theme %} {% if theme.language_chooser_active %} {% get_admin_interface_languages as languages %} {% include "admin_interface/language_chooser.html" %} {% endif %} -{% if theme.env_visible_in_header %}{{ theme.env_name }}
{% endif %}{{ block.super }}
{% endblock %} diff --git a/admin_interface/templates/admin_interface/language_chooser.html b/admin_interface/templates/admin_interface/language_chooser.html index 15ea3e5..1b69cfe 100644 --- a/admin_interface/templates/admin_interface/language_chooser.html +++ b/admin_interface/templates/admin_interface/language_chooser.html @@ -1,7 +1,7 @@ {% load admin_interface_tags %} {% if languages %} -
+
{% for language in languages %}
{% csrf_token %}