forked from x/ContextOS
opt bench
Change-Id: I6559ead36be5c899f371c64ec1894f55ac016128
This commit is contained in:
parent
8edd3fed55
commit
cc12c2595d
@ -114,7 +114,7 @@ func (web *WEB) HandleCmd(m *ctx.Message, key string, cmd *ctx.Command) {
|
|||||||
if k == "ticket" {
|
if k == "ticket" {
|
||||||
m.Log("info", "hide ticket %v %v %v %v", k, v, r.URL, r.Header.Get("index_path"))
|
m.Log("info", "hide ticket %v %v %v %v", k, v, r.URL, r.Header.Get("index_path"))
|
||||||
uri, _ := r.URL.Parse(r.Header.Get("index_path"))
|
uri, _ := r.URL.Parse(r.Header.Get("index_path"))
|
||||||
http.Redirect(w, r, uri.Path+"?workflow="+uri.Query().Get("workflow"), http.StatusTemporaryRedirect)
|
http.Redirect(w, r, uri.Path+"?bench="+uri.Query().Get("bench"), http.StatusTemporaryRedirect)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -350,8 +350,8 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
},
|
},
|
||||||
}, Help: "组件列表"},
|
}, Help: "组件列表"},
|
||||||
|
|
||||||
"workflow": &ctx.Config{Name: "workflow", Value: map[string]interface{}{}, Help: "默认组件"},
|
"bench": &ctx.Config{Name: "bench", Value: map[string]interface{}{}, Help: "默认组件"},
|
||||||
"workflow_view": &ctx.Config{Name: "workflow_view", Value: map[string]interface{}{
|
"bench_view": &ctx.Config{Name: "bench_view", Value: map[string]interface{}{
|
||||||
"base": []interface{}{"key", "share", "comment", "creator", "create_time", "modify_time", "commands"},
|
"base": []interface{}{"key", "share", "comment", "creator", "create_time", "modify_time", "commands"},
|
||||||
"link": []interface{}{"share", "comment", "creator", "link"},
|
"link": []interface{}{"share", "comment", "creator", "link"},
|
||||||
}, Help: "默认组件"},
|
}, Help: "默认组件"},
|
||||||
@ -844,21 +844,74 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
m.Appendv("login", login)
|
m.Appendv("login", login)
|
||||||
m.Echo(sessid)
|
m.Echo(sessid)
|
||||||
}},
|
}},
|
||||||
"workflow": &ctx.Command{Name: "workflow", Help: "任务列表", Form: map[string]int{"view": 1}, Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
"bench": &ctx.Command{Name: "bench", Help: "任务列表", Form: map[string]int{"view": 1}, Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
||||||
flow := m.Confv("workflow").(map[string]interface{})
|
default_com := "default bench"
|
||||||
if len(arg) > 0 && arg[0] == "delete" {
|
default_cmd := map[string]interface{}{}
|
||||||
delete(flow, arg[1])
|
if len(arg) > 0 && arg[0] == "copy" { // 复制工作流
|
||||||
|
bench := m.Confv("bench", arg[1]).(map[string]interface{})
|
||||||
|
for k, v := range bench["commands"].(map[string]interface{}) {
|
||||||
|
default_cmd[k] = v
|
||||||
|
}
|
||||||
|
arg[0] = "create"
|
||||||
|
default_com = bench["comment"].(string)
|
||||||
|
m.Option("bench", "")
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(arg) > 0 && arg[0] == "create" { // 创建工作流
|
||||||
|
create_time := time.Now().Format(m.Conf("time_format"))
|
||||||
|
key := m.Option("bench")
|
||||||
|
if key == "" {
|
||||||
|
key = m.Sess("aaa").Cmd("md5", m.Option("remote_addr"), create_time).Result(0)
|
||||||
|
}
|
||||||
|
link := fmt.Sprintf("%s?bench=%s", m.Conf("site"), key)
|
||||||
|
if _, ok := m.Confv("bench").(map[string]interface{}); !ok {
|
||||||
|
m.Log("info", "%s create bench %s", m.Option("username"), key)
|
||||||
|
m.Confv("bench", key, map[string]interface{}{
|
||||||
|
"remote_addr": m.Option("remote_addr"),
|
||||||
|
"modify_time": create_time,
|
||||||
|
"create_time": create_time,
|
||||||
|
"creator": m.Option("username"),
|
||||||
|
"share": "protected",
|
||||||
|
"link": link,
|
||||||
|
"comment": default_com,
|
||||||
|
"key": key,
|
||||||
|
"commands": default_cmd,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Append("key", key)
|
||||||
|
m.Echo(link)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
bench := m.Confv("bench").(map[string]interface{})
|
||||||
|
if len(arg) > 0 && arg[0] == "check" { // 检查工作流
|
||||||
|
if bench["creator"].(string) != arg[1] {
|
||||||
|
switch bench["share"].(string) {
|
||||||
|
case "private":
|
||||||
|
m.Echo("private")
|
||||||
|
return
|
||||||
|
case "protected":
|
||||||
|
m.Echo("protected")
|
||||||
|
case "public":
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(arg) > 0 && arg[0] == "delete" { // 删除工作流
|
||||||
|
delete(bench, arg[1])
|
||||||
arg = arg[2:]
|
arg = arg[2:]
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 { // 查看工作流
|
||||||
view := "base"
|
view := "base"
|
||||||
if m.Has("view") {
|
if m.Has("view") {
|
||||||
view = m.Option("view")
|
view = m.Option("view")
|
||||||
}
|
}
|
||||||
for _, v := range flow {
|
for _, v := range bench {
|
||||||
val := v.(map[string]interface{})
|
val := v.(map[string]interface{})
|
||||||
for _, k := range m.Confv("workflow_view", view).([]interface{}) {
|
for _, k := range m.Confv("bench_view", view).([]interface{}) {
|
||||||
switch v := val[k.(string)].(type) {
|
switch v := val[k.(string)].(type) {
|
||||||
case map[string]interface{}:
|
case map[string]interface{}:
|
||||||
b, _ := json.Marshal(v)
|
b, _ := json.Marshal(v)
|
||||||
@ -874,11 +927,12 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(arg) > 1 {
|
if len(arg) > 1 { // 编辑工作流
|
||||||
m.Confv("workflow", strings.Split(arg[0], "."), arg[1])
|
m.Confv("bench", strings.Split(arg[0], "."), arg[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
msg := m.Spawn().Put("option", "_cache", flow).Cmd("trans", "_cache", arg[0])
|
// 查看工作流
|
||||||
|
msg := m.Spawn().Put("option", "_cache", bench).Cmd("trans", "_cache", arg[0])
|
||||||
m.Copy(msg, "append").Copy(msg, "result")
|
m.Copy(msg, "append").Copy(msg, "result")
|
||||||
}},
|
}},
|
||||||
|
|
||||||
@ -957,42 +1011,17 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected := false
|
bench_share := ""
|
||||||
workflow, ok := m.Confv("workflow", m.Option("workflow")).(map[string]interface{})
|
|
||||||
if right {
|
if right {
|
||||||
if !ok { // 创建工作流
|
if _, ok := m.Confv("bench", m.Option("bench")).(map[string]interface{}); !ok { // 创建工作流
|
||||||
create_time := time.Now().Format(m.Conf("time_format"))
|
m.Append("redirect", fmt.Sprintf("?bench=%s", m.Spawn().Cmd("bench", "create").Append("key")))
|
||||||
id := m.Option("workflow")
|
|
||||||
if id == "" {
|
|
||||||
id = m.Sess("aaa").Cmd("md5", m.Option("remote_addr"), create_time).Result(0)
|
|
||||||
}
|
|
||||||
m.Confv("workflow", id, map[string]interface{}{
|
|
||||||
"remote_addr": m.Option("remote_addr"),
|
|
||||||
"modify_time": create_time,
|
|
||||||
"create_time": create_time,
|
|
||||||
"creator": m.Option("username"),
|
|
||||||
"share": "protected",
|
|
||||||
"link": fmt.Sprintf("%s?workflow=%s", m.Conf("site"), id),
|
|
||||||
"comment": "default flow",
|
|
||||||
"key": id,
|
|
||||||
"commands": map[string]interface{}{},
|
|
||||||
})
|
|
||||||
|
|
||||||
m.Append("redirect", fmt.Sprintf("?workflow=%s", id))
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if bench_share = m.Spawn().Cmd("bench", "check", m.Option("username")).Result(0); bench_share == "private" {
|
||||||
if workflow["creator"].(string) != m.Option("username") {
|
return
|
||||||
switch workflow["share"].(string) {
|
|
||||||
case "private":
|
|
||||||
return
|
|
||||||
case "protected":
|
|
||||||
protected = true
|
|
||||||
case "public":
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.Log("info", "group: %v, order: %v, right: %v, share: %v", group, order, right, workflow["share"])
|
m.Log("info", "group: %v, order: %v, right: %v, share: %v", group, order, right, bench_share)
|
||||||
|
|
||||||
for count := 0; count == 0; group, order, right = "login", "", true {
|
for count := 0; count == 0; group, order, right = "login", "", true {
|
||||||
for _, v := range m.Confv("componet", group).([]interface{}) {
|
for _, v := range m.Confv("componet", group).([]interface{}) {
|
||||||
@ -1067,9 +1096,9 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
|
|
||||||
if order != "" || (val["pre_run"] != nil && val["pre_run"].(bool)) {
|
if order != "" || (val["pre_run"] != nil && val["pre_run"].(bool)) {
|
||||||
if val["componet_cmd"] != nil {
|
if val["componet_cmd"] != nil {
|
||||||
if !protected {
|
if bench_share != "protected" {
|
||||||
m.Confv("workflow", []interface{}{m.Option("workflow"), "commands", m.Option("componet_name_order")}, args[1:])
|
m.Confv("bench", []interface{}{m.Option("bench"), "commands", m.Option("componet_name_order")}, args[1:])
|
||||||
m.Confv("workflow", []interface{}{m.Option("workflow"), "modify_time"}, time.Now().Format(m.Conf("time_format")))
|
m.Confv("bench", []interface{}{m.Option("bench"), "modify_time"}, time.Now().Format(m.Conf("time_format")))
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.Cmd(args)
|
msg.Cmd(args)
|
||||||
|
@ -98,7 +98,7 @@ function add_command() {
|
|||||||
"dataset": {
|
"dataset": {
|
||||||
"componet_group": "index",
|
"componet_group": "index",
|
||||||
"componet_name": "command",
|
"componet_name": "command",
|
||||||
"componet_workflow": context.Search("workflow"),
|
"componet_bench": context.Search("bench"),
|
||||||
"componet_name_alias": name,
|
"componet_name_alias": name,
|
||||||
"componet_name_order": code.ncommand-1,
|
"componet_name_order": code.ncommand-1,
|
||||||
}
|
}
|
||||||
@ -219,7 +219,7 @@ function sort_table(table, index, sort_asc) {
|
|||||||
if (sort_asc) {
|
if (sort_asc) {
|
||||||
method = function(a, b) {return Date.parse(a) > Date.parse(b)}
|
method = function(a, b) {return Date.parse(a) > Date.parse(b)}
|
||||||
sort_order = "time"
|
sort_order = "time"
|
||||||
} else {
|
} else {
|
||||||
method = function(a, b) {return Date.parse(a) < Date.parse(b)}
|
method = function(a, b) {return Date.parse(a) < Date.parse(b)}
|
||||||
sort_order = "time_r"
|
sort_order = "time_r"
|
||||||
}
|
}
|
||||||
@ -227,7 +227,7 @@ function sort_table(table, index, sort_asc) {
|
|||||||
if (sort_asc) {
|
if (sort_asc) {
|
||||||
method = function(a, b) {return parseInt(a) > parseInt(b)}
|
method = function(a, b) {return parseInt(a) > parseInt(b)}
|
||||||
sort_order = "int"
|
sort_order = "int"
|
||||||
} else {
|
} else {
|
||||||
method = function(a, b) {return parseInt(a) < parseInt(b)}
|
method = function(a, b) {return parseInt(a) < parseInt(b)}
|
||||||
sort_order = "int_r"
|
sort_order = "int_r"
|
||||||
}
|
}
|
||||||
@ -681,26 +681,26 @@ function init_userinfo() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function init_workflow() {
|
function init_bench() {
|
||||||
var max = 0
|
var max = 0
|
||||||
for (var k in workflow.commands) {
|
for (var k in bench.commands) {
|
||||||
if (parseInt(k) > max) {
|
if (parseInt(k) > max) {
|
||||||
max = parseInt(k)
|
max = parseInt(k)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (workflow.commands[""]) {
|
if (bench.commands[""]) {
|
||||||
var option = document.querySelector("form.option.command")
|
var option = document.querySelector("form.option.command")
|
||||||
var cmd = option.querySelector("input[name=cmd]")
|
var cmd = option.querySelector("input[name=cmd]")
|
||||||
cmd.value = workflow.commands[""].join(" ")
|
cmd.value = bench.commands[""].join(" ")
|
||||||
check_option(option)
|
check_option(option)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 1; i <= max; i++) {
|
for (var i = 1; i <= max; i++) {
|
||||||
var fieldset = add_command()
|
var fieldset = add_command()
|
||||||
if (workflow.commands[i]) {
|
if (bench.commands[i]) {
|
||||||
var cmd = fieldset.querySelector("input[name=cmd]")
|
var cmd = fieldset.querySelector("input[name=cmd]")
|
||||||
cmd.value = workflow.commands[i].join(" ")
|
cmd.value = bench.commands[i].join(" ")
|
||||||
var option = fieldset.querySelector("form.option")
|
var option = fieldset.querySelector("form.option")
|
||||||
check_option(option)
|
check_option(option)
|
||||||
var option = fieldset.querySelector("form.option")
|
var option = fieldset.querySelector("form.option")
|
||||||
@ -721,7 +721,7 @@ window.onload = function() {
|
|||||||
init_context()
|
init_context()
|
||||||
init_command()
|
init_command()
|
||||||
init_userinfo()
|
init_userinfo()
|
||||||
init_workflow()
|
init_bench()
|
||||||
init_control()
|
init_control()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,8 +104,8 @@
|
|||||||
</head>
|
</head>
|
||||||
<body onkeyup="return onaction(event, 'keymap')" onkeydown="return onaction(event, 'scroll')">
|
<body onkeyup="return onaction(event, 'keymap')" onkeydown="return onaction(event, 'scroll')">
|
||||||
<script>
|
<script>
|
||||||
{{$id := option . "workflow"|option}}
|
{{$id := option . "bench"|option}}
|
||||||
var workflow ={{conf . "workflow" $id}}
|
var bench ={{conf . "bench" $id}}
|
||||||
</script>
|
</script>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
@ -133,7 +133,7 @@
|
|||||||
<form class="option {{option .Meta "componet_name"}}"
|
<form class="option {{option .Meta "componet_name"}}"
|
||||||
data-componet_group="{{option . "componet_group"|meta}}"
|
data-componet_group="{{option . "componet_group"|meta}}"
|
||||||
data-componet_name="{{option . "componet_name"|meta}}"
|
data-componet_name="{{option . "componet_name"|meta}}"
|
||||||
data-componet_workflow="{{option . "workflow"|meta}}"
|
data-componet_bench="{{option . "bench"|meta}}"
|
||||||
{{if eq $form_type "upload"}}
|
{{if eq $form_type "upload"}}
|
||||||
method="POST" action="/upload" enctype="multipart/form-data"
|
method="POST" action="/upload" enctype="multipart/form-data"
|
||||||
onsubmit="onaction(event,'upload')"
|
onsubmit="onaction(event,'upload')"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user