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)
|
// État pour gérer les sections ouvertes/fermées (persisté dans localStorage)
|
||||||
const [openSections, setOpenSections] = useState<Record<string, boolean>>(() => {
|
const [openSections, setOpenSections] = useState<Record<string, boolean>>(() => {
|
||||||
// Version du système de menu (incrémenter pour forcer la réinitialisation)
|
// 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');
|
const savedVersion = localStorage.getItem('menuVersion');
|
||||||
|
|
||||||
// Si la version a changé, ignorer le localStorage existant
|
// 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
|
// Valeurs par défaut : seule la section "Gestion" est ouverte par défaut
|
||||||
// Cela garantit que le menu est visible pour tous les rôles
|
|
||||||
const initial: Record<string, boolean> = {};
|
const initial: Record<string, boolean> = {};
|
||||||
menuSections.forEach(section => {
|
menuSections.forEach(section => {
|
||||||
// Ouvrir toutes les sections par défaut
|
// Ouvrir uniquement la section "Gestion" par défaut
|
||||||
initial[section.title] = true;
|
initial[section.title] = section.title === "Gestion";
|
||||||
});
|
});
|
||||||
|
|
||||||
// Sauvegarder la version et l'état initial
|
// Sauvegarder la version et l'état initial
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export default function AdminSequences() {
|
|||||||
const [filterStatut, setFilterStatut] = useState<string>("all");
|
const [filterStatut, setFilterStatut] = useState<string>("all");
|
||||||
const [filterPublicCible, setFilterPublicCible] = useState<string>("all");
|
const [filterPublicCible, setFilterPublicCible] = useState<string>("all");
|
||||||
const [sortBy, setSortBy] = useState<"date" | "lieu" | "capacite">("date");
|
const [sortBy, setSortBy] = useState<"date" | "lieu" | "capacite">("date");
|
||||||
const [isCompactView, setIsCompactView] = useState(false);
|
const [isCompactView, setIsCompactView] = useState(true);
|
||||||
|
|
||||||
const [formData, setFormData] = useState({
|
const [formData, setFormData] = useState({
|
||||||
formationId: "",
|
formationId: "",
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import { logNotification } from "./notificationLogsDb";
|
|||||||
import { generateExcelExport, generatePDFExport, generateFeuillePresence } from "./exportService";
|
import { generateExcelExport, generatePDFExport, generateFeuillePresence } from "./exportService";
|
||||||
import { parseExcelFile, validateImportData, importToDatabase } from "./importExcel";
|
import { parseExcelFile, validateImportData, importToDatabase } from "./importExcel";
|
||||||
import crypto from "crypto";
|
import crypto from "crypto";
|
||||||
import bcrypt from "bcrypt";
|
import bcrypt from "bcryptjs";
|
||||||
|
|
||||||
// Procédure admin uniquement
|
// Procédure admin uniquement
|
||||||
const adminProcedure = protectedProcedure.use(({ ctx, next }) => {
|
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 /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] 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)
|
- [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