types

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2024 License: Apache-2.0 Imports: 30 Imported by: 8

Documentation

Index

Constants

View Source
const (
	NavBtnSiteName = "site setting"
	NavBtnInfoName = "site info"
	NavBtnToolName = "code generate tool"
	NavBtnPlugName = "plugins"
)
View Source
const (
	ButtonTypeNavDropDownItem = "navdropdownitem"
	ButtonTypeNavDropDown     = "navdropdown"
)
View Source
const (
	PostTypeCreate = iota
	PostTypeUpdate
)
View Source
const DefaultPageSize = 10

Variables

View Source
var DefaultPageSizeList = []int{
	10,
	20,
	30,
	50,
	100,
}
View Source
var JoinFieldValueDelimiter = utils.Uuid(8)

Functions

func AddGlobalDisplayProcessFn

func AddGlobalDisplayProcessFn(f FieldFilterFn)

func GetJoinField

func GetJoinField(field string) string

func JoinField

func JoinField(table, field string) string

func ParseTableDataTmpl

func ParseTableDataTmpl(content interface{}) string

func ParseTableDataTmplWithID

func ParseTableDataTmplWithID(id template.HTML, content string, value ...map[string]InfoItem) string

func RegisterDisplayFnGenerator

func RegisterDisplayFnGenerator(key string, gen DisplayFnGenerator)

Types

type Action

type Action interface {
	Js() template.JS
	BtnAttribute() template.HTML
	BtnClass() template.HTML
	ExtContent(ctx *context.Context) template.HTML
	FooterContent(ctx *context.Context) template.HTML
	SetBtnId(btnId string)
	SetBtnData(data interface{})
	GetCallbacks() context.Node
}

type ActionButton

type ActionButton struct {
	*BaseButton
}

func GetActionButton

func GetActionButton(title template.HTML, action Action, ids ...string) *ActionButton

func (*ActionButton) Content

func (b *ActionButton) Content(ctx *context.Context) (template.HTML, template.JS)

type ActionIconButton

type ActionIconButton struct {
	Icon template.HTML
	*BaseButton
}

func GetActionIconButton

func GetActionIconButton(icon string, action Action, ids ...string) *ActionIconButton

func (*ActionIconButton) Content

func (b *ActionIconButton) Content(ctx *context.Context) (template.HTML, template.JS)

type Actions

type Actions []Action

type AddFormFieldFn

type AddFormFieldFn func(panel *FormPanel)

type AjaxData

type AjaxData struct {
	SuccessTitle   string
	SuccessText    string
	ErrorTitle     string
	ErrorText      string
	SuccessJumpURL string
	DisableJump    bool
	SuccessJS      string
	JumpInNewTab   string
}

type AlertAttribute

type AlertAttribute interface {
	SetTheme(value string) AlertAttribute
	SetTitle(value template.HTML) AlertAttribute
	SetContent(value template.HTML) AlertAttribute
	Warning(msg string) template.HTML
	GetContent() template.HTML
}

type Attribute

type Attribute struct {
	TemplateList map[string]string
	Separation   bool
}

Attribute is the component interface of template. Every component of template should implement it.

type BaseButton

type BaseButton struct {
	Id, Url, Method, Name, TypeName string
	Title                           template.HTML
	Action                          Action
}

func (*BaseButton) Content

func (b *BaseButton) Content() (template.HTML, template.JS)

func (*BaseButton) GetAction

func (b *BaseButton) GetAction() Action

func (*BaseButton) GetName

func (b *BaseButton) GetName() string

func (*BaseButton) ID

func (b *BaseButton) ID() string

func (*BaseButton) IsType

func (b *BaseButton) IsType(t string) bool

func (*BaseButton) METHOD

func (b *BaseButton) METHOD() string

func (*BaseButton) SetName

func (b *BaseButton) SetName(name string)

func (*BaseButton) Type

func (b *BaseButton) Type() string

func (*BaseButton) URL

func (b *BaseButton) URL() string

type BaseDisplayFnGenerator

type BaseDisplayFnGenerator struct{}

func (*BaseDisplayFnGenerator) HTML

func (base *BaseDisplayFnGenerator) HTML() template.HTML

func (*BaseDisplayFnGenerator) JS

type BoxAttribute

type BoxAttribute interface {
	SetHeader(value template.HTML) BoxAttribute
	SetBody(value template.HTML) BoxAttribute
	SetNoPadding() BoxAttribute
	SetFooter(value template.HTML) BoxAttribute
	SetTitle(value template.HTML) BoxAttribute
	WithHeadBorder() BoxAttribute
	SetIframeStyle(iframe bool) BoxAttribute
	SetAttr(attr template.HTMLAttr) BoxAttribute
	SetStyle(value template.HTMLAttr) BoxAttribute
	SetHeadColor(value string) BoxAttribute
	SetClass(value string) BoxAttribute
	SetTheme(value string) BoxAttribute
	SetSecondHeader(value template.HTML) BoxAttribute
	SetSecondHeadColor(value string) BoxAttribute
	WithSecondHeadBorder() BoxAttribute
	SetSecondHeaderClass(value string) BoxAttribute
	GetContent() template.HTML
}

type Button

type Button interface {
	Content(ctx *context.Context) (template.HTML, template.JS)
	GetAction() Action
	URL() string
	METHOD() string
	ID() string
	Type() string
	GetName() string
	SetName(name string)
	IsType(t string) bool
}

type ButtonAttribute

type ButtonAttribute interface {
	SetContent(value template.HTML) ButtonAttribute
	SetOrientationRight() ButtonAttribute
	SetOrientationLeft() ButtonAttribute
	SetMarginLeft(int) ButtonAttribute
	SetMarginRight(int) ButtonAttribute
	SetThemePrimary() ButtonAttribute
	SetSmallSize() ButtonAttribute
	AddClass(class string) ButtonAttribute
	SetID(id string) ButtonAttribute
	SetMiddleSize() ButtonAttribute
	SetHref(string) ButtonAttribute
	SetThemeWarning() ButtonAttribute
	SetTheme(value string) ButtonAttribute
	SetLoadingText(value template.HTML) ButtonAttribute
	SetThemeDefault() ButtonAttribute
	SetType(string) ButtonAttribute
	GetContent() template.HTML
}

type Buttons

type Buttons []Button

func (Buttons) Add

func (b Buttons) Add(btn Button) Buttons

func (Buttons) AddNavButton

func (b Buttons) AddNavButton(ico, name string, action Action) Buttons

func (Buttons) Callbacks

func (b Buttons) Callbacks() []context.Node

func (Buttons) CheckExist

func (b Buttons) CheckExist(name string) bool

func (Buttons) CheckPermission

func (b Buttons) CheckPermission(user models.UserModel) Buttons

func (Buttons) CheckPermissionWhenURLAndMethodNotEmpty

func (b Buttons) CheckPermissionWhenURLAndMethodNotEmpty(user models.UserModel) Buttons

func (Buttons) Content

func (b Buttons) Content(ctx *context.Context) (template.HTML, template.JS)

func (Buttons) Copy

func (b Buttons) Copy() Buttons

func (Buttons) FooterContent

func (b Buttons) FooterContent(ctx *context.Context) template.HTML

func (Buttons) RemoveButtonByName

func (b Buttons) RemoveButtonByName(name string) Buttons

func (Buttons) RemoveInfoNavButton

func (b Buttons) RemoveInfoNavButton() Buttons

func (Buttons) RemovePlugNavButton

func (b Buttons) RemovePlugNavButton() Buttons

func (Buttons) RemoveSiteNavButton

func (b Buttons) RemoveSiteNavButton() Buttons

func (Buttons) RemoveToolNavButton

func (b Buttons) RemoveToolNavButton() Buttons

type Callbacks

type Callbacks []context.Node

func (Callbacks) AddCallback

func (c Callbacks) AddCallback(node context.Node) Callbacks

type ColAttribute

type ColAttribute interface {
	SetSize(value S) ColAttribute
	SetContent(value template.HTML) ColAttribute
	AddContent(value template.HTML) ColAttribute
	GetContent() template.HTML
}

type Component

type Component interface {
	GetContent() template.HTML
	GetJS() template.JS
	GetCSS() template.CSS
	GetCallbacks() Callbacks
}

type ContentWrapper

type ContentWrapper func(content template.HTML) template.HTML

type DataTableAttribute

type DataTableAttribute interface {
	GetDataTableHeader() template.HTML
	SetThead(value Thead) DataTableAttribute
	SetInfoList(value []map[string]InfoItem) DataTableAttribute
	SetEditUrl(value string) DataTableAttribute
	SetDeleteUrl(value string) DataTableAttribute
	SetNewUrl(value string) DataTableAttribute
	SetPrimaryKey(value string) DataTableAttribute
	SetStyle(style string) DataTableAttribute
	SetAction(action template.HTML) DataTableAttribute
	SetIsTab(value bool) DataTableAttribute
	SetActionFold(fold bool) DataTableAttribute
	SetHideThead() DataTableAttribute
	SetLayout(value string) DataTableAttribute
	SetButtons(btns template.HTML) DataTableAttribute
	SetSticky(sticky bool) DataTableAttribute
	SetHideFilterArea(value bool) DataTableAttribute
	SetHideRowSelector(value bool) DataTableAttribute
	SetActionJs(aj template.JS) DataTableAttribute
	SetNoAction() DataTableAttribute
	SetInfoUrl(value string) DataTableAttribute
	SetDetailUrl(value string) DataTableAttribute
	SetHasFilter(hasFilter bool) DataTableAttribute
	SetSortUrl(value string) DataTableAttribute
	SetExportUrl(value string) DataTableAttribute
	SetUpdateUrl(value string) DataTableAttribute
	GetContent() template.HTML
}

type DefaultAction

type DefaultAction struct {
	Attr   template.HTML
	JS     template.JS
	Ext    template.HTML
	Footer template.HTML
}

func NewDefaultAction

func NewDefaultAction(attr, ext, footer template.HTML, js template.JS) *DefaultAction

func (*DefaultAction) BtnAttribute

func (def *DefaultAction) BtnAttribute() template.HTML

func (*DefaultAction) BtnClass

func (def *DefaultAction) BtnClass() template.HTML

func (*DefaultAction) ExtContent

func (def *DefaultAction) ExtContent(ctx *context.Context) template.HTML

func (*DefaultAction) FooterContent

func (def *DefaultAction) FooterContent(ctx *context.Context) template.HTML

func (*DefaultAction) GetCallbacks

func (def *DefaultAction) GetCallbacks() context.Node

func (*DefaultAction) Js

func (def *DefaultAction) Js() template.JS

