package playersview import "git.haelnorr.com/h/oslstats/internal/db" import "fmt" templ PlayerStatsTab(player *db.Player, stats *db.PlayerAllTimeStats, seasons []*db.Season, teams []*db.Team, activeFilter string, activeFilterID int) {
if activeFilter == "" { Showing All-Time stats } else if activeFilter == "season" { Showing stats for season: { getSeasonName(seasons, activeFilterID) } } else if activeFilter == "team" { Showing stats for team: { getTeamName(teams, activeFilterID) } }
@playerStatsGrid(stats)
} templ playerStatsGrid(stats *db.PlayerAllTimeStats) {
@statCard("Games Played", fmt.Sprint(stats.GamesPlayed), "text-blue") @statCard("Goals", fmt.Sprint(stats.Goals), "text-green") @statCard("Assists", fmt.Sprint(stats.Assists), "text-teal") @statCard("Saves", fmt.Sprint(stats.Saves), "text-yellow") @statCard("Shots", fmt.Sprint(stats.Shots), "text-peach") @statCard("Blocks", fmt.Sprint(stats.Blocks), "text-mauve") @statCard("Passes", fmt.Sprint(stats.Passes), "text-sky") @statCard("Periods Played", fmt.Sprint(stats.PeriodsPlayed), "text-subtext0")
} templ statCard(label string, value string, colorClass string) {

{ label }

{ value }

} script handleFilterChange(filterType string) { var container = event.target.closest("[data-filter-url]") if (!container) return var baseUrl = container.getAttribute("data-filter-url") var seasonSelect = container.querySelector("select[name='season_id']") var teamSelect = container.querySelector("select[name='team_id']") // Reset the other filter when one is selected if (filterType === "season" && teamSelect) { teamSelect.value = "" } else if (filterType === "team" && seasonSelect) { seasonSelect.value = "" } var value = event.target.value var url = baseUrl if (value) { url += "?filter=" + filterType + "&filter_id=" + value } htmx.ajax("POST", url, {target: "#player-content", swap: "innerHTML"}) } func getSeasonName(seasons []*db.Season, id int) string { for _, s := range seasons { if s.ID == id { return s.Name } } return "Unknown" } func getTeamName(teams []*db.Team, id int) string { for _, t := range teams { if t.ID == id { return t.Name } } return "Unknown" }