From 38fa8bf961b504abb6a98763ad8aa42de64e491d Mon Sep 17 00:00:00 2001 From: Leon Klingele Date: Thu, 1 Dec 2016 16:52:20 +0100 Subject: [PATCH] Fix Go 1.8 compatibility Go has apparently modified their template system. Objects in templates are no longer JSON-encoded by default. --- html/head.html | 2 +- src/app/spreed-webrtc-server/main.go | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/html/head.html b/html/head.html index f9a95ec3..ad653b77 100644 --- a/html/head.html +++ b/html/head.html @@ -12,4 +12,4 @@ <%template "extra-head" .%> <%.ExtraDHead%> -<%end%> +<%end%> diff --git a/src/app/spreed-webrtc-server/main.go b/src/app/spreed-webrtc-server/main.go index 3c822d62..27e92626 100644 --- a/src/app/spreed-webrtc-server/main.go +++ b/src/app/spreed-webrtc-server/main.go @@ -25,6 +25,7 @@ import ( "bytes" "crypto/rand" "encoding/hex" + "encoding/json" "flag" "fmt" "html/template" @@ -208,8 +209,17 @@ func runner(runtime phoenix.Runtime) error { } // Load templates. + templateFuncMap := template.FuncMap{ + "json": func(obj interface{}) (template.HTML, error) { + data, err := json.Marshal(obj) + if err != nil { + return "", err + } + return template.HTML(data), nil + }, + } templates = template.New("") - templates.Delims("<%", "%>") + templates.Delims("<%", "%>").Funcs(templateFuncMap) // Load html templates folder err = filepath.Walk(path.Join(rootFolder, "html"), func(path string, info os.FileInfo, err error) error {