feat: normaliser les URL production par entité
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 1m35s
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 1m35s
This commit is contained in:
@@ -163,7 +163,7 @@ export default function AdminEmailTemplates() {
|
||||
.replace(/\{\{formateur\}\}/g, 'Jean Martin')
|
||||
.replace(/\{\{couleurPrincipale\}\}/g, formData.couleurPrincipale)
|
||||
.replace(/\{\{couleurSecondaire\}\}/g, formData.couleurSecondaire)
|
||||
.replace(/\{\{lienReinitialisation\}\}/g, 'https://formations.itinova.org/reset-password/token123')
|
||||
.replace(/\{\{lienReinitialisation\}\}/g, 'https://formations-itinova.santinova-soft.org/reset-password/token123')
|
||||
.replace(/\{\{datesHTML\}\}/g, '<div class="date-item"><strong>Date 1 :</strong> lundi 15 janvier 2025</div><div class="date-item"><strong>Date 2 :</strong> mardi 16 janvier 2025</div>');
|
||||
};
|
||||
|
||||
@@ -369,7 +369,7 @@ export default function AdminEmailTemplates() {
|
||||
|
||||
<div>
|
||||
<Label htmlFor="bodyContent">Corps du message</Label>
|
||||
|
||||
|
||||
{/* Boutons de variables dynamiques */}
|
||||
<div className="flex flex-wrap gap-2 mb-2">
|
||||
<Button
|
||||
|
||||
@@ -14,14 +14,14 @@ import DashboardLayout from "@/components/DashboardLayout";
|
||||
export default function AdminParametres() {
|
||||
const { data: parametres, isLoading, refetch } = trpc.parametres.get.useQuery();
|
||||
const { data: historique, isLoading: isLoadingHistorique } = trpc.parametres.getHistorique.useQuery({ limit: 20 });
|
||||
|
||||
|
||||
const [urlPublique, setUrlPublique] = useState("");
|
||||
const [delaiExpirationQR, setDelaiExpirationQR] = useState(30);
|
||||
const [dureeValiditeToken, setDureeValiditeToken] = useState(24);
|
||||
const [notificationsActives, setNotificationsActives] = useState(true);
|
||||
|
||||
const [testUrlStatus, setTestUrlStatus] = useState<{ loading: boolean; result?: { accessible: boolean; message: string } }>({ loading: false });
|
||||
|
||||
|
||||
// Initialiser les valeurs quand les données sont chargées
|
||||
useEffect(() => {
|
||||
if (parametres) {
|
||||
@@ -60,7 +60,7 @@ export default function AdminParametres() {
|
||||
|
||||
const handleSubmit = (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
|
||||
|
||||
// Validation de l'URL
|
||||
try {
|
||||
new URL(urlPublique);
|
||||
@@ -129,7 +129,7 @@ export default function AdminParametres() {
|
||||
<Input
|
||||
id="urlPublique"
|
||||
type="url"
|
||||
placeholder="https://formations.itinova.org"
|
||||
placeholder="https://formations-itinova.santinova-soft.org"
|
||||
value={urlPublique}
|
||||
onChange={(e) => {
|
||||
setUrlPublique(e.target.value);
|
||||
@@ -168,8 +168,8 @@ export default function AdminParametres() {
|
||||
</Button>
|
||||
</div>
|
||||
<p className="text-sm text-muted-foreground">
|
||||
Cette URL est utilisée pour générer les QR codes d'émargement.
|
||||
Exemple : https://formations.itinova.org (sans slash à la fin)
|
||||
Cette URL est utilisée pour générer les QR codes d'émargement.
|
||||
Exemple : https://formations-itinova.santinova-soft.org (sans slash à la fin)
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -225,8 +225,8 @@ export default function AdminParametres() {
|
||||
</div>
|
||||
|
||||
<div className="flex items-center gap-2 pt-4">
|
||||
<Button
|
||||
type="submit"
|
||||
<Button
|
||||
type="submit"
|
||||
disabled={updateMutation.isPending}
|
||||
className="gap-2"
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user