Skip to content

Commit 7be57e8

Browse files
committed
Update queue-manager.go
1 parent 538006d commit 7be57e8

File tree

1 file changed

+35
-31
lines changed

1 file changed

+35
-31
lines changed

queue-manager.go

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -354,37 +354,41 @@ func (qm *QueueManager) prepareQueuePageData(position int) QueuePageData {
354354
// serveCustomTemplate attempts to serve the custom queue page template.
355355
// Returns true if successful, false if the template could not be served.
356356
func (qm *QueueManager) serveCustomTemplate(rw http.ResponseWriter, data QueuePageData) bool {
357-
if !fileExists(qm.config.QueuePageFile) {
358-
return false
359-
}
360-
361-
content, err := os.ReadFile(qm.config.QueuePageFile)
362-
if err != nil {
363-
if qm.config.Debug {
364-
log.Printf("[Queue Manager] Error reading template file: %v", err)
365-
}
366-
return false
367-
}
368-
369-
queueTemplate, parseErr := template.New("QueuePage").Delims("[[", "]]").Parse(string(content))
370-
if parseErr != nil {
371-
if qm.config.Debug {
372-
log.Printf("[Queue Manager] Error parsing template: %v", parseErr)
373-
}
374-
return false
375-
}
376-
377-
// Set content type
378-
rw.Header().Set("Content-Type", qm.config.HTTPContentType)
379-
rw.WriteHeader(qm.config.HTTPResponseCode)
380-
381-
// Execute template
382-
if execErr := queueTemplate.Execute(rw, data); execErr != nil && qm.config.Debug {
383-
log.Printf("[Queue Manager] Error executing template: %v", execErr)
384-
return false
385-
}
386-
387-
return true
357+
// Make sure headers are set before any content is written
358+
rw.Header().Set("Content-Type", qm.config.HTTPContentType)
359+
rw.Header().Set("Cache-Control", "no-store, no-cache, must-revalidate")
360+
rw.Header().Set("Pragma", "no-cache")
361+
rw.WriteHeader(qm.config.HTTPResponseCode)
362+
363+
if !fileExists(qm.config.QueuePageFile) {
364+
return false
365+
}
366+
367+
content, err := os.ReadFile(qm.config.QueuePageFile)
368+
if err != nil {
369+
if qm.config.Debug {
370+
log.Printf("[Queue Manager] Error reading template file: %v", err)
371+
}
372+
return false
373+
}
374+
375+
queueTemplate, parseErr := template.New("QueuePage").Delims("[[", "]]").Parse(string(content))
376+
if parseErr != nil {
377+
if qm.config.Debug {
378+
log.Printf("[Queue Manager] Error parsing template: %v", parseErr)
379+
}
380+
return false
381+
}
382+
383+
// Execute template with appropriate data
384+
if execErr := queueTemplate.Execute(rw, data); execErr != nil {
385+
if qm.config.Debug {
386+
log.Printf("[Queue Manager] Error executing template: %v", execErr)
387+
}
388+
return false
389+
}
390+
391+
return true
388392
}
389393

390394
// serveFallbackTemplate serves the built-in default queue page template.

0 commit comments

Comments
 (0)