Skip to content

Commit 111ec7a

Browse files
committed
fix: removed htmx from form
1 parent c62f7ed commit 111ec7a

File tree

2 files changed

+35
-25
lines changed

2 files changed

+35
-25
lines changed

backend/views/core/auth/login.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,39 +46,43 @@ def login_manual(request: HttpRequest):
4646
redirect_url = request.POST.get("next", "")
4747

4848
if not email:
49-
return render_error_toast_message(request, "Please enter an email")
49+
messages.error(request, "Please enter an email")
50+
return redirect_to_login(email, redirect_url)
5051

5152
try:
5253
validate_email(email)
5354
except ValidationError:
54-
return render_error_toast_message(request, "Please enter a valid email")
55+
messages.error(request, "Please enter a valid email")
56+
return redirect_to_login(email, redirect_url)
5557

5658
if not password:
57-
return render_error_toast_message(request, "Please enter a password")
59+
messages.error(request, "Please enter a password")
60+
return redirect_to_login(email, redirect_url)
5861

5962
user = authenticate(request, username=email, password=password)
6063

6164
if not user:
62-
return render_error_toast_message(request, "Incorrect email or password")
65+
messages.error(request, "Incorrect email or password")
66+
return redirect_to_login(email, redirect_url)
6367

6468
if user.awaiting_email_verification and ARE_EMAILS_ENABLED: # type: ignore[attr-defined]
65-
return render_error_toast_message(request, "You must verify your email before logging in.")
69+
messages.error(request, "You must verify your email before logging in.")
70+
return redirect_to_login(email, redirect_url)
6671

6772
login(request, user)
6873

69-
response = HttpResponse(status=200)
70-
7174
if user.require_change_password: # type: ignore[attr-defined]
7275
messages.warning(request, "You have been requested by an administrator to change your account password.")
73-
response["HX-Redirect"] = reverse("settings:change_password")
74-
else:
75-
try:
76-
resolve(redirect_url)
77-
response["HX-Redirect"] = redirect_url
78-
except Resolver404:
79-
response["HX-Redirect"] = "/dashboard/"
76+
return redirect("settings:change_password")
77+
78+
try:
79+
resolve(redirect_url)
80+
return redirect(redirect_url)
81+
except Resolver404:
82+
return redirect("dashboard")
8083

81-
return response
84+
def redirect_to_login(email: str, redirect_url: str):
85+
return redirect(f"{reverse('auth:login')}?email={email}&next={redirect_url}")
8286

8387

8488
def render_error_toast_message(request: HttpRequest, message: str) -> HttpResponse:

frontend/templates/pages/auth/login_initial.html

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,9 @@
7070
}
7171

7272
</style>
73-
<form method="post"
74-
class="slide-transition"
75-
hx-swap="none"
76-
hx-post="{% url 'auth:login manual' %}"
77-
action="{% url 'auth:login manual' %}"
78-
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
79-
hx-indicator='button[data-hx-loading="save"]'>
73+
<form id="login-form"
74+
method="post"
75+
action="{% url 'auth:login manual' %}">
8076
{% csrf_token %}
8177
<noscript>
8278
<div data-theme="dim"
@@ -105,7 +101,7 @@ <h2 class="text-2xl font-bold text-center">
105101
pattern="[^@\s]+@[^@\s]+\.[^@\s]+"
106102
placeholder="jsmith@example.com"
107103
class="peer input input-bordered w-full"
108-
value="{{ attempted_email|default_if_none:'' }}">
104+
value="{{ request.GET.email|default_if_none:'' }}">
109105
<label class="label peer-[&amp;:not(:placeholder-shown):not(:focus):invalid]:block hidden">
110106
<span class="label-text-alt text-error">Please enter a valid email.</span>
111107
</label>
@@ -122,10 +118,10 @@ <h2 class="text-2xl font-bold text-center">
122118
placeholder="********"
123119
class="input input-bordered w-full">
124120
</div>
125-
<button class="btn btn-primary loading-htmx mt-5 w-full"
121+
<button id="login-btn" class="btn btn-primary loading-htmx mt-5 w-full"
126122
data-hx-loading="save"
127123
type="submit">
128-
Login
124+
<span class="loading-htmx-text">Login</span>
129125
<span id="currency_save_loading"
130126
class="loading loading-spinner loading-htmx-loader"></span>
131127
</button>
@@ -162,4 +158,14 @@ <h2 class="text-2xl font-bold text-center">
162158
</a>
163159
{% endif %}
164160
</form>
161+
<script>
162+
// Displays loader and disables button when form is submitted
163+
const form = document.getElementById("login-form");
164+
form.addEventListener("submit", (event) => {
165+
const button = document.getElementById("login-btn");
166+
const loader = document.getElementById("currency_save_loading");
167+
button.setAttribute("disabled", "");
168+
loader.style.display = "inline-block";
169+
})
170+
</script>
165171
{% endblock %}

0 commit comments

Comments
 (0)