Statistics page redesign (#60)
* feat: Add modal to display watched movies with details Co-authored-by: mathieumoran1 <[email protected]> * Refactor movie modal: remove search, improve category display Co-authored-by: mathieumoran1 <[email protected]> * Refactor movie category display to use details element Co-authored-by: mathieumoran1 <[email protected]> * Refactor movie playback and add clickability to stats Co-authored-by: mathieumoran1 <[email protected]> * Refactor: Improve movie linking and player logic Co-authored-by: mathieumoran1 <[email protected]> * Prevent caching of sensitive and dynamic API data Co-authored-by: mathieumoran1 <[email protected]> * feat: Prevent caching of sensitive admin data Co-authored-by: mathieumoran1 <[email protected]> * feat: Add no-cache headers to API requests Co-authored-by: mathieumoran1 <[email protected]> * Remove unused movie sorting functionality The movie sorting dropdown and its associated logic were removed as they are no longer needed. Co-authored-by: mathieumoran1 <[email protected]> * Refactor admin settings to use tabs instead of accordion Co-authored-by: mathieumoran1 <[email protected]> * Refactor: Adjust button layout for active year selection Co-authored-by: mathieumoran1 <[email protected]> * Refactor active year selection UI Co-authored-by: mathieumoran1 <[email protected]> * Refactor: Improve admin settings layout for better responsiveness Co-authored-by: mathieumoran1 <[email protected]> * Remove redundant completion explanation from user-stat.html Co-authored-by: mathieumoran1 <[email protected]> * Refactor user stats page to display year in ranking tab badge Co-authored-by: mathieumoran1 <[email protected]> * Refactor: Rename 'Finisseur(s)' column to 'Nombre' Co-authored-by: mathieumoran1 <[email protected]> * Refactor: Remove redundant completer count column Co-authored-by: mathieumoran1 <[email protected]> --------- Co-authored-by: Cursor Agent <[email protected]>
This commit was merged in pull request #60.
This commit is contained in:
co-authored by
Cursor Agent
parent
82f9462dda
commit
79b9f4a5a3
+80
-80
@@ -101,96 +101,96 @@
|
||||
|
||||
<div class="tab-content pt-3">
|
||||
<div class="tab-pane fade show active" id="admin-settings" role="tabpanel" aria-labelledby="admin-settings-tab">
|
||||
<div class="row g-3">
|
||||
<div class="col-12 col-xxl-8">
|
||||
<div class="accordion" id="adminSettingsAccordion">
|
||||
<!-- Active year -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="adminSettingsHeadingYear">
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#adminSettingsCollapseYear" aria-expanded="true" aria-controls="adminSettingsCollapseYear">
|
||||
Année active
|
||||
</button>
|
||||
</h2>
|
||||
<div id="adminSettingsCollapseYear" class="accordion-collapse collapse show" aria-labelledby="adminSettingsHeadingYear" data-bs-parent="#adminSettingsAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="text-muted small mb-2">
|
||||
Pilote tout le site (films, checklist, statistiques).
|
||||
</div>
|
||||
<div class="d-flex flex-wrap gap-2 align-items-end justify-content-between">
|
||||
<div class="flex-grow-1" style="min-width: 220px;">
|
||||
<label for="active_oscar_year" class="form-label mb-1">Année active</label>
|
||||
<select class="form-select" id="active_oscar_year"></select>
|
||||
<div class="form-text">Basé sur les années présentes dans les films.</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-end">
|
||||
<button type="button" id="save-active-year" class="btn btn-warning">Appliquer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card p-3">
|
||||
<div class="d-flex flex-wrap align-items-end justify-content-between gap-2">
|
||||
<div>
|
||||
<h4 class="mb-1">Réglages</h4>
|
||||
<div class="text-muted">Paramètres globaux du site (année, dates, options du lecteur).</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="nav nav-pills admin-subtabs mt-3" id="adminSettingsSubTabs" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="admin-settings-subtab-year" data-bs-toggle="tab" data-bs-target="#admin-settings-pane-year" type="button" role="tab" aria-controls="admin-settings-pane-year" aria-selected="true">
|
||||
Année active
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="admin-settings-subtab-player" data-bs-toggle="tab" data-bs-target="#admin-settings-pane-player" type="button" role="tab" aria-controls="admin-settings-pane-player" aria-selected="false">
|
||||
Lecteur
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="admin-settings-subtab-oscar-date" data-bs-toggle="tab" data-bs-target="#admin-settings-pane-oscar-date" type="button" role="tab" aria-controls="admin-settings-pane-oscar-date" aria-selected="false">
|
||||
Date Oscars
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content pt-3">
|
||||
<!-- Active year -->
|
||||
<div class="tab-pane fade show active" id="admin-settings-pane-year" role="tabpanel" aria-labelledby="admin-settings-subtab-year" tabindex="0">
|
||||
<div class="border rounded p-3 bg-light">
|
||||
<div class="text-muted small mb-3">
|
||||
Pilote tout le site (films, checklist, statistiques).
|
||||
</div>
|
||||
<label for="active_oscar_year" class="form-label">Année active</label>
|
||||
<div class="admin-settings-narrow">
|
||||
<div class="input-group">
|
||||
<select class="form-select" id="active_oscar_year"></select>
|
||||
<button type="button" id="save-active-year" class="btn btn-warning">Appliquer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-text">Basé sur les années présentes dans les films.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Player -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="adminSettingsHeadingPlayer">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#adminSettingsCollapsePlayer" aria-expanded="false" aria-controls="adminSettingsCollapsePlayer">
|
||||
Lecteur (player)
|
||||
</button>
|
||||
</h2>
|
||||
<div id="adminSettingsCollapsePlayer" class="accordion-collapse collapse" aria-labelledby="adminSettingsHeadingPlayer" data-bs-parent="#adminSettingsAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="d-flex flex-wrap gap-2 align-items-center justify-content-between">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="player_ui_show_status">
|
||||
<label class="form-check-label" for="player_ui_show_status">Afficher “Source” + “Progress” (admins)</label>
|
||||
</div>
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" id="player_ui_reload" class="btn btn-outline-secondary btn-sm">Recharger</button>
|
||||
<button type="button" id="player_ui_save" class="btn btn-warning btn-sm">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-text mt-2">
|
||||
Contrôle l’affichage du bloc debug dans <code>player.html</code> (admins uniquement).
|
||||
</div>
|
||||
<!-- Player -->
|
||||
<div class="tab-pane fade" id="admin-settings-pane-player" role="tabpanel" aria-labelledby="admin-settings-subtab-player" tabindex="0">
|
||||
<div class="border rounded p-3 bg-light">
|
||||
<div class="d-flex flex-wrap gap-2 align-items-center justify-content-between">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="player_ui_show_status">
|
||||
<label class="form-check-label" for="player_ui_show_status">Afficher “Source” + “Progress” (admins)</label>
|
||||
</div>
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" id="player_ui_reload" class="btn btn-outline-secondary">Recharger</button>
|
||||
<button type="button" id="player_ui_save" class="btn btn-warning">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-text mt-2">
|
||||
Contrôle l’affichage du bloc debug dans <code>player.html</code> (admins uniquement).
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Oscar date -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="adminSettingsHeadingOscarDate">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#adminSettingsCollapseOscarDate" aria-expanded="false" aria-controls="adminSettingsCollapseOscarDate">
|
||||
Date des Oscars (par année)
|
||||
</button>
|
||||
</h2>
|
||||
<div id="adminSettingsCollapseOscarDate" class="accordion-collapse collapse" aria-labelledby="adminSettingsHeadingOscarDate" data-bs-parent="#adminSettingsAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="text-muted small mb-2">
|
||||
Configure la date de cérémonie pour le compte à rebours (Films & Checklist). Défaut: <code>15 mars</code>.
|
||||
</div>
|
||||
<!-- Oscar date -->
|
||||
<div class="tab-pane fade" id="admin-settings-pane-oscar-date" role="tabpanel" aria-labelledby="admin-settings-subtab-oscar-date" tabindex="0">
|
||||
<div class="border rounded p-3 bg-light">
|
||||
<div class="text-muted small mb-3">
|
||||
Configure la date de cérémonie pour le compte à rebours (Films & Checklist). Défaut: <code>15 mars</code>.
|
||||
</div>
|
||||
|
||||
<div class="row g-2">
|
||||
<div class="col-12 col-md-4">
|
||||
<label for="oscar_date_year" class="form-label mb-1">Année</label>
|
||||
<select class="form-select" id="oscar_date_year"></select>
|
||||
<div class="form-text">Basé sur les années présentes dans les films.</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<label for="oscar_date_value" class="form-label mb-1">Date</label>
|
||||
<input type="date" class="form-control" id="oscar_date_value">
|
||||
<div class="form-text">Format: YYYY-MM-DD.</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4 d-flex align-items-end justify-content-end gap-2">
|
||||
<button type="button" id="clear-oscar-date" class="btn btn-outline-danger btn-sm">Effacer</button>
|
||||
<button type="button" id="save-oscar-date" class="btn btn-warning btn-sm">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<div class="text-muted small mb-1">Dates configurées</div>
|
||||
<div id="oscar-date-current" class="border rounded p-2 bg-light">—</div>
|
||||
</div>
|
||||
<div class="row g-3 align-items-end">
|
||||
<div class="col-12 col-md-4">
|
||||
<label for="oscar_date_year" class="form-label">Année</label>
|
||||
<select class="form-select" id="oscar_date_year"></select>
|
||||
<div class="form-text">Basé sur les années présentes dans les films.</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<label for="oscar_date_value" class="form-label">Date</label>
|
||||
<input type="date" class="form-control" id="oscar_date_value">
|
||||
<div class="form-text">Format: YYYY-MM-DD.</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4 d-flex gap-2 justify-content-end">
|
||||
<button type="button" id="clear-oscar-date" class="btn btn-outline-danger w-100">Effacer</button>
|
||||
<button type="button" id="save-oscar-date" class="btn btn-warning w-100">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<div class="text-muted small mb-1">Dates configurées</div>
|
||||
<div id="oscar-date-current" class="border rounded p-2 bg-white">—</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user