86 lines
3.5 KiB
HTML
86 lines
3.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
<title>GestHub — Tableau de bord</title>
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='assets/css/index.css') }}" />
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" />
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.15.0/Sortable.min.js"></script>
|
|
</head>
|
|
<body>
|
|
|
|
<header role="banner">
|
|
<button id="toggle-darkmode" aria-label="Basculer le mode sombre / clair">🌓</button>
|
|
<span class="user-badge" aria-label="Utilisateur connecté">
|
|
{{ user.preferred_username if user else '' }}
|
|
</span>
|
|
<a href="{{ url_for('auth.logout') }}" class="logout-link" aria-label="Se déconnecter de GestHub">
|
|
Déconnexion
|
|
</a>
|
|
</header>
|
|
|
|
<nav role="navigation" aria-label="Navigation principale des modules GestHub">
|
|
<a href="#annonces">Annonces</a>
|
|
<a href="#fichiers">Fichiers</a>
|
|
<a href="#planning">Planning</a>
|
|
</nav>
|
|
|
|
<main role="main">
|
|
<aside class="left-column" id="left" aria-label="Colonne gauche du tableau de bord">
|
|
</aside>
|
|
|
|
<section class="center-column" id="center" aria-label="Colonne centrale du tableau de bord">
|
|
<h1 class="main-title">GestHub</h1>
|
|
</section>
|
|
|
|
<aside class="right-column" id="right" aria-label="Colonne droite du tableau de bord">
|
|
</aside>
|
|
</main>
|
|
|
|
<section id="annonces" aria-labelledby="annonces-heading">
|
|
<h2 id="annonces-heading">Annonces</h2>
|
|
<ul id="annonces-list" aria-live="polite"></ul>
|
|
</section>
|
|
|
|
<section id="fichiers" aria-labelledby="fichiers-heading">
|
|
<h2 id="fichiers-heading">Partage de fichiers</h2>
|
|
<ul id="fichiers-list" aria-live="polite"></ul>
|
|
</section>
|
|
|
|
<section id="planning" aria-labelledby="planning-heading">
|
|
<h2 id="planning-heading">Planning</h2>
|
|
<ul id="evenements-list" aria-live="polite"></ul>
|
|
</section>
|
|
|
|
<div id="admin-panel" style="display:none;" role="toolbar" aria-label="Barre d'outils d'édition (mode administrateur)">
|
|
<div class="admin-toolbar">
|
|
<span>🛠 Mode Édition</span>
|
|
<button onclick="addNewWidget('iframe')" aria-label="Ajouter un widget de type iframe">+ Iframe</button>
|
|
<button onclick="addNewWidget('buttons')" aria-label="Ajouter un widget de type boutons">+ Boutons</button>
|
|
<button onclick="addNewWidget('html')" aria-label="Ajouter un widget de texte ou HTML">+ Texte/HTML</button>
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
/* Petit style rapide pour la toolbar admin */
|
|
#admin-panel {
|
|
position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%);
|
|
background: #222; padding: 10px 20px; border-radius: 30px;
|
|
box-shadow: 0 5px 15px rgba(0,0,0,0.3); z-index: 999;
|
|
}
|
|
.admin-toolbar button {
|
|
background: #4CAF50; border: none; color: white; padding: 5px 10px;
|
|
border-radius: 5px; cursor: pointer; margin-left: 10px;
|
|
}
|
|
.drag-handle { cursor: move; padding: 5px; background: rgba(0,0,0,0.1); text-align: center; color: #666; font-size: 12px; margin-bottom: 5px; display: none;}
|
|
.admin-active .drag-handle { display: block; }
|
|
.admin-active .draggable-item { border: 2px dashed #ccc; min-height: 50px; }
|
|
header[role="banner"] { display:flex; align-items:center; gap: 1rem; padding: 0.5rem 1rem; }
|
|
.logout-link { margin-left: auto; }
|
|
</style>
|
|
|
|
<script src="{{ url_for('static', filename='assets/js/index.js') }}"></script>
|
|
</body>
|
|
</html>
|