Fix admin toggle visibility, include media in results, remove stretch tasks

This commit is contained in:
2026-01-28 15:40:25 +01:00
parent abd0720821
commit bec3930200
4 changed files with 21 additions and 11 deletions

View File

@@ -303,7 +303,11 @@ api.MapGet("/results", async (AppDbContext db) =>
Author = s.Player!.DisplayName, Author = s.Player!.DisplayName,
Total = s.Votes.Sum(v => v.Score), Total = s.Votes.Sum(v => v.Score),
Count = s.Votes.Count, Count = s.Votes.Count,
Average = s.Votes.Count == 0 ? 0 : s.Votes.Average(v => v.Score) Average = s.Votes.Count == 0 ? 0 : s.Votes.Average(v => v.Score),
s.ScreenshotUrl,
s.YoutubeUrl,
s.Description,
s.Genre
}) })
.OrderByDescending(r => r.Total) .OrderByDescending(r => r.Total)
.ToListAsync(); .ToListAsync();

View File

@@ -42,6 +42,5 @@
## Deployment ## Deployment
- [x] Add minimal publish profile/notes for IIS (respect `ASPNETCORE_ENVIRONMENT`, admin password env var, writable App_Data). - [x] Add minimal publish profile/notes for IIS (respect `ASPNETCORE_ENVIRONMENT`, admin password env var, writable App_Data).
## Stretch (later) ## Stretch (removed for now)
- [ ] Support multiple sessions/rooms. *(none)*
- [ ] Add rate limiting or spam safeguards.

View File

@@ -160,10 +160,11 @@ function renderResults() {
id: r.id, id: r.id,
name: r.name, name: r.name,
genre: `${r.total} pts • ${r.count} votes • avg ${r.average.toFixed(1)}`, genre: `${r.total} pts • ${r.count} votes • avg ${r.average.toFixed(1)}`,
description: r.author ? `By ${r.author}` : "", description: r.description || (r.author ? `By ${r.author}` : ""),
screenshotUrl: r.screenshotUrl, screenshotUrl: r.screenshotUrl,
youtubeUrl: r.youtubeUrl youtubeUrl: r.youtubeUrl,
}, { showAuthor: false }); author: r.author
}, { showAuthor: true });
list.appendChild(card); list.appendChild(card);
}); });
} }
@@ -235,9 +236,11 @@ function setupHandlers() {
const adminToggle = $("admin-toggle"); const adminToggle = $("admin-toggle");
const adminCard = $("admin-card"); const adminCard = $("admin-card");
const adminClose = $("admin-close"); const adminClose = $("admin-close");
const togglePanel = (show) => adminCard.classList.toggle("hidden", !show); if (adminToggle && adminCard && adminClose) {
adminToggle.addEventListener("click", () => togglePanel(!adminCard.classList.contains("hidden"))); const togglePanel = (show) => adminCard.classList.toggle("hidden", !show);
adminClose.addEventListener("click", () => togglePanel(false)); adminToggle.addEventListener("click", () => togglePanel(!adminCard.classList.contains("hidden")));
adminClose.addEventListener("click", () => togglePanel(false));
}
} }
async function adminAction(path, successMessage) { async function adminAction(path, successMessage) {

View File

@@ -199,6 +199,7 @@ button.ghost {
color: #9ca3af; color: #9ca3af;
font-weight: 700; font-weight: 700;
box-shadow: 0 8px 20px rgba(0,0,0,0.35); box-shadow: 0 8px 20px rgba(0,0,0,0.35);
z-index: 30;
} }
.admin-panel { .admin-panel {
@@ -206,7 +207,10 @@ button.ghost {
bottom: 70px; bottom: 70px;
right: 18px; right: 18px;
width: 320px; width: 320px;
z-index: 20; z-index: 40;
display: flex;
flex-direction: column;
gap: 10px;
} }
.panel-header { .panel-header {