mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-25 16:58:06 +08:00
opt kit.RangeTable
This commit is contained in:
parent
7186c18234
commit
409207248c
@ -1122,6 +1122,9 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心",
|
||||
"git": &ctx.Config{Name: "git", Value: map[string]interface{}{
|
||||
"args": []interface{}{"-C", "@git_dir"},
|
||||
"info": map[string]interface{}{"cmds": []interface{}{"log", "status", "branch"}},
|
||||
"update": map[string]interface{}{"cmds": []interface{}{"stash", "pull", "pop"}},
|
||||
"pop": map[string]interface{}{"args": []interface{}{"stash", "pop"}},
|
||||
"commit": map[string]interface{}{"args": []interface{}{"commit", "-am"}},
|
||||
"branch": map[string]interface{}{"args": []interface{}{"branch", "-v"}},
|
||||
"status": map[string]interface{}{"args": []interface{}{"status", "-sb"}},
|
||||
"log": map[string]interface{}{"args": []interface{}{"log", "-n", "limit", "--reverse", "pretty", "date"}},
|
||||
|
@ -85,6 +85,7 @@ var Index = &ctx.Context{Name: "ssh", Help: "集群中心",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "button", "value": "编译"},
|
||||
},
|
||||
"display": map[string]interface{}{"hide_append": true, "show_result": true},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "runtime", "componet_help": "runtime",
|
||||
"componet_tmpl": "componet", "componet_view": "Runtime", "componet_init": "",
|
||||
@ -93,51 +94,70 @@ var Index = &ctx.Context{Name: "ssh", Help: "集群中心",
|
||||
map[string]interface{}{"type": "button", "value": "运行"},
|
||||
},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "ifconfig", "componet_help": "ifconfig",
|
||||
"componet_tmpl": "componet", "componet_view": "Runtime", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "tcp", "componet_cmd": "ifconfig",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "button", "value": "网卡"},
|
||||
},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "context", "componet_help": "context",
|
||||
"componet_tmpl": "componet", "componet_view": "Runtime", "componet_init": "",
|
||||
"componet_tmpl": "componet", "componet_view": "Context", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "ctx", "componet_cmd": "context",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "button", "value": "模块"},
|
||||
},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "dir", "componet_help": "dir",
|
||||
"componet_tmpl": "componet", "componet_view": "Runtime", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "nfs", "componet_cmd": "dir",
|
||||
map[string]interface{}{"componet_name": "ifconfig", "componet_help": "ifconfig",
|
||||
"componet_tmpl": "componet", "componet_view": "Context", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "tcp", "componet_cmd": "ifconfig",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "text", "name": "pod"},
|
||||
map[string]interface{}{"type": "button", "value": "执行"},
|
||||
},
|
||||
"exports": []interface{}{"dir", "filename"},
|
||||
"display": map[string]interface{}{
|
||||
"hide_result": true,
|
||||
},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "git", "componet_help": "git",
|
||||
"componet_tmpl": "componet", "componet_view": "Runtime", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "cli", "componet_cmd": "git",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "text", "name": "dir", "imports": "plugin_dir"},
|
||||
map[string]interface{}{"type": "select", "name": "cmd", "values": []interface{}{"status", "diff"}},
|
||||
map[string]interface{}{"type": "button", "value": "执行"},
|
||||
map[string]interface{}{"type": "button", "value": "网卡"},
|
||||
},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "pod", "componet_help": "pod",
|
||||
"componet_tmpl": "componet", "componet_view": "Runtime", "componet_init": "",
|
||||
"componet_tmpl": "componet", "componet_view": "Context", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "ssh", "componet_cmd": "remote",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "button", "value": "执行"},
|
||||
},
|
||||
"exports": []interface{}{"pod", "key"},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "dir", "componet_help": "dir",
|
||||
"componet_tmpl": "componet", "componet_view": "Context", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "nfs", "componet_cmd": "dir",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "text", "name": "dir"},
|
||||
map[string]interface{}{"type": "button", "value": "执行"},
|
||||
},
|
||||
"display": map[string]interface{}{"hide_result": true},
|
||||
"exports": []interface{}{"dir", "filename"},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "git", "componet_help": "git",
|
||||
"componet_tmpl": "componet", "componet_view": "Context", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "cli", "componet_cmd": "git",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "text", "name": "dir", "imports": "plugin_dir"},
|
||||
map[string]interface{}{"type": "select", "name": "cmd", "values": []interface{}{
|
||||
"branch", "status", "diff", "log", "update", "commit", "push",
|
||||
}},
|
||||
map[string]interface{}{"type": "button", "value": "执行"},
|
||||
},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "spide", "componet_help": "spide",
|
||||
"componet_tmpl": "componet", "componet_view": "Context", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "web", "componet_cmd": "spide",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "button", "value": "执行"},
|
||||
},
|
||||
"exports": []interface{}{"site", "key"},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "get", "componet_help": "get",
|
||||
"componet_tmpl": "componet", "componet_view": "Context", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "web", "componet_cmd": "get",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "text", "name": "spide", "imports": "plugin_site"},
|
||||
map[string]interface{}{"type": "text", "name": "url"},
|
||||
map[string]interface{}{"type": "button", "value": "执行"},
|
||||
},
|
||||
},
|
||||
},
|
||||
"company": []interface{}{
|
||||
map[string]interface{}{"componet_name": "cmd", "componet_help": "cmd",
|
||||
"componet_tmpl": "componet", "componet_view": "Runtime", "componet_init": "",
|
||||
"componet_tmpl": "componet", "componet_view": "Company", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "ssh", "componet_cmd": "_route",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "text", "name": "pod", "imports": "plugin_pod"},
|
||||
@ -147,12 +167,12 @@ var Index = &ctx.Context{Name: "ssh", Help: "集群中心",
|
||||
},
|
||||
},
|
||||
map[string]interface{}{"componet_name": "cmd", "componet_help": "cmd",
|
||||
"componet_tmpl": "componet", "componet_view": "Runtime", "componet_init": "",
|
||||
"componet_tmpl": "componet", "componet_view": "Company", "componet_init": "",
|
||||
"componet_type": "private", "componet_ctx": "ssh", "componet_cmd": "_route",
|
||||
"componet_args": []interface{}{}, "inputs": []interface{}{
|
||||
map[string]interface{}{"type": "text", "name": "pod", "imports": "plugin_pod"},
|
||||
map[string]interface{}{"type": "text", "name": "cmd", "value": "gg"},
|
||||
map[string]interface{}{"type": "select", "name": "sub", "values": []interface{}{"status", ""}},
|
||||
map[string]interface{}{"type": "select", "name": "sub", "values": []interface{}{"deploygo"}},
|
||||
map[string]interface{}{"type": "text", "name": "sub", "imports": "plugin_dir"},
|
||||
map[string]interface{}{"type": "text", "name": "sub", "imports": "plugin_branch"},
|
||||
map[string]interface{}{"type": "button", "value": "执行"},
|
||||
|
@ -464,7 +464,13 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
||||
"spide": &ctx.Command{Name: "spide [which [client|cookie [name [value]]]]", Help: "爬虫配置", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) (e error) {
|
||||
switch len(arg) {
|
||||
case 0:
|
||||
m.Cmdy("ctx.config", "spide")
|
||||
m.Confm("spide", func(key string, value map[string]interface{}) {
|
||||
m.Add("append", "key", key)
|
||||
m.Add("append", "protocol", kit.Chains(value, "client.protocol"))
|
||||
m.Add("append", "hostname", kit.Chains(value, "client.hostname"))
|
||||
m.Add("append", "path", kit.Chains(value, "client.path"))
|
||||
})
|
||||
m.Sort("key").Table()
|
||||
case 1:
|
||||
m.Cmdy("ctx.config", "spide", arg[0])
|
||||
case 2:
|
||||
|
@ -56,11 +56,12 @@ fieldset.Steam div.output tr.select {
|
||||
background-color:red;
|
||||
}
|
||||
fieldset.Steam div.create {
|
||||
clear:both;
|
||||
/* clear:both; */
|
||||
}
|
||||
fieldset.Steam div.create pre:hover {
|
||||
background-color:red;
|
||||
}
|
||||
|
||||
fieldset div.output {
|
||||
clear:both;
|
||||
}
|
||||
|
@ -369,26 +369,26 @@ var page = Page({
|
||||
|
||||
var toggle = true
|
||||
pane.Action = {
|
||||
"恢复": function(event) {
|
||||
"恢复": function(event, value) {
|
||||
page.onlayout(event, page.conf.layout)
|
||||
},
|
||||
"缩小": function(event) {
|
||||
"缩小": function(event, value) {
|
||||
page.onlayout(event, {action:60, source:60})
|
||||
},
|
||||
"放大": function(event) {
|
||||
"放大": function(event, value) {
|
||||
page.onlayout(event, {action:300, source:60})
|
||||
},
|
||||
"最高": function(event) {
|
||||
"最高": function(event, value) {
|
||||
page.onlayout(event, {action: -1})
|
||||
},
|
||||
"最宽": function(event) {
|
||||
"最宽": function(event, value) {
|
||||
page.onlayout(event, {river:0, storm:0})
|
||||
},
|
||||
"最大": function(event) {
|
||||
"最大": function(event, value) {
|
||||
(toggle = !toggle)? page.onlayout(event, page.conf.layout): page.onlayout(event, {river:0, action:-1, source:60})
|
||||
page.target.Stop = !toggle
|
||||
},
|
||||
"全屏": function(event) {
|
||||
"全屏": function(event, value) {
|
||||
page.onlayout(event, {header:0, footer:0, river:0, action: -1, storm:0})
|
||||
},
|
||||
}
|
||||
@ -570,7 +570,8 @@ var page = Page({
|
||||
conf.button.forEach(function(value, index) {
|
||||
buttons.push({"button": [value, function(event) {
|
||||
typeof conf["action"] == "function" && conf["action"](value, event)
|
||||
typeof conf["action"] == "object" && conf["action"][value](event)
|
||||
typeof conf["action"] == "object" && conf["action"][value](event, value)
|
||||
pane.Button = value
|
||||
}]})
|
||||
})
|
||||
kit.InsertChild(pane, output, "div", buttons).className = "action "+form.dataset.componet_name
|
||||
@ -583,13 +584,14 @@ var page = Page({
|
||||
|
||||
page.onlayout(null, page.conf.layout)
|
||||
kit.isMobile && page.action.Action["最宽"]()
|
||||
ctx.Search("layout") && page.action.Action[ctx.Search("layout")]()
|
||||
|
||||
page.footer.Order({"text": "", "ip": ""}, ["ip", "text"])
|
||||
kit.isMobile && page.footer.Order({"text": "", "site": "", "ip": ""}, ["ip", "text", "site"])
|
||||
page.header.Order({"user": "", "logout": "logout"}, ["logout", "user"], function(event, item, value) {
|
||||
switch (item) {
|
||||
case "title":
|
||||
ctx.Search({"river": page.river.which.get(), "storm": page.storm.which.get()})
|
||||
ctx.Search({"river": page.river.which.get(), "storm": page.storm.which.get(), "layout": page.action.Button})
|
||||
break
|
||||
case "user":
|
||||
var name = page.prompt("new name")
|
||||
|
@ -6,7 +6,19 @@ ctx = context = {
|
||||
}
|
||||
this.GET("", option, function(msg) {
|
||||
msg = msg && msg[0]
|
||||
msg && (msg.__proto__ = (page || {}))
|
||||
// msg && (msg.__proto__ = (page || {}))
|
||||
msg.Result = msg.result? msg.result.join(""): ""
|
||||
msg.Results = function() {
|
||||
var s = msg.Result
|
||||
s = s.replace(/</g, "<")
|
||||
s = s.replace(/>/g, ">")
|
||||
s = s.replace(/\033\[1m/g, "<span style='font-weight:bold'>")
|
||||
s = s.replace(/\033\[36m/g, "<span style='color:#0ff'>")
|
||||
s = s.replace(/\033\[32m/g, "<span style='color:#0f0'>")
|
||||
s = s.replace(/\033\[31m/g, "<span style='color:#f00'>")
|
||||
s = s.replace(/\033\[m/g, "</span>")
|
||||
return s
|
||||
}
|
||||
typeof cb == "function" && cb(msg || {})
|
||||
})
|
||||
},
|
||||
|
@ -31,6 +31,22 @@ fieldset div.output div.item:hover {
|
||||
fieldset div.output div.item.select {
|
||||
background-color:red;
|
||||
}
|
||||
fieldset div.output div.code {
|
||||
color:white;
|
||||
font-size:14px;
|
||||
font-family:monospace;
|
||||
background-color:#272822;
|
||||
white-space:pre;
|
||||
padding:10px;
|
||||
overflow:auto;
|
||||
border:solid 3px green;
|
||||
}
|
||||
fieldset div.output div.code span.red {
|
||||
color:red;
|
||||
}
|
||||
fieldset div.output div.code span.green {
|
||||
color:green;
|
||||
}
|
||||
|
||||
fieldset.toast {
|
||||
background-color:#ffffff00;
|
||||
|
@ -396,7 +396,7 @@ function Plugin(field, tool, args, plugin) {
|
||||
!display.hide_append && msg.append && kit.OrderTable(kit.AppendTable(kit.AppendChild(output, "table"), ctx.Table(msg), msg.append), exports[1], function(event, value) {
|
||||
page.Sync("plugin_"+exports[0]).set(value)
|
||||
});
|
||||
(display.display_result || !msg.append) && msg.result && kit.AppendChild(output, [{type: "code", list: [{text: [msg.result.join(""), "pre"]}]}])
|
||||
(display.show_result || !msg.append) && msg.result && kit.AppendChild(output, [{view: ["code", "div", msg.Results()]}])
|
||||
})(msg)
|
||||
})
|
||||
}
|
||||
|
@ -345,69 +345,48 @@ kit = toolkit = {
|
||||
},
|
||||
RangeTable: function(table, index, sort_asc) {
|
||||
var list = table.querySelectorAll("tr")
|
||||
var new_list = []
|
||||
|
||||
var is_time = true
|
||||
var is_number = true
|
||||
var is_time = true, is_number = true
|
||||
for (var i = 1; i < list.length; i++) {
|
||||
var value = Date.parse(list[i].childNodes[index].innerText)
|
||||
var text = list[i].childNodes[index].innerText
|
||||
var value = Date.parse(text)
|
||||
if (!(value > 0)) {
|
||||
is_time = false
|
||||
}
|
||||
|
||||
var value = parseInt(list[i].childNodes[index].innerText)
|
||||
if (!(value >= 0 || value <= 0)) {
|
||||
var value = parseInt(text)
|
||||
if (text != "" && !(value >= 0 || value <= 0)) {
|
||||
is_number = false
|
||||
}
|
||||
|
||||
new_list.push(list[i])
|
||||
}
|
||||
|
||||
var sort_order = ""
|
||||
if (is_time) {
|
||||
if (sort_asc) {
|
||||
method = function(a, b) {return Date.parse(a) > Date.parse(b)}
|
||||
sort_order = "time"
|
||||
var num_list = [], new_list = []
|
||||
for (var i = 1; i < list.length; i++) {
|
||||
var text = list[i].childNodes[index].innerText
|
||||
if (is_time) {
|
||||
num_list.push(Date.parse(text))
|
||||
} else if (is_number) {
|
||||
num_list.push(parseInt(text) || 0)
|
||||
} else {
|
||||
method = function(a, b) {return Date.parse(a) < Date.parse(b)}
|
||||
sort_order = "time_r"
|
||||
}
|
||||
} else if (is_number) {
|
||||
if (sort_asc) {
|
||||
method = function(a, b) {return parseInt(a) > parseInt(b)}
|
||||
sort_order = "int"
|
||||
} else {
|
||||
method = function(a, b) {return parseInt(a) < parseInt(b)}
|
||||
sort_order = "int_r"
|
||||
}
|
||||
} else {
|
||||
if (sort_asc) {
|
||||
method = function(a, b) {return a > b}
|
||||
sort_order = "str"
|
||||
} else {
|
||||
method = function(a, b) {return a < b}
|
||||
sort_order = "str_r"
|
||||
}
|
||||
}
|
||||
|
||||
list = new_list
|
||||
new_list = []
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
list[i].parentElement && list[i].parentElement.removeChild(list[i])
|
||||
for (var j = i+1; j < list.length; j++) {
|
||||
if (typeof method == "function" && method(list[i].childNodes[index].innerText, list[j].childNodes[index].innerText)) {
|
||||
var temp = list[i]
|
||||
list[i] = list[j]
|
||||
list[j] = temp
|
||||
}
|
||||
num_list.push(text)
|
||||
}
|
||||
new_list.push(list[i])
|
||||
}
|
||||
|
||||
for (var i = 0; i < new_list.length; i++) {
|
||||
for (var j = i+1; j < new_list.length; j++) {
|
||||
if (sort_asc? num_list[i] < num_list[j]: num_list[i] > num_list[j]) {
|
||||
var temp = num_list[i]
|
||||
num_list[i] = num_list[j]
|
||||
num_list[j] = temp
|
||||
var temp = new_list[i]
|
||||
new_list[i] = new_list[j]
|
||||
new_list[j] = temp
|
||||
}
|
||||
}
|
||||
new_list[i].parentElement && new_list[i].parentElement.removeChild(new_list[i])
|
||||
table.appendChild(new_list[i])
|
||||
}
|
||||
return sort_order
|
||||
},
|
||||
OrderTable: function(table, field, cb) {
|
||||
if (!table) {return}
|
||||
|
Loading…
x
Reference in New Issue
Block a user