| package components | |
| import ( | |
| "fmt" | |
| "html/template" | |
| "github.com/GoAdminGroup/go-admin/modules/language" | |
| "github.com/GoAdminGroup/go-admin/modules/utils" | |
| "github.com/GoAdminGroup/go-admin/template/icon" | |
| "github.com/GoAdminGroup/go-admin/template/types" | |
| ) | |
| type ButtonAttribute struct { | |
| Name string | |
| Content template.HTML | |
| Orientation string | |
| LoadingText template.HTML | |
| Theme string | |
| Type string | |
| Size string | |
| Href string | |
| Class string | |
| ID string | |
| Style template.HTMLAttr | |
| MarginLeft int | |
| MarginRight int | |
| types.Attribute | |
| } | |
| func (compo *ButtonAttribute) SetContent(value template.HTML) types.ButtonAttribute { | |
| compo.Content = value | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetOrientationRight() types.ButtonAttribute { | |
| compo.Orientation = "pull-right" | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetOrientationLeft() types.ButtonAttribute { | |
| compo.Orientation = "pull-left" | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetMarginLeft(px int) types.ButtonAttribute { | |
| compo.MarginLeft = px | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetSmallSize() types.ButtonAttribute { | |
| compo.Size = "btn-sm" | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetMiddleSize() types.ButtonAttribute { | |
| compo.Size = "btn-md" | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetMarginRight(px int) types.ButtonAttribute { | |
| compo.MarginRight = px | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetLoadingText(value template.HTML) types.ButtonAttribute { | |
| compo.LoadingText = value | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetThemePrimary() types.ButtonAttribute { | |
| compo.Theme = "primary" | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetThemeDefault() types.ButtonAttribute { | |
| compo.Theme = "default" | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetThemeWarning() types.ButtonAttribute { | |
| compo.Theme = "warning" | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetHref(href string) types.ButtonAttribute { | |
| compo.Href = href | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) AddClass(class string) types.ButtonAttribute { | |
| compo.Class += " " + class | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetID(id string) types.ButtonAttribute { | |
| compo.ID = id | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetTheme(value string) types.ButtonAttribute { | |
| compo.Theme = value | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) SetType(value string) types.ButtonAttribute { | |
| compo.Type = value | |
| return compo | |
| } | |
| func (compo *ButtonAttribute) GetContent() template.HTML { | |
| if compo.MarginLeft != 0 { | |
| compo.Style = template.HTMLAttr(fmt.Sprintf(`style="margin-left:%dpx;"`, compo.MarginLeft)) | |
| } | |
| if compo.MarginRight != 0 { | |
| compo.Style = template.HTMLAttr(fmt.Sprintf(`style="margin-right:%dpx;"`, compo.MarginRight)) | |
| } | |
| if compo.LoadingText == "" { | |
| compo.LoadingText = icon.Icon(icon.Spinner, 1) + language.GetFromHtml(`Save`) | |
| } | |
| if compo.ID == "" { | |
| compo.ID = utils.Uuid(15) + "_btn" | |
| } | |
| return ComposeHtml(compo.TemplateList, compo.Separation, *compo, "button") | |
| } | |