added team rosters to season_league overview

This commit is contained in:
2026-02-20 20:08:57 +11:00
parent 53102f561a
commit 23a97787d5
4 changed files with 63 additions and 6 deletions

View File

@@ -5,9 +5,9 @@ import "git.haelnorr.com/h/oslstats/internal/permissions"
import "git.haelnorr.com/h/oslstats/internal/contexts"
import "fmt"
templ SeasonLeagueTeamsPage(season *db.Season, league *db.League, teams []*db.Team, allTeams []*db.Team) {
templ SeasonLeagueTeamsPage(season *db.Season, league *db.League, teams []*db.Team, allTeams []*db.Team, managers map[int]*db.Player) {
@SeasonLeagueLayout("teams", season, league) {
@SeasonLeagueTeams(season, league, teams, allTeams)
@SeasonLeagueTeams(season, league, teams, allTeams, managers)
}
}
@@ -94,7 +94,7 @@ templ addTeamModal(season *db.Season, league *db.League, existingTeams []*db.Tea
</div>
}
templ SeasonLeagueTeams(season *db.Season, league *db.League, teams []*db.Team, allTeams []*db.Team) {
templ SeasonLeagueTeams(season *db.Season, league *db.League, teams []*db.Team, allTeams []*db.Team, managers map[int]*db.Player) {
{{
permCache := contexts.Permissions(ctx)
canAddTeam := permCache.HasPermission(permissions.TeamsAddToLeague)
@@ -122,6 +122,9 @@ templ SeasonLeagueTeams(season *db.Season, league *db.League, teams []*db.Team,
} else {
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
for _, team := range teams {
{{
manager := managers[team.ID]
}}
<a
href={ templ.SafeURL(fmt.Sprintf("/seasons/%s/leagues/%s/teams/%d", season.ShortName, league.ShortName, team.ID)) }
class="bg-surface0 border border-surface1 rounded-lg p-6 hover:bg-surface1 transition-colors hover:cursor-pointer block"
@@ -135,7 +138,7 @@ templ SeasonLeagueTeams(season *db.Season, league *db.League, teams []*db.Team,
></div>
}
</div>
<div class="flex items-center gap-2 text-sm flex-wrap">
<div class="flex items-center gap-2 text-sm flex-wrap mb-3">
<span class="px-2 py-1 bg-mantle rounded text-subtext0 font-mono">
{ team.ShortName }
</span>
@@ -143,6 +146,28 @@ templ SeasonLeagueTeams(season *db.Season, league *db.League, teams []*db.Team,
{ team.AltShortName }
</span>
</div>
<!-- Roster -->
if len(team.Players) == 0 {
<p class="text-subtext1 text-xs italic">No roster</p>
} else {
<div class="border-t border-surface1 pt-3 space-y-1">
if manager != nil {
<div class="flex items-center justify-between">
<span class="text-sm text-text font-medium">{ manager.Name }</span>
<span class="text-xs px-1.5 py-0.5 bg-yellow/20 text-yellow rounded font-medium">
&#9733; Mgr
</span>
</div>
}
for _, player := range team.Players {
if manager == nil || player.ID != manager.ID {
<div>
<span class="text-sm text-subtext0">{ player.Name }</span>
</div>
}
}
</div>
}
</a>
}
</div>