From 8f32b9c2626f3b35c9952164051690e765bfb7b6 Mon Sep 17 00:00:00 2001 From: llj Date: Wed, 21 Feb 2024 17:40:48 +0800 Subject: [PATCH] Password reset (#5957) * ['Password Reset'] redesigned the page * ['Password Reset done'] redesigned the page --- media/img/email.png | Bin 0 -> 10154 bytes seahub/auth/views.py | 9 +- seahub/templates/registration/login.html | 18 ++-- .../registration/password_reset_done.html | 43 +++++++++- .../registration/password_reset_form.html | 78 +++++++++++++++--- 5 files changed, 126 insertions(+), 22 deletions(-) create mode 100644 media/img/email.png diff --git a/media/img/email.png b/media/img/email.png new file mode 100644 index 0000000000000000000000000000000000000000..ecdaea83da23793d2742fce4d7568fa6946a6e04 GIT binary patch literal 10154 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 F{U5i%cD?`r literal 0 HcmV?d00001 diff --git a/seahub/auth/views.py b/seahub/auth/views.py index 36deb7878c..7b3f8a0d8e 100644 --- a/seahub/auth/views.py +++ b/seahub/auth/views.py @@ -356,6 +356,8 @@ def password_reset(request, is_admin_site=False, template_name='registration/pas if post_reset_redirect is None: post_reset_redirect = reverse('auth_password_reset_done') + + login_bg_image_path = get_login_bg_image_path() if request.method == "POST": form = password_reset_form(request.POST) if form.is_valid(): @@ -374,6 +376,7 @@ def password_reset(request, is_admin_site=False, template_name='registration/pas messages.error(request, _('Failed to send email, please contact administrator.')) return render(request, template_name, { 'form': form, + 'login_bg_image_path': login_bg_image_path, }) else: return HttpResponseRedirect(post_reset_redirect) @@ -381,10 +384,14 @@ def password_reset(request, is_admin_site=False, template_name='registration/pas form = password_reset_form() return render(request, template_name, { 'form': form, + 'login_bg_image_path': login_bg_image_path, }) def password_reset_done(request, template_name='registration/password_reset_done.html'): - return render(request, template_name) + login_bg_image_path = get_login_bg_image_path() + return render(request, template_name, { + 'login_bg_image_path': login_bg_image_path, + }) # Doesn't need csrf_protect since no-one can guess the URL def password_reset_confirm(request, uidb36=None, token=None, template_name='registration/password_reset_confirm.html', diff --git a/seahub/templates/registration/login.html b/seahub/templates/registration/login.html index dc2860f738..9c74ec2a46 100644 --- a/seahub/templates/registration/login.html +++ b/seahub/templates/registration/login.html @@ -112,15 +112,6 @@ html, body, #wrapper { height:100%; } $('.login-panel-outer-container').prepend($($('#logo').html()).attr({'height': 40}).addClass('login-panel-logo')); $('.login-panel-bottom-container').append($('#lang').removeClass('fright').addClass('px-2')); -$('#toggle-show-password').click(function() { - $(this).toggleClass('fa-eye-slash fa-eye'); - if ($(this).hasClass('fa-eye-slash')) { - $('#password-input').attr('type', 'password'); - } else { - $('#password-input').attr('type', 'text'); - } -}); - var $el = $('.login-panel-outer-container'); var elHeight = $el.outerHeight(); var wdHeight = $(window).height(); @@ -149,6 +140,15 @@ $('#lang-context').on('click', function() { $('[name="login"]').trigger('focus'); +$('#toggle-show-password').click(function() { + $(this).toggleClass('fa-eye-slash fa-eye'); + if ($(this).hasClass('fa-eye-slash')) { + $('#password-input').attr('type', 'password'); + } else { + $('#password-input').attr('type', 'text'); + } +}); + function setCaptchaInputWidth() { $('#id_captcha_1').outerWidth($('.input').outerWidth() - $('.captcha').width() - $('#refresh-captcha').outerWidth(true) - 10); } diff --git a/seahub/templates/registration/password_reset_done.html b/seahub/templates/registration/password_reset_done.html index 0d8ebc5ac2..5b201ff8e2 100644 --- a/seahub/templates/registration/password_reset_done.html +++ b/seahub/templates/registration/password_reset_done.html @@ -1,10 +1,49 @@ {% extends "base.html" %} {% load i18n %} -{% block title %}{% trans "Password Reset" %}{% endblock %} +{% block sub_title %}{% trans "Password Reset" %} - {% endblock %} +{% block header_css_class %}hide{% endblock %} +{% block extra_base_style %} + +{% endblock %} +{% block extra_style %} + +{% endblock %} {% block main_content %} -
+ {% endblock %} + +{% block extra_script %} + +{% endblock %} diff --git a/seahub/templates/registration/password_reset_form.html b/seahub/templates/registration/password_reset_form.html index af825c77df..44a7a8c56a 100644 --- a/seahub/templates/registration/password_reset_form.html +++ b/seahub/templates/registration/password_reset_form.html @@ -1,22 +1,80 @@ {% extends "base.html" %} {% load i18n %} -{% block title %}{% trans "Password Reset" %}{% endblock %} +{% block sub_title %}{% trans "Password Reset" %} - {% endblock %} +{% block header_css_class %}hide{% endblock %} +{% block extra_base_style %} + + +{% endblock %} +{% block extra_style %} + +{% endblock %} + {% block main_content %} -
-

{% trans "Password Reset" %}

-
{% csrf_token %} - - {{ form.email }} - {{ form.email.errors }} -

{% trans "We will send you an email to set new password" %}

- +
{% endblock %} {% block extra_script %} {% endblock %}