mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
Separate admin views from controllers — move HTML to templates/admin/
All admin pages refactored to thin controllers + pure view templates, mirroring the public-page pattern: Controllers (public/admin/*.php): auth, data loading, include template Views (templates/admin/*.php): pure HTML/PHP output Fragment partials (templates/admin/partials/): toast, system-log-panel, system-nginx-config-panel Pages migrated: login, tags, contenus, contenus-edit, account, acces-etudiante, thanks, add, edit, parametres, system, index Fragment endpoints refactored: system-fragment.php, toast-fragment.php Skipped (pure redirects): logout, logs, status, import
This commit is contained in:
@@ -335,18 +335,17 @@ label:has(+ div > input:required)::after {
|
||||
filter: brightness(0.9);
|
||||
}
|
||||
|
||||
/* ── Toast messages (bottom-center floating) ─────────────────────────── */
|
||||
#toast-container {
|
||||
/* ── Toast messages (top-right, CSS-only auto-fade) ─────────────────── */
|
||||
#toast-region {
|
||||
position: fixed;
|
||||
bottom: var(--space-l);
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
top: var(--space-l);
|
||||
right: var(--space-l);
|
||||
z-index: 10000;
|
||||
display: flex;
|
||||
flex-direction: column-reverse;
|
||||
flex-direction: column;
|
||||
gap: var(--space-xs);
|
||||
pointer-events: none;
|
||||
max-width: calc(100vw - 2 * var(--space-l));
|
||||
max-width: min(480px, calc(100vw - 2 * var(--space-l)));
|
||||
}
|
||||
|
||||
.toast {
|
||||
@@ -356,35 +355,32 @@ label:has(+ div > input:required)::after {
|
||||
border-left: 3px solid;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
||||
pointer-events: auto;
|
||||
animation: toast-enter 0.35s ease-out forwards;
|
||||
max-width: 480px;
|
||||
backdrop-filter: blur(6px);
|
||||
/* enter then fade out — total visible ~4.35 s */
|
||||
animation: toast-enter 0.35s ease-out,
|
||||
toast-exit 0.4s ease-in 4s forwards;
|
||||
}
|
||||
|
||||
.toast[data-type="error"] {
|
||||
.toast--error {
|
||||
background: var(--accent-muted);
|
||||
border-color: var(--error);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.toast[data-type="success"] {
|
||||
.toast--success {
|
||||
background: var(--success-muted-bg);
|
||||
border-color: var(--success);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.toast-exit {
|
||||
animation: toast-exit 0.3s ease-in forwards;
|
||||
}
|
||||
|
||||
@keyframes toast-enter {
|
||||
from { opacity: 0; transform: translateY(20px); }
|
||||
from { opacity: 0; transform: translateY(-12px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
@keyframes toast-exit {
|
||||
from { opacity: 1; transform: translateY(0); }
|
||||
to { opacity: 0; transform: translateY(20px); height: 0; padding: 0; margin: 0; overflow: hidden; }
|
||||
from { opacity: 1; }
|
||||
to { opacity: 0; pointer-events: none; }
|
||||
}
|
||||
|
||||
/* ── Stats cards ────────────────────────────────────────────────────────── */
|
||||
|
||||
Reference in New Issue
Block a user