fix: favicon and some stuff
This commit is contained in:
BIN
favicon.ico
Normal file
BIN
favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
41
index.html
41
index.html
@@ -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>
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user