| package components | |
| import ( | |
| "fmt" | |
| "html/template" | |
| "github.com/GoAdminGroup/go-admin/template/types" | |
| ) | |
| type BoxAttribute struct { | |
| Name string | |
| Header template.HTML | |
| Body template.HTML | |
| Footer template.HTML | |
| Title template.HTML | |
| Theme string | |
| HeadBorder string | |
| Attr template.HTMLAttr | |
| HeadColor string | |
| Class string | |
| SecondHeaderClass string | |
| SecondHeader template.HTML | |
| SecondHeadBorder string | |
| SecondHeadColor string | |
| Style template.HTMLAttr | |
| Padding string | |
| types.Attribute | |
| } | |
| func (compo *BoxAttribute) SetTheme(value string) types.BoxAttribute { | |
| compo.Theme = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetClass(value string) types.BoxAttribute { | |
| compo.Class = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetHeader(value template.HTML) types.BoxAttribute { | |
| compo.Header = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetBody(value template.HTML) types.BoxAttribute { | |
| compo.Body = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetStyle(value template.HTMLAttr) types.BoxAttribute { | |
| compo.Style = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetAttr(attr template.HTMLAttr) types.BoxAttribute { | |
| compo.Attr = attr | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetIframeStyle(iframe bool) types.BoxAttribute { | |
| if iframe { | |
| compo.Attr = `style="border-radius: 0px;box-shadow:none;border-top:none;margin-bottom: 0px;"` | |
| } | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetFooter(value template.HTML) types.BoxAttribute { | |
| compo.Footer = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetTitle(value template.HTML) types.BoxAttribute { | |
| compo.Title = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetHeadColor(value string) types.BoxAttribute { | |
| compo.HeadColor = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) WithHeadBorder() types.BoxAttribute { | |
| compo.HeadBorder = "with-border" | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetSecondHeader(value template.HTML) types.BoxAttribute { | |
| compo.SecondHeader = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetSecondHeadColor(value string) types.BoxAttribute { | |
| compo.SecondHeadColor = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetSecondHeaderClass(value string) types.BoxAttribute { | |
| compo.SecondHeaderClass = value | |
| return compo | |
| } | |
| func (compo *BoxAttribute) SetNoPadding() types.BoxAttribute { | |
| compo.Padding = "padding:0;" | |
| return compo | |
| } | |
| func (compo *BoxAttribute) WithSecondHeadBorder() types.BoxAttribute { | |
| compo.SecondHeadBorder = "with-border" | |
| return compo | |
| } | |
| func (compo *BoxAttribute) GetContent() template.HTML { | |
| if compo.Style == "" { | |
| compo.Style = template.HTMLAttr(fmt.Sprintf(`style="%s"`, compo.Padding)) | |
| } else { | |
| compo.Style = template.HTMLAttr(fmt.Sprintf(`style="%s"`, string(compo.Style)+compo.Padding)) | |
| } | |
| return ComposeHtml(compo.TemplateList, compo.Separation, *compo, "box") | |
| } | |