mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 21:56:50 -04:00
Reclassify referee and scoring displays as 'panels'.
This commit is contained in:
@@ -109,7 +109,7 @@ $(function() {
|
||||
$("[data-toggle=tooltip]").tooltip({"placement": "top"});
|
||||
|
||||
// Set up the websocket back to the server.
|
||||
websocket = new CheesyWebsocket("/displays/referee/websocket", {
|
||||
websocket = new CheesyWebsocket("/panels/referee/websocket", {
|
||||
matchLoad: function(event) { handleMatchLoad(event.data) }
|
||||
});
|
||||
|
||||
@@ -65,7 +65,7 @@ $(function() {
|
||||
alliance = window.location.href.split("/").slice(-1)[0];
|
||||
|
||||
// Set up the websocket back to the server.
|
||||
websocket = new CheesyWebsocket("/displays/scoring/" + alliance + "/websocket", {
|
||||
websocket = new CheesyWebsocket("/panels/scoring/" + alliance + "/websocket", {
|
||||
matchTime: function(event) { handleMatchTime(event.data); },
|
||||
realtimeScore: function(event) { handleRealtimeScore(event.data); }
|
||||
});
|
||||
@@ -55,6 +55,14 @@
|
||||
<li><a href="/alliance_selection">Alliance Selection</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Panel</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="/panels/referee">Referee</a></li>
|
||||
<li><a href="/panels/scoring/red">Scoring – Red</a></li>
|
||||
<li><a href="/panels/scoring/blue">Scoring – Blue</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Report</a>
|
||||
<ul class="dropdown-menu">
|
||||
@@ -84,9 +92,6 @@
|
||||
<li><a href="/displays/audience">Audience</a></li>
|
||||
<li><a href="/displays/fta">Field Monitor</a></li>
|
||||
<li><a href="/displays/pit">Pit</a></li>
|
||||
<li><a href="/displays/referee">Referee</a></li>
|
||||
<li><a href="/displays/scoring/red">Scoring – Red</a></li>
|
||||
<li><a href="/displays/scoring/blue">Scoring – Blue</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Referee Display - {{.EventSettings.Name}} - Cheesy Arena</title>
|
||||
<title>Referee Panel - {{.EventSettings.Name}} - Cheesy Arena</title>
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
@@ -17,7 +17,7 @@
|
||||
<link href="/static/css/lib/bootstrap-colorpicker.min.css" rel="stylesheet">
|
||||
<link href="/static/css/lib/bootstrap-datetimepicker.min.css" rel="stylesheet">
|
||||
<link href="/static/css/cheesy-arena.css" rel="stylesheet">
|
||||
<link href="/static/css/referee_display.css" rel="stylesheet">
|
||||
<link href="/static/css/referee_panel.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
{{if .EntryEnabled}}
|
||||
@@ -97,7 +97,7 @@
|
||||
<script src="/static/js/lib/jquery.websocket-0.0.1.js"></script>
|
||||
<script src="/static/js/lib/bootstrap.min.js"></script>
|
||||
<script src="/static/js/cheesy-websocket.js"></script>
|
||||
<script src="/static/js/referee_display.js"></script>
|
||||
<script src="/static/js/referee_panel.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
{{define "foul"}}
|
||||
@@ -80,5 +80,5 @@
|
||||
var alliance = "{{.Alliance}}";
|
||||
</script>
|
||||
<script src="/static/js/match_timing.js"></script>
|
||||
<script src="/static/js/scoring_display.js"></script>
|
||||
<script src="/static/js/scoring_panel.js"></script>
|
||||
{{end}}
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSetupAllianceSelection(t *testing.T) {
|
||||
func TestAllianceSelection(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
cachedAlliances = [][]model.AllianceTeam{}
|
||||
@@ -92,7 +92,7 @@ func TestSetupAllianceSelection(t *testing.T) {
|
||||
assert.False(t, team.YellowCard)
|
||||
}
|
||||
|
||||
func TestSetupAllianceSelectionErrors(t *testing.T) {
|
||||
func TestAllianceSelectionErrors(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
cachedAlliances = [][]model.AllianceTeam{}
|
||||
@@ -156,7 +156,7 @@ func TestSetupAllianceSelectionErrors(t *testing.T) {
|
||||
assert.Contains(t, recorder.Body.String(), "already been finalized")
|
||||
}
|
||||
|
||||
func TestSetupAllianceSelectionAutofocus(t *testing.T) {
|
||||
func TestAllianceSelectionAutofocus(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
cachedAlliances = [][]model.AllianceTeam{}
|
||||
@@ -248,7 +248,7 @@ func TestSetupAllianceSelectionAutofocus(t *testing.T) {
|
||||
assert.Equal(t, -1, j)
|
||||
}
|
||||
|
||||
func TestSetupAllianceSelectionPublish(t *testing.T) {
|
||||
func TestAllianceSelectionPublish(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
web.arena.TbaClient.BaseUrl = "fakeurl"
|
||||
|
||||
@@ -19,12 +19,12 @@ import (
|
||||
)
|
||||
|
||||
// Renders the referee interface for assigning fouls.
|
||||
func (web *Web) refereeDisplayHandler(w http.ResponseWriter, r *http.Request) {
|
||||
func (web *Web) refereePanelHandler(w http.ResponseWriter, r *http.Request) {
|
||||
if !web.userIsAdmin(w, r) {
|
||||
return
|
||||
}
|
||||
|
||||
template, err := web.parseFiles("templates/referee_display.html")
|
||||
template, err := web.parseFiles("templates/referee_panel.html")
|
||||
if err != nil {
|
||||
handleWebErr(w, err)
|
||||
return
|
||||
@@ -76,7 +76,7 @@ func (web *Web) refereeDisplayHandler(w http.ResponseWriter, r *http.Request) {
|
||||
web.arena.RedRealtimeScore.CurrentScore.Fouls, web.arena.BlueRealtimeScore.CurrentScore.Fouls,
|
||||
web.arena.RedRealtimeScore.Cards, web.arena.BlueRealtimeScore.Cards, game.Rules,
|
||||
!(web.arena.RedRealtimeScore.FoulsCommitted && web.arena.BlueRealtimeScore.FoulsCommitted)}
|
||||
err = template.ExecuteTemplate(w, "referee_display.html", data)
|
||||
err = template.ExecuteTemplate(w, "referee_panel.html", data)
|
||||
if err != nil {
|
||||
handleWebErr(w, err)
|
||||
return
|
||||
@@ -84,7 +84,7 @@ func (web *Web) refereeDisplayHandler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// The websocket endpoint for the refereee interface client to send control commands and receive status updates.
|
||||
func (web *Web) refereeDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {
|
||||
func (web *Web) refereePanelWebsocketHandler(w http.ResponseWriter, r *http.Request) {
|
||||
// TODO(patrick): Enable authentication once Safari (for iPad) supports it over Websocket.
|
||||
|
||||
ws, err := websocket.NewWebsocket(w, r)
|
||||
@@ -12,20 +12,20 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestRefereeDisplay(t *testing.T) {
|
||||
func TestRefereePanel(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
recorder := web.getHttpResponse("/displays/referee")
|
||||
recorder := web.getHttpResponse("/panels/referee")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
assert.Contains(t, recorder.Body.String(), "Referee Display - Untitled Event - Cheesy Arena")
|
||||
assert.Contains(t, recorder.Body.String(), "Referee Panel - Untitled Event - Cheesy Arena")
|
||||
}
|
||||
|
||||
func TestRefereeDisplayWebsocket(t *testing.T) {
|
||||
func TestRefereePanelWebsocket(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
server, wsUrl := web.startTestServer()
|
||||
defer server.Close()
|
||||
conn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+"/displays/referee/websocket", nil)
|
||||
conn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+"/panels/referee/websocket", nil)
|
||||
assert.Nil(t, err)
|
||||
defer conn.Close()
|
||||
ws := websocket.NewTestWebsocket(conn)
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
)
|
||||
|
||||
// Renders the scoring interface which enables input of scores in real-time.
|
||||
func (web *Web) scoringDisplayHandler(w http.ResponseWriter, r *http.Request) {
|
||||
func (web *Web) scoringPanelHandler(w http.ResponseWriter, r *http.Request) {
|
||||
if !web.userIsAdmin(w, r) {
|
||||
return
|
||||
}
|
||||
@@ -29,7 +29,7 @@ func (web *Web) scoringDisplayHandler(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
template, err := web.parseFiles("templates/scoring_display.html", "templates/base.html")
|
||||
template, err := web.parseFiles("templates/scoring_panel.html", "templates/base.html")
|
||||
if err != nil {
|
||||
handleWebErr(w, err)
|
||||
return
|
||||
@@ -46,7 +46,7 @@ func (web *Web) scoringDisplayHandler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// The websocket endpoint for the scoring interface client to send control commands and receive status updates.
|
||||
func (web *Web) scoringDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {
|
||||
func (web *Web) scoringPanelWebsocketHandler(w http.ResponseWriter, r *http.Request) {
|
||||
if !web.userIsAdmin(w, r) {
|
||||
return
|
||||
}
|
||||
@@ -12,31 +12,31 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestScoringDisplay(t *testing.T) {
|
||||
func TestScoringPanel(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
recorder := web.getHttpResponse("/displays/scoring/invalidalliance")
|
||||
recorder := web.getHttpResponse("/panels/scoring/invalidalliance")
|
||||
assert.Equal(t, 500, recorder.Code)
|
||||
assert.Contains(t, recorder.Body.String(), "Invalid alliance")
|
||||
recorder = web.getHttpResponse("/displays/scoring/red")
|
||||
recorder = web.getHttpResponse("/panels/scoring/red")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
recorder = web.getHttpResponse("/displays/scoring/blue")
|
||||
recorder = web.getHttpResponse("/panels/scoring/blue")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
assert.Contains(t, recorder.Body.String(), "Scoring - Untitled Event - Cheesy Arena")
|
||||
}
|
||||
|
||||
func TestScoringDisplayWebsocket(t *testing.T) {
|
||||
func TestScoringPanelWebsocket(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
server, wsUrl := web.startTestServer()
|
||||
defer server.Close()
|
||||
_, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+"/displays/scoring/blorpy/websocket", nil)
|
||||
_, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+"/panels/scoring/blorpy/websocket", nil)
|
||||
assert.NotNil(t, err)
|
||||
redConn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+"/displays/scoring/red/websocket", nil)
|
||||
redConn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+"/panels/scoring/red/websocket", nil)
|
||||
assert.Nil(t, err)
|
||||
defer redConn.Close()
|
||||
redWs := websocket.NewTestWebsocket(redConn)
|
||||
blueConn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+"/displays/scoring/blue/websocket", nil)
|
||||
blueConn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+"/panels/scoring/blue/websocket", nil)
|
||||
assert.Nil(t, err)
|
||||
defer blueConn.Close()
|
||||
blueWs := websocket.NewTestWebsocket(blueConn)
|
||||
88
web/web.go
88
web/web.go
@@ -125,42 +125,27 @@ func (web *Web) checkReaderPassword(user, password string) bool {
|
||||
// Sets up the mapping between URLs and handlers.
|
||||
func (web *Web) newHandler() http.Handler {
|
||||
router := mux.NewRouter()
|
||||
router.HandleFunc("/", web.indexHandler).Methods("GET")
|
||||
router.HandleFunc("/alliance_selection", web.allianceSelectionGetHandler).Methods("GET")
|
||||
router.HandleFunc("/alliance_selection", web.allianceSelectionPostHandler).Methods("POST")
|
||||
router.HandleFunc("/alliance_selection/start", web.allianceSelectionStartHandler).Methods("POST")
|
||||
router.HandleFunc("/alliance_selection/reset", web.allianceSelectionResetHandler).Methods("POST")
|
||||
router.HandleFunc("/alliance_selection/finalize", web.allianceSelectionFinalizeHandler).Methods("POST")
|
||||
router.HandleFunc("/alliance_selection/publish", web.allianceSelectionPublishHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/settings", web.settingsGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/settings", web.settingsPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/db/save", web.saveDbHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/db/restore", web.restoreDbHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/db/clear", web.clearDbHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams", web.teamsGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/teams", web.teamsPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams/clear", web.teamsClearHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams/{id}/edit", web.teamEditGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/teams/{id}/edit", web.teamEditPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams/{id}/delete", web.teamDeletePostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams/publish", web.teamsPublishHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams/generate_wpa_keys", web.teamsGenerateWpaKeysHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/schedule", web.scheduleGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/schedule/generate", web.scheduleGeneratePostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/schedule/republish", web.scheduleRepublishPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/schedule/save", web.scheduleSavePostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/displays", web.displaysGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/displays", web.displaysPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/displays/reload", web.displaysReloadHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/led_plc", web.ledPlcGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/led_plc/websocket", web.ledPlcWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/lower_thirds", web.lowerThirdsGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/lower_thirds/websocket", web.lowerThirdsWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/sponsor_slides", web.sponsorSlidesGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/sponsor_slides", web.sponsorSlidesPostHandler).Methods("POST")
|
||||
router.HandleFunc("/alliance_selection/reset", web.allianceSelectionResetHandler).Methods("POST")
|
||||
router.HandleFunc("/alliance_selection/start", web.allianceSelectionStartHandler).Methods("POST")
|
||||
router.HandleFunc("/api/alliances", web.alliancesApiHandler).Methods("GET")
|
||||
router.HandleFunc("/api/matches/{type}", web.matchesApiHandler).Methods("GET")
|
||||
router.HandleFunc("/api/rankings", web.rankingsApiHandler).Methods("GET")
|
||||
router.HandleFunc("/api/sponsor_slides", web.sponsorSlidesApiHandler).Methods("GET")
|
||||
router.HandleFunc("/api/alliances", web.alliancesApiHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/alliance_station", web.allianceStationDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/alliance_station/websocket", web.allianceStationDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/announcer", web.announcerDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/announcer/websocket", web.announcerDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/audience", web.audienceDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/audience/websocket", web.audienceDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/fta", web.ftaDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/fta/websocket", web.ftaDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/pit", web.pitDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/pit/websocket", web.pitDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/match_play", web.matchPlayHandler).Methods("GET")
|
||||
router.HandleFunc("/match_play/{matchId}/load", web.matchPlayLoadHandler).Methods("GET")
|
||||
router.HandleFunc("/match_play/{matchId}/show_result", web.matchPlayShowResultHandler).Methods("GET")
|
||||
@@ -168,6 +153,10 @@ func (web *Web) newHandler() http.Handler {
|
||||
router.HandleFunc("/match_review", web.matchReviewHandler).Methods("GET")
|
||||
router.HandleFunc("/match_review/{matchId}/edit", web.matchReviewEditGetHandler).Methods("GET")
|
||||
router.HandleFunc("/match_review/{matchId}/edit", web.matchReviewEditPostHandler).Methods("POST")
|
||||
router.HandleFunc("/panels/scoring/{alliance}", web.scoringPanelHandler).Methods("GET")
|
||||
router.HandleFunc("/panels/scoring/{alliance}/websocket", web.scoringPanelWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/panels/referee", web.refereePanelHandler).Methods("GET")
|
||||
router.HandleFunc("/panels/referee/websocket", web.refereePanelWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/reports/csv/rankings", web.rankingsCsvReportHandler).Methods("GET")
|
||||
router.HandleFunc("/reports/pdf/rankings", web.rankingsPdfReportHandler).Methods("GET")
|
||||
router.HandleFunc("/reports/csv/schedule/{type}", web.scheduleCsvReportHandler).Methods("GET")
|
||||
@@ -175,21 +164,32 @@ func (web *Web) newHandler() http.Handler {
|
||||
router.HandleFunc("/reports/csv/teams", web.teamsCsvReportHandler).Methods("GET")
|
||||
router.HandleFunc("/reports/pdf/teams", web.teamsPdfReportHandler).Methods("GET")
|
||||
router.HandleFunc("/reports/csv/wpa_keys", web.wpaKeysCsvReportHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/audience", web.audienceDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/audience/websocket", web.audienceDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/pit", web.pitDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/pit/websocket", web.pitDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/announcer", web.announcerDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/announcer/websocket", web.announcerDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/scoring/{alliance}", web.scoringDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/scoring/{alliance}/websocket", web.scoringDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/referee", web.refereeDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/referee/websocket", web.refereeDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/alliance_station", web.allianceStationDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/alliance_station/websocket", web.allianceStationDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/fta", web.ftaDisplayHandler).Methods("GET")
|
||||
router.HandleFunc("/displays/fta/websocket", web.ftaDisplayWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/", web.indexHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/db/clear", web.clearDbHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/db/restore", web.restoreDbHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/db/save", web.saveDbHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/displays", web.displaysGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/displays", web.displaysPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/displays/reload", web.displaysReloadHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/led_plc", web.ledPlcGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/led_plc/websocket", web.ledPlcWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/lower_thirds", web.lowerThirdsGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/lower_thirds/websocket", web.lowerThirdsWebsocketHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/schedule", web.scheduleGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/schedule/generate", web.scheduleGeneratePostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/schedule/republish", web.scheduleRepublishPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/schedule/save", web.scheduleSavePostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/settings", web.settingsGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/settings", web.settingsPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/sponsor_slides", web.sponsorSlidesGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/sponsor_slides", web.sponsorSlidesPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams", web.teamsGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/teams", web.teamsPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams/{id}/delete", web.teamDeletePostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams/{id}/edit", web.teamEditGetHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/teams/{id}/edit", web.teamEditPostHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams/clear", web.teamsClearHandler).Methods("POST")
|
||||
router.HandleFunc("/setup/teams/generate_wpa_keys", web.teamsGenerateWpaKeysHandler).Methods("GET")
|
||||
router.HandleFunc("/setup/teams/publish", web.teamsPublishHandler).Methods("POST")
|
||||
return router
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user