Modifications apportées : - Création de la table parametres dans la base de données - Création du fichier server/parametresDb.ts avec les fonctions getParametres et updateUrlPublique - Ajout du router parametres dans server/routers.ts avec les procédures get et updateUrlPublique - Création de la page client/src/pages/AdminParametres.tsx avec formulaire de modification - Ajout de la route /admin/parametres dans App.tsx - Ajout du lien "Paramètres" dans le menu après "Configuration SMTP" dans DashboardLayout - Modification de server/qrCodeGenerator.ts pour utiliser l'URL de la BDD au lieu de getAppBaseUrl - URL par défaut définie : https://formations.itinova.org Fonctionnalités : - Interface graphique pour modifier l'URL publique de l'application - Les QR codes d'émargement utilisent maintenant l'URL configurée dans la base de données - Validation de l'URL avant enregistrement - Message d'information sur l'impact des modifications
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { eq } from "drizzle-orm";
|
|
import { getDb } from "./db";
|
|
import { parametres } from "../drizzle/schema";
|
|
|
|
/**
|
|
* Récupérer les paramètres de l'application
|
|
* S'il n'y a pas de paramètres, en créer un avec les valeurs par défaut
|
|
*/
|
|
export async function getParametres() {
|
|
const db = await getDb();
|
|
if (!db) throw new Error("Database not available");
|
|
|
|
const result = await db.select().from(parametres).limit(1);
|
|
|
|
if (result.length === 0) {
|
|
// Créer les paramètres par défaut
|
|
await db.insert(parametres).values({
|
|
urlPublique: "https://formations.itinova.org",
|
|
});
|
|
|
|
const newResult = await db.select().from(parametres).limit(1);
|
|
return newResult[0];
|
|
}
|
|
|
|
return result[0];
|
|
}
|
|
|
|
/**
|
|
* Mettre à jour l'URL publique
|
|
*/
|
|
export async function updateUrlPublique(urlPublique: string) {
|
|
const db = await getDb();
|
|
if (!db) throw new Error("Database not available");
|
|
|
|
const params = await getParametres();
|
|
|
|
await db.update(parametres)
|
|
.set({ urlPublique })
|
|
.where(eq(parametres.id, params.id));
|
|
|
|
return getParametres();
|
|
}
|