-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
box.go
115 lines (94 loc) · 2.79 KB
/
box.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package components
import (
"fmt"
"html/template"
"github.com/MarErm27/GoAdmin/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
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) 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="overflow-x: scroll;overflow-y: hidden;%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")
}