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