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  }