Compare commits
No commits in common. "fc3b0ba68dee66641859c216ab74b2b9a038b5ed" and "a7c561dd6545301bd4b8ec28b56017ac6682fb78" have entirely different histories.
fc3b0ba68d
...
a7c561dd65
@ -1,11 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (app *application) VirtualTerminal(w http.ResponseWriter, r *http.Request) {
|
|
||||||
if err := app.renderTemplate(w, r, "terminal", nil); err != nil {
|
|
||||||
app.errorLog.Println(err)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,99 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"embed"
|
|
||||||
"fmt"
|
|
||||||
"html/template"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type templateData struct {
|
|
||||||
StringMap map[string]string
|
|
||||||
IntMap map[string]int
|
|
||||||
FloatMap map[string]int
|
|
||||||
Data map[string]interface{}
|
|
||||||
CSRFToken string
|
|
||||||
Flash string
|
|
||||||
Warning string
|
|
||||||
Error string
|
|
||||||
API string
|
|
||||||
CSSVersion string
|
|
||||||
IsAuthenticated int
|
|
||||||
}
|
|
||||||
|
|
||||||
var functions = template.FuncMap{}
|
|
||||||
|
|
||||||
//go:embed templates
|
|
||||||
var templateFS embed.FS
|
|
||||||
|
|
||||||
func (app *application) addDefaultData(td *templateData, r *http.Request) *templateData {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (app *application) renderTemplate(
|
|
||||||
w http.ResponseWriter,
|
|
||||||
r *http.Request,
|
|
||||||
page string,
|
|
||||||
td *templateData,
|
|
||||||
partials ...string,
|
|
||||||
) error {
|
|
||||||
var t *template.Template
|
|
||||||
var err error
|
|
||||||
templateToRender := fmt.Sprintf("templates/%s.page.gohtml", page)
|
|
||||||
|
|
||||||
_, templateInMap := app.templateCache[templateToRender]
|
|
||||||
|
|
||||||
if app.config.env == "production" && templateInMap {
|
|
||||||
t = app.templateCache[templateToRender]
|
|
||||||
} else {
|
|
||||||
t, err = app.parseTemplate(partials, page, templateToRender)
|
|
||||||
if err != nil {
|
|
||||||
app.errorLog.Println(err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if td == nil {
|
|
||||||
td = &templateData{}
|
|
||||||
}
|
|
||||||
|
|
||||||
td = app.addDefaultData(td, r)
|
|
||||||
|
|
||||||
err = t.Execute(w, td)
|
|
||||||
if err != nil {
|
|
||||||
app.errorLog.Println(err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (app *application) parseTemplate(
|
|
||||||
partials []string,
|
|
||||||
page, templateToRender string,
|
|
||||||
) (*template.Template, error) {
|
|
||||||
var t *template.Template
|
|
||||||
var err error
|
|
||||||
|
|
||||||
// build partials
|
|
||||||
if len(partials) > 0 {
|
|
||||||
for i, x := range partials {
|
|
||||||
partials[i] = fmt.Sprintf("tempaltes/%s.partial.gohtml", x)
|
|
||||||
}
|
|
||||||
t, err = template.New(fmt.Sprintf("%s.page.gohtml", page)).
|
|
||||||
Funcs(functions).
|
|
||||||
ParseFS(templateFS, "templates/base.layout.gohtml", strings.Join(partials, ","), templateToRender)
|
|
||||||
} else {
|
|
||||||
t, err = template.New(fmt.Sprintf("%s.page.gohtml", page)).
|
|
||||||
Funcs(functions).
|
|
||||||
ParseFS(templateFS, "templates/base.layout.gohtml", templateToRender)
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
app.errorLog.Println(err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
app.templateCache[templateToRender] = t
|
|
||||||
return t, nil
|
|
||||||
}
|
|
@ -8,8 +8,5 @@ import (
|
|||||||
|
|
||||||
func (app *application) routes() http.Handler {
|
func (app *application) routes() http.Handler {
|
||||||
mux := chi.NewRouter()
|
mux := chi.NewRouter()
|
||||||
|
|
||||||
mux.Get("/virtual-terminal", app.VirtualTerminal)
|
|
||||||
|
|
||||||
return mux
|
return mux
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user