transfer from private server/git server
This commit is contained in:
15
web/templates/errors/403.html
Normal file
15
web/templates/errors/403.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Accès refusé — GestHub</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='assets/css/index.css') }}" />
|
||||
</head>
|
||||
<body>
|
||||
<main role="main" style="text-align:center; padding: 4rem 1rem;">
|
||||
<h1>403 — Accès refusé</h1>
|
||||
<p>Vous n'avez pas les droits nécessaires pour accéder à cette ressource.</p>
|
||||
<a href="{{ url_for('dashboard.index') }}">Retour à l'accueil</a>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
15
web/templates/errors/404.html
Normal file
15
web/templates/errors/404.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Page introuvable — GestHub</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='assets/css/index.css') }}" />
|
||||
</head>
|
||||
<body>
|
||||
<main role="main" style="text-align:center; padding: 4rem 1rem;">
|
||||
<h1>404 — Page introuvable</h1>
|
||||
<p>La ressource demandée n'existe pas.</p>
|
||||
<a href="{{ url_for('dashboard.index') }}">Retour à l'accueil</a>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
15
web/templates/errors/500.html
Normal file
15
web/templates/errors/500.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Erreur serveur — GestHub</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='assets/css/index.css') }}" />
|
||||
</head>
|
||||
<body>
|
||||
<main role="main" style="text-align:center; padding: 4rem 1rem;">
|
||||
<h1>500 — Erreur interne</h1>
|
||||
<p>Une erreur inattendue est survenue. L'équipe technique a été notifiée.</p>
|
||||
<a href="{{ url_for('dashboard.index') }}">Retour à l'accueil</a>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -3,33 +3,62 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>Gesthub</title>
|
||||
<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>
|
||||
|
||||
<button id="toggle-darkmode">🌓</button>
|
||||
|
||||
<main>
|
||||
<aside class="left-column" id="left">
|
||||
</aside>
|
||||
<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>
|
||||
|
||||
<section class="center-column" id="center">
|
||||
<h1 class="main-title">Gesthub</h1>
|
||||
</section>
|
||||
<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>
|
||||
|
||||
<aside class="right-column" id="right">
|
||||
</aside>
|
||||
<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>
|
||||
|
||||
<div id="admin-panel" style="display:none;">
|
||||
<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')">+ Iframe</button>
|
||||
<button onclick="addNewWidget('buttons')">+ Boutons</button>
|
||||
<button onclick="addNewWidget('html')">+ Texte/HTML</button>
|
||||
<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>
|
||||
|
||||
@@ -47,8 +76,10 @@
|
||||
.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>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user