First commit

This commit is contained in:
mrtoine 2025-09-12 11:07:53 +02:00
commit 440f5a7df4
1563 changed files with 217996 additions and 0 deletions

50
static/js/functions.js Normal file
View file

@ -0,0 +1,50 @@
function hide(id) {
let htmlChange = document.getElementById('show-' + id);
htmlChange.style.display = "none";
htmlChange.id = `hide-${id}`;
let buttonChange = document.getElementById(id);
buttonChange.onclick = function() { show(id); };
}
function show(id) {
let htmlChange = document.getElementById('hide-' + id);
htmlChange.style.display = "block";
htmlChange.id = `show-${id}`;
let buttonChange = document.getElementById(id);
buttonChange.onclick = function() { hide(id); };
}
// Fonction pour supprimer le message d'alerte après 5 secondes
document.addEventListener('DOMContentLoaded', function() {
let messages = document.querySelector('.flash_messages')
setTimeout(function() {
messages.style.opacity = 0;
setTimeout(function() {
messages.style.display = 'none';
}, 1000);
}, 5000);
});
// Fonction pour générer des flocons de neige
function createSnowflake() {
const snowflake = document.createElement('div');
snowflake.classList.add('snowflake');
snowflake.textContent = '•';
snowflake.style.left = `${Math.random() * 100}vw`;
const size = Math.random() * 1.5 + 0.5;
snowflake.style.fontSize = `${size}em`;
const duration = Math.random() * 5 + 5;
snowflake.style.animationDuration = `${duration}s`;
document.body.appendChild(snowflake);
setTimeout(() => {
snowflake.remove();
}, duration * 1000);
}
// On génére lee flocons toute les 300ms
setInterval(createSnowflake, 300);

82
static/js/night_day.js Normal file
View file

@ -0,0 +1,82 @@
const FA_ICON = document.querySelector('.fa-moon');
const LINK_FA = document.querySelector('.navend > a');
// Fonction pour définir un cookie
function setCookie(name, value, days) {
const expires = new Date();
expires.setTime(expires.getTime() + days * 24 * 60 * 60 * 1000);
document.cookie = `${name}=${value};expires=${expires.toUTCString()};path=/`;
}
// Fonction pour récupérer la valeur d'un cookie
function getCookie(name) {
const cookieName = `${name}=`;
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i].trim();
if (cookie.indexOf(cookieName) === 0) {
return cookie.substring(cookieName.length, cookie.length);
}
}
return null;
}
// Charger le thème en fonction du cookie au chargement initial de la page
document.addEventListener('DOMContentLoaded', () => {
const currentTheme = getCookie('theme');
if (currentTheme === 'light') {
// Charger le thème sombre
FA_ICON.classList.add('fa-moon');
FA_ICON.classList.remove('fa-sun');
loadDarkTheme();
} else {
// Par défaut, charger le thème clair
FA_ICON.classList.add('fa-sun');
FA_ICON.classList.remove('fa-moon');
loadLightTheme();
}
});
// Écouter l'événement clic sur l'icône
FA_ICON.addEventListener('click', () => {
FA_ICON.classList.toggle('fa-moon');
FA_ICON.classList.toggle('fa-sun');
if (FA_ICON.classList.contains('fa-moon')) {
// Charger le thème clair
loadLightTheme();
// Enregistrer le choix du thème dans le cookie
setCookie('theme', 'light', 30); // Le cookie expire après 30 jours
} else {
// Charger le thème sombre
loadDarkTheme();
// Enregistrer le choix du thème dans le cookie
setCookie('theme', 'dark', 30); // Le cookie expire après 30 jours
}
});
// Fonction pour charger le thème clair
function loadLightTheme() {
const existingLink = document.querySelector('link[href*="colors_dark.css"]');
if (existingLink) {
const newLink = document.createElement('link');
newLink.rel = 'stylesheet';
newLink.href = '/static/css/colors_light.css';
existingLink.parentNode.replaceChild(newLink, existingLink);
} else {
console.error("Feuille de style 'colors_dark.css' non trouvée ou inaccessible.");
}
}
// Fonction pour charger le thème sombre
function loadDarkTheme() {
const existingLink = document.querySelector('link[href*="colors_light.css"]');
if (existingLink) {
const newLink = document.createElement('link');
newLink.rel = 'stylesheet';
newLink.href = '/static/css/colors_dark.css';
existingLink.parentNode.replaceChild(newLink, existingLink);
} else {
console.error("Feuille de style 'colors_light.css' non trouvée ou inaccessible.");
}
}