func (*DefaultAction) SetBtnData

func (def *DefaultAction) SetBtnData(data interface{})

func (*DefaultAction) SetBtnId

func (def *DefaultAction) SetBtnId(btnId string)

type DefaultButton

type DefaultButton struct {
	*BaseButton
	Color     template.HTML
	TextColor template.HTML
	Icon      string
	Direction template.HTML
	Group     bool
}

func GetColumnButton

func GetColumnButton(title template.HTML, icon string, action Action, colors ...template.HTML) *DefaultButton

func GetDefaultButton

func GetDefaultButton(title template.HTML, icon string, action Action, colors ...template.HTML) *DefaultButton

func GetDefaultButtonGroup

func GetDefaultButtonGroup(title template.HTML, icon string, action Action, colors ...template.HTML) *DefaultButton

func (*DefaultButton) Content

func (b *DefaultButton) Content(ctx *context.Context) (template.HTML, template.JS)

type DefaultSelection

type DefaultSelection struct {
	*BaseButton
	Options     FieldOptions
	Placeholder string
	Width       int
}

func GetDefaultSelection

func GetDefaultSelection(placeholder string, options FieldOptions, action Action, widths ...int) *DefaultSelection

func (*DefaultSelection) Content

func (b *DefaultSelection) Content(ctx *context.Context) (template.HTML, template.JS)

type DeleteFn

type DeleteFn func(ids []string) error

type DeleteFnWithRes

type DeleteFnWithRes func(ids []string, res error) error

type DisplayFnGenerator

type DisplayFnGenerator interface {
	Get(ctx *context.Context, args ...interface{}) FieldFilterFn
	JS() template.HTML
	HTML() template.HTML
}

type DisplayProcessFnChains

type DisplayProcessFnChains []FieldFilterFn

func AddLimit

func AddLimit(limit int) DisplayProcessFnChains

func AddSubstr

func AddSubstr(start int, end int) DisplayProcessFnChains

func AddToLower

func AddToLower() DisplayProcessFnChains

func AddToTitle

func AddToTitle() DisplayProcessFnChains

func AddToUpper

func AddToUpper() DisplayProcessFnChains

func AddTrimSpace

func AddTrimSpace() DisplayProcessFnChains

func AddXssFilter

func AddXssFilter() DisplayProcessFnChains

func AddXssJsFilter

func AddXssJsFilter() DisplayProcessFnChains

func (DisplayProcessFnChains) Add

func (DisplayProcessFnChains) Append

func (DisplayProcessFnChains) Copy

func (DisplayProcessFnChains) Valid

func (d DisplayProcessFnChains) Valid() bool

type ExportProcessFn

type ExportProcessFn func(param parameter.Parameters) (PanelInfo, error)

type Field

type Field struct {
	Head     string
	Field    string
	TypeName db.DatabaseType

	Joins Joins

	Width       int
	Sortable    bool
	EditAble    bool
	Fixed       bool
	Filterable  bool
	Hide        bool
	HideForList bool

	EditType    table.Type
	EditOptions FieldOptions

	FilterFormFields []FilterFormField

	IsEditParam   bool
	IsDeleteParam bool
	IsDetailParam bool

	FieldDisplay
}

Field is the table field.

func (Field) Exist

func (f Field) Exist() bool

func (Field) GetFilterFormFields

func (f Field) GetFilterFormFields(params parameter.Parameters, headField string, sql ...*db.SQL) []FormField

type FieldDisplay

type FieldDisplay struct {
	Display              FieldFilterFn
	DisplayProcessChains DisplayProcessFnChains
}

func (FieldDisplay) AddLimit

func (f FieldDisplay) AddLimit(limit int) DisplayProcessFnChains

func (FieldDisplay) AddSubstr

func (f FieldDisplay) AddSubstr(start int, end int) DisplayProcessFnChains

func (FieldDisplay) AddToLower

func (f FieldDisplay) AddToLower() DisplayProcessFnChains

func (FieldDisplay) AddToTitle

func (f FieldDisplay) AddToTitle() DisplayProcessFnChains

func (FieldDisplay) AddToUpper

func (f FieldDisplay) AddToUpper() DisplayProcessFnChains

func (FieldDisplay) AddTrimSpace

func (f FieldDisplay) AddTrimSpace() DisplayProcessFnChains

func (FieldDisplay) IsNotSelectRes

func (f FieldDisplay) IsNotSelectRes(v interface{}) bool

func (FieldDisplay) ToDisplay

func (f FieldDisplay) ToDisplay(value FieldModel) interface{}

func (FieldDisplay) ToDisplayHTML

func (f FieldDisplay) ToDisplayHTML(value FieldModel) template.HTML

func (FieldDisplay) ToDisplayString

func (f FieldDisplay) ToDisplayString(value FieldModel) string

func (FieldDisplay) ToDisplayStringArray

func (f FieldDisplay) ToDisplayStringArray(value FieldModel) []string

func (FieldDisplay) ToDisplayStringArrayArray

func (f FieldDisplay) ToDisplayStringArrayArray(value FieldModel) [][]string

type FieldDotColor

type FieldDotColor string
const (
	FieldDotColorDanger  FieldDotColor = "danger"
	FieldDotColorInfo    FieldDotColor = "info"
	FieldDotColorPrimary FieldDotColor = "primary"
	FieldDotColorSuccess FieldDotColor = "success"
)

type FieldFilterFn

type FieldFilterFn func(value FieldModel) interface{}

FieldDisplay is filter function of data.

type FieldGetImgArrFn

type FieldGetImgArrFn func(value string) []string

type FieldLabelParam

type FieldLabelParam struct {
	Color template.HTML
	Type  string
}

type FieldList

type FieldList []Field

func (FieldList) GetFieldByFieldName

func (f FieldList) GetFieldByFieldName(name string) Field

func (FieldList) GetFieldFilterProcessValue

func (f FieldList) GetFieldFilterProcessValue(key, value, keyIndex string) string

func (FieldList) GetFieldJoinTable

func (f FieldList) GetFieldJoinTable(key string) string

func (FieldList) GetThead

func (f FieldList) GetThead(info TableInfo, params parameter.Parameters, columns []string) (Thead, string, string)

func (FieldList) GetTheadAndFilterForm

func (f FieldList) GetTheadAndFilterForm(
	info TableInfo, params parameter.Parameters, columns []string,
	sql ...func() *db.SQL,
) (Thead, string, string, string, []string, []FormField)

type FieldModel

type FieldModel struct {
	// The primaryKey of the table.
	ID string

	// The value of the single query result.
	Value string

	// The current row data.
	Row map[string]interface{}

	// Post type
	PostType PostType
}

FieldModel is the single query result.

func (FieldModel) IsCreate

func (m FieldModel) IsCreate() bool

func (FieldModel) IsUpdate

func (m FieldModel) IsUpdate() bool

type FieldModelValue

type FieldModelValue []string

func (FieldModelValue) First

func (r FieldModelValue) First() string

func (FieldModelValue) Value

func (r FieldModelValue) Value() string

type FieldOption

type FieldOption struct {
	Text          string            `json:"text"`
	Value         string            `json:"value"`
	TextHTML      template.HTML     `json:"-"`
	Selected      bool              `json:"-"`
	SelectedLabel template.HTML     `json:"-"`
	Extra         map[string]string `json:"-"`
}

type FieldOptions

type FieldOptions []FieldOption

func (FieldOptions) Copy

func (fo FieldOptions) Copy() FieldOptions

func (FieldOptions) Marshal

func (fo FieldOptions) Marshal() string

func (FieldOptions) SetSelected

func (fo FieldOptions) SetSelected(val interface{}, labels []template.HTML) FieldOptions

func (FieldOptions) SetSelectedLabel

func (fo FieldOptions) SetSelectedLabel(labels []template.HTML) FieldOptions

type FieldProgressBarData

type FieldProgressBarData struct {
	Style string
	Size  string
	Max   int
}

type FilterFormField

type FilterFormField struct {
	Type        form.Type
	Options     FieldOptions
	OptionTable OptionTable
	Width       int
	HeadWidth   int
	InputWidth  int
	Style       template.HTMLAttr
	Operator    FilterOperator
	OptionExt   template.JS
	Head        string
	Placeholder string
	HelpMsg     template.HTML
	NoIcon      bool
	ProcessFn   func(string) string
}

type FilterOperator

type FilterOperator string
const (
	FilterOperatorILike          FilterOperator = "ilike"
	FilterOperatorLike           FilterOperator = "like"
	FilterOperatorGreater        FilterOperator = ">"
	FilterOperatorGreaterOrEqual FilterOperator = ">="
	FilterOperatorEqual          FilterOperator = "="
	FilterOperatorNotEqual       FilterOperator = "!="
	FilterOperatorLess           FilterOperator = "<"
	FilterOperatorLessOrEqual    FilterOperator = "<="
	FilterOperatorFree           FilterOperator = "free"
)

func GetOperatorFromValue

func GetOperatorFromValue(value string) FilterOperator

func (FilterOperator) AddOrNot

func (o FilterOperator) AddOrNot() bool

func (FilterOperator) Label

func (o FilterOperator) Label() template.HTML

func (FilterOperator) String

func (o FilterOperator) String() string

func (FilterOperator) Valid

func (o FilterOperator) Valid() bool

func (FilterOperator) Value

func (o FilterOperator) Value() string

type FilterType

type FilterType struct {
	Options     FieldOptions
	Process     func(string) string
	OptionExt   map[string]interface{}
	FormType    form.Type
	HelpMsg     template.HTML
	Style       template.HTMLAttr
	Operator    FilterOperator
	Head        string
	Placeholder string
	Width       int
	HeadWidth   int
	InputWidth  int
	NoHead      bool
	NoIcon      bool
}

type FormAttribute

type FormAttribute interface {
	SetHeader(value template.HTML) FormAttribute
	SetContent(value FormFields) FormAttribute
	SetTabContents(value []FormFields) FormAttribute
	SetTabHeaders(value []string) FormAttribute
	SetFooter(value template.HTML) FormAttribute
	SetPrefix(value string) FormAttribute
	SetUrl(value string) FormAttribute
	SetPrimaryKey(value string) FormAttribute
	SetHorizontal(value bool) FormAttribute
	SetId(id string) FormAttribute
	SetAjax(successJS, errorJS template.JS) FormAttribute
	SetHiddenFields(fields map[string]string) FormAttribute
	SetFieldsHTML(html template.HTML) FormAttribute
	SetMethod(value string) FormAttribute
	SetHeadWidth(width int) FormAttribute
	SetInputWidth(width int) FormAttribute
	SetTitle(value template.HTML) FormAttribute
	SetLayout(layout form.Layout) FormAttribute
	SetOperationFooter(value template.HTML) FormAttribute
	GetDefaultBoxHeader(hideBack bool) template.HTML
	GetDetailBoxHeader(editUrl, deleteUrl string) template.HTML
	GetBoxHeaderNoButton() template.HTML
	GetContent() template.HTML
}

