diff --git a/modoboa/core/app_settings.py b/modoboa/core/app_settings.py index 9ad551d83..234cfe50e 100644 --- a/modoboa/core/app_settings.py +++ b/modoboa/core/app_settings.py @@ -44,7 +44,7 @@ class GeneralParametersForm(parameters.AdminParametersForm): ('ldap', "LDAP")], initial="local", help_text=ugettext_lazy("The backend used for authentication"), - widget=InlineRadioSelect + widget=forms.Select(attrs={"class": "form-control"}) ) password_scheme = forms.ChoiceField( @@ -57,7 +57,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): ("crypt", ugettext_lazy("crypt (weak)")), ("plain", ugettext_lazy("plain (weak)"))], initial="sha512crypt", - help_text=ugettext_lazy("Scheme used to crypt mailbox passwords") + help_text=ugettext_lazy("Scheme used to crypt mailbox passwords"), + widget=forms.Select(attrs={"class": "form-control"}) ) rounds_number = forms.IntegerField( @@ -66,13 +67,15 @@ class GeneralParametersForm(parameters.AdminParametersForm): help_text=ugettext_lazy( "Number of rounds to use (only used by sha256crypt and " "sha512crypt). Must be between 1000 and 999999999, inclusive." - ) + ), + widget=forms.TextInput(attrs={"class": "form-control"}) ) secret_key = forms.CharField( label=ugettext_lazy("Secret key"), initial=random_key(), - help_text=ugettext_lazy("Key used to encrypt/decrypt passwords") + help_text=ugettext_lazy("Key used to encrypt/decrypt passwords"), + widget=forms.TextInput(attrs={"class": "form-control"}) ) # LDAP specific settings @@ -82,13 +85,15 @@ class GeneralParametersForm(parameters.AdminParametersForm): label=ugettext_lazy("Server address"), initial="localhost", help_text=ugettext_lazy( - "The IP address of the DNS name of the LDAP server") + "The IP address of the DNS name of the LDAP server"), + widget=forms.TextInput(attrs={"class": "form-control"}) ) ldap_server_port = forms.IntegerField( label=ugettext_lazy("Server port"), initial=389, - help_text=ugettext_lazy("The TCP port number used by the LDAP server") + help_text=ugettext_lazy("The TCP port number used by the LDAP server"), + widget=forms.TextInput(attrs={"class": "form-control"}) ) ldap_secured = YesNoField( @@ -104,7 +109,7 @@ class GeneralParametersForm(parameters.AdminParametersForm): ('directbind', ugettext_lazy("Direct bind"))], initial='searchbind', help_text=ugettext_lazy("Choose the authentication method to use"), - widget=InlineRadioSelect + widget=forms.Select(attrs={"class": "form-control"}) ) ldap_bind_dn = forms.CharField( @@ -114,7 +119,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): "The distinguished name to use when binding to the LDAP server. " "Leave empty for an anonymous bind" ), - required=False + required=False, + widget=forms.TextInput(attrs={"class": "form-control"}) ) ldap_bind_password = forms.CharField( @@ -124,7 +130,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): "The password to use when binding to the LDAP server " "(with 'Bind DN')" ), - widget=forms.PasswordInput(render_value=True), + widget=forms.PasswordInput( + attrs={"class": "form-control"}, render_value=True), required=False ) @@ -134,7 +141,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): help_text=ugettext_lazy( "The distinguished name of the search base used to find users" ), - required=False + required=False, + widget=forms.TextInput(attrs={"class": "form-control"}) ) ldap_search_filter = forms.CharField( @@ -144,7 +152,7 @@ class GeneralParametersForm(parameters.AdminParametersForm): "An optional filter string (e.g. '(objectClass=person)'). " "In order to be valid, it must be enclosed in parentheses." ), - required=False + widget=forms.TextInput(attrs={"class": "form-control"}) ) ldap_user_dn_template = forms.CharField( @@ -154,13 +162,14 @@ class GeneralParametersForm(parameters.AdminParametersForm): "The template used to construct a user's DN. It should contain " "one placeholder (ie. %(user)s)" ), - required=False + widget=forms.TextInput(attrs={"class": "form-control"}) ) ldap_password_attribute = forms.CharField( label=ugettext_lazy("Password attribute"), initial="userPassword", - help_text=ugettext_lazy("The attribute used to store user passwords") + help_text=ugettext_lazy("The attribute used to store user passwords"), + widget=forms.TextInput(attrs={"class": "form-control"}) ) ldap_is_active_directory = YesNoField( @@ -177,7 +186,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): "Members of those LDAP Posix groups will be created as domain " "administrators. Use ';' characters to separate groups." ), - required=False + required=False, + widget=forms.TextInput(attrs={"class": "form-control"}) ) ldap_groups_search_base = forms.CharField( @@ -186,7 +196,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): help_text=ugettext_lazy( "The distinguished name of the search base used to find groups" ), - required=False + required=False, + widget=forms.TextInput(attrs={"class": "form-control"}) ) ldap_create_domain_mailbox = YesNoField( @@ -203,7 +214,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): top_notifications_check_interval = forms.IntegerField( label=_("Top notifications check interval"), initial=30, - help_text=_("Interval between two top notification checks") + help_text=_("Interval between two top notification checks"), + widget=forms.NumberInput(attrs={"class": "form-control"}) ) check_new_versions = YesNoField( @@ -216,13 +228,15 @@ class GeneralParametersForm(parameters.AdminParametersForm): log_maximum_age = forms.IntegerField( label=ugettext_lazy("Maximum log record age"), initial=365, - help_text=ugettext_lazy("The maximum age in days of a log record") + help_text=ugettext_lazy("The maximum age in days of a log record"), + widget=forms.TextInput(attrs={"class": "form-control"}) ) items_per_page = forms.IntegerField( label=ugettext_lazy("Items per page"), initial=30, - help_text=ugettext_lazy("Number of displayed items per page") + help_text=ugettext_lazy("Number of displayed items per page"), + widget=forms.TextInput(attrs={"class": "form-control"}) ) default_top_redirection = forms.ChoiceField( @@ -232,6 +246,7 @@ class GeneralParametersForm(parameters.AdminParametersForm): help_text=ugettext_lazy( "The default redirection used when no application is specified" ) + widget=forms.Select(attrs={"class": "form-control"}) ) # Visibility rules @@ -369,5 +384,6 @@ class UserSettings(parameters.UserParametersForm): ("fr", "français"), ("it", "italiano"), ("nl", "nederlands"), ("pt", "português"), ("ru", "русский"), ("sv", "svenska")], - help_text=ugettext_lazy("Prefered language to display pages") + help_text=ugettext_lazy("Prefered language to display pages"), + widget=forms.Select(attrs={"class": "form-control"}) ) diff --git a/modoboa/core/forms.py b/modoboa/core/forms.py index 4dc7d38ae..12c361797 100644 --- a/modoboa/core/forms.py +++ b/modoboa/core/forms.py @@ -8,11 +8,11 @@ from modoboa.lib import parameters class LoginForm(forms.Form): username = forms.CharField( label=ugettext_lazy("Username"), - widget=forms.TextInput(attrs={"class": "input-block-level"}) + widget=forms.TextInput(attrs={"class": "form-control"}) ) password = forms.CharField( label=ugettext_lazy("Password"), - widget=forms.PasswordInput(attrs={"class": "input-block-level"}) + widget=forms.PasswordInput(attrs={"class": "form-control"}) ) rememberme = forms.BooleanField( initial=False, @@ -23,20 +23,24 @@ class LoginForm(forms.Form): class ProfileForm(forms.ModelForm): oldpassword = forms.CharField( label=ugettext_lazy("Old password"), required=False, - widget=forms.PasswordInput + widget=forms.PasswordInput(attrs={"class": "form-control"}) ) newpassword = forms.CharField( label=ugettext_lazy("New password"), required=False, - widget=forms.PasswordInput + widget=forms.PasswordInput(attrs={"class": "form-control"}) ) confirmation = forms.CharField( label=ugettext_lazy("Confirmation"), required=False, - widget=forms.PasswordInput + widget=forms.PasswordInput(attrs={"class": "form-control"}) ) class Meta: model = User fields = ("first_name", "last_name") + widgets = { + 'first_name': forms.TextInput(attrs={'class': 'form-control'}), + 'last_name': forms.TextInput(attrs={'class': 'form-control'}) + } def __init__(self, update_password, *args, **kwargs): super(ProfileForm, self).__init__(*args, **kwargs) diff --git a/modoboa/core/models.py b/modoboa/core/models.py index 56bdcbe35..250edb5a8 100644 --- a/modoboa/core/models.py +++ b/modoboa/core/models.py @@ -167,9 +167,9 @@ class User(PermissionsMixin): @property def tags(self): - return [{"name": "account", "label": _("account"), "type": "idt"}, + return [{"name": "account", "label": _("account"), "type": "label label-default idt"}, {"name": self.group, "label": self.group, - "type": "grp", "color": "info"}] + "type": "grp label label-info"}] @property def fullname(self): diff --git a/modoboa/core/static/core/css/userprefs.css b/modoboa/core/static/core/css/userprefs.css index b81ae4674..e69de29bb 100644 --- a/modoboa/core/static/core/css/userprefs.css +++ b/modoboa/core/static/core/css/userprefs.css @@ -1,9 +0,0 @@ -#uprefs_content .form-horizontal .control-label { - margin-left: 20px; - text-align: left; - width: 200px; -} - -#uprefs_content > .form-horizontal .controls { - margin-left: 240px; -} \ No newline at end of file diff --git a/modoboa/core/templates/core/parameters.html b/modoboa/core/templates/core/parameters.html index 7a8130925..be8c07bae 100644 --- a/modoboa/core/templates/core/parameters.html +++ b/modoboa/core/templates/core/parameters.html @@ -4,4 +4,4 @@ {% include "common/parameters.html" %}
-{% trans 'Save' %} +{% trans 'Save' %} \ No newline at end of file diff --git a/modoboa/core/templates/core/settings_header.html b/modoboa/core/templates/core/settings_header.html index 590ad50da..c2d164a3c 100644 --- a/modoboa/core/templates/core/settings_header.html +++ b/modoboa/core/templates/core/settings_header.html @@ -19,5 +19,5 @@ $(document).ready(function() { }); {% endblock %} -{% block leftcol %}{% endblock %} +{% block leftcol %}
{% admin_menu left_selection user %}
{% endblock %} {% block apparea %}
{% endblock %} diff --git a/modoboa/core/templates/core/user_index.html b/modoboa/core/templates/core/user_index.html index 9128e65b6..7cfcf632a 100644 --- a/modoboa/core/templates/core/user_index.html +++ b/modoboa/core/templates/core/user_index.html @@ -17,5 +17,5 @@ $(document).ready(function() { }); {% endblock %} -{% block leftcol %}{% endblock %} +{% block leftcol %}
{% uprefs_menu left_selection user %}
{% endblock %} {% block apparea %}
{% endblock %} diff --git a/modoboa/core/templates/core/user_preferences.html b/modoboa/core/templates/core/user_preferences.html index c63f285c0..3eed9d53c 100644 --- a/modoboa/core/templates/core/user_preferences.html +++ b/modoboa/core/templates/core/user_preferences.html @@ -5,5 +5,5 @@ id="uprefs_form">{% csrf_token %} {% include "common/parameters.html" %}
- + diff --git a/modoboa/core/templates/core/user_profile.html b/modoboa/core/templates/core/user_profile.html index 0572e45e5..dcf0f473f 100644 --- a/modoboa/core/templates/core/user_profile.html +++ b/modoboa/core/templates/core/user_profile.html @@ -5,6 +5,6 @@ id="uprefs_form">{% csrf_token %} {% render_form form %}
- +
diff --git a/modoboa/core/templatetags/core_tags.py b/modoboa/core/templatetags/core_tags.py index 73aac4899..4e4e033d9 100644 --- a/modoboa/core/templatetags/core_tags.py +++ b/modoboa/core/templatetags/core_tags.py @@ -63,7 +63,7 @@ def admin_menu(selection, user): ] return render_to_string('common/menu.html', { "entries": entries, - "css": "nav nav-list", + "css": "nav nav-pills nav-stacked", "selection": selection, "user": user }) @@ -73,11 +73,11 @@ def admin_menu(selection, user): def user_menu(user, selection): entries = [ {"name": "user", - "img": "icon-user icon-white", + "img": "glyphicon glyphicon-user", "label": user.fullname, "menu": [ {"name": "settings", - "img": "icon-list", + "img": "glyphicon glyphicon-list", "label": _("Settings"), "url": reverse("modoboa.core.views.user.index")} ]} @@ -88,7 +88,7 @@ def user_menu(user, selection): + [{"name": "logout", "url": reverse("modoboa.core.views.auth.dologout"), "label": _("Logout"), - "img": "icon-off"}] + "img": "glyphicon glyphicon-off"}] return render_to_string("common/menulist.html", { "selection": selection, "entries": entries, "user": user @@ -111,7 +111,7 @@ def uprefs_menu(selection, user): entries = sorted(entries, key=lambda e: e["label"]) return render_to_string('common/menu.html', { "entries": entries, - "css": "nav nav-list", + "css": "nav nav-pills nav-stacked", "selection": selection, "user": user }) diff --git a/modoboa/extensions/admin/app_settings.py b/modoboa/extensions/admin/app_settings.py index 160fd4548..8f3eb8ccb 100644 --- a/modoboa/extensions/admin/app_settings.py +++ b/modoboa/extensions/admin/app_settings.py @@ -21,7 +21,8 @@ class AdminParametersForm(parameters.AdminParametersForm): mailboxes_owner = forms.CharField( label=ugettext_lazy("Mailboxes owner"), initial="vmail", - help_text=ugettext_lazy("The UNIX account who owns mailboxes on the filesystem") + help_text=ugettext_lazy("The UNIX account who owns mailboxes on the filesystem"), + widget=forms.TextInput(attrs={"class": "form-control"}) ) default_domain_quota = forms.IntegerField( @@ -31,7 +32,7 @@ class AdminParametersForm(parameters.AdminParametersForm): "Default quota (in MB) applied to freshly created domains with no " "value specified. A value of 0 means no quota." ), - widget=forms.TextInput(attrs={'class': 'span2'}) + widget=forms.TextInput(attrs={'class': 'col-md-2 form-control'}) ) auto_account_removal = YesNoField( diff --git a/modoboa/extensions/admin/forms/account.py b/modoboa/extensions/admin/forms/account.py index aae2b82e8..9658fb528 100644 --- a/modoboa/extensions/admin/forms/account.py +++ b/modoboa/extensions/admin/forms/account.py @@ -22,21 +22,30 @@ class AccountFormGeneral(forms.ModelForm): help_text=ugettext_lazy( "The user's name. Must be a valid e-mail address for simple users " "or administrators with a mailbox." - ) + ), + widget=forms.TextInput(attrs={"class": "form-control"}) ) role = forms.ChoiceField( label=ugettext_lazy("Role"), choices=[('', ugettext_lazy("Choose"))], - help_text=ugettext_lazy("What level of permission this user will have") + help_text=ugettext_lazy("What level of permission this user will have"), + widget=forms.Select(attrs={"class": "form-control"}) ) password1 = forms.CharField( - label=ugettext_lazy("Password"), widget=forms.PasswordInput + label=ugettext_lazy("Password"), + widget=forms.PasswordInput(attrs={"class": "form-control"}) ) password2 = forms.CharField( label=ugettext_lazy("Confirmation"), - widget=forms.PasswordInput, + widget=forms.PasswordInput(attrs={"class": "form-control"}), help_text=ugettext_lazy("Enter the same password as above, for verification.") ) + first_name= forms.CharField( + widget=forms.TextInput(attrs={"class": "form-control"}), + ) + last_name= forms.CharField( + widget=forms.TextInput(attrs={"class": "form-control"}), + ) class Meta: model = User @@ -51,7 +60,8 @@ class AccountFormGeneral(forms.ModelForm): if user.group == "DomainAdmins": self.fields["role"] = forms.CharField( label="", - widget=forms.HiddenInput, required=False + widget=forms.HiddenInput(attrs={"class": "form-control"}), + required=False ) else: self.fields["role"].choices = [('', ugettext_lazy("Choose"))] @@ -127,7 +137,7 @@ class AccountFormGeneral(forms.ModelForm): class AccountFormMail(forms.Form, DynamicForm): - email = forms.EmailField(label=ugettext_lazy("E-mail"), required=False) + email = forms.EmailField(label=ugettext_lazy("E-mail"), required=False, widget=forms.TextInput(attrs={"class": "form-control"})) quota = forms.IntegerField( label=ugettext_lazy("Quota"), required=False, @@ -135,7 +145,7 @@ class AccountFormMail(forms.Form, DynamicForm): "use domain's default one. Leave empty to define an " "unlimited value (not allowed for domain " "administrators)."), - widget=forms.widgets.TextInput(attrs={"class": "span1"}) + widget=forms.widgets.TextInput(attrs={"class": "col-md-1 form-control"}) ) quota_act = forms.BooleanField(required=False) aliases = forms.EmailField( @@ -145,7 +155,8 @@ class AccountFormMail(forms.Form, DynamicForm): "Alias(es) of this mailbox. Indicate only one address per input, " "press ENTER to add a new input. Use the '*' character to create " "a 'catchall' alias (ex: *@domain.tld)." - ) + ), + widget=forms.TextInput(attrs={"class": "form-control"}) ) def __init__(self, *args, **kwargs): diff --git a/modoboa/extensions/admin/forms/alias.py b/modoboa/extensions/admin/forms/alias.py index a16b14257..9de56daed 100644 --- a/modoboa/extensions/admin/forms/alias.py +++ b/modoboa/extensions/admin/forms/alias.py @@ -17,14 +17,16 @@ class AliasForm(forms.ModelForm, DynamicForm): help_text=ugettext_lazy( "The distribution list address. Use the '*' character to create a " "'catchall' address (ex: *@domain.tld)." - ) + ), + widget=forms.TextInput(attrs={"class": "form-control"}) ) recipients = forms.EmailField( label=ugettext_lazy("Recipients"), required=False, help_text=ugettext_lazy( "Mailbox(es) this alias will point to. Indicate only one address " "per input, press ENTER to add a new input." - ) + ), + widget=forms.TextInput(attrs={"class": "form-control"}) ) class Meta: diff --git a/modoboa/extensions/admin/forms/domain.py b/modoboa/extensions/admin/forms/domain.py index 030c6ee9a..2b3339b77 100644 --- a/modoboa/extensions/admin/forms/domain.py +++ b/modoboa/extensions/admin/forms/domain.py @@ -24,7 +24,7 @@ class DomainFormGeneral(forms.ModelForm, DynamicForm): "Default quota in MB applied to mailboxes. Leave empty to use the " "default value." ), - widget=forms.TextInput(attrs={"class": "span1"}) + widget=forms.TextInput(attrs={"class": "col-md-1 form-control"}) ) aliases = DomainNameField( label=ugettext_lazy("Alias(es)"), @@ -32,8 +32,12 @@ class DomainFormGeneral(forms.ModelForm, DynamicForm): help_text=ugettext_lazy( "Alias(es) of this domain. Indicate only one name per input, " "press ENTER to add a new input." - ) + ), + widget=forms.TextInput(attrs={"class": "col-md-1 form-control"}) ) + name = DomainNameField( + widget=forms.TextInput(attrs={"class": "col-md-1 form-control"}) + ) class Meta: model = Domain @@ -187,7 +191,7 @@ class DomainFormOptions(forms.Form): "The administrator's name. Don't include the domain's name here, " "it will be automatically appended." ), - widget=forms.widgets.TextInput(attrs={"class": "input-small"}), + widget=forms.widgets.TextInput(attrs={"class": "form-control input-small"}), required=False ) diff --git a/modoboa/extensions/admin/forms/export.py b/modoboa/extensions/admin/forms/export.py index 7727c5160..bee201157 100644 --- a/modoboa/extensions/admin/forms/export.py +++ b/modoboa/extensions/admin/forms/export.py @@ -4,15 +4,21 @@ from django.utils.translation import ugettext_lazy class ExportDataForm(forms.Form): filename = forms.CharField( - label=ugettext_lazy("File name"), max_length=100, required=False + label=ugettext_lazy("File name"), + max_length=100, + required=False, + widget=forms.TextInput(attrs={"class": "form-control"}) ) sepchar = forms.CharField( - label=ugettext_lazy("Separator"), max_length=1, required=False + label=ugettext_lazy("Separator"), + max_length=1, + required=False, + widget=forms.TextInput(attrs={"class": "form-control"}) ) def __init__(self, *args, **kwargs): super(ExportDataForm, self).__init__(*args, **kwargs) - self.fields["sepchar"].widget.attrs = {"class": "span1"} + self.fields["sepchar"].widget.attrs = {"class": "col-md-1 form-control"} def clean_sepchar(self): if self.cleaned_data["sepchar"] == "": diff --git a/modoboa/extensions/admin/forms/forward.py b/modoboa/extensions/admin/forms/forward.py index 9cf7eb643..63de1ee5c 100644 --- a/modoboa/extensions/admin/forms/forward.py +++ b/modoboa/extensions/admin/forms/forward.py @@ -10,7 +10,7 @@ from modoboa.extensions.admin.models import ( class ForwardForm(forms.Form): dest = forms.CharField( label=ugettext_lazy("Recipient(s)"), - widget=forms.Textarea, + widget=forms.Textarea(attrs={"class": "form-control"}), required=False, help_text=ugettext_lazy("Indicate one or more recipients separated by a ','") ) diff --git a/modoboa/extensions/admin/forms/import_.py b/modoboa/extensions/admin/forms/import_.py index fc6ccebe3..f63017037 100644 --- a/modoboa/extensions/admin/forms/import_.py +++ b/modoboa/extensions/admin/forms/import_.py @@ -5,7 +5,10 @@ from django.utils.translation import ugettext_lazy class ImportDataForm(forms.Form): sourcefile = forms.FileField(label=ugettext_lazy("Select a file")) sepchar = forms.CharField( - label=ugettext_lazy("Separator"), max_length=1, required=False + label=ugettext_lazy("Separator"), + max_length=1, + required=False, + widget=forms.TextInput(attrs={"class": "form-control"}) ) continue_if_exists = forms.BooleanField( label=ugettext_lazy("Continue on error"), required=False, @@ -14,7 +17,7 @@ class ImportDataForm(forms.Form): def __init__(self, *args, **kwargs): super(ImportDataForm, self).__init__(*args, **kwargs) - self.fields["sepchar"].widget.attrs = {"class": "span1"} + self.fields["sepchar"].widget.attrs = {"class": "col-md-1 form-control"} def clean_sepchar(self): if self.cleaned_data["sepchar"] == "": diff --git a/modoboa/extensions/admin/models/alias.py b/modoboa/extensions/admin/models/alias.py index 64d587b9f..7eef37b0e 100644 --- a/modoboa/extensions/admin/models/alias.py +++ b/modoboa/extensions/admin/models/alias.py @@ -83,7 +83,7 @@ class Alias(AdminObject): "alias": _("alias") } altype = self.type - return [{"name": altype, "label": labels[altype], "type": "idt"}] + return [{"name": altype, "label": labels[altype], "type": "idt label label-default"}] def post_create(self, creator): from modoboa.lib.permissions import grant_access_to_object diff --git a/modoboa/extensions/admin/models/domain.py b/modoboa/extensions/admin/models/domain.py index c0a13d459..63c55a98c 100644 --- a/modoboa/extensions/admin/models/domain.py +++ b/modoboa/extensions/admin/models/domain.py @@ -58,7 +58,7 @@ class Domain(AdminObject): @property def tags(self): - return [{"name": "domain", "label": _("Domain"), "type": "dom"}] + return [{"name": "domain", "label": _("Domain"), "type": "label label-default dom"}] @property def admins(self): diff --git a/modoboa/extensions/admin/static/admin/css/settings.css b/modoboa/extensions/admin/static/admin/css/settings.css index 3a226bcce..24fc269b9 100644 --- a/modoboa/extensions/admin/static/admin/css/settings.css +++ b/modoboa/extensions/admin/static/admin/css/settings.css @@ -2,7 +2,6 @@ #settings_content .form-horizontal .control-label { margin-left: 20px; text-align: left; - width: 200px; } #settings_content > .form-horizontal .controls { diff --git a/modoboa/extensions/admin/static/admin/js/admin.js b/modoboa/extensions/admin/static/admin/js/admin.js index 6888f565f..a56bd6fc6 100644 --- a/modoboa/extensions/admin/static/admin/js/admin.js +++ b/modoboa/extensions/admin/static/admin/js/admin.js @@ -39,7 +39,7 @@ Admin.prototype = { return; } $("#import_status").css("display", "block"); - $("#import_result").html("").removeClass("alert alert-error"); + $("#import_result").html("").removeClass("alert alert-danger"); $("#importform").submit(); }); }, @@ -50,7 +50,7 @@ Admin.prototype = { $("#modalbox").modal('hide'); this.reload_listing(msg); } else { - $("#import_result").addClass("alert alert-error"); + $("#import_result").addClass("alert alert-danger"); $("#import_result").html(msg); this.importform_cb(); } diff --git a/modoboa/extensions/admin/templates/admin/forward.html b/modoboa/extensions/admin/templates/admin/forward.html index 1fc8559e2..dae315d71 100644 --- a/modoboa/extensions/admin/templates/admin/forward.html +++ b/modoboa/extensions/admin/templates/admin/forward.html @@ -5,6 +5,6 @@ id="uprefs_form">{% csrf_token %} {% render_form form %}
- +
diff --git a/modoboa/extensions/admin/templates/admin/listing.html b/modoboa/extensions/admin/templates/admin/listing.html index cbcbbbc86..73a65d8b4 100644 --- a/modoboa/extensions/admin/templates/admin/listing.html +++ b/modoboa/extensions/admin/templates/admin/listing.html @@ -9,8 +9,8 @@ var admin; {% endblock %} -{% block leftcol %}