Fix admin toggle visibility, include media in results, remove stretch tasks
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
5
TASKS.md
5
TASKS.md
@@ -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.
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user