type FormField

type FormField struct {
	Field          string          `json:"field"`
	FieldClass     string          `json:"field_class"`
	TypeName       db.DatabaseType `json:"type_name"`
	Head           string          `json:"head"`
	Foot           template.HTML   `json:"foot"`
	FormType       form2.Type      `json:"form_type"`
	FatherFormType form2.Type      `json:"father_form_type"`
	FatherField    string          `json:"father_field"`

	RowWidth int
	RowFlag  uint8

	Default                template.HTML  `json:"default"`
	DefaultArr             interface{}    `json:"default_arr"`
	Value                  template.HTML  `json:"value"`
	Value2                 string         `json:"value_2"`
	ValueArr               []string       `json:"value_arr"`
	Value2Arr              []string       `json:"value_2_arr"`
	Options                FieldOptions   `json:"options"`
	OptionsArr             []FieldOptions `json:"options_arr"`
	DefaultOptionDelimiter string         `json:"default_option_delimiter"`
	Label                  template.HTML  `json:"label"`
	HideLabel              bool           `json:"hide_label"`

	Placeholder string `json:"placeholder"`

	CustomContent template.HTML `json:"custom_content"`
	CustomJs      template.JS   `json:"custom_js"`
	CustomCss     template.CSS  `json:"custom_css"`

	Editable         bool `json:"editable"`
	NotAllowEdit     bool `json:"not_allow_edit"`
	NotAllowAdd      bool `json:"not_allow_add"`
	DisplayButNotAdd bool `json:"display_but_not_add"`
	Must             bool `json:"must"`
	Hide             bool `json:"hide"`
	CreateHide       bool `json:"create_hide"`
	EditHide         bool `json:"edit_hide"`

	Width int `json:"width"`

	InputWidth int `json:"input_width"`
	HeadWidth  int `json:"head_width"`

	Joins Joins `json:"-"`

	Divider      bool   `json:"divider"`
	DividerTitle string `json:"divider_title"`

	HelpMsg template.HTML `json:"help_msg"`

	TableFields FormFields

	Style  template.HTMLAttr `json:"style"`
	NoIcon bool              `json:"no_icon"`

	OptionExt       template.JS     `json:"option_ext"`
	OptionExt2      template.JS     `json:"option_ext_2"`
	OptionInitFn    OptionInitFn    `json:"-"`
	OptionArrInitFn OptionArrInitFn `json:"-"`
	OptionTable     OptionTable     `json:"-"`

	FieldDisplay `json:"-"`
	PostFilterFn PostFieldFilterFn `json:"-"`
}

FormField is the form field with different options.

func (*FormField) FillCustomContent

func (f *FormField) FillCustomContent() *FormField

func (*FormField) GetRawValue

func (f *FormField) GetRawValue(columns []string, v interface{}) string

func (*FormField) UpdateDefaultValue

func (f *FormField) UpdateDefaultValue(sql *db.SQL) *FormField

func (*FormField) UpdateValue

func (f *FormField) UpdateValue(id, val string, res map[string]interface{}, sql *db.SQL) *FormField

type FormFields

type FormFields []FormField

func (FormFields) Add

func (f FormFields) Add(field *FormField) FormFields

func (FormFields) Copy

func (f FormFields) Copy() FormFields

func (FormFields) FillCustomContent

func (f FormFields) FillCustomContent() FormFields

func (FormFields) FindByFieldName

func (f FormFields) FindByFieldName(field string) *FormField

func (FormFields) FindIndexByFieldName

func (f FormFields) FindIndexByFieldName(field string) int

func (FormFields) FindTableChildren

func (f FormFields) FindTableChildren(father string) []*FormField

func (FormFields) FindTableField

func (f FormFields) FindTableField(field, father string) *FormField

func (FormFields) RemoveNotShow

func (f FormFields) RemoveNotShow() FormFields

type FormPanel

type FormPanel struct {
	FieldList FormFields `json:"field_list"`

	// Warn: may be deprecated in the future. `json:""
	TabGroups  TabGroups  `json:"tab_groups"`
	TabHeaders TabHeaders `json:"tab_headers"`

	Table       string `json:"table"`
	Title       string `json:"title"`
	Description string `json:"description"`

	Validator    FormPostFn       `json:"validator"`
	PostHook     FormPostFn       `json:"post_hook"`
	PreProcessFn FormPreProcessFn `json:"pre_process_fn"`

	Callbacks Callbacks `json:"callbacks"`

	UpdateFn FormPostFn `json:"update_fn"`
	InsertFn FormPostFn `json:"insert_fn"`

	IsHideContinueEditCheckBox bool `json:"is_hide_continue_edit_check_box"`
	IsHideContinueNewCheckBox  bool `json:"is_hide_continue_new_check_box"`
	IsHideResetButton          bool `json:"is_hide_reset_button"`
	IsHideBackButton           bool `json:"is_hide_back_button"`

	Layout form2.Layout `json:"layout"`

	HTMLContent template.HTML `json:"html_content"`

	Header template.HTML `json:"header"`

	InputWidth int `json:"input_width"`
	HeadWidth  int `json:"head_width"`

	FormNewTitle    template.HTML `json:"form_new_title"`
	FormNewBtnWord  template.HTML `json:"form_new_btn_word"`
	FormEditTitle   template.HTML `json:"form_edit_title"`
	FormEditBtnWord template.HTML `json:"form_edit_btn_word"`

	Ajax          bool        `json:"ajax"`
	AjaxSuccessJS template.JS `json:"ajax_success_js"`
	AjaxErrorJS   template.JS `json:"ajax_error_js"`

	Responder Responder `json:"responder"`

	Wrapper ContentWrapper `json:"wrapper"`

	HideSideBar bool `json:"hide_side_bar"`

	HeaderHtml template.HTML `json:"header_html"`
	FooterHtml template.HTML `json:"footer_html"`

	PageError     errors.PageError `json:"page_error"`
	PageErrorHTML template.HTML    `json:"page_error_html"`

	NoCompress bool `json:"no_compress"`
	// contains filtered or unexported fields
}

FormPanel

func NewFormPanel

func NewFormPanel() *FormPanel

func (*FormPanel) AddCSS

func (f *FormPanel) AddCSS(css template.CSS) *FormPanel

func (*FormPanel) AddField

func (f *FormPanel) AddField(head, field string, filedType db.DatabaseType, formType form2.Type) *FormPanel

func (*FormPanel) AddFieldTr

func (f *FormPanel) AddFieldTr(
	ctx *context.Context, head, field string, filedType db.DatabaseType, formType form2.Type,
) *FormPanel

func (*FormPanel) AddFieldWithTranslation

func (f *FormPanel) AddFieldWithTranslation(
	ctx *context.Context, head, field string, filedType db.DatabaseType,
	formType form2.Type,
) *FormPanel

func (*FormPanel) AddJS

func (f *FormPanel) AddJS(js template.JS) *FormPanel

func (*FormPanel) AddLimitFilter

func (f *FormPanel) AddLimitFilter(limit int) *FormPanel

func (*FormPanel) AddRow

func (f *FormPanel) AddRow(addFields AddFormFieldFn) *FormPanel

func (*FormPanel) AddSubstrFilter

func (f *FormPanel) AddSubstrFilter(start int, end int) *FormPanel

func (*FormPanel) AddTable

func (f *FormPanel) AddTable(head, field string, addFields AddFormFieldFn) *FormPanel

func (*FormPanel) AddToLowerFilter

func (f *FormPanel) AddToLowerFilter() *FormPanel

func (*FormPanel) AddToTitleFilter

func (f *FormPanel) AddToTitleFilter() *FormPanel

func (*FormPanel) AddToUpperFilter

func (f *FormPanel) AddToUpperFilter() *FormPanel

func (*FormPanel) AddTrimSpaceFilter

func (f *FormPanel) AddTrimSpaceFilter() *FormPanel

func (*FormPanel) AddXssFilter

func (f *FormPanel) AddXssFilter() *FormPanel

func (*FormPanel) AddXssJsFilter

func (f *FormPanel) AddXssJsFilter() *FormPanel

func (*FormPanel) EnableAjax

func (f *FormPanel) EnableAjax(msgs ...string) *FormPanel

func (*FormPanel) EnableAjaxData

func (f *FormPanel) EnableAjaxData(data AjaxData) *FormPanel

func (*FormPanel) FieldCustomContent

func (f *FormPanel) FieldCustomContent(content template.HTML) *FormPanel

func (*FormPanel) FieldCustomCss

func (f *FormPanel) FieldCustomCss(css template.CSS) *FormPanel

func (*FormPanel) FieldCustomJs

func (f *FormPanel) FieldCustomJs(js template.JS) *FormPanel

func (*FormPanel) FieldDefault

func (f *FormPanel) FieldDefault(def string) *FormPanel

func (*FormPanel) FieldDefaultOptionDelimiter

func (f *FormPanel) FieldDefaultOptionDelimiter(delimiter string) *FormPanel

func (*FormPanel) FieldDisableWhenCreate

func (f *FormPanel) FieldDisableWhenCreate() *FormPanel

FieldDisableWhenCreate means when create record the field can not be edited, displayed and submitted.

func (*FormPanel) FieldDisableWhenUpdate

func (f *FormPanel) FieldDisableWhenUpdate() *FormPanel

FieldDisableWhenUpdate means when update record the field can not be edited, displayed and submitted.

func (*FormPanel) FieldDisplay

func (f *FormPanel) FieldDisplay(filter FieldFilterFn) *FormPanel

func (*FormPanel) FieldDisplayButCanNotEditWhenCreate

func (f *FormPanel) FieldDisplayButCanNotEditWhenCreate() *FormPanel

FieldDisplayButCanNotEditWhenCreate means when create record the field can not be edited but will still be displayed and submitted.

func (*FormPanel) FieldDisplayButCanNotEditWhenUpdate

func (f *FormPanel) FieldDisplayButCanNotEditWhenUpdate() *FormPanel

FieldDisplayButCanNotEditWhenUpdate means when update record the field can not be edited but will still be displayed and submitted.

func (*FormPanel) FieldDivider

func (f *FormPanel) FieldDivider(title ...string) *FormPanel

func (*FormPanel) FieldEnableFileUpload

func (f *FormPanel) FieldEnableFileUpload(data ...interface{}) *FormPanel

