Checkpoint: Modifications de l'interface utilisateur :
- Page AdminSequences : ouvre en vue réduite par défaut - DashboardLayout : seule la section "Gestion" est ouverte par défaut à la connexion - Déployé sur le VPS de production
This commit is contained in:
@@ -214,7 +214,7 @@ function DashboardLayoutContent({
|
||||
// État pour gérer les sections ouvertes/fermées (persisté dans localStorage)
|
||||
const [openSections, setOpenSections] = useState<Record<string, boolean>>(() => {
|
||||
// Version du système de menu (incrémenter pour forcer la réinitialisation)
|
||||
const MENU_VERSION = 3; // Incrémenté pour forcer la réinitialisation après le bug formateur
|
||||
const MENU_VERSION = 4; // Incrémenté pour ne garder ouvert que "Gestion" par défaut
|
||||
const savedVersion = localStorage.getItem('menuVersion');
|
||||
|
||||
// Si la version a changé, ignorer le localStorage existant
|
||||
@@ -229,12 +229,11 @@ function DashboardLayoutContent({
|
||||
}
|
||||
}
|
||||
|
||||
// Valeurs par défaut : toutes les sections sont ouvertes par défaut
|
||||
// Cela garantit que le menu est visible pour tous les rôles
|
||||
// Valeurs par défaut : seule la section "Gestion" est ouverte par défaut
|
||||
const initial: Record<string, boolean> = {};
|
||||
menuSections.forEach(section => {
|
||||
// Ouvrir toutes les sections par défaut
|
||||
initial[section.title] = true;
|
||||
// Ouvrir uniquement la section "Gestion" par défaut
|
||||
initial[section.title] = section.title === "Gestion";
|
||||
});
|
||||
|
||||
// Sauvegarder la version et l'état initial
|
||||
|
||||
@@ -32,7 +32,7 @@ export default function AdminSequences() {
|
||||
const [filterStatut, setFilterStatut] = useState<string>("all");
|
||||
const [filterPublicCible, setFilterPublicCible] = useState<string>("all");
|
||||
const [sortBy, setSortBy] = useState<"date" | "lieu" | "capacite">("date");
|
||||
const [isCompactView, setIsCompactView] = useState(false);
|
||||
const [isCompactView, setIsCompactView] = useState(true);
|
||||
|
||||
const [formData, setFormData] = useState({
|
||||
formationId: "",
|
||||
|
||||
@@ -13,7 +13,7 @@ import { logNotification } from "./notificationLogsDb";
|
||||
import { generateExcelExport, generatePDFExport, generateFeuillePresence } from "./exportService";
|
||||
import { parseExcelFile, validateImportData, importToDatabase } from "./importExcel";
|
||||
import crypto from "crypto";
|
||||
import bcrypt from "bcrypt";
|
||||
import bcrypt from "bcryptjs";
|
||||
|
||||
// Procédure admin uniquement
|
||||
const adminProcedure = protectedProcedure.use(({ ctx, next }) => {
|
||||
|
||||
4
todo.md
4
todo.md
@@ -826,3 +826,7 @@
|
||||
- [x] Créer la page /forgot-password pour demander la réinitialisation de mot de passe
|
||||
- [x] Créer la page /reset-password/:token pour définir le nouveau mot de passe
|
||||
- [x] Installer le module bcrypt sur le VPS pour activer la réinitialisation de mot de passe (temporairement désactivé en attendant la résolution du problème de store pnpm)
|
||||
- [ ] Corriger l'erreur "(void 0) is not a function" sur la page de réinitialisation de mot de passe
|
||||
- [ ] Corriger le problème des rappels envoyés en boucle (non enregistrés dans l'historique)
|
||||
- [x] Modifier la page AdminSequences pour ouvrir en vue réduite par défaut
|
||||
- [x] Modifier le DashboardLayout pour réduire tous les menus sauf "Gestion" à la connexion
|
||||
|
||||
Reference in New Issue
Block a user