template

package
v0.0.0-...-337f3ca Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CompCol       = "col"
	CompRow       = "row"
	CompForm      = "form"
	CompTable     = "table"
	CompDataTable = "datatable"
	CompTree      = "tree"
	CompTreeView  = "treeview"
	CompTabs      = "tabs"
	CompAlert     = "alert"
	CompLink      = "link"
	CompPaginator = "paginator"
	CompPopup     = "popup"
	CompBox       = "box"
	CompLabel     = "label"
	CompImage     = "image"
	CompButton    = "button"
)

Variables

View Source
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
	},
	"renderRowDataHTML": func(id, content template.HTML, value ...map[string]types.InfoItem) template.HTML {
		return template.HTML(types.ParseTableDataTmplWithID(id, string(content), value...))
	},
	"renderRowDataJS": func(id template.HTML, content template.JS, value ...map[string]types.InfoItem) template.JS {
		return template.JS(types.ParseTableDataTmplWithID(id, string(content), value...))
	},
	"attr": func(s template.HTML) template.HTMLAttr {
		return template.HTMLAttr(s)
	},
	"js": func(s interface{}) template.JS {
		if ss, ok := s.(string); ok {
			return template.JS(ss)
		}
		if ss, ok := s.(template.HTML); ok {
			return template.JS(ss)
		}
		return ""
	},
	"changeValue": func(f types.FormField, index int) types.FormField {
		if len(f.ValueArr) > 0 {
			f.Value = template.HTML(f.ValueArr[index])
		}
		if len(f.OptionsArr) > 0 {
			f.Options = f.OptionsArr[index]
		}
		if f.FormType.IsSelect() {
			f.FieldClass += "_" + strconv.Itoa(index)
		}
		return f
	},
}
View Source
var DefaultThemeNames = []string{"sword", "adminlte"}

Functions

func Add

func Add(name string, temp Template)

Add makes a template available by the provided theme name. If Add is called twice with the same name or if template is nil, it panics.

func AddComp

func AddComp(comp Component)

AddComp makes a component available by the provided name. If Add is called twice with the same name or if component is nil, it panics.

func AddFromPlugin

func AddFromPlugin(name string, mod string)

func AddLoginComp

func AddLoginComp(comp Component)

AddLoginComp add the specified login component.

func CSS

func CSS(s string) template.CSS

func CheckRequirements

func CheckRequirements() (bool, bool)

CheckRequirements check the theme and GoAdmin interdependence limit. The first return parameter means that whether GoAdmin version meets the requirement of the theme used or not. The second return parameter means that whether the version of theme used meets the requirement of GoAdmin or not.

func CheckThemeRequirements

func CheckThemeRequirements() bool

func Execute

func Execute(param *ExecuteParam) *bytes.Buffer

func GetAsset

func GetAsset(path string) ([]byte, error)

func GetComponentAsset

func GetComponentAsset() []string

func GetComponentAssetImportHTML

func GetComponentAssetImportHTML() (res template.HTML)

func GetComponentAssetWithinPage

func GetComponentAssetWithinPage() []string

func GetPageContentFromPageType

func GetPageContentFromPageType(title, desc, msg string, pt PageType) (template.HTML, template.HTML, template.HTML)

func HTML

func HTML(s string) template.HTML

func JS

func JS(s string) template.JS

func SetComp

func SetComp(name string, comp Component)

SetComp makes a component available by the provided name. If the value corresponding to the key is empty or if component is nil, it panics.

func Themes

func Themes() []string

func VersionCompare

func VersionCompare(toCompare string, versions []string) bool

func WarningPanel

func WarningPanel(msg string, pts ...PageType) types.Panel

func WarningPanelWithDescAndTitle

func WarningPanelWithDescAndTitle(msg, desc, title string, pts ...PageType) types.Panel

Types

type BaseComponent

type BaseComponent struct {
	Name      string
	HTMLData  string
	CSS       template.CSS
	JS        template.JS
	Callbacks types.Callbacks
}

func (*BaseComponent) BindActionTo

func (b *BaseComponent) BindActionTo(action types.Action, id string)

func (*BaseComponent) GetAsset

func (b *BaseComponent) GetAsset(name string) ([]byte, error)

func (*BaseComponent) GetAssetList

func (b *BaseComponent) GetAssetList() []string

func (*BaseComponent) GetCSS