func (*FormPanel) FieldFoot

func (f *FormPanel) FieldFoot(foot template.HTML) *FormPanel

func (*FormPanel) FieldFormType

func (f *FormPanel) FieldFormType(formType form2.Type) *FormPanel

func (*FormPanel) FieldHeadWidth

func (f *FormPanel) FieldHeadWidth(width int) *FormPanel

func (*FormPanel) FieldHelpMsg

func (f *FormPanel) FieldHelpMsg(s template.HTML) *FormPanel

func (*FormPanel) FieldHide

func (f *FormPanel) FieldHide() *FormPanel

func (*FormPanel) FieldHideLabel

func (f *FormPanel) FieldHideLabel() *FormPanel

func (*FormPanel) FieldHideWhenCreate

func (f *FormPanel) FieldHideWhenCreate() *FormPanel

FieldHideWhenCreate means when create record the field can not be edited and displayed, but will be submitted.

func (*FormPanel) FieldHideWhenUpdate

func (f *FormPanel) FieldHideWhenUpdate() *FormPanel

FieldHideWhenUpdate means when update record the field can not be edited and displayed, but will be submitted.

func (*FormPanel) FieldInputWidth

func (f *FormPanel) FieldInputWidth(width int) *FormPanel

func (*FormPanel) FieldLimit

func (f *FormPanel) FieldLimit(limit int) *FormPanel

FieldLimit limit the field length.

func (*FormPanel) FieldMust

func (f *FormPanel) FieldMust() *FormPanel

func (*FormPanel) FieldNotAllowAdd

func (f *FormPanel) FieldNotAllowAdd() *FormPanel

FieldNotAllowAdd means when create record the field can not be edited, displayed and submitted. Deprecated: Use FieldDisableWhenCreate instead.

func (*FormPanel) FieldNotAllowEdit

func (f *FormPanel) FieldNotAllowEdit() *FormPanel

FieldNotAllowEdit means when update record the field can not be edited but will still be displayed and submitted. Deprecated: Use FieldDisplayButCanNotEditWhenUpdate instead.

func (*FormPanel) FieldNow

func (f *FormPanel) FieldNow() *FormPanel

func (*FormPanel) FieldNowWhenInsert

func (f *FormPanel) FieldNowWhenInsert() *FormPanel

func (*FormPanel) FieldNowWhenUpdate

func (f *FormPanel) FieldNowWhenUpdate() *FormPanel

func (*FormPanel) FieldOnChoose

func (f *FormPanel) FieldOnChoose(val, field string, value template.HTML) *FormPanel

FieldOnChoose set the given value of the given field when choose the value of val.

func (*FormPanel) FieldOnChooseAjax

func (f *FormPanel) FieldOnChooseAjax(field, url string, handler Handler, custom ...template.HTML) *FormPanel

FieldOnChooseAjax set the url and handler that will be called when field be choosed. The handler will return the option of the field. It will help to link two or more form items. For example:

FieldOnChooseAjax("city", "/search/city", func(ctx *context.Context) (success bool, msg string, data interface{}) {
	return true, "ok", selection.Data{
		Results: selection.Options{
			{Text: "GuangZhou", ID: "1"},
			{Text: "ShenZhen", ID: "2"},
			{Text: "BeiJing", ID: "3"},
			{Text: "ShangHai", ID: "4"},
		}
	}
})

When you choose the country, it trigger the action of ajax which be sent to the given handler, and return the city options to the field city.

func (*FormPanel) FieldOnChooseCustom

func (f *FormPanel) FieldOnChooseCustom(js template.HTML) *FormPanel

FieldOnChooseCustom set the js that will be called when filter option be selected.

func (*FormPanel) FieldOnChooseDisable

func (f *FormPanel) FieldOnChooseDisable(value string, field ...string) *FormPanel

FieldOnChooseDisable disable the fields when value to be chosen.

func (*FormPanel) FieldOnChooseHide

func (f *FormPanel) FieldOnChooseHide(value string, field ...string) *FormPanel

FieldOnChooseHide hide the fields when value to be chosen.

func (*FormPanel) FieldOnChooseMap

func (f *FormPanel) FieldOnChooseMap(m map[string]LinkField) *FormPanel

FieldOnChooseMap set the actions that will be taken when filter option be selected. For example:

map[string]types.LinkField{
     "men": {Field: "ip", Value:"127.0.0.1"},
     "women": {Field: "ip", Hide: true},
     "other": {Field: "ip", Disable: true}
}

mean when choose men, the value of field ip will be set to 127.0.0.1, when choose women, field ip will be hidden, and when choose other, field ip will be disabled.

func (*FormPanel) FieldOnChooseOptionsHide

func (f *FormPanel) FieldOnChooseOptionsHide(values []string, field ...string) *FormPanel

FieldOnChooseOptionsHide display the fields when value to be chosen.

func (*FormPanel) FieldOnChooseOptionsShow

func (f *FormPanel) FieldOnChooseOptionsShow(values []string, field ...string) *FormPanel

FieldOnChooseOptionsShow display the fields when values to be chosen.

func (*FormPanel) FieldOnChooseShow

func (f *FormPanel) FieldOnChooseShow(value string, field ...string) *FormPanel

FieldFilterOnChooseShow display the fields when value to be chosen.

func (*FormPanel) FieldOnSearch

func (f *FormPanel) FieldOnSearch(url string, handler Handler, delay ...int) *FormPanel

FieldOnSearch set the url and the corresponding handler which has some backend logic and return the options of the field. For example:

FieldOnSearch("/search/city", func(ctx *context.Context) (success bool, msg string, data interface{}) {
	return true, "ok", selection.Data{
		Results: selection.Options{
			{Text: "GuangZhou", ID: "1"},
			{Text: "ShenZhen", ID: "2"},
			{Text: "BeiJing", ID: "3"},
			{Text: "ShangHai", ID: "4"},
		}
	}
}, 1000)

func (*FormPanel) FieldOptionExt

func (f *FormPanel) FieldOptionExt(m map[string]interface{}) *FormPanel

FieldOptionExt set the option extension js of the field.

func (*FormPanel) FieldOptionExt2

func (f *FormPanel) FieldOptionExt2(m map[string]interface{}) *FormPanel

func (*FormPanel) FieldOptionExtJS

func (f *FormPanel) FieldOptionExtJS(js template.JS) *FormPanel

func (*FormPanel) FieldOptionExtJS2

func (f *FormPanel) FieldOptionExtJS2(js template.JS) *FormPanel

func (*FormPanel) FieldOptionInitFn

func (f *FormPanel) FieldOptionInitFn(fn OptionInitFn) *FormPanel

func (*FormPanel) FieldOptions

func (f *FormPanel) FieldOptions(options FieldOptions) *FormPanel

FieldOptions set options for a filterable field to select. It will work when you set the FormType of the field to SelectSingle/Select/SelectBox.

func (*FormPanel) FieldOptionsFromTable

func (f *FormPanel) FieldOptionsFromTable(
	table, textFieldName, valueFieldName string, process ...OptionTableQueryProcessFn,
) *FormPanel

FieldOptionsFromTable set options for a filterable field to select. The options is from other table. For example,

`FieldOptionsFromTable("roles", "name", "id")`

will generate the sql like:

`select id, name from roles`.

And the `id` will be the value of options, `name` is the text to be shown.

func (*FormPanel) FieldOptionsTableProcessFn

func (f *FormPanel) FieldOptionsTableProcessFn(fn OptionProcessFn) *FormPanel

func (*FormPanel) FieldPlaceholder

func (f *FormPanel) FieldPlaceholder(placeholder string) *FormPanel

func (*FormPanel) FieldPostFilterFn

func (f *FormPanel) FieldPostFilterFn(post PostFieldFilterFn) *FormPanel

func (*FormPanel) FieldRowWidth

func (f *FormPanel) FieldRowWidth(width int) *FormPanel

func (*FormPanel) FieldSubstr

func (f *FormPanel) FieldSubstr(start int, end int) *FormPanel

FieldSubstr intercept string of the field.

func (*FormPanel) FieldToLower

func (f *FormPanel) FieldToLower() *FormPanel

FieldToLower update the field to a string with all Unicode letters mapped to their lower case.

func (*FormPanel) FieldToTitle

func (f *FormPanel) FieldToTitle() *FormPanel

FieldToTitle update the field to a string that begin words mapped to their Unicode title case.

func (*FormPanel) FieldToUpper

func (f *FormPanel) FieldToUpper() *FormPanel

FieldToUpper update the field to a string with all Unicode letters mapped to their upper case.

func (*FormPanel) FieldTrimSpace

func (f *FormPanel) FieldTrimSpace() *FormPanel

FieldTrimSpace trim space of the field.

func (*FormPanel) FieldValue

func (f *FormPanel) FieldValue(value string) *FormPanel

func (*FormPanel) FieldWidth

func (f *FormPanel) FieldWidth(width int) *FormPanel

func (*FormPanel) FieldXssFilter

func (f *FormPanel) FieldXssFilter() *FormPanel

FieldXssFilter escape field with html.Escape.

func (*FormPanel) FieldsWithDefaultValue

func (f *FormPanel) FieldsWithDefaultValue(sql ...func() *db.SQL) FormFields

func (*FormPanel) FieldsWithValue

func (f *FormPanel) FieldsWithValue(
	pk, id string, columns []string, res map[string]interface{}, sql func() *db.SQL,
) FormFields

func (*FormPanel) GetNewFormFields

func (f *FormPanel) GetNewFormFields(sql ...func() *db.SQL) (FormFields, []FormFields, []string)

func (*FormPanel) GroupField

func (f *FormPanel) GroupField(sql ...func() *db.SQL) ([]FormFields, []string)

func (*FormPanel) GroupFieldWithValue

func (f *FormPanel) GroupFieldWithValue(
	pk, id string, columns []string, res map[string]interface{}, sql func() *db.SQL,
) ([]FormFields, []string)

func (*FormPanel) HasError

func (f *FormPanel) HasError() bool

func (*FormPanel) HideBackButton

func (f *FormPanel) HideBackButton() *FormPanel

func (*FormPanel) HideContinueEditCheckBox

func (f *FormPanel) HideContinueEditCheckBox() *FormPanel

func (*FormPanel) HideContinueNewCheckBox

func (f *FormPanel) HideContinueNewCheckBox() *FormPanel

func (*FormPanel) HideResetButton

func (f *FormPanel) HideResetButton() *FormPanel

func (*FormPanel) OperationURL

func (f *FormPanel) OperationURL(id string) string

func (*FormPanel) Set400Error

