package seasonsview import "git.haelnorr.com/h/oslstats/internal/db" import "git.haelnorr.com/h/oslstats/internal/view/baseview" import "git.haelnorr.com/h/oslstats/internal/permissions" import "git.haelnorr.com/h/oslstats/internal/contexts" import "fmt" templ SeasonLeaguePage(season *db.Season, league *db.League, teams []*db.Team, allTeams []*db.Team) { @baseview.Layout(fmt.Sprintf("%s - %s", season.Name, league.Name)) {
@SeasonLeagueDetails(season, league, teams, allTeams)
} } templ SeasonLeagueDetails(season *db.Season, league *db.League, teams []*db.Team, allTeams []*db.Team) { {{ permCache := contexts.Permissions(ctx) canAddTeam := permCache.HasPermission(permissions.TeamsAddToLeague) }}

{ season.Name } - { league.Name }

{ season.ShortName } { league.ShortName } @SlapVersionBadge(season.SlapVersion)

Regular Season

Start
{ formatDateLong(season.StartDate) }
Finish
if !season.EndDate.IsZero() {
{ formatDateLong(season.EndDate.Time) }
} else {
Not set
}

Finals

Start
if !season.FinalsStartDate.IsZero() {
{ formatDateLong(season.FinalsStartDate.Time) }
} else {
Not set
}
Finish
if !season.FinalsEndDate.IsZero() {
{ formatDateLong(season.FinalsEndDate.Time) }
} else {
Not set
}

Teams ({ fmt.Sprint(len(teams)) })

if canAddTeam { }
if len(teams) == 0 {

No teams in this league yet.

if canAddTeam {

Click "Add Team" to get started.

}
} else {
for _, team := range teams {

{ team.Name }

if team.Color != "" {
}
{ team.ShortName } { team.AltShortName }
}
}
if canAddTeam { @AddTeamModal(season, league, teams, allTeams) }
} templ AddTeamModal(season *db.Season, league *db.League, existingTeams []*db.Team, allTeams []*db.Team) { {{ // Filter out teams already in this league existingTeamIDs := make(map[int]bool) for _, t := range existingTeams { existingTeamIDs[t.ID] = true } availableTeams := []*db.Team{} for _, t := range allTeams { if !existingTeamIDs[t.ID] { availableTeams = append(availableTeams, t) } } }} }