github.com/kotovmak/go-admin@v1.1.1/template/login/login.go (about) 1 package login 2 3 import ( 4 "bytes" 5 "html/template" 6 "strings" 7 8 "github.com/kotovmak/go-admin/template/types" 9 10 "github.com/kotovmak/go-admin/modules/language" 11 "github.com/kotovmak/go-admin/modules/logger" 12 ) 13 14 type Login struct { 15 Name string 16 } 17 18 func GetLoginComponent() *Login { 19 return &Login{ 20 Name: "login", 21 } 22 } 23 24 var DefaultFuncMap = template.FuncMap{ 25 "lang": language.Get, 26 "langHtml": language.GetFromHtml, 27 "link": func(cdnUrl, prefixUrl, assetsUrl string) string { 28 if cdnUrl == "" { 29 return prefixUrl + assetsUrl 30 } 31 return cdnUrl + assetsUrl 32 }, 33 "isLinkUrl": func(s string) bool { 34 return (len(s) > 7 && s[:7] == "http://") || (len(s) > 8 && s[:8] == "https://") 35 }, 36 "render": func(s, old, repl template.HTML) template.HTML { 37 return template.HTML(strings.ReplaceAll(string(s), string(old), string(repl))) 38 }, 39 "renderJS": func(s template.JS, old, repl template.HTML) template.JS { 40 return template.JS(strings.ReplaceAll(string(s), string(old), string(repl))) 41 }, 42 "divide": func(a, b int) int { 43 return a / b 44 }, 45 } 46 47 func (l *Login) GetTemplate() (*template.Template, string) { 48 tmpl, err := template.New("login_theme1"). 49 Funcs(DefaultFuncMap). 50 Parse(loginTmpl) 51 52 if err != nil { 53 logger.Error("Login GetTemplate Error: ", err) 54 } 55 56 return tmpl, "login_theme1" 57 } 58 59 func (l *Login) GetAssetList() []string { return AssetsList } 60 func (l *Login) GetAsset(name string) ([]byte, error) { return Asset(name[1:]) } 61 func (l *Login) IsAPage() bool { return true } 62 func (l *Login) GetName() string { return "login" } 63 64 func (l *Login) GetContent() template.HTML { 65 buffer := new(bytes.Buffer) 66 tmpl, defineName := l.GetTemplate() 67 err := tmpl.ExecuteTemplate(buffer, defineName, l) 68 if err != nil { 69 logger.Error("login ComposeHtml Error:", err) 70 } 71 return template.HTML(buffer.String()) 72 } 73 74 func (l *Login) GetJS() template.JS { return "" } 75 func (l *Login) GetCSS() template.CSS { return "" } 76 func (l *Login) GetCallbacks() types.Callbacks { return make(types.Callbacks, 0) }