github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgView/kmgBootstrap/kmgBootstrapExample/kmgBootstrapExample.go (about) 1 package main 2 3 import ( 4 "github.com/bronze1man/kmg/encoding/kmgYaml" 5 "github.com/bronze1man/kmg/kmgControllerRunner" 6 "github.com/bronze1man/kmg/kmgNet/kmgHttp" 7 "github.com/bronze1man/kmg/kmgView" 8 "github.com/bronze1man/kmg/kmgView/kmgBootstrap" 9 ) 10 11 func main() { 12 kmgControllerRunner.RegisterController(Example{}) 13 kmgControllerRunner.EnterPointApiName = "main.Example.Demo1" 14 kmgControllerRunner.StartServerCommand() 15 } 16 17 type Example struct{} 18 19 func (e Example) Demo1(ctx *kmgHttp.Context) { 20 ctx.WriteString(kmgBootstrap.NewWrap("kmg bootstrap demo", 21 kmgBootstrap.NavBar{ 22 Title: kmgView.String("kmgBootstrap DEMO"), 23 OptionList: []kmgBootstrap.NavBarNode{ 24 {Name: "主页", Url: "/"}, 25 { 26 Name: "测试菜单1", 27 Url: "/?menu=1", 28 ChildList: []kmgBootstrap.NavBarNode{ 29 { 30 Name: "测试菜单-子菜单1-1", 31 Url: "/?menu=1-1", 32 ChildList: []kmgBootstrap.NavBarNode{ 33 { 34 Name: "测试菜单-子菜单1-1-1", 35 Url: "/?menu=1-1-1", 36 ChildList: []kmgBootstrap.NavBarNode{ 37 {Name: "测试菜单-子菜单1-1-1-1", Url: "/?menu=1-1-1-1"}, 38 }, 39 }, 40 {Name: "测试菜单-子菜单1-1-2", Url: "/?menu=1-1-2"}, 41 }, 42 }, 43 {Name: "测试菜单-子菜单1-2", Url: "/?menu=1-2"}, 44 }, 45 }, 46 }, 47 RightOptionList: []kmgBootstrap.NavBarNode{ 48 { 49 Name: "测试菜单1右", 50 Url: "/", 51 ChildList: []kmgBootstrap.NavBarNode{ 52 {Name: "测试菜单-子菜单1-1右边", Url: "/"}, 53 }, 54 }, 55 }, 56 }, 57 kmgBootstrap.Panel{ 58 Title: "Panel", 59 Body: kmgBootstrap.Panel{ 60 Title: "Panel", 61 Body: kmgView.String("Body"), 62 }, 63 }, 64 kmgBootstrap.Panel{ 65 Title: "Table", 66 Body: kmgBootstrap.Table{ 67 Caption: kmgView.String("Caption"), 68 TitleList: []kmgView.HtmlRenderer{ 69 kmgView.String("title1"), 70 kmgView.String("title2"), 71 }, 72 DataList: [][]kmgView.HtmlRenderer{ 73 { 74 kmgView.String("r1c1"), 75 kmgView.String("r1c2"), 76 }, 77 { 78 kmgView.String("r2c1"), 79 kmgView.String("r2c2"), 80 }, 81 }, 82 }, 83 }, 84 kmgBootstrap.Panel{ 85 Title: "DropDown", 86 Body: kmgView.HtmlRendererList{ 87 kmgView.String("使用 DropDown"), 88 kmgBootstrap.DropDown{ 89 Title: kmgBootstrap.Button{ 90 Size: kmgBootstrap.ButtonSizeSmall, 91 Color: kmgBootstrap.ButtonColorSuccess, 92 Content: kmgView.HtmlRendererList{ 93 kmgView.String("更多"), 94 kmgBootstrap.Blank(1), 95 kmgBootstrap.NewCaret(), 96 }, 97 }, 98 OptionList: []kmgBootstrap.NavBarNode{ 99 { 100 Name: "Say", 101 Url: "/", 102 ChildList: []kmgBootstrap.NavBarNode{ 103 { 104 Name: "你好", 105 }, 106 { 107 Name: "Hello", 108 }, 109 { 110 Name: "もしもし", 111 }, 112 { 113 Name: "Ciao", 114 }, 115 }, 116 }, 117 { 118 Name: "Do", 119 ChildList: []kmgBootstrap.NavBarNode{ 120 { 121 Name: "Walk", 122 }, 123 { 124 Name: "Sleep", 125 }, 126 }, 127 }, 128 }, 129 }, 130 kmgView.String("将操作集中起来,节省空间"), 131 kmgBootstrap.Br(1), 132 kmgView.String("还可以使用快捷方法 kmgBootstrap.NewMoreButton,获得默认样式"), 133 kmgBootstrap.NewMoreButton([]kmgBootstrap.NavBarNode{ 134 { 135 Name: "新增", 136 }, 137 { 138 Name: "删除", 139 }, 140 { 141 Name: "编辑", 142 }, 143 }), 144 }, 145 }, 146 kmgBootstrap.Panel{ 147 Title: "Icon", 148 Body: kmgBootstrap.Icon{ 149 IconName: "exchange", 150 IconColor: kmgBootstrap.TextDanger, 151 AttributeNode: kmgBootstrap.Popover{Title: "这里应该有一个图标"}, 152 }, 153 }, 154 kmgBootstrap.Panel{ 155 Title: "NavTabList", 156 Body: kmgView.HtmlRendererList{ 157 kmgBootstrap.NavTabList{ 158 ActiveName: "状态1", 159 OptionList: []kmgBootstrap.NavTabOption{ 160 {Name: "状态1", Url: "/#1"}, 161 {Name: "状态2", Url: "/#2"}, 162 }, 163 }, 164 kmgBootstrap.Br(1), 165 kmgBootstrap.NavTabList{ 166 ActiveName: "状态3", 167 CustomClass: "nav-tabs", 168 OptionList: []kmgBootstrap.NavTabOption{ 169 {Name: "状态3", Url: "/#3"}, 170 {Name: "状态4", Url: "/#4"}, 171 }, 172 }, 173 }, 174 }, 175 kmgBootstrap.Panel{ 176 Title: "Form", 177 Body: kmgView.HtmlRendererList{ 178 kmgBootstrap.Form{ 179 Url: "/", 180 InputList: []kmgView.HtmlRenderer{ 181 kmgBootstrap.InputVerticalString{ 182 Name: "UserName", 183 ShowName: "用户名", 184 Value: "enter your username here", 185 Comment: "必填", 186 Need: true, 187 }, 188 kmgBootstrap.TextAreaVerticalString{ 189 ShowName: "服务条款", 190 Value: "服务条款", 191 ReadOnly: true, 192 }, 193 kmgBootstrap.SelectVerticalString{ 194 ShowName: "性别", 195 Value: "girl", 196 Name: "Gender", 197 OptionList: []kmgBootstrap.SelectOption{ 198 {ShowName: "男", Value: "boy"}, 199 {ShowName: "女", Value: "girl"}, 200 }, 201 }, 202 }, 203 }, 204 kmgBootstrap.Br(2), 205 kmgBootstrap.Pre(`从 URL 直接发送 POST 的链接`), 206 kmgBootstrap.NewPostButton("/?n=main.Example.DemoPostAction&Name=kmg&Age=12", "POST 请求"), 207 kmgBootstrap.Blank(2), 208 kmgBootstrap.NewGetButton("/?n=main.Example.DemoPostAction&Name=kmg&Age=12", "非 POST 请求"), 209 }, 210 }, 211 ).HtmlRender()) 212 } 213 214 func (e Example) DemoPostAction(ctx *kmgHttp.Context) { 215 ctx.MustPost() 216 b := kmgYaml.MustMarshal(ctx.GetInMap()) 217 ctx.WriteString(kmgBootstrap.NewWrap("DemoPostAction", kmgBootstrap.Pre(` 218 You send me a HTTP POST Request 219 `+string(b))).HtmlRender()) 220 }