fix: favicon and some stuff
This commit is contained in:
BIN
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
+23
-18
@@ -1,5 +1,6 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
@@ -7,6 +8,7 @@
|
|||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="container mt-4">
|
<div class="container mt-4">
|
||||||
<h1 class="mb-4">Événements - Jeux</h1>
|
<h1 class="mb-4">Événements - Jeux</h1>
|
||||||
@@ -26,7 +28,8 @@
|
|||||||
<div id="eventList" class="row"></div>
|
<div id="eventList" class="row"></div>
|
||||||
|
|
||||||
<!-- Modal pour afficher les détails d'un événement -->
|
<!-- Modal pour afficher les détails d'un événement -->
|
||||||
<div class="modal fade" id="eventDetailsModal" tabindex="-1" aria-labelledby="eventDetailsLabel" aria-hidden="true">
|
<div class="modal fade" id="eventDetailsModal" tabindex="-1" aria-labelledby="eventDetailsLabel"
|
||||||
|
aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
@@ -40,7 +43,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener("DOMContentLoaded", function() {
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
const apikeyContainer = document.getElementById("apikeyContainer");
|
const apikeyContainer = document.getElementById("apikeyContainer");
|
||||||
const eventFilters = document.getElementById("eventFilters");
|
const eventFilters = document.getElementById("eventFilters");
|
||||||
const agegroupSelect = document.getElementById("agegroup");
|
const agegroupSelect = document.getElementById("agegroup");
|
||||||
@@ -68,7 +71,7 @@
|
|||||||
`;
|
`;
|
||||||
eventFilters.style.display = "none";
|
eventFilters.style.display = "none";
|
||||||
document.getElementById("validateApiKey").addEventListener("click", saveApiKey);
|
document.getElementById("validateApiKey").addEventListener("click", saveApiKey);
|
||||||
document.getElementById("apikey").addEventListener("keypress", function(event) {
|
document.getElementById("apikey").addEventListener("keypress", function (event) {
|
||||||
if (event.key === "Enter") {
|
if (event.key === "Enter") {
|
||||||
saveApiKey();
|
saveApiKey();
|
||||||
}
|
}
|
||||||
@@ -104,13 +107,13 @@
|
|||||||
fetch(`${apiBaseUrl}/schedule`, {
|
fetch(`${apiBaseUrl}/schedule`, {
|
||||||
headers: { "Authorization": `Bearer ${apiKey}` }
|
headers: { "Authorization": `Bearer ${apiKey}` }
|
||||||
})
|
})
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
lastFetchedEvents = data.filter(event => event.event === "Jeu");
|
lastFetchedEvents = data.filter(event => event.event === "Jeu");
|
||||||
updateAgeGroupOptions(lastFetchedEvents);
|
updateAgeGroupOptions(lastFetchedEvents);
|
||||||
displayEvents(lastFetchedEvents);
|
displayEvents(lastFetchedEvents);
|
||||||
})
|
})
|
||||||
.catch(error => console.error("Erreur lors du chargement des événements:", error));
|
.catch(error => console.error("Erreur lors du chargement des événements:", error));
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateAgeGroupOptions(events) {
|
function updateAgeGroupOptions(events) {
|
||||||
@@ -142,7 +145,7 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">${event.title}</h5>
|
<h5 class="card-title">${event.title}</h5>
|
||||||
<p class="card-text"><strong>Lieu:</strong> ${event.place}</p>
|
<p class="card-text"><strong>Lieu:</strong> ${event.place}</p>
|
||||||
<p class="card-text"><strong>Heure:</strong> ${new Date(event.start).toLocaleTimeString()} - ${new Date(event.end).toLocaleTimeString()}</p>
|
<p class="card-text"><strong>Heure:</strong> ${event.start} - ${event.end}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
@@ -155,9 +158,9 @@
|
|||||||
fetch(`${apiBaseUrl}/game/${eventId}`, {
|
fetch(`${apiBaseUrl}/game/${eventId}`, {
|
||||||
headers: { "Authorization": `Bearer ${storedApiKey}` }
|
headers: { "Authorization": `Bearer ${storedApiKey}` }
|
||||||
})
|
})
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
eventDetailsContent.innerHTML = `
|
eventDetailsContent.innerHTML = `
|
||||||
<h5>${data.title}</h5>
|
<h5>${data.title}</h5>
|
||||||
<p><strong>Type:</strong> ${data.type}</p>
|
<p><strong>Type:</strong> ${data.type}</p>
|
||||||
<p><strong>Lieu:</strong> ${data.place}</p>
|
<p><strong>Lieu:</strong> ${data.place}</p>
|
||||||
@@ -165,14 +168,16 @@
|
|||||||
<h6>Joueurs convoqués:</h6>
|
<h6>Joueurs convoqués:</h6>
|
||||||
<ul>${data.convocation.available.map(player => {
|
<ul>${data.convocation.available.map(player => {
|
||||||
let number = player.number ? player.number : "N/A";
|
let number = player.number ? player.number : "N/A";
|
||||||
return `<li>${number} - ${player.fname} ${player.lname} (${player.position}, ${player.dob})</li>`;
|
let position = player.position ? player.position : "N/A";
|
||||||
|
return `<li>${number} - ${player.fname} ${player.lname} (${position}, ${player.dob})</li>`;
|
||||||
}).join('')}</ul>
|
}).join('')}</ul>
|
||||||
`;
|
`;
|
||||||
new bootstrap.Modal(document.getElementById('eventDetailsModal')).show();
|
new bootstrap.Modal(document.getElementById('eventDetailsModal')).show();
|
||||||
})
|
})
|
||||||
.catch(error => console.error("Erreur lors du chargement des détails de l'événement:", error));
|
.catch(error => console.error("Erreur lors du chargement des détails de l'événement:", error));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+8
-5
@@ -3,11 +3,10 @@ import requests
|
|||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
from fastapi import FastAPI, Header, HTTPException
|
from fastapi import FastAPI, Header, HTTPException
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from fastapi.responses import HTMLResponse
|
from fastapi.responses import FileResponse
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from . import myice
|
from . import myice
|
||||||
|
|
||||||
|
|
||||||
origins = ["*"]
|
origins = ["*"]
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
@@ -33,10 +32,14 @@ class AuthHeaders(BaseModel):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
@app.get("/", response_class=HTMLResponse)
|
@app.get("/")
|
||||||
async def home():
|
async def home():
|
||||||
with open("index.html") as f:
|
return FileResponse("index.html")
|
||||||
return f.read()
|
|
||||||
|
|
||||||
|
@app.get("/favicon.ico")
|
||||||
|
async def favico():
|
||||||
|
return FileResponse("favicon.ico")
|
||||||
|
|
||||||
|
|
||||||
@app.get("/schedule")
|
@app.get("/schedule")
|
||||||
|
|||||||
Reference in New Issue
Block a user