diff --git a/TODO.md b/TODO.md index 812ac30..560dbe2 100644 --- a/TODO.md +++ b/TODO.md @@ -1,7 +1,7 @@ # TODO -- [x] Rename "Éditer Données Secondaires" → "Données Secondaires", remove wrapping fieldset on Mots-clés -- [x] Create admin-toc.php sidebar TOC partial with IntersectionObserver -- [x] Include TOC in contenus.php, acces.php, parametres.php -- [x] Add .admin-with-toc flex layout and .admin-toc CSS -- [x] Fonts: verified Ductus + BBB DM Sans are loaded via variables.css → common.css +- [x] Remove margin/padding from .admin-main--toc +- [x] .admin-main--toc gap: var(--space-xs), sticky top: var(--space-xs) +- [x] Reduce .admin-body main padding to --space-s / --space-m / --space-xl +- [x] Add padding-top: var(--space-m) to article +- [x] Language creation: verified getOrCreateLanguage still works; dedup runs before display diff --git a/app/public/admin/contenus-langues-fragment.php b/app/public/admin/contenus-langues-fragment.php index 21ff1e2..b97f107 100644 --- a/app/public/admin/contenus-langues-fragment.php +++ b/app/public/admin/contenus-langues-fragment.php @@ -47,10 +47,10 @@ try { - + - - + + @@ -59,42 +59,17 @@ try { - - - - + + +
NomTFE AssociéActionsTFE AssociéActions
+ + + +
-
- - - - - - -
- -
- - - - - - -
-
diff --git a/app/public/admin/contenus.php b/app/public/admin/contenus.php index 251280a..c3756fb 100644 --- a/app/public/admin/contenus.php +++ b/app/public/admin/contenus.php @@ -14,6 +14,7 @@ $allowedPageSlugs = ['about', 'licenses']; try { $db = new Database(); + $db->deduplicateLanguages(); $allPages = $db->getAllPages(); $pages = array_values(array_filter($allPages, fn($p) => in_array($p['slug'], $allowedPageSlugs, true))); $aproposKeys = $db->getAllAproposContents(); diff --git a/app/public/admin/language-search-fragment.php b/app/public/admin/language-search-fragment.php index 91a91fc..2fbf73d 100644 --- a/app/public/admin/language-search-fragment.php +++ b/app/public/admin/language-search-fragment.php @@ -9,5 +9,6 @@ require_once __DIR__ . '/../../bootstrap.php'; require_once __DIR__ . '/../../src/AdminAuth.php'; AdminAuth::requireLogin(); +App::boot(); require_once APP_ROOT . '/public/partage/language-search-fragment.php'; diff --git a/app/public/admin/tags-fragment.php b/app/public/admin/tags-fragment.php index 93c77fa..f451651 100644 --- a/app/public/admin/tags-fragment.php +++ b/app/public/admin/tags-fragment.php @@ -3,6 +3,7 @@ * tags-fragment.php * * HTMX fragment: returns the tags table, optionally filtered by search query. + * Uses lazy-load pattern: the wrapping div already shows a spinner via hx-indicator. */ require_once __DIR__ . '/../../bootstrap.php'; require_once __DIR__ . '/../../src/AdminAuth.php'; @@ -19,10 +20,12 @@ $searchQuery = trim($_GET['q'] ?? ''); try { $db = new Database(); $tags = ($searchQuery !== '') ? $db->searchTags($searchQuery) : $db->getAllTagsWithCount(); + $totalCount = count($tags); } catch (Exception $e) { die('
Erreur : ' . htmlspecialchars($e->getMessage()) . '
'); } ?> +