package login
import (
"bytes"
"fmt"
"html/template"
"strings"
"github.com/GoAdminGroup/go-admin/modules/language"
"github.com/GoAdminGroup/go-admin/modules/logger"
)
type Installation struct {
Name string
}
func Get() *Installation {
return &Installation{
Name: "installation",
}
}
var DefaultFuncMap = template.FuncMap{
"lang": language.Get,
"langHtml": language.GetFromHtml,
"link": func(cdnUrl, prefixUrl, assetsUrl string) string {
if cdnUrl == "" {
return prefixUrl + assetsUrl
}
return cdnUrl + assetsUrl
},
"isLinkUrl": func(s string) bool {
return (len(s) > 7 && s[:7] == "http://") || (len(s) > 8 && s[:8] == "https://")
},
"render": func(s, old, repl template.HTML) template.HTML {
return template.HTML(strings.ReplaceAll(string(s), string(old), string(repl)))
},
"renderJS": func(s template.JS, old, repl template.HTML) template.JS {
return template.JS(strings.ReplaceAll(string(s), string(old), string(repl)))
},
"divide": func(a, b int) int {
return a / b
},
}
func (i *Installation) GetTemplate() (*template.Template, string) {
tmpl, err := template.New("installation").
Funcs(DefaultFuncMap).
Parse(List["installation"])
if err != nil {
logger.Error("Installation GetTemplate Error: ", err)
}
return tmpl, "installation"
}
func (i *Installation) GetAssetList() []string { return AssetsList }
func (i *Installation) GetAsset(name string) ([]byte, error) { return Asset(name[1:]) }
func (i *Installation) IsAPage() bool { return true }
func (i *Installation) GetName() string { return "login" }
func (i *Installation) GetContent() template.HTML {
buffer := new(bytes.Buffer)
tmpl, defineName := i.GetTemplate()
err := tmpl.ExecuteTemplate(buffer, defineName, i)
if err != nil {
fmt.Println("ComposeHtml Error:", err)
}
return template.HTML(buffer.String())
}