func (b *BaseComponent) GetCSS() template.CSS

func (*BaseComponent) GetCallbacks

func (b *BaseComponent) GetCallbacks() types.Callbacks

func (*BaseComponent) GetContentWithData

func (b *BaseComponent) GetContentWithData(obj interface{}) template.HTML

func (*BaseComponent) GetJS

func (b *BaseComponent) GetJS() template.JS

func (*BaseComponent) GetName

func (b *BaseComponent) GetName() string

func (*BaseComponent) GetTemplate

func (b *BaseComponent) GetTemplate() (*template.Template, string)

func (*BaseComponent) IsAPage

func (b *BaseComponent) IsAPage() bool

type Component

type Component interface {
	// GetTemplate return a *template.Template and a given key.
	GetTemplate() (*template.Template, string)

	// GetAssetList return the assets url suffix used in the component.
	// example:
	//
	// {{.UrlPrefix}}/assets/login/css/bootstrap.min.css => login/css/bootstrap.min.css
	//
	// See:
	// https://github.com/backyio/go-admin/blob/master/template/login/theme1.tmpl#L32
	// https://github.com/backyio/go-admin/blob/master/template/login/list.go
	GetAssetList() []string

	// GetAsset return the asset content according to the corresponding url suffix.
	// Asset content is recommended to use the tool go-bindata to generate.
	//
	// See: http://github.com/jteeuwen/go-bindata
	GetAsset(string) ([]byte, error)

	GetContent() template.HTML

	IsAPage() bool

	GetName() string

	GetJS() template.JS
	GetCSS() template.CSS
	GetCallbacks() types.Callbacks
}

Component is the interface which stand for a ui component.

func GetComp

func GetComp(name string) Component

GetComp gets the component by registered name. If the name is not found, it panics.

type ExecuteOptions

type ExecuteOptions struct {
	Animation         bool
	NoCompress        bool
	HideSideBar       bool
	HideHeader        bool
	UpdateMenu        bool
	NavDropDownButton []*types.NavDropDownItemButton
}

func GetExecuteOptions

func GetExecuteOptions(options []ExecuteOptions) ExecuteOptions

type ExecuteParam

type ExecuteParam struct {
	User       models.UserModel
	Tmpl       *template.Template
	TmplName   string
	IsPjax     bool
	Panel      types.Panel
	Config     *c.Config
	Menu       *menu.Menu
	Animation  bool
	Buttons    types.Buttons
	NoCompress bool
	Iframe     bool
}

type PageType

type PageType uint8
const (
	NormalPage PageType = iota
	Missing404Page
	Error500Page
	NoPermission403Page
)

func GetPageTypeFromPageError

func GetPageTypeFromPageError(err errors2.PageError) PageType

type Template

type Template interface {
	Name() string

	// layout
	Col() types.ColAttribute
	Row() types.RowAttribute

	// form and table
	Form() types.FormAttribute
	Table() types.TableAttribute
	DataTable() types.DataTableAttribute

	TreeView() types.TreeViewAttribute
	Tree() types.TreeAttribute
	Tabs() types.TabsAttribute
	Alert() types.AlertAttribute
	Link() types.LinkAttribute

	Paginator() types.PaginatorAttribute
	Popup() types.PopupAttribute
	Box() types.BoxAttribute

	Label() types.LabelAttribute
	Image() types.ImgAttribute

	Button() types.ButtonAttribute

	// Builder methods
	GetTmplList() map[string]string
	GetAssetList() []string
	GetAssetImportHTML(exceptComponents ...string) template.HTML
	GetAsset(string) ([]byte, error)
	GetTemplate(bool) (*template.Template, string)
	GetVersion() string
	GetRequirements() []string
	GetHeadHTML() template.HTML
	GetFootJS() template.HTML
	Get404HTML() template.HTML
	Get500HTML() template.HTML
	Get403HTML() template.HTML
}

Template is the interface which contains methods of ui components. It will be used in the plugins for custom the ui.

func Default

func Default() Template

Default get the default template with the theme name set with the global config. If the name is not found, it panics.

func Get

func Get(theme string) Template

Get the template interface by theme name. If the name is not found, it panics.

Directories

Path Synopsis
Code generated by go-bindata.
Code generated by go-bindata.
Code generated by go-bindata.
Code generated by go-bindata.
Code generated by go-bindata.
Code generated by go-bindata.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL