Site/Django :

- Add 404 error
    - change request method to post for load page
This commit is contained in:
Kum1ta
2024-09-11 17:27:23 +02:00
parent 11f65d608b
commit 9d62f0bede
4 changed files with 37 additions and 7 deletions

View File

@ -44,7 +44,6 @@ MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware', 'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',

View File

@ -0,0 +1,7 @@
<div id="topBar">
<h1>PTME</h1>
</div>
<div style='color: white; position: absolute; left: 50%; top: 50%; text-align: center; transform: translate(-50%, -50%); font-size: 10vh;' id="content">
<h1>404</h1>
<p>Page not found</p>
</div>

View File

@ -18,13 +18,15 @@ def index(request):
def homePage(request): def homePage(request):
request.session.save() request.session.save()
if(request.method != "POST"): if(request.method != "POST"):
return(HttpResponse("wrong method",status=403)) return index(request)
link42 = f"https://api.intra.42.fr/oauth/authorize?client_id={UID42}&redirect_uri={SERVER_URL}/login42&response_type=code&scope=public" link42 = f"https://api.intra.42.fr/oauth/authorize?client_id={UID42}&redirect_uri={SERVER_URL}/login42&response_type=code&scope=public"
return render(request, "homePage.html", {"link42" : link42}) return render(request, "homePage.html", {"link42" : link42})
def lobbyPage(request): def lobbyPage(request):
request.session.save() request.session.save()
if(not request.session.get("logged_in", False) or request.method != "POST"): if(request.method != "POST"):
return index(request)
if(not request.session.get("logged_in", False)):
return(HttpResponse("you are not logged in",status=403)) return(HttpResponse("you are not logged in",status=403))
return render(request, "lobbyPage.html", {}) return render(request, "lobbyPage.html", {})

View File

@ -6,7 +6,7 @@
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */ /* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/08/25 00:00:21 by edbernar #+# #+# */ /* Created: 2024/08/25 00:00:21 by edbernar #+# #+# */
/* Updated: 2024/09/10 17:33:18 by edbernar ### ########.fr */ /* Updated: 2024/09/11 17:26:02 by edbernar ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -25,7 +25,6 @@ class Page
{ {
const thisClass = this; const thisClass = this;
window.onpopstate = function(event) { window.onpopstate = function(event) {
console.log("verif 2")
for (let i = 0; i < thisClass.availablePages.length; i++) for (let i = 0; i < thisClass.availablePages.length; i++)
{ {
if (window.location.pathname == thisClass.availablePages[i].url) if (window.location.pathname == thisClass.availablePages[i].url)
@ -54,7 +53,9 @@ class Page
{ {
if (name === this.availablePages[i].name) if (name === this.availablePages[i].name)
{ {
fetch(this.availablePages[i].servUrl) fetch(this.availablePages[i].servUrl, {
method: "POST",
})
.then(response => { .then(response => {
if (response.status != 200) if (response.status != 200)
throw Error("Page '" + name + "' can't be loaded") throw Error("Page '" + name + "' can't be loaded")
@ -71,6 +72,7 @@ class Page
}) })
}) })
.catch(error => { .catch(error => {
window.location.href = '/';
throw Error(error); throw Error(error);
}); });
@ -82,7 +84,27 @@ class Page
#showUnknownPage() #showUnknownPage()
{ {
document.body.innerHTML = "404 - Page not found"; if (this.actualPage != null)
this.actualPage.dispose();
fetch('/404')
.then(response => {
if (response.status != 200)
throw Error("Page '" + name + "' can't be loaded")
return (response);
})
.then(data => {
data.text().then(text => {
document.body.innerHTML = text;
this.actualPage = null;
document.title = 'PTME - Page not found';
history.pushState({}, this.availablePages[i].title, this.availablePages[i].url);
})
})
.catch(error => {
window.location.href = '/';
throw Error(error);
});
} }
}; };