fix: favicon and some stuff

This commit is contained in:
2025-03-12 11:15:45 +01:00
parent 4c5867c19f
commit 251e2b1452
3 changed files with 31 additions and 23 deletions

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,5 +1,6 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<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">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-4">
<h1 class="mb-4">Événements - Jeux</h1>
@@ -26,7 +28,8 @@
<div id="eventList" class="row"></div>
<!-- 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-content">
<div class="modal-header">
@@ -40,7 +43,7 @@
</div>
<script>
document.addEventListener("DOMContentLoaded", function() {
document.addEventListener("DOMContentLoaded", function () {
const apikeyContainer = document.getElementById("apikeyContainer");
const eventFilters = document.getElementById("eventFilters");
const agegroupSelect = document.getElementById("agegroup");
@@ -68,7 +71,7 @@
`;
eventFilters.style.display = "none";
document.getElementById("validateApiKey").addEventListener("click", saveApiKey);
document.getElementById("apikey").addEventListener("keypress", function(event) {
document.getElementById("apikey").addEventListener("keypress", function (event) {
if (event.key === "Enter") {
saveApiKey();
}
@@ -104,13 +107,13 @@
fetch(`${apiBaseUrl}/schedule`, {
headers: { "Authorization": `Bearer ${apiKey}` }
})
.then(response => response.json())
.then(data => {
lastFetchedEvents = data.filter(event => event.event === "Jeu");
updateAgeGroupOptions(lastFetchedEvents);
displayEvents(lastFetchedEvents);
})
.catch(error => console.error("Erreur lors du chargement des événements:", error));
.then(response => response.json())
.then(data => {
lastFetchedEvents = data.filter(event => event.event === "Jeu");
updateAgeGroupOptions(lastFetchedEvents);
displayEvents(lastFetchedEvents);
})
.catch(error => console.error("Erreur lors du chargement des événements:", error));
}
function updateAgeGroupOptions(events) {
@@ -142,7 +145,7 @@
<div class="card-body">
<h5 class="card-title">${event.title}</h5>
<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>
`;
@@ -155,9 +158,9 @@
fetch(`${apiBaseUrl}/game/${eventId}`, {
headers: { "Authorization": `Bearer ${storedApiKey}` }
})
.then(response => response.json())
.then(data => {
eventDetailsContent.innerHTML = `
.then(response => response.json())
.then(data => {
eventDetailsContent.innerHTML = `
<h5>${data.title}</h5>
<p><strong>Type:</strong> ${data.type}</p>
<p><strong>Lieu:</strong> ${data.place}</p>
@@ -165,14 +168,16 @@
<h6>Joueurs convoqués:</h6>
<ul>${data.convocation.available.map(player => {
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>
`;
new bootstrap.Modal(document.getElementById('eventDetailsModal')).show();
})
.catch(error => console.error("Erreur lors du chargement des détails de l'événement:", error));
new bootstrap.Modal(document.getElementById('eventDetailsModal')).show();
})
.catch(error => console.error("Erreur lors du chargement des détails de l'événement:", error));
}
});
</script>
</body>
</html>

View File

@@ -3,11 +3,10 @@ import requests
from typing import Annotated
from fastapi import FastAPI, Header, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import HTMLResponse
from fastapi.responses import FileResponse
from pydantic import BaseModel
from . import myice
origins = ["*"]
app = FastAPI()
@@ -33,10 +32,14 @@ class AuthHeaders(BaseModel):
return False
@app.get("/", response_class=HTMLResponse)
@app.get("/")
async def home():
with open("index.html") as f:
return f.read()
return FileResponse("index.html")
@app.get("/favicon.ico")
async def favico():
return FileResponse("favicon.ico")
@app.get("/schedule")