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) }