func (f *FormPanel) Set400Error(content ...template.HTML) *FormPanel

func (*FormPanel) Set403Error

func (f *FormPanel) Set403Error(content ...template.HTML) *FormPanel

func (*FormPanel) Set404Error

func (f *FormPanel) Set404Error(content ...template.HTML) *FormPanel

func (*FormPanel) Set500Error

func (f *FormPanel) Set500Error(content ...template.HTML) *FormPanel

func (*FormPanel) SetAjaxErrorJS

func (f *FormPanel) SetAjaxErrorJS(js template.JS) *FormPanel

func (*FormPanel) SetAjaxSuccessJS

func (f *FormPanel) SetAjaxSuccessJS(js template.JS) *FormPanel

func (*FormPanel) SetDescription

func (f *FormPanel) SetDescription(desc string) *FormPanel

func (*FormPanel) SetError

func (f *FormPanel) SetError(err errors.PageError, content ...template.HTML) *FormPanel

func (*FormPanel) SetFooterHtml

func (f *FormPanel) SetFooterHtml(footer template.HTML) *FormPanel

func (*FormPanel) SetFormEditBtnWord

func (f *FormPanel) SetFormEditBtnWord(word template.HTML) *FormPanel

func (*FormPanel) SetFormEditTitle

func (f *FormPanel) SetFormEditTitle(title template.HTML) *FormPanel

func (*FormPanel) SetFormNewBtnWord

func (f *FormPanel) SetFormNewBtnWord(word template.HTML) *FormPanel

func (*FormPanel) SetFormNewTitle

func (f *FormPanel) SetFormNewTitle(title template.HTML) *FormPanel

func (*FormPanel) SetHTMLContent

func (f *FormPanel) SetHTMLContent(content template.HTML) *FormPanel

func (*FormPanel) SetHeadWidth

func (f *FormPanel) SetHeadWidth(width int) *FormPanel

func (*FormPanel) SetHeader

func (f *FormPanel) SetHeader(content template.HTML) *FormPanel

func (*FormPanel) SetHeaderHtml

func (f *FormPanel) SetHeaderHtml(header template.HTML) *FormPanel

func (*FormPanel) SetHideSideBar

func (f *FormPanel) SetHideSideBar() *FormPanel

func (*FormPanel) SetInputWidth

func (f *FormPanel) SetInputWidth(width int) *FormPanel

func (*FormPanel) SetInsertFn

func (f *FormPanel) SetInsertFn(fn FormPostFn) *FormPanel

func (*FormPanel) SetLayout

func (f *FormPanel) SetLayout(layout form2.Layout) *FormPanel

func (*FormPanel) SetNoCompress

func (f *FormPanel) SetNoCompress() *FormPanel

func (*FormPanel) SetPostHook

func (f *FormPanel) SetPostHook(fn FormPostFn) *FormPanel

func (*FormPanel) SetPostValidator

func (f *FormPanel) SetPostValidator(va FormPostFn) *FormPanel

func (*FormPanel) SetPreProcessFn

func (f *FormPanel) SetPreProcessFn(fn FormPreProcessFn) *FormPanel

func (*FormPanel) SetPrimaryKey

func (f *FormPanel) SetPrimaryKey(name string, typ db.DatabaseType) *FormPanel

func (*FormPanel) SetResponder

func (f *FormPanel) SetResponder(responder Responder) *FormPanel

func (*FormPanel) SetTabGroups

func (f *FormPanel) SetTabGroups(groups TabGroups) *FormPanel

func (*FormPanel) SetTabHeaders

func (f *FormPanel) SetTabHeaders(headers ...string) *FormPanel

func (*FormPanel) SetTable

func (f *FormPanel) SetTable(table string) *FormPanel

func (*FormPanel) SetTitle

func (f *FormPanel) SetTitle(title string) *FormPanel

func (*FormPanel) SetUpdateFn

func (f *FormPanel) SetUpdateFn(fn FormPostFn) *FormPanel

func (*FormPanel) SetWrapper

func (f *FormPanel) SetWrapper(wrapper ContentWrapper) *FormPanel

type FormPostFn

type FormPostFn func(values form.Values) error

type FormPreProcessFn

type FormPreProcessFn func(values form.Values) form.Values

type GetDataFn

type GetDataFn func(param parameter.Parameters) ([]map[string]interface{}, int)

type GetPanelFn

type GetPanelFn func(ctx interface{}) (Panel, error)

type GetPanelInfoFn

type GetPanelInfoFn func(ctx *context.Context) (Panel, error)

type GroupFieldHeaders

type GroupFieldHeaders []string

type GroupFormFields

type GroupFormFields []FormFields

type Handler

type Handler func(ctx *context.Context) (success bool, msg string, data interface{})

func (Handler) Wrap

func (h Handler) Wrap() context.Handler

type ImgAttribute

type ImgAttribute interface {
	SetWidth(value string) ImgAttribute
	SetHeight(value string) ImgAttribute
	WithModal() ImgAttribute
	SetSrc(value template.HTML) ImgAttribute
	GetContent() template.HTML
}

type InfoItem

type InfoItem struct {
	Content template.HTML `json:"content"`
	Value   string        `json:"value"`
}

type InfoList

type InfoList []map[string]InfoItem

func (InfoList) GroupBy

func (i InfoList) GroupBy(groups TabGroups) []InfoList

type InfoPanel

type InfoPanel struct {
	Ctx *context.Context

	FieldList FieldList

	Table       string
	Title       string
	Description string

	// Warn: may be deprecated future.
	TabGroups  TabGroups
	TabHeaders TabHeaders

	Sort      Sort
	SortField string

	PageSizeList    []int
	DefaultPageSize int

	ExportType      int
	ExportProcessFn ExportProcessFn

	IsHideNewButton    bool
	IsHideExportButton bool
	IsHideEditButton   bool
	IsHideDeleteButton bool
	IsHideDetailButton bool
	IsHideFilterButton bool
	IsHideRowSelector  bool
	IsHidePagination   bool
	IsHideFilterArea   bool
	IsHideQueryInfo    bool
	FilterFormLayout   form.Layout

	FilterFormHeadWidth  int
	FilterFormInputWidth int

	Wheres    Wheres
	WhereRaws WhereRaw

	Callbacks Callbacks

	Buttons Buttons

	TableLayout string

	DeleteHook  DeleteFn
	PreDeleteFn DeleteFn
	DeleteFn    DeleteFn

	DeleteHookWithRes DeleteFnWithRes

	GetDataFn GetDataFn

	ActionButtons    Buttons
	ActionButtonFold bool

	DisplayGeneratorRecords map[string]struct{}

	QueryFilterFn       QueryFilterFn
	UpdateParametersFns []UpdateParametersFn

	Wrapper ContentWrapper

	// column operation buttons
	Action     template.HTML
	HeaderHtml template.HTML
	FooterHtml template.HTML

	PageError     errors.PageError
	PageErrorHTML template.HTML

	NoCompress  bool
	HideSideBar bool

	AutoRefresh uint
	// contains filtered or unexported fields
}

InfoPanel

func NewInfoPanel

func NewInfoPanel(ctx *context.Context, pk string) *InfoPanel

func (*InfoPanel) AddActionButton

func (i *InfoPanel) AddActionButton(
	ctx *context.Context, title template.HTML, action Action, ids ...string,
) *InfoPanel

func (*InfoPanel) AddActionButtonFront

func (i *InfoPanel) AddActionButtonFront(
	ctx *context.Context, title template.HTML, action Action, ids ...string,
) *InfoPanel

func (*InfoPanel) AddActionIconButton

func (i *InfoPanel) AddActionIconButton(ctx *context.Context, icon string, action Action, ids ...string) *InfoPanel

func (*InfoPanel) AddButton

func (i *InfoPanel) AddButton(
	ctx *context.Context, title template.HTML, icon string, action Action, color ...template.HTML,
) *InfoPanel

func (*InfoPanel) AddButtonRaw

func (i *InfoPanel) AddButtonRaw(ctx *context.Context, btn Button, action Action) *InfoPanel

func (*InfoPanel) AddCSS

func (i *InfoPanel) AddCSS(css template.CSS) *InfoPanel

func (*InfoPanel) AddColumn

func (i *InfoPanel) AddColumn(head string, fun FieldFilterFn) *InfoPanel

func (*InfoPanel) AddColumnButtons

func (i *InfoPanel) AddColumnButtons(ctx *context.Context, head string, buttons ...Button) *InfoPanel

func (*InfoPanel) AddField

func (i *InfoPanel) AddField(head, field string, typeName db.DatabaseType) *InfoPanel

func (*InfoPanel) AddFieldTr

func (i *InfoPanel) AddFieldTr(ctx *context.Context, head, field string, typeName db.DatabaseType) *InfoPanel

func (*InfoPanel) AddFieldWithTranslation

func (i *InfoPanel) AddFieldWithTranslation(
	ctx *context.Context, head, field string, typeName db.DatabaseType,
) *InfoPanel

func (*InfoPanel) AddFilter

func (i *InfoPanel) AddFilter(
	head, field string, typeName db.DatabaseType, fn UpdateParametersFn, filterType ...FilterType,
) *InfoPanel

func (*InfoPanel) AddJS

func (i *InfoPanel) AddJS(js template.JS) *InfoPanel

func (*InfoPanel) AddJSModule

func (i *InfoPanel) AddJSModule(js template.JS) *InfoPanel

func (*InfoPanel) AddLimitFilter

func (i *InfoPanel) AddLimitFilter(limit int) *InfoPanel

func (*InfoPanel) AddSelectBox

func (i *InfoPanel) AddSelectBox(
	ctx *context.Context, placeholder string, options FieldOptions, action Action, width ...int,
) *InfoPanel

func (*InfoPanel) AddSubstrFilter

func (i *InfoPanel) AddSubstrFilter(start int, end int) *InfoPanel

func (*InfoPanel) AddToLowerFilter

func (i *InfoPanel) AddToLowerFilter() *InfoPanel

func (*InfoPanel) AddToTitleFilter

func (i *InfoPanel) AddToTitleFilter() *InfoPanel

func (*InfoPanel) AddToUpperFilter

func (i *InfoPanel) AddToUpperFilter() *InfoPanel

func (*InfoPanel) AddTrimSpaceFilter

func (i *InfoPanel) AddTrimSpaceFilter() *InfoPanel

func (*InfoPanel) AddUpdateParametersFn

func (i *InfoPanel) AddUpdateParametersFn(fn UpdateParametersFn) *InfoPanel

func (*InfoPanel) AddXssFilter

func (i *InfoPanel) AddXssFilter() *InfoPanel

