47 lines
		
	
	
		
			1003 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1003 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package tpl
 | |
| 
 | |
| import (
 | |
| 	"html/template"
 | |
| 	"net/http"
 | |
| 
 | |
| 	systemv1 "management/internal/erpserver/biz/v1/system"
 | |
| 	"management/internal/pkg/session"
 | |
| )
 | |
| 
 | |
| type Renderer interface {
 | |
| 	HTML(w http.ResponseWriter, req *http.Request, name string, data map[string]any)
 | |
| 	JSON(w http.ResponseWriter, data any)
 | |
| 	JSONF(w http.ResponseWriter, success bool, message string)
 | |
| 	JSONOK(w http.ResponseWriter, message string)
 | |
| 	JSONERR(w http.ResponseWriter, message string)
 | |
| }
 | |
| 
 | |
| type render struct {
 | |
| 	session   session.ISession
 | |
| 	config    *TemplateConfig
 | |
| 	templates map[string]*template.Template
 | |
| 
 | |
| 	menuBiz systemv1.MenuBiz
 | |
| }
 | |
| 
 | |
| func New(session session.ISession, menuBiz systemv1.MenuBiz) (Renderer, error) {
 | |
| 	render := &render{
 | |
| 		session: session,
 | |
| 		menuBiz: menuBiz,
 | |
| 		config: &TemplateConfig{
 | |
| 			Root:      ".",
 | |
| 			Extension: ".tmpl",
 | |
| 			Layout:    "base",
 | |
| 			Partial:   "partial",
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	templates, err := render.createTemplateCache()
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 
 | |
| 	render.templates = templates
 | |
| 	return render, nil
 | |
| }
 |