| 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") |
| } |
|
|