func (*InfoPanel) AddXssJsFilter

func (i *InfoPanel) AddXssJsFilter() *InfoPanel

func (*InfoPanel) ExportValue

func (i *InfoPanel) ExportValue() *InfoPanel

func (*InfoPanel) FieldAsDeleteParam

func (i *InfoPanel) FieldAsDeleteParam() *InfoPanel

func (*InfoPanel) FieldAsDetailParam

func (i *InfoPanel) FieldAsDetailParam() *InfoPanel

func (*InfoPanel) FieldAsEditParam

func (i *InfoPanel) FieldAsEditParam() *InfoPanel

func (*InfoPanel) FieldBool

func (i *InfoPanel) FieldBool(flags ...string) *InfoPanel

func (*InfoPanel) FieldCarousel

func (i *InfoPanel) FieldCarousel(fn FieldGetImgArrFn, size ...int) *InfoPanel

func (*InfoPanel) FieldCopyable

func (i *InfoPanel) FieldCopyable(prefix ...string) *InfoPanel

func (*InfoPanel) FieldDate

func (i *InfoPanel) FieldDate(format string) *InfoPanel

func (*InfoPanel) FieldDisplay

func (i *InfoPanel) FieldDisplay(filter FieldFilterFn) *InfoPanel

func (*InfoPanel) FieldDot

func (i *InfoPanel) FieldDot(icons map[string]FieldDotColor, defaultDot FieldDotColor) *InfoPanel

func (*InfoPanel) FieldDownLoadable

func (i *InfoPanel) FieldDownLoadable(prefix ...string) *InfoPanel

func (*InfoPanel) FieldEditAble

func (i *InfoPanel) FieldEditAble(editType ...table.Type) *InfoPanel

func (*InfoPanel) FieldEditOptions

func (i *InfoPanel) FieldEditOptions(options FieldOptions, extra ...map[string]string) *InfoPanel

func (*InfoPanel) FieldFileSize

func (i *InfoPanel) FieldFileSize() *InfoPanel

func (*InfoPanel) FieldFilterOnChoose

func (i *InfoPanel) FieldFilterOnChoose(val, field string, value template.HTML) *InfoPanel

FieldFilterOnChoose set the given value of the given field when choose the value of val.

func (*InfoPanel) FieldFilterOnChooseAjax

func (i *InfoPanel) FieldFilterOnChooseAjax(field, url string, handler Handler) *InfoPanel

FieldFilterOnChooseAjax set the url and handler that will be called when field be choosed. The handler will return the option of the field. It will help to link two or more form items. For example:

FieldFilterOnChooseAjax("city", "/search/city", func(ctx *context.Context) (success bool, msg string, data interface{}) {
	return true, "ok", selection.Data{
		Results: selection.Options{
			{Text: "GuangZhou", ID: "1"},
			{Text: "ShenZhen", ID: "2"},
			{Text: "BeiJing", ID: "3"},
			{Text: "ShangHai", ID: "4"},
		}
	}
})

When you choose the country, it trigger the action of ajax which be sent to the given handler, and return the city options to the field city.

func (*InfoPanel) FieldFilterOnChooseCustom

func (i *InfoPanel) FieldFilterOnChooseCustom(js template.HTML) *InfoPanel

FieldFilterOnChooseCustom set the js that will be called when filter option be selected.

func (*InfoPanel) FieldFilterOnChooseDisable

func (i *InfoPanel) FieldFilterOnChooseDisable(value string, field ...string) *InfoPanel

FieldFilterOnChooseDisable disable the fields when value to be chosen.

func (*InfoPanel) FieldFilterOnChooseHide

func (i *InfoPanel) FieldFilterOnChooseHide(value string, field ...string) *InfoPanel

FieldFilterOnChooseHide hide the fields when value to be chosen.

func (*InfoPanel) FieldFilterOnChooseMap

func (i *InfoPanel) FieldFilterOnChooseMap(m map[string]LinkField) *InfoPanel

FieldFilterOnChooseMap set the actions that will be taken when filter option be selected. For example:

map[string]types.LinkField{
     "men": {Field: "ip", Value:"127.0.0.1"},
     "women": {Field: "ip", Hide: true},
     "other": {Field: "ip", Disable: true}
}

mean when choose men, the value of field ip will be set to 127.0.0.1, when choose women, field ip will be hidden, and when choose other, field ip will be disabled.

func (*InfoPanel) FieldFilterOnChooseShow

func (i *InfoPanel) FieldFilterOnChooseShow(value string, field ...string) *InfoPanel

FieldFilterOnChooseShow display the fields when value to be chosen.

func (*InfoPanel) FieldFilterOnSearch

func (i *InfoPanel) FieldFilterOnSearch(url string, handler Handler, delay ...int) *InfoPanel

FieldFilterOnSearch set the url and the corresponding handler which has some backend logic and return the options of the field. For example:

FieldFilterOnSearch("/search/city", func(ctx *context.Context) (success bool, msg string, data interface{}) {
	return true, "ok", selection.Data{
		Results: selection.Options{
			{Text: "GuangZhou", ID: "1"},
			{Text: "ShenZhen", ID: "2"},
			{Text: "BeiJing", ID: "3"},
			{Text: "ShangHai", ID: "4"},
		}
	}
}, 1000)

func (*InfoPanel) FieldFilterOptionExt

func (i *InfoPanel) FieldFilterOptionExt(m map[string]interface{}) *InfoPanel

FieldFilterOptionExt set the option extension js of the field.

func (*InfoPanel) FieldFilterOptions

func (i *InfoPanel) FieldFilterOptions(options FieldOptions) *InfoPanel

FieldFilterOptions set options for a filterable field to select. It will work when you set the FormType of the field to SelectSingle/Select/SelectBox.

func (*InfoPanel) FieldFilterOptionsFromTable

func (i *InfoPanel) FieldFilterOptionsFromTable(
	table, textFieldName, valueFieldName string, process ...OptionTableQueryProcessFn,
) *InfoPanel

FieldFilterOptionsFromTable set options for a filterable field to select. The options is from other table. For example,

`FieldFilterOptionsFromTable("roles", "name", "id")`

will generate the sql like:

`select id, name from roles`.

And the `id` will be the value of options, `name` is the text to be shown.

func (*InfoPanel) FieldFilterProcess

func (i *InfoPanel) FieldFilterProcess(process func(string) string) *InfoPanel

FieldFilterProcess process the field content. For example:

FieldFilterProcess(func(val string) string {
		return val + "ms"
})

func (*InfoPanel) FieldFilterable

func (i *InfoPanel) FieldFilterable(filterType ...FilterType) *InfoPanel

FieldFilterable set a field filterable which will display in the filter box.

func (*InfoPanel) FieldFixed

func (i *InfoPanel) FieldFixed() *InfoPanel

func (*InfoPanel) FieldHide

func (i *InfoPanel) FieldHide() *InfoPanel

FieldHide hide field. Include the filter area.

func (*InfoPanel) FieldHideForList

func (i *InfoPanel) FieldHideForList() *InfoPanel

FieldHide hide field for only the table.

func (*InfoPanel) FieldIcon

func (i *InfoPanel) FieldIcon(icons map[string]string, defaultIcon string) *InfoPanel

func (*InfoPanel) FieldImage

func (i *InfoPanel) FieldImage(width, height string, prefix ...string) *InfoPanel

func (*InfoPanel) FieldJoin

func (i *InfoPanel) FieldJoin(join Join) *InfoPanel

FieldJoin gets the field of the concatenated table.

Join {
    BaseTable:   "users",
    Field:       "role_id",
    Table:       "roles",
    JoinField:   "id",
}

It will generate the join table sql like:

select ... from users left join roles on roles.id = users.role_id

func (*InfoPanel) FieldLabel

func (i *InfoPanel) FieldLabel(args ...FieldLabelParam) *InfoPanel

func (*InfoPanel) FieldLimit

func (i *InfoPanel) FieldLimit(limit int) *InfoPanel

FieldLimit limit the field length.

func (i *InfoPanel) FieldLink(src string, openInNewTab ...bool) *InfoPanel

func (*InfoPanel) FieldLoading

func (i *InfoPanel) FieldLoading(data []string) *InfoPanel

func (*InfoPanel) FieldProgressBar

func (i *InfoPanel) FieldProgressBar(data ...FieldProgressBarData) *InfoPanel

func (*InfoPanel) FieldQrcode

func (i *InfoPanel) FieldQrcode() *InfoPanel

func (*InfoPanel) FieldSortable

func (i *InfoPanel) FieldSortable() *InfoPanel

func (*InfoPanel) FieldSubstr

func (i *InfoPanel) FieldSubstr(start int, end int) *InfoPanel

FieldSubstr intercept string of the field.

func (*InfoPanel) FieldToLower

func (i *InfoPanel) FieldToLower() *InfoPanel

FieldToLower update the field to a string with all Unicode letters mapped to their lower case.

func (*InfoPanel) FieldToTitle

func (i *InfoPanel) FieldToTitle() *InfoPanel

FieldToTitle update the field to a string that begin words mapped to their Unicode title case.

func (*InfoPanel) FieldToUpper

func (i *InfoPanel) FieldToUpper() *InfoPanel

FieldToUpper update the field to a string with all Unicode letters mapped to their upper case.

func (*InfoPanel) FieldTrimSpace

func (i *InfoPanel) FieldTrimSpace() *InfoPanel

FieldTrimSpace trim space of the field.

func (*InfoPanel) FieldWidth

func (i *InfoPanel) FieldWidth(width int) *InfoPanel

func (*InfoPanel) FieldXssFilter

func (i *InfoPanel) FieldXssFilter() *InfoPanel

FieldXssFilter escape field with html.Escape.

func (*InfoPanel) GetPageSizeList

func (i *InfoPanel) GetPageSizeList() []string

func (*InfoPanel) GetSort

func (i *InfoPanel) GetSort() string

func (*InfoPanel) HasError

func (i *InfoPanel) HasError() bool

func (*InfoPanel) HideCheckBoxColumn

func (i *InfoPanel) HideCheckBoxColumn() *InfoPanel

func (*InfoPanel) HideColumn

func (i *InfoPanel) HideColumn(n int) *InfoPanel

func (*InfoPanel) HideDeleteButton

func (i *InfoPanel) HideDeleteButton() *InfoPanel

func (*InfoPanel) HideDetailButton

func (i *InfoPanel) HideDetailButton() *InfoPanel

func (*InfoPanel) HideEditButton

func (i *InfoPanel) HideEditButton() *InfoPanel

func (*InfoPanel) HideExportButton

func (i *InfoPanel) HideExportButton() *InfoPanel

