package common

import (
	"bytes"
	"fmt"
	"path"
)
import (
	"dbweb/core"
)

type HelpEle struct{}
type HelpFile struct{}

func init() {
	core.RegisterFun("helpele", new(HelpEle), "_layout/blank")
	core.RegisterFun("helpfile", new(HelpFile), "_layout/blank")
}
func (h *HelpEle) Get(p *core.ElementHandleArgs) {
	eleName := p.Req.URL.Query().Get("ele")

	ele := core.LoadElement(p.DB, eleName)
	p.More["ElementLabel"] = ele.DisplayLabel()
	p.More["ControllerName"] = ele.Controller.Name
	p.More["ElementHelp"] = ele.HelpText
	outs := bytes.NewBuffer(nil)
	tmp := p.Render.Template().Lookup(fmt.Sprintf("_help/%s", ele.Controller.Name))
	if tmp != nil {
		if err := tmp.Execute(outs, p); err != nil {
			core.LOG.Panic(err)
		}
		p.More["ControllerHelp"] = outs.String()
	}
	p.HTML()
}
func (h *HelpFile) Get(p *core.ElementHandleArgs) {
	fileName := p.Req.URL.Query().Get("file")
	outs := bytes.NewBuffer(nil)
	tmp := p.Render.Template().Lookup(path.Join("_help", fileName))
	if tmp != nil {
		if err := tmp.Execute(outs, p); err != nil {
			core.LOG.Panic(err)
		}
		p.More["Help"] = outs.String()
		p.HTML()
	} else {
		p.RenderError("找不到文件:" + path.Join("_help", fileName))
	}

}
