package seasonsview import "git.haelnorr.com/h/oslstats/internal/db" import "git.haelnorr.com/h/oslstats/internal/view/component/links" import "fmt" templ SeasonLeagueStatsPage( season *db.Season, league *db.League, topGoals []*db.LeagueTopGoalScorer, topAssists []*db.LeagueTopAssister, topSaves []*db.LeagueTopSaver, allStats []*db.LeaguePlayerStats, ) { @SeasonLeagueLayout("stats", season, league) { @SeasonLeagueStats(season, league, topGoals, topAssists, topSaves, allStats) } } templ SeasonLeagueStats( season *db.Season, league *db.League, topGoals []*db.LeagueTopGoalScorer, topAssists []*db.LeagueTopAssister, topSaves []*db.LeagueTopSaver, allStats []*db.LeaguePlayerStats, ) { if len(topGoals) == 0 && len(topAssists) == 0 && len(topSaves) == 0 && len(allStats) == 0 {

No stats available yet.

Player statistics will appear here once games are finalized.

} else {
if len(topGoals) > 0 || len(topAssists) > 0 || len(topSaves) > 0 {

Trophy Leaders

@topGoalScorersTable(season, league, topGoals) @topAssistersTable(season, league, topAssists)
@topSaversTable(season, league, topSaves)
} if len(allStats) > 0 {

All Stats

@allStatsTable(season, league, allStats)
}
} } templ topGoalScorersTable(season *db.Season, league *db.League, goals []*db.LeagueTopGoalScorer) {

Top Goal Scorers

Sort: G ↓ PP ↑ SH ↑
if len(goals) == 0 {

No goal data available yet.

} else { for i, gs := range goals { }
# Player Team G PP SH
{ fmt.Sprint(i + 1) } @links.PlayerLinkFromStats(gs.PlayerID, gs.PlayerName) @teamColorName(gs.TeamID, gs.TeamName, gs.TeamColor, season, league) { fmt.Sprint(gs.Goals) } { fmt.Sprint(gs.PeriodsPlayed) } { fmt.Sprint(gs.Shots) }
}
} templ topAssistersTable(season *db.Season, league *db.League, assists []*db.LeagueTopAssister) {

Top Assisters

Sort: A ↓ PP ↑ PA ↓
if len(assists) == 0 {

No assist data available yet.

} else { for i, as := range assists { }
# Player Team A PP PA
{ fmt.Sprint(i + 1) } @links.PlayerLinkFromStats(as.PlayerID, as.PlayerName) @teamColorName(as.TeamID, as.TeamName, as.TeamColor, season, league) { fmt.Sprint(as.Assists) } { fmt.Sprint(as.PeriodsPlayed) } { fmt.Sprint(as.PrimaryAssists) }
}
} templ topSaversTable(season *db.Season, league *db.League, saves []*db.LeagueTopSaver) {

Top Saves

Sort: SV ↓ PP ↑ BLK ↓
if len(saves) == 0 {

No save data available yet.

} else { for i, sv := range saves { }
# Player Team SV PP BLK
{ fmt.Sprint(i + 1) } @links.PlayerLinkFromStats(sv.PlayerID, sv.PlayerName) @teamColorName(sv.TeamID, sv.TeamName, sv.TeamColor, season, league) { fmt.Sprint(sv.Saves) } { fmt.Sprint(sv.PeriodsPlayed) } { fmt.Sprint(sv.Blocks) }
}
} templ allStatsTable(season *db.Season, league *db.League, allStats []*db.LeaguePlayerStats) {
@sortableCol("gp", "GP", "Games Played") @sortableCol("pp", "PP", "Periods Played") @sortableCol("score", "SC", "Score") @sortableCol("goals", "G", "Goals") @sortableCol("assists", "A", "Assists") @sortableCol("pa", "PA", "Primary Assists") @sortableCol("sa", "SA", "Secondary Assists") @sortableCol("saves", "SV", "Saves") @sortableCol("shots", "SH", "Shots") @sortableCol("blocks", "BLK", "Blocks") @sortableCol("passes", "PAS", "Passes") for _, ps := range allStats { }
Player Team
@links.PlayerLinkFromStats(ps.PlayerID, ps.PlayerName) @teamColorName(ps.TeamID, ps.TeamName, ps.TeamColor, season, league) { fmt.Sprint(ps.GamesPlayed) } { fmt.Sprint(ps.PeriodsPlayed) } { fmt.Sprint(ps.Score) } { fmt.Sprint(ps.Goals) } { fmt.Sprint(ps.Assists) } { fmt.Sprint(ps.PrimaryAssists) } { fmt.Sprint(ps.SecondaryAssists) } { fmt.Sprint(ps.Saves) } { fmt.Sprint(ps.Shots) } { fmt.Sprint(ps.Blocks) } { fmt.Sprint(ps.Passes) }
} templ sortableCol(field string, label string, title string) { { label } } templ teamColorName(teamID int, teamName string, teamColor string, season *db.Season, league *db.League) { if teamID > 0 && teamName != "" { if teamColor != "" { } { teamName } } else { } }