func (*InfoPanel) HideFilterArea

func (i *InfoPanel) HideFilterArea() *InfoPanel

func (*InfoPanel) HideFilterButton

func (i *InfoPanel) HideFilterButton() *InfoPanel

func (*InfoPanel) HideNewButton

func (i *InfoPanel) HideNewButton() *InfoPanel

func (*InfoPanel) HidePagination

func (i *InfoPanel) HidePagination() *InfoPanel

func (*InfoPanel) HideQueryInfo

func (i *InfoPanel) HideQueryInfo() *InfoPanel

func (*InfoPanel) HideRowSelector

func (i *InfoPanel) HideRowSelector() *InfoPanel

func (*InfoPanel) IsExportValue

func (i *InfoPanel) IsExportValue() bool

func (*InfoPanel) OperationURL

func (i *InfoPanel) OperationURL(id string) string

OperationURL get the operation api url.

func (*InfoPanel) Set400Error

func (i *InfoPanel) Set400Error(content ...template.HTML) *InfoPanel

func (*InfoPanel) Set403Error

func (i *InfoPanel) Set403Error(content ...template.HTML) *InfoPanel

func (*InfoPanel) Set404Error

func (i *InfoPanel) Set404Error(content ...template.HTML) *InfoPanel

func (*InfoPanel) Set500Error

func (i *InfoPanel) Set500Error(content ...template.HTML) *InfoPanel

func (*InfoPanel) SetAction

func (i *InfoPanel) SetAction(action template.HTML) *InfoPanel

func (*InfoPanel) SetActionButtonFold

func (i *InfoPanel) SetActionButtonFold() *InfoPanel

func (*InfoPanel) SetAutoRefresh

func (i *InfoPanel) SetAutoRefresh(interval uint) *InfoPanel

func (*InfoPanel) SetDefaultPageSize

func (i *InfoPanel) SetDefaultPageSize(defaultPageSize int) *InfoPanel

func (*InfoPanel) SetDeleteFn

func (i *InfoPanel) SetDeleteFn(fn DeleteFn) *InfoPanel

func (*InfoPanel) SetDeleteHook

func (i *InfoPanel) SetDeleteHook(fn DeleteFn) *InfoPanel

func (*InfoPanel) SetDeleteHookWithRes

func (i *InfoPanel) SetDeleteHookWithRes(fn DeleteFnWithRes) *InfoPanel

func (*InfoPanel) SetDescription

func (i *InfoPanel) SetDescription(desc string) *InfoPanel

func (*InfoPanel) SetError

func (i *InfoPanel) SetError(err errors.PageError, content ...template.HTML) *InfoPanel

func (*InfoPanel) SetExportProcessFn

func (i *InfoPanel) SetExportProcessFn(fn ExportProcessFn) *InfoPanel

func (*InfoPanel) SetFilterFormHeadWidth

func (i *InfoPanel) SetFilterFormHeadWidth(w int) *InfoPanel

func (*InfoPanel) SetFilterFormInputWidth

func (i *InfoPanel) SetFilterFormInputWidth(w int) *InfoPanel

func (*InfoPanel) SetFilterFormLayout

func (i *InfoPanel) SetFilterFormLayout(layout form.Layout) *InfoPanel

func (*InfoPanel) SetFooterHtml

func (i *InfoPanel) SetFooterHtml(footer template.HTML) *InfoPanel

func (*InfoPanel) SetGetDataFn

func (i *InfoPanel) SetGetDataFn(fn GetDataFn) *InfoPanel

func (*InfoPanel) SetHeaderHtml

func (i *InfoPanel) SetHeaderHtml(header template.HTML) *InfoPanel

func (*InfoPanel) SetHideSideBar

func (i *InfoPanel) SetHideSideBar() *InfoPanel

func (*InfoPanel) SetNoCompress

func (i *InfoPanel) SetNoCompress() *InfoPanel

func (*InfoPanel) SetPageSizeList

func (i *InfoPanel) SetPageSizeList(pageSizeList []int) *InfoPanel

func (*InfoPanel) SetPreDeleteFn

func (i *InfoPanel) SetPreDeleteFn(fn DeleteFn) *InfoPanel

func (*InfoPanel) SetPrimaryKey

func (i *InfoPanel) SetPrimaryKey(name string, typ db.DatabaseType) *InfoPanel

func (*InfoPanel) SetQueryFilterFn

func (i *InfoPanel) SetQueryFilterFn(fn QueryFilterFn) *InfoPanel

func (*InfoPanel) SetSortAsc

func (i *InfoPanel) SetSortAsc() *InfoPanel

func (*InfoPanel) SetSortDesc

func (i *InfoPanel) SetSortDesc() *InfoPanel

func (*InfoPanel) SetSortField

func (i *InfoPanel) SetSortField(field string) *InfoPanel

func (*InfoPanel) SetTabGroups

func (i *InfoPanel) SetTabGroups(groups TabGroups) *InfoPanel

func (*InfoPanel) SetTabHeaders

func (i *InfoPanel) SetTabHeaders(headers ...string) *InfoPanel

func (*InfoPanel) SetTable

func (i *InfoPanel) SetTable(table string) *InfoPanel

func (*InfoPanel) SetTableFixed

func (i *InfoPanel) SetTableFixed() *InfoPanel

func (*InfoPanel) SetTitle

func (i *InfoPanel) SetTitle(title string) *InfoPanel

func (*InfoPanel) SetWrapper

func (i *InfoPanel) SetWrapper(wrapper ContentWrapper) *InfoPanel

func (*InfoPanel) Where

func (i *InfoPanel) Where(field string, operator string, arg interface{}) *InfoPanel

func (*InfoPanel) WhereOr

func (i *InfoPanel) WhereOr(field string, operator string, arg interface{}) *InfoPanel

func (*InfoPanel) WhereRaw

func (i *InfoPanel) WhereRaw(raw string, arg ...interface{}) *InfoPanel

type Join

type Join struct {
	Table      string
	TableAlias string
	Field      string
	JoinField  string
	BaseTable  string
}

Join store join table info. For example:

Join {
    BaseTable:   "users",
    Field:       "role_id",
    Table:       "roles",
    JoinField:   "id",
}

It will generate the join table sql like:

... left join roles on roles.id = users.role_id ...

func (Join) GetTableName

func (j Join) GetTableName(delimiter ...string) string

func (Join) Valid

func (j Join) Valid() bool

type Joins

type Joins []Join

func (Joins) Last

func (j Joins) Last() Join

func (Joins) Valid

func (j Joins) Valid() bool

type LabelAttribute

type LabelAttribute interface {
	SetContent(value template.HTML) LabelAttribute
	SetColor(value template.HTML) LabelAttribute
	SetType(value string) LabelAttribute
	GetContent() template.HTML
}

type LinkAttribute

type LinkAttribute interface {
	OpenInNewTab() LinkAttribute
	SetURL(value string) LinkAttribute
	SetAttributes(attr template.HTMLAttr) LinkAttribute
	SetClass(class template.HTML) LinkAttribute
	NoPjax() LinkAttribute
	SetTabTitle(value template.HTML) LinkAttribute
	SetContent(value template.HTML) LinkAttribute
	GetContent() template.HTML
}

type LinkField

type LinkField struct {
	Field   string
	Value   template.HTML
	Hide    bool
	Disable bool
}
type NavButton struct {
	*BaseButton
	Icon string
}

func GetNavButton

func GetNavButton(title template.HTML, icon string, action Action, names ...string) *NavButton
func (n *NavButton) Content(ctx *context.Context) (template.HTML, template.JS)
type NavDropDownButton struct {
	*BaseButton
	Icon  string
	Items []*NavDropDownItemButton
}

func GetDropDownButton

func GetDropDownButton(
	title template.HTML, icon string, items []*NavDropDownItemButton, names ...string,
) *NavDropDownButton
func (n *NavDropDownButton) AddItem(item *NavDropDownItemButton)
func (n *NavDropDownButton) SetItems(items []*NavDropDownItemButton)
type NavDropDownItemButton struct {
	*BaseButton
}

func GetDropDownItemButton

func GetDropDownItemButton(title template.HTML, action Action, names ...string) *NavDropDownItemButton

type NewPageParam

type NewPageParam struct {
	User           models.UserModel
	Menu           *menu.Menu
	UpdateMenu     bool
	Panel          Panel
	Assets         template.HTML
	Buttons        Buttons
	Iframe         bool
	TmplHeadHTML   template.HTML
	TmplFootJS     template.HTML
	NavButtonsHTML template.HTML
	NavButtonsJS   template.HTML
}

func (*NewPageParam) NavButtonsAndJS

func (param *NewPageParam) NavButtonsAndJS(ctx *context.Context) (template.HTML, template.HTML)

type NilAction

type NilAction struct{}

func (*NilAction) BtnAttribute

func (def *NilAction) BtnAttribute() template.HTML

func (*NilAction) BtnClass

func (def *NilAction) BtnClass() template.HTML

func (*NilAction) ExtContent

func (def *NilAction) ExtContent(ctx *context.Context) template.HTML

func (*NilAction) FooterContent

func (def *NilAction) FooterContent(ctx *context.Context) template.HTML

func (*NilAction) GetCallbacks

func (def *NilAction) GetCallbacks() context.Node

func (*NilAction) Js

func (def *NilAction) Js() template.JS

func (*NilAction) SetBtnData

func (def *NilAction) SetBtnData(data interface{})

func (*NilAction) SetBtnId

func (def *NilAction) SetBtnId(btnId string)

type OptionArrInitFn

type OptionArrInitFn func(val FieldModel) []FieldOptions

type OptionInitFn

type OptionInitFn func(val FieldModel) FieldOptions

type OptionProcessFn

type OptionProcessFn func(options FieldOptions) FieldOptions

type OptionTable

type OptionTable struct {
	Table          string
	TextField      string
	ValueField     string
	QueryProcessFn OptionTableQueryProcessFn
	ProcessFn      OptionProcessFn
}

type OptionTableQueryProcessFn

type OptionTableQueryProcessFn func(sql *db.SQL) *db.SQL

type Page

type Page struct {
	// User is the login user.
	User models.UserModel

	// Menu is the left side menu of the template.
	Menu menu.Menu

	// Panel is the main content of template.
	Panel Panel

	// System contains some system info.
	System SystemInfo

	// UrlPrefix is the prefix of url.
	UrlPrefix string

	// Title is the title of the web page.
	Title string

	Logo template.HTML

	MiniLogo template.HTML

	// ColorScheme is the color scheme of the template.
	ColorScheme string

	// IndexUrl is the home page url of the site.
	IndexUrl string

	// AssetUrl is the cdn link of assets
	CdnUrl string

	// Custom html in the tag head.
	CustomHeadHtml template.HTML

	// Custom html after body.
	CustomFootHtml template.HTML

	TmplHeadHTML template.HTML
	TmplFootJS   template.HTML

	// Components assets
	AssetsList template.HTML

	// Footer info
	FooterInfo template.HTML

	// Load as Iframe or not
	Iframe bool

	// Whether update menu or not
	UpdateMenu bool

	NavButtonsHTML template.HTML
	// contains filtered or unexported fields
}

Page used in the template as a top variable.

func NewPage

func NewPage(ctx *context.Context, param *NewPageParam) *Page

func NewPagePanel

func NewPagePanel(panel Panel) *Page

func (*Page) AddButton

func (page *Page) AddButton(ctx *context.Context, title template.HTML, icon string, action Action) *Page

type PaginatorAttribute

type PaginatorAttribute interface {
	SetCurPageStartIndex(value string) PaginatorAttribute
	SetCurPageEndIndex(value string) PaginatorAttribute
	SetTotal(value string) PaginatorAttribute
	SetPreviousClass(value string) PaginatorAttribute
	SetPreviousUrl(value string) PaginatorAttribute
	SetPages(value []map[string]string) PaginatorAttribute
	SetPageSizeList(value []string) PaginatorAttribute
	SetNextClass(value string) PaginatorAttribute
	SetNextUrl(value string) PaginatorAttribute
	SetOption(value map[string]template.HTML) PaginatorAttribute
	SetUrl(value string) PaginatorAttribute
	SetExtraInfo(value template.HTML) PaginatorAttribute
	SetEntriesInfo(value template.HTML) PaginatorAttribute
	GetContent() template.HTML
}

type Panel

type Panel struct {
	Title       template.HTML
	Description template.HTML
	Content     template.HTML

	CSS template.CSS
	JS  template.JS
	Url string

	// Whether to toggle the sidebar
	MiniSidebar bool

	// Auto refresh page switch.
	AutoRefresh bool
	// Refresh page intervals, the unit is second.
	RefreshInterval []int

	Callbacks Callbacks
}

Panel contains the main content of the template which used as pjax.

func (Panel) AddComponent

func (p Panel) AddComponent(comp Component) Panel

func (Panel) AddJS

func (p Panel) AddJS(js template.JS) Panel

func (Panel) GetContent

func (p Panel) GetContent(params ...bool) Panel

type PanelInfo

type PanelInfo struct {
	Thead    Thead    `json:"thead"`
	InfoList InfoList `json:"info_list"`
}

type PopupAttribute

type PopupAttribute interface {
	SetID(value string) PopupAttribute
	SetTitle(value template.HTML) PopupAttribute
	SetDraggable() PopupAttribute
	SetHideFooter() PopupAttribute
	SetWidth(width string) PopupAttribute
	SetHeight(height string) PopupAttribute
	SetFooter(value template.HTML) PopupAttribute
	SetFooterHTML(value template.HTML) PopupAttribute
	SetBody(value template.HTML) PopupAttribute
	SetSize(value string) PopupAttribute
	GetContent() template.HTML
}

type PostFieldFilterFn

type PostFieldFilterFn func(value PostFieldModel) interface{}

PostFieldFilterFn is filter function of data.

type PostFieldModel

type PostFieldModel struct {
	ID    string
	Value FieldModelValue
	Row   map[string]string
	// Post type
	PostType PostType
}

PostFieldModel contains ID and value of the single query result and the current row data.

func (PostFieldModel) IsCreate

func (m PostFieldModel) IsCreate() bool

func (PostFieldModel) IsUpdate

func (m PostFieldModel) IsUpdate() bool

type PostType

type PostType uint8

type QueryFilterFn

type QueryFilterFn func(param parameter.Parameters, conn db.Connection) (ids []string, stopQuery bool)

type Responder

type Responder func(ctx *context.Context)

type RowAttribute

type RowAttribute interface {
	SetContent(value template.HTML) RowAttribute
	AddContent(value template.HTML) RowAttribute
	GetContent() template.HTML
}

type S

type S map[string]string

func Size

func Size(sm, md, lg int) S

func SizeLG

func SizeLG(lg int) S

func SizeMD

func SizeMD(md int) S

func SizeSM

func SizeSM(sm int) S

func SizeXL

func SizeXL(xl int) S

func SizeXS

func SizeXS(xs int) S

func (S) LG

func (s S) LG(lg int) S

func (S) MD

func (s S) MD(md int) S

func (S) SM

func (s S) SM(sm int) S

func (S) XL

func (s S) XL(xl int) S

func (S) XS

func (s S) XS(xs int) S

type Sort

type Sort uint8
const (
	SortDesc Sort = iota
	SortAsc
)

type SystemInfo

type SystemInfo struct {
	Version string
	Theme   string
}

SystemInfo contains basic info of system.

type TabGroups

type TabGroups [][]string

func NewTabGroups

func NewTabGroups(items ...string) TabGroups

func (TabGroups) AddGroup

func (t TabGroups) AddGroup(items ...string) TabGroups

func (TabGroups) Valid

func (t TabGroups) Valid() bool

type TabHeaders

type TabHeaders []string

func (TabHeaders) Add

func (t TabHeaders) Add(header string) TabHeaders

type TableAttribute

type TableAttribute interface {
	SetThead(value Thead) TableAttribute
	SetInfoList(value []map[string]InfoItem) TableAttribute
	SetType(value string) TableAttribute
	SetName(name string) TableAttribute
	SetMinWidth(value string) TableAttribute
	SetHideThead() TableAttribute
	SetSticky(sticky bool) TableAttribute
	SetLayout(value string) TableAttribute
	SetStyle(style string) TableAttribute
	GetContent() template.HTML
}

type TableInfo

type TableInfo struct {
	Table      string
	PrimaryKey string
	Delimiter  string
	Delimiter2 string
	Driver     string
}

type TableRowData

type TableRowData struct {
	Id    template.HTML
	Ids   template.HTML
	Value map[string]InfoItem
}

type TabsAttribute

type TabsAttribute interface {
	SetData(value []map[string]template.HTML) TabsAttribute
	GetContent() template.HTML
}

type Thead

type Thead []TheadItem

func (Thead) GroupBy

func (t Thead) GroupBy(group [][]string) []Thead

type TheadItem

type TheadItem struct {
	Head       string       `json:"head"`
	Sortable   bool         `json:"sortable"`
	Field      string       `json:"field"`
	Hide       bool         `json:"hide"`
	Editable   bool         `json:"editable"`
	EditType   string       `json:"edit_type"`
	EditOption FieldOptions `json:"edit_option"`
	Width      string       `json:"width"`
}

type TreeAttribute

type TreeAttribute interface {
	SetTree(value []menu.Item) TreeAttribute
	SetEditUrl(value string) TreeAttribute
	SetOrderUrl(value string) TreeAttribute
	SetUrlPrefix(value string) TreeAttribute
	SetDeleteUrl(value string) TreeAttribute
	GetContent() template.HTML
	GetTreeHeader() template.HTML
}

type TreeViewAttribute

type TreeViewAttribute interface {
	SetTree(value TreeViewData) TreeViewAttribute
	SetUrlPrefix(value string) TreeViewAttribute
	SetID(id string) TreeViewAttribute
	GetContent() template.HTML
}

type TreeViewData

type TreeViewData struct {
	Data              TreeViewItems `json:"data,omitempty"`
	Levels            int           `json:"levels,omitempty"`
	BackColor         string        `json:"backColor,omitempty"`
	BorderColor       string        `json:"borderColor,omitempty"`
	CheckedIcon       string        `json:"checkedIcon,omitempty"`
	CollapseIcon      string        `json:"collapseIcon,omitempty"`
	Color             string        `json:"color,omitempty"`
	EmptyIcon         string        `json:"emptyIcon,omitempty"`
	EnableLinks       bool          `json:"enableLinks,omitempty"`
	ExpandIcon        string        `json:"expandIcon,omitempty"`
	MultiSelect       bool          `json:"multiSelect,omitempty"`
	NodeIcon          string        `json:"nodeIcon,omitempty"`
	OnhoverColor      string        `json:"onhoverColor,omitempty"`
	SelectedIcon      string        `json:"selectedIcon,omitempty"`
	SearchResultColor string        `json:"searchResultColor,omitempty"`
	SelectedBackColor string        `json:"selectedBackColor,omitempty"`
	SelectedColor     string        `json:"selectedColor,omitempty"`
	ShowBorder        bool          `json:"showBorder,omitempty"`
	ShowCheckbox      bool          `json:"showCheckbox,omitempty"`
	ShowIcon          bool          `json:"showIcon,omitempty"`
	ShowTags          bool          `json:"showTags,omitempty"`
	UncheckedIcon     string        `json:"uncheckedIcon,omitempty"`

	SearchResultBackColor  string `json:"searchResultBackColor,omitempty"`
	HighlightSearchResults bool   `json:"highlightSearchResults,omitempty"`
}

type TreeViewItem

type TreeViewItem struct {
	Text         string            `json:"text,omitempty"`
	Icon         string            `json:"icon,omitempty"`
	SelectedIcon string            `json:"selected_icon,omitempty"`
	Color        string            `json:"color,omitempty"`
	BackColor    string            `json:"backColor,omitempty"`
	Href         string            `json:"href,omitempty"`
	Selectable   bool              `json:"selectable,omitempty"`
	State        TreeViewItemState `json:"state,omitempty"`
	Tags         []string          `json:"tags,omitempty"`
	Nodes        TreeViewItems     `json:"nodes,omitempty"`
}

type TreeViewItemState

type TreeViewItemState struct {
	Checked  bool `json:"checked,omitempty"`
	Disabled bool `json:"disabled,omitempty"`
	Expanded bool `json:"expanded,omitempty"`
	Selected bool `json:"selected,omitempty"`
}

type TreeViewItems

type TreeViewItems []TreeViewItem

type UpdateParametersFn

type UpdateParametersFn func(param *parameter.Parameters)

type Where

type Where struct {
	Join     string
	Field    string
	Operator string
	Arg      interface{}
}

type WhereRaw

type WhereRaw struct {
	Raw  string
	Args []interface{}
}

func (WhereRaw) Statement

func (wh WhereRaw) Statement(wheres string, whereArgs []interface{}) (string, []interface{})

type Wheres

type Wheres []Where

func (Wheres) Statement

func (whs Wheres) Statement(
	wheres, delimiter, delimiter2 string, whereArgs []interface{}, existKeys, columns []string,
) (string, []interface{})

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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