From 55019004c6ed5b4025889c187d7369bc69664e22 Mon Sep 17 00:00:00 2001 From: shaoying Date: Fri, 4 Jan 2019 00:02:44 +0800 Subject: [PATCH] opt web.render Change-Id: Ieb8bfed19e16f6a126906ccc1383e20585d42229 --- src/contexts/aaa/aaa.go | 2 +- src/contexts/ctx/ctx.go | 7 +++ src/contexts/web/web.go | 97 +++++++++++++++++-------------------- src/examples/code/code.go | 2 +- src/examples/wiki/wiki.go | 2 +- usr/librarys/wiki.js | 5 -- usr/template/wiki/wiki.tmpl | 2 +- 7 files changed, 55 insertions(+), 62 deletions(-) diff --git a/src/contexts/aaa/aaa.go b/src/contexts/aaa/aaa.go index f2ad2fd2..32e15bf1 100644 --- a/src/contexts/aaa/aaa.go +++ b/src/contexts/aaa/aaa.go @@ -980,7 +980,7 @@ var Index = &ctx.Context{Name: "aaa", Help: "认证中心", } } }}, - "key": &ctx.Command{Name: "key [filename]", Help: "导出私钥", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { + "keys": &ctx.Command{Name: "keys [filename]", Help: "导出私钥", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { if aaa, ok := m.Target().Server.(*AAA); m.Assert(ok) && aaa.private != nil { private := string(pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(aaa.private)})) if m.Echo(private); len(arg) > 0 { diff --git a/src/contexts/ctx/ctx.go b/src/contexts/ctx/ctx.go index 69ce4487..bf345d2b 100644 --- a/src/contexts/ctx/ctx.go +++ b/src/contexts/ctx/ctx.go @@ -1067,6 +1067,10 @@ func (m *Message) Table(cbs ...func(maps map[string]string, list []string, line } for i := 0; i < len(m.Meta[m.Meta["append"][0]]); i++ { for _, k := range m.Meta["append"] { + if i >= len(m.Meta[k]) { + m.Meta[k] = append(m.Meta[k], "") + } + data := m.Meta[k][i] if len(data) > width[k] { width[k] = len(data) @@ -3372,6 +3376,9 @@ var Index = &Context{Name: "ctx", Help: "模块中心", m.Set("result") // 解析 + if len(m.Meta["append"]) == 0 { + return + } nrow := len(m.Meta[m.Meta["append"][0]]) keys := []string{} for i := 0; i < nrow; i++ { diff --git a/src/contexts/web/web.go b/src/contexts/web/web.go index 9b3c53eb..1330dc60 100644 --- a/src/contexts/web/web.go +++ b/src/contexts/web/web.go @@ -1109,6 +1109,7 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心", // 禁用权限 } else if username := m.Option("username", m.Cmd("web.session").Append("username")); username == "" { // 用户登录 group, order = m.Option("componet_group", "login"), m.Option("componet_name", "") + m.Option("right", "true") } else if group == "login" { // 登录成功 return } else if !m.Options("bench") || !m.Cmds("aaa.work", m.Option("bench")) { // 创建空间 @@ -1137,8 +1138,24 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心", } msg := m.Find(context) - // 添加固定值 - if msg != nil { + if msg != nil && val["componet_cmd"] != nil { + // 添加参数值 + args := []string{val["componet_cmd"].(string)} + if val["arguments"] != nil { + for _, v := range val["arguments"].([]interface{}) { + switch value := v.(type) { + case string: + args = append(args, msg.Parse(value)) + } + } + } + + // 权限检查 + if m.Options("bench") && !m.Cmds("aaa.work", m.Option("bench"), "right", m.Option("username"), "componet", m.Option("componet_group"), "command", args[0]) { + continue + } + + // 添加固定值 msg.Option("componet_name", val["componet_name"].(string)) for k, v := range val { if msg.Option(k) != "" { @@ -1153,69 +1170,43 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心", msg.Put("option", k, value) } } - } - pre_run, _ := val["pre_run"].(bool) - if (!pre_run && order == "") || msg == nil { - if msg == nil { - msg = m - } - if accept_json { - list = append(list, msg.Meta) - } else if val["template"] != nil { - m.Assert(tmpl.ExecuteTemplate(w, val["template"].(string), msg)) - } - continue - } - // 添加输入值 - if val["inputs"] != nil { - for _, v := range val["inputs"].([]interface{}) { - value := v.(map[string]interface{}) - if value["name"] != nil && msg.Option(value["name"].(string)) == "" { - msg.Add("option", value["name"].(string), value["value"]) + // 添加输入值 + if val["inputs"] != nil { + for _, v := range val["inputs"].([]interface{}) { + value := v.(map[string]interface{}) + if value["name"] != nil && msg.Option(value["name"].(string)) == "" { + msg.Add("option", value["name"].(string), value["value"]) + } } } - } - // 添加参数值 - args := []string{} - if val["componet_cmd"] != nil { - args = append(args, val["componet_cmd"].(string)) - } - if val["arguments"] != nil { - for _, v := range val["arguments"].([]interface{}) { - switch value := v.(type) { - case string: - args = append(args, msg.Parse(value)) + // 执行命令 + if pre_run, _ := val["pre_run"].(bool); pre_run || order != "" { + msg.Option("sso_bench", m.Option("bench")) + msg.Option("sso_username", m.Option("username")) + msg.Cmd(args) + + if m.Options("bench") { + name_alias := "action." + msg.Option("componet_name") + if msg.Options("componet_name_alias") { + name_alias = "action." + msg.Option("componet_name_alias") + } + + msg.Put("option", name_alias, map[string]interface{}{ + "action_time": msg.Time(), "order": m.Option("componet_name_order"), "cmd": args, + }).Cmd("aaa.auth", m.Option("bench"), "data", "option", name_alias, "modify_time", msg.Time()) } } - } - - // 执行命令 - if pre_run || !m.Options("bench") || m.Cmds("aaa.work", m.Option("bench"), "right", m.Option("username"), "componet", m.Option("componet_group"), "command", args[0]) { - msg.Option("sso_bench", m.Option("bench")) - msg.Option("sso_username", m.Option("username")) - msg.Cmd(args) - - if m.Options("bench") { - name_alias := "action." + msg.Option("componet_name") - if msg.Options("componet_name_alias") { - name_alias = "action." + msg.Option("componet_name_alias") - } - - msg.Put("option", name_alias, map[string]interface{}{ - "action_time": msg.Time(), "order": m.Option("componet_name_order"), "cmd": args, - }).Cmd("aaa.auth", m.Option("bench"), "data", "option", name_alias, "modify_time", msg.Time()) - } + } else { + msg = m } // 添加响应 if msg.Appends("directory") { m.Append("download_file", fmt.Sprintf("/download/%s", msg.Append("directory"))) return - } - - if accept_json { + } else if accept_json { list = append(list, msg.Meta) } else if val["template"] != nil { m.Assert(tmpl.ExecuteTemplate(w, val["template"].(string), msg)) diff --git a/src/examples/code/code.go b/src/examples/code/code.go index 8b1575aa..2c26e795 100644 --- a/src/examples/code/code.go +++ b/src/examples/code/code.go @@ -118,7 +118,7 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心", "display_result": "", }, // map[string]interface{}{"componet_name": "download", "componet_help": "download", "template": "componet", - // "componet_ctx": "cli.shy", "componet_cmd": "source", "arguments": []interface{}{"@cmds"}, + // "componet_ctx": "cli.shy", "componet_cmd": "source", "arguments": []interface{}{"@cmds"},, // "display_result": "", "download_file": "", // "inputs": []interface{}{ // map[string]interface{}{"type": "text", "name": "download_file", "value": "data_2006_0102_1504.txt", "class": "file_name"}, diff --git a/src/examples/wiki/wiki.go b/src/examples/wiki/wiki.go index adbb147b..3a2d3fb2 100644 --- a/src/examples/wiki/wiki.go +++ b/src/examples/wiki/wiki.go @@ -20,7 +20,7 @@ var Index = &ctx.Context{Name: "wiki", Help: "文档中心", Caches: map[string]*ctx.Cache{}, Configs: map[string]*ctx.Config{ "wiki_dir": &ctx.Config{Name: "wiki_dir", Value: "usr/wiki", Help: "路由数量"}, - "wiki_favor": &ctx.Config{Name: "wiki_favor", Value: "p.md", Help: "路由数量"}, + "wiki_favor": &ctx.Config{Name: "wiki_favor", Value: "lamp.md", Help: "路由数量"}, "wiki_list": &ctx.Config{Name: "wiki_list", Value: []interface{}{}, Help: "路由数量"}, "wiki_list_show": &ctx.Config{Name: "wiki_list_show", Value: map[string]interface{}{ diff --git a/usr/librarys/wiki.js b/usr/librarys/wiki.js index ee5bc53c..f8fe80c5 100644 --- a/usr/librarys/wiki.js +++ b/usr/librarys/wiki.js @@ -199,9 +199,4 @@ window.onload = function(event) { init_link() init_code() init_table() - if (!context.isMobile) { - var nav = document.querySelector("nav") - nav.hidden = false - set_layout() - } } diff --git a/usr/template/wiki/wiki.tmpl b/usr/template/wiki/wiki.tmpl index 1b852ec9..5dc06c01 100644 --- a/usr/template/wiki/wiki.tmpl +++ b/usr/template/wiki/wiki.tmpl @@ -182,7 +182,7 @@ footer .title { {{end}} {{define "list"}} -