diff --git a/web/server.go b/web/server.go index a07d967..cab8731 100644 --- a/web/server.go +++ b/web/server.go @@ -526,17 +526,6 @@ func (s *Server) broadcastAdminEvent(event models.AdminEvent) { } s.sendAdminEventToAllClients(fmt.Sprintf("event: results\ndata: %s\n\n", sb.String())) } - - case models.EventResultsReveal: - s.logger.Info("Broadcasting results reveal event") - - if data, ok := event.Event.(struct { - Results []models.FinalResult `json:"results"` - RevealCount int `json:"reveal_count"` - GroupName string `json:"group_name"` - }); ok { - s.broadcastResultsReveal(data.Results, data.RevealCount, data.GroupName) - } } } @@ -1979,18 +1968,6 @@ func (s *Server) handleRevealNextResult() http.HandlerFunc { http.Error(w, "Failed to get current racing group", http.StatusInternalServerError) return } - - // Parse request body - var request struct { - RevealCount int `json:"reveal_count"` - } - s.logger.Info("Reveal request", "body", r.Body) - if err := json.NewDecoder(r.Body).Decode(&request); err != nil { - s.logger.Error("Failed to decode request body", "error", err) - http.Error(w, "Invalid request body", http.StatusBadRequest) - return - } - // Get final results for the group results, err := s.db.GetFinalResults(currentGroup.ID) if err != nil { @@ -1998,49 +1975,16 @@ func (s *Server) handleRevealNextResult() http.HandlerFunc { http.Error(w, "Failed to get final results", http.StatusInternalServerError) return } + // Broadcast the reveal event + var sb strings.Builder - // Determine what to reveal - revealCount := request.RevealCount - if revealCount < 0 { - revealCount = 0 - } - if revealCount > len(results) { - revealCount = len(results) - } - - // If this is the 4th reveal, show all remaining results - if revealCount == 3 { - revealCount = len(results) - } + component := templates.FinalResultsTable(results) + component.Render(context.Background(), &sb) - // Broadcast the reveal event - s.broadcastResultsReveal(results, revealCount, currentGroup.Name) + s.sendAdminEventToAllClients(fmt.Sprintf("event: results-reveal\ndata: %s\n\n", sb.String())) // Return success w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(map[string]string{"status": "success"}) } } - -// broadcastResultsReveal reveals the next result -func (s *Server) broadcastResultsReveal(results []models.FinalResult, revealCount int, groupName string) { - // For each revealed result, render the row - var sb strings.Builder - - if revealCount > 0 && revealCount <= len(results) { - // If this is a single result reveal (1, 2, or 3) - if revealCount <= 3 { - result := results[revealCount-1] - component := templates.FinalResultRow(result) - component.Render(context.Background(), &sb) - } else { - // If this is the final reveal (all remaining results) - for i := 3; i < len(results); i++ { - component := templates.FinalResultRow(results[i]) - component.Render(context.Background(), &sb) - } - } - } - - s.sendAdminEventToAllClients(fmt.Sprintf("event: results-reveal\ndata: %s\n\n", sb.String())) -} diff --git a/web/templates/final_results_page.templ b/web/templates/final_results_page.templ index c94d7c2..8c025d1 100644 --- a/web/templates/final_results_page.templ +++ b/web/templates/final_results_page.templ @@ -29,36 +29,7 @@ templ FinalResultsPublic(results []models.FinalResult, groupName string, revealC