ajoute les pages légales, la purge RGPD et sert polices et scripts depuis le portail
Pages /legal et /confidentialite réécrites d'après le système réel, purge des classes archivées depuis 90 jours (prouvée par Pest), archivage côté prof. Polices, xterm.js et CodeMirror ne sont plus chargés depuis Google ni jsDelivr. Pages d'aperçu signalées, sans vrais établissements ni faux chiffres. Journaux Laravel gardés 14 jours. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
0a5df89201
commit
e4a6aaebb1
62 changed files with 822 additions and 238 deletions
|
|
@ -4,8 +4,7 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Paiement · Syllabus</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Archivo:wght@500;700;800;900&family=IBM+Plex+Mono:wght@400;600&display=swap" rel="stylesheet">
|
||||
{{ Vite::fonts() }}
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script>tailwind.config={theme:{extend:{fontFamily:{display:['Archivo','system-ui','sans-serif'],mono:['"IBM Plex Mono"','monospace']}}}}</script>
|
||||
<style>
|
||||
|
|
@ -17,13 +16,14 @@
|
|||
.curseur { animation: clignote 1s steps(1) infinite; }
|
||||
@media (prefers-reduced-motion: reduce) { .flotte, .curseur { animation: none; } }
|
||||
</style>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/css/xterm.css">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/lib/xterm.min.js"></script>
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/@xterm/addon-fit@0.10.0/lib/addon-fit.min.js"></script>
|
||||
<link rel="stylesheet" href="{{ asset('vendor/xterm/xterm.css') }}">
|
||||
<script defer src="{{ asset('vendor/xterm/xterm.js') }}"></script>
|
||||
<script defer src="{{ asset('vendor/xterm/addon-fit.js') }}"></script>
|
||||
<script defer src="{{ asset('js/paillasse-terminal.js') }}"></script>
|
||||
<link rel="stylesheet" href="{{ asset('css/syllabus-theme.css') }}">
|
||||
</head>
|
||||
<body class="bg-white font-display text-black antialiased">
|
||||
@include('partials.apercu')
|
||||
|
||||
<header style="position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid #e3e5e8">
|
||||
<nav aria-label="Navigation principale" style="position:relative;max-width:1200px;margin:0 auto;padding:0 20px;min-height:64px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 40px">
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
<div id="p-nb" class="hidden border-t border-[#e3e5e8] p-4"><label class="flex flex-wrap items-center gap-3 text-sm font-bold">Nombre d’élèves<input id="p-eleves" type="number" min="60" value="120" class="h-11 w-28 border border-[#dadce0] rounded-lg px-3 font-mono font-semibold"></label></div>
|
||||
</section>
|
||||
<section class="border border-[#dadce0] rounded-lg bg-white" aria-labelledby="t-fact"><h2 id="t-fact" class="border-b border-[#e3e5e8] p-4 text-lg font-extrabold">2 · Facturation</h2>
|
||||
<div class="grid gap-4 p-4 sm:grid-cols-2"><label class="grid gap-1 text-sm font-bold">Nom ou établissement<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="Lycée Jean-Jaurès"></label><label class="grid gap-1 text-sm font-bold">E-mail de facturation<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="intendance@lycee.fr"></label><label class="grid gap-1 text-sm font-bold sm:col-span-2">Adresse<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="12 rue de la République"></label><label class="grid gap-1 text-sm font-bold">SIRET (établissements)<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="000 000 000 00000"></label><label class="grid gap-1 text-sm font-bold">N° d’engagement (Chorus Pro)<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="facultatif"></label></div>
|
||||
<div class="grid gap-4 p-4 sm:grid-cols-2"><label class="grid gap-1 text-sm font-bold">Nom ou établissement<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="Lycée de démonstration B"></label><label class="grid gap-1 text-sm font-bold">E-mail de facturation<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="intendance@lycee.fr"></label><label class="grid gap-1 text-sm font-bold sm:col-span-2">Adresse<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="12 rue de la République"></label><label class="grid gap-1 text-sm font-bold">SIRET (établissements)<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="000 000 000 00000"></label><label class="grid gap-1 text-sm font-bold">N° d’engagement (Chorus Pro)<input class="h-11 border border-[#dadce0] rounded-lg bg-white px-3 font-mono font-semibold" placeholder="facultatif"></label></div>
|
||||
</section>
|
||||
<section class="border border-[#dadce0] rounded-lg bg-white" aria-labelledby="t-pay"><h2 id="t-pay" class="border-b border-[#e3e5e8] p-4 text-lg font-extrabold">3 · Moyen de paiement</h2>
|
||||
<div id="p-modes" class="grid gap-3 p-4 sm:grid-cols-3"><label class="flex cursor-pointer flex-col gap-1 border border-[#dadce0] rounded-lg p-3 has-[:checked]:bg-[#e6f4ea]"><span class="flex items-center gap-2"><input type="radio" name="mode" value="cb" checked class="h-4 w-4 accent-black"><span class="font-extrabold">Carte bancaire</span></span><span class="text-xs font-bold">via Stripe</span></label><label class="flex cursor-pointer flex-col gap-1 border border-[#dadce0] rounded-lg p-3 has-[:checked]:bg-[#e6f4ea]"><span class="flex items-center gap-2"><input type="radio" name="mode" value="sepa" class="h-4 w-4 accent-black"><span class="font-extrabold">Prélèvement SEPA</span></span><span class="text-xs font-bold">via Stripe</span></label><label class="flex cursor-pointer flex-col gap-1 border border-[#dadce0] rounded-lg p-3 has-[:checked]:bg-[#e6f4ea]"><span class="flex items-center gap-2"><input type="radio" name="mode" value="mandat" class="h-4 w-4 accent-black"><span class="font-extrabold">Bon de commande</span></span><span class="text-xs font-bold">mandat administratif · Chorus Pro</span></label></div>
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
<aside class="lg:sticky lg:top-6 lg:self-start">
|
||||
<section class="border border-[#e3e5e8] rounded-2xl bg-white" aria-labelledby="t-rec"><h2 id="t-rec" class="border-b border-[#e3e5e8] bg-[#fef7e0] p-4 text-lg font-extrabold">Récapitulatif</h2>
|
||||
<dl class="grid gap-2 p-4 font-semibold"><div class="flex justify-between"><dt id="r-lib">Enseignant · mensuel</dt><dd id="r-ht" class="font-mono">29,00 €</dd></div><div class="flex justify-between text-sm"><dt>TVA 20 %</dt><dd id="r-tva" class="font-mono">5,80 €</dd></div><div class="flex justify-between border-t border-[#e3e5e8] pt-2 text-lg font-extrabold"><dt>Total TTC</dt><dd id="r-ttc" class="font-mono">34,80 €</dd></div><p id="r-per" class="text-xs font-bold">par mois · résiliable à tout moment</p></dl>
|
||||
<div class="border-t border-[#e3e5e8] p-4"><label class="flex items-start gap-2 text-xs font-semibold"><input id="p-cgv" type="checkbox" class="mt-0.5 h-4 w-4 accent-black">J’accepte les <a href="{{ route('legal') }}#cgu" class="underline">conditions générales</a> et la <a href="{{ route('legal') }}#confidentialite" class="underline">politique de confidentialité</a>.</label>
|
||||
<div class="border-t border-[#e3e5e8] p-4"><label class="flex items-start gap-2 text-xs font-semibold"><input id="p-cgv" type="checkbox" class="mt-0.5 h-4 w-4 accent-black">J’accepte les <a href="{{ route('legal') }}#cgu" class="underline">conditions générales</a> et la <a href="{{ route('confidentialite') }}#confidentialite" class="underline">politique de confidentialité</a>.</label>
|
||||
<a id="p-go" href="{{ route('paiement.ok') }}" aria-disabled="true" class="mt-4 flex h-12 items-center justify-center gap-2 border border-[#dadce0] rounded-lg bg-[#ec3013] font-extrabold text-white opacity-50 aria-[disabled=false]:opacity-100"><svg viewBox="0 0 24 24" class="h-4 w-4" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="11" width="18" height="11"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg><span id="p-go-t">Payer 34,80 €</span></a>
|
||||
<p class="mt-3 flex flex-wrap items-center justify-center gap-2 text-[11px] font-bold"><span class="border border-[#dadce0] rounded-lg px-1.5">Stripe</span><span class="border border-[#dadce0] rounded-lg px-1.5">3-D Secure</span><span class="border border-[#dadce0] rounded-lg px-1.5">🇫🇷 Hébergé en France</span></p></div>
|
||||
</section>
|
||||
|
|
@ -91,10 +91,10 @@
|
|||
<nav aria-label="Produit"><p style="margin:0;font-size:13px;font-weight:800;color:#0b1220">Produit</p><ul style="margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px"><li><a href="{{ route('fonctionnalites') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Fonctionnalités</a></li><li><a href="{{ route('cours.index') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Cours gratuits</a></li><li><a href="{{ route('labs.essai') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Essayer un lab</a></li><li><a href="{{ route('tarifs') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Tarifs</a></li></ul></nav><nav aria-label="Outils"><p style="margin:0;font-size:13px;font-weight:800;color:#0b1220">Outils</p><ul style="margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px"><li><a href="{{ route('ressource') }}?outil=cockpit" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Tableau de bord prof</a></li><li><a href="{{ route('ressource') }}?outil=labs" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">TP sur machine Linux</a></li><li><a href="{{ route('ressource') }}?outil=ide" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Éditeur de code</a></li><li><a href="{{ route('ressource') }}?outil=quiz" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Quiz flash</a></li><li><a href="{{ route('ressource') }}?outil=sujet" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Examens</a></li><li><a href="{{ route('ressource') }}?outil=bibliotheque" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Bibliothèque du prof</a></li></ul></nav><nav aria-label="Établissements"><p style="margin:0;font-size:13px;font-weight:800;color:#0b1220">Établissements</p><ul style="margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px"><li><a href="{{ route('etablissements') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Équiper une classe</a></li><li><a href="{{ route('ressource') }}?outil=vie-scolaire" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Vie scolaire</a></li><li><a href="{{ route('ressource') }}?outil=espace-etablissement" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Licences et factures</a></li><li><a href="{{ route('ressource') }}?outil=integration" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Intégration et sécurité</a></li></ul></nav><nav aria-label="Syllabus"><p style="margin:0;font-size:13px;font-weight:800;color:#0b1220">Syllabus</p><ul style="margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px"><li><a href="{{ route('aide') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Aide et tutoriels</a></li><li><a href="{{ route('legal') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Mentions légales et RGPD</a></li></ul></nav>
|
||||
<p style="margin:0;align-self:start;font-size:14px;font-weight:600;color:#5f6368"><span style="color:#137333">●</span> Tous les services fonctionnent</p>
|
||||
</div>
|
||||
<div style="border-top:1px solid #e3e5e8"><ul aria-label="Engagements" style="max-width:1200px;margin:0 auto;padding:24px 20px;list-style:none;display:flex;flex-wrap:wrap;gap:12px 40px"><li style="font-size:14px;font-weight:700;color:#0b1220">Hébergé en France <span style="font-weight:500;color:#5f6368">· Paris</span></li><li style="font-size:14px;font-weight:700;color:#0b1220">RGPD <span style="font-weight:500;color:#5f6368">· données minimisées</span></li><li style="font-size:14px;font-weight:700;color:#0b1220">20 cursus <span style="font-weight:500;color:#5f6368">· du lycée au master</span></li><li style="font-size:14px;font-weight:700;color:#0b1220">0 € <span style="font-weight:500;color:#5f6368">· sans carte bancaire</span></li></ul>
|
||||
<div style="border-top:1px solid #e3e5e8"><ul aria-label="Engagements" style="max-width:1200px;margin:0 auto;padding:24px 20px;list-style:none;display:flex;flex-wrap:wrap;gap:12px 40px"><li style="font-size:14px;font-weight:700;color:#0b1220">Hébergé en France</li><li style="font-size:14px;font-weight:700;color:#0b1220"><a href="{{ route('confidentialite') }}" style="color:#0b1220">Conforme au RGPD</a> <span style="font-weight:500;color:#5f6368">· données minimisées</span></li><li style="font-size:14px;font-weight:700;color:#0b1220">6 cursus <span style="font-weight:500;color:#5f6368">· du lycée au BUT</span></li><li style="font-size:14px;font-weight:700;color:#0b1220">0 € <span style="font-weight:500;color:#5f6368">· sans carte bancaire</span></li></ul>
|
||||
</div>
|
||||
<div style="border-top:1px solid #e3e5e8">
|
||||
<div class="mx-auto flex max-w-7xl flex-wrap items-center justify-center gap-x-6 gap-y-2 px-5 py-4 lg:px-10"><nav aria-label="Informations légales"><ul class="flex flex-wrap justify-center gap-x-5 gap-y-1" style="margin:0;padding:0;list-style:none;font-size:14px;font-weight:500"><li><a href="{{ route('legal') }}#mentions" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Mentions légales</a></li><li><a href="{{ route('legal') }}#cgu" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">CGU</a></li><li><a href="{{ route('legal') }}#confidentialite" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Confidentialité et RGPD</a></li><li><a href="{{ route('legal') }}#cookies" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Cookies</a></li><li><a href="{{ route('legal') }}#sous-traitance" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Sous-traitance</a></li></ul></nav></div>
|
||||
<div class="mx-auto flex max-w-7xl flex-wrap items-center justify-center gap-x-6 gap-y-2 px-5 py-4 lg:px-10"><nav aria-label="Informations légales"><ul class="flex flex-wrap justify-center gap-x-5 gap-y-1" style="margin:0;padding:0;list-style:none;font-size:14px;font-weight:500"><li><a href="{{ route('legal') }}#mentions" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Mentions légales</a></li><li><a href="{{ route('legal') }}#cgu" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">CGU</a></li><li><a href="{{ route('confidentialite') }}#confidentialite" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Confidentialité et RGPD</a></li><li><a href="{{ route('confidentialite') }}#cookies" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Cookies</a></li><li><a href="{{ route('confidentialite') }}#sous-traitance" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Sous-traitance</a></li><li><a href="{{ route('statut') }}" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Statut du service</a></li></ul></nav></div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue