1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00

opt table.js

This commit is contained in:
shaoying 2021-05-24 00:03:33 +08:00
parent 680189e78d
commit 0f15e109ad
6 changed files with 62 additions and 127 deletions

View File

@ -82,10 +82,7 @@ Volcanos("ondaemon", {help: "推荐引擎", list: [], _init: function(can, name)
},
grow: function(can, msg, arg) {
var sub = can.ondaemon._list[msg.Option("_target")]
if (!sub || !sub._outputs || !sub._outputs.length) { return }
var out = sub._outputs[sub._outputs.length-1]
out.onimport._grow(out, arg.join(""))
sub.onimport._grow(sub, arg.join(""))
},
toast: function(can, msg, arg) {
can.onmotion.float.add(can, "float", can.core.CallFunc(can.user.toast, {can: can, msg: msg, cmds: arg}))
@ -166,7 +163,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
},
_option: function(can, meta, option) { var index = -1, args = can.base.Obj(meta.args||meta.arg, [])
function add(item, next) { item._input != "button" && item.type != "button" && index++
Volcanos(item.name, {_follow: can.core.Keys(can._follow, item.name), _target: can.onappend.input(can, item, args[index], option),
return Volcanos(item.name, {_follow: can.core.Keys(can._follow, item.name), _target: can.onappend.input(can, item, args[index], option),
_option: can._option, _action: can._action, _output: can._output, _status: can._status,
Option: can.Option, Action: can.Action, Status: can.Status,
CloneInput: function() { add(item)._target.focus() }, CloneField: function() { can.Clone() },
@ -176,6 +173,11 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
return msg.Option("_handle", "true"), can.core.CallFunc(input.onaction[cmds[1]], {event: event, can: input, msg: msg})
}
var table = can.core.Value(can, "_outputs.-1")
if (msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && table.onaction[cmds[1]]) {
return msg.Option("_handle", "true"), can.core.CallFunc(table.onaction[cmds[1]], {event: event, can: table, msg: msg})
}
return can.onappend._output(can, meta, event, can.Pack(cmds, silent), cb, silent)
}, can._inputs[item.name] = input
@ -210,14 +212,16 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
})
if (msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && can.onaction[cmds[1]]) {
return can.onaction[cmds[1]](event, can, cmds[1])
return msg.Option("_handle", "true"), can.core.CallFunc(can.onaction[cmds[1]], {event: event, can: can, msg: msg})
}
var feature = can.Conf("feature")
var input = msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && feature && feature[cmds[1]]; if (input) {
can.user.input(event, can, input, function(ev, button, data, list, args) {
var msg = can.request(event, {_handle: "true"}, can.Option())
can.onappend._output(can, meta, event, cmds.slice(0, 2).concat(args), cb, true)
can.onappend._output(can, meta, event, cmds.slice(0, 2).concat(args), function(msg) {
can.onappend._output(can, meta, event, can.Pack(), cb)
}, true)
})
return
}
@ -330,9 +334,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
can.core.List(array, function(item, index) { line[item.key||line.name] = item.value })
}
return {type: "td", inner: value, onclick: function(event) { var target = event.target
if (target.tagName == "INPUT" && target.type == "button") {
var msg = can.sup.request(event, can.Option(), line)
return {text: [value, "td"], onclick: function(event) { var target = event.target
if (target.tagName == "INPUT" && target.type == "button") { var msg = can.sup.request(event, can.Option())
key == "value"? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line)
return can.run(event, ["action", target.name], function(msg) { can.run() }, true)
}
@ -340,11 +344,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
can.onimport._init(can, msg, [], cb, can._output)
})
}, ondblclick: function(event) { var target = event.target
can.onmotion.modify(can, target, function(event, value, old) {
var msg = can.sup.request(event, can.Option(), line)
can.run(event, ["action", "modify", key, value], function(msg) {
can.user.toast(can, "修改成功")
}, true)
can.onmotion.modify(can, target, function(event, value, old) { var msg = can.sup.request(event, can.Option())
key == "value"? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line)
can.run(event, ["action", "modify", key == "value"? line.key||line.name: key, value], function(msg) { can.run() }, true)
})
}}
}); table && can.page.Modify(can, table, {className: "content"})

View File

@ -177,7 +177,7 @@ Volcanos("user", {help: "用户操作", agent: {
}
can.onappend.figure(can, item, item.value, function() {}, target)
target.value = target.value || msg.Option(item.name) || item.value
target.value = target.value || msg.Option(item.name)
}
return {type: "tr", list: [{type: "td", list: [{text: item.name||""}]}, {type: "td", list: [item]} ]}

View File

@ -112,6 +112,9 @@ Volcanos({name: "chat", iceberg: "/chat/", volcano: "/frame.js",
]},
}},
"operate": {name: "运维群", storm: {
"aaa": {name: "权限 aaa", index: [
"user",
]},
"cli": {name: "系统 cli", index: [
"system", "daemon", "python", "output",
"runtime", "process",

View File

@ -3,17 +3,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta,
})
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta, list, cb, target) {
can.base.isFunc(cb) && cb(); switch (meta.type) {
case "textarea":
case "text":
!target.placeholder && (target.placeholder = can.user.trans(can, meta.name) || "")
!target.title && (target.title = target.placeholder)
break
case "select": meta.value && (target.value = meta.value); break
case "button": meta.action == "auto" && target.click(); break
}
},
upload: function(event, can) { can.user.upload(event, can) },
"执行": function(event, can) { can.run(event) },
"刷新": function(event, can) { can.run(event) },
"查看": function(event, can) { can.run(event) },
@ -40,7 +34,6 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta,
case "m": if (event.ctrlKey) { can.CloneField() } break
}
},
onkeyup: function(event, can) { },
})
Volcanos("onexport", {help: "导出数据", list: []})

View File

@ -1,8 +1,7 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, list, cb, target) {
},
_process: function(can, msg, cmds, cb, silent) {
return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg, cmds, cb, silent])
},
_process: function(can, msg) { return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg]) },
_refresh: function(can, msg) {
can.core.Timer(parseInt(msg.Option("_delay")||"500"), function() {
var sub = can.request({}, {_count: parseInt(msg.Option("_count"))-1})
@ -10,41 +9,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
})
return true
},
_hold: function(can, msg) { return true },
_back: function(can) {
can._history.pop(); for (var his = can._history.pop(); his; his = can._history.pop()) {
if (his[0] == "action") { continue }
can.page.Select(can, can._option, "textarea.args,input.args,select.args", function(item, index) {
item.value = his[index]||""
}), can.onappend._output(can, can.Conf(), {}, can.Pack([]))
break
}
!his && can.onappend._output(can, can.Conf(), {}, can.Pack([]))
return true
},
_progress: function(can, msg, cmds, cb, silent) {
var size = msg.Append("size") || msg.Append("count")
if (size != "" && size == msg.Append("total")) { return true }
can.user.toast(can, {
title: can._name+" "+msg.Append("step")+"% ", width: 400,
content: "执行进度: "+can.base.Size(size||0)+"/"+can.base.Size(msg.Append("total")||"1000")+"\n"+msg.Append("name"),
duration: 1100, progress: parseInt(msg.Append("step")),
})
can.page.Select(can, can._output, "td", function(td) {
if (td.innerText == msg.Option("name")) {
can.page.ClassList.add(can, td, "done")
}
})
can.core.Timer(1000, function() {
var res = can.request({}, {_progress: msg.Option("_progress")})
return can.onappend._output(can, can.Conf(), res._event, can.Pack(cmds), cb, silent)
})
return true
},
_field: function(can, msg) {
msg.Table(function(item) { can.onappend._plugin(can, item, {}, function(sub, meta) {
sub.run = function(event, cmds, cb, silent) {
@ -56,6 +20,41 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
}) })
return true
},
_inner: function(can, msg) {
can.onappend.table(can, msg, function(value, key, index, line, array) {
return can.onimport._table(can, value, key, index, line, array)
}, can._output)
can.onappend.board(can, msg.Result(), can._output)
can.onmotion.story.auto(can, can._output)
can.page.Modify(can, can._output, {style: {display: "block"}})
return true
},
_hold: function(can, msg) { return true },
_back: function(can) {
can._history.pop(); for (var his = can._history.pop(); his; his = can._history.pop()) {
if (his[0] == "action") { continue }
can.page.Select(can, can._option, "textarea.args,input.args,select.args", function(item, index) {
item.value = his[index]||""
}), can.onappend._output(can, can.Conf(), {}, can.Pack())
break
}
!his && can.onappend._output(can, can.Conf(), {}, can.Pack())
return true
},
_grow: function(can, str) {
if (can.page.Select(can, can._output, "div.code", function(div) {
can.page.Modify(can, div, {style: {"max-height": 400}})
can.page.Append(can, div, [{text: [str]}])
div.scrollBy(0, 10000)
return true
}).length == 0) {
can.onappend.board(can, str)
}
// can.onmotion.story.auto(can, can._output)
},
_open: function(can, msg) {
can.user.open(msg.Option("_arg"))
return true

View File

@ -1,62 +1,11 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
can.onmotion.clear(can)
can.page.Append(can, target, [can.onimport._control(can, msg)])
can.onappend.table(can, msg, function(value, key, index, line, array) {
return can.onimport._table(can, value, key, index, line, array, cb)
})
can.base.isFunc(cb) && cb(msg)
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
can.onappend.table(can, msg)
can.onappend.board(can, msg.Result())
can.onmotion.story.auto(can, can._output)
},
_table: function(can, value, key, index, line, array, cb) {
return {text: [value, "td"], onclick: function(event) { var target = event.target
if (target.tagName == "INPUT" && target.type == "button") { var msg = can.sup.request(event, can.Option())
key == "value"? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line)
return can.run(event, ["action", target.name], function(msg) { can.run() }, true)
}
if (can.sup.onaction.change(event, can.sup, key, value, function(msg) {}).length > 0) { return }
}, ondblclick: function(event) {
can.onmotion.modify(can, event.target, function(event, value, old) {
var msg = can.sup.request(event, can.Option()); msg = can.sup.request(event, line)
can.run(event, ["action", "modify", key == "value"? line.key||line.name: key, value], function(msg) { }, true)
})
}}
can.onmotion.story.auto(can, target)
},
_process: function(can, msg) {
return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg])
},
_follow: function(can, msg) {
if (msg.Option("cache.status") == "stop") { return can.user.toast(can, msg.Option("cache.action")+" done!")}
can.page.Modify(can, can._output, {className: "code", style: {"max-height": 400, "display": "block"}})
can.page.Append(can, can._output, [{text: msg.Result()}])
can._output.scrollBy(0, 1000)
can.core.Timer(100, function() { var sub = can.request({})
sub.Option("cache.hash", msg.Option("cache.hash"))
sub.Option("cache.begin", msg.Option("cache.begin"))
sub.Option("cache.limit", msg.Option("cache.limit"))
can.run(sub._event, ["action", msg.Option("cache.action")], function(msg) {
can.onimport._follow(can, msg)
}, true)
})
return true
},
_inner: function(can, msg) {
can.onappend.table(can, msg, function(value, key, index, line, array) {
return can.onimport._table(can, value, key, index, line, array)
}, can._output)
can.onappend.board(can, msg.Result(), can._output)
can.onmotion.story.auto(can, can._output)
can.page.Modify(can, can._output, {style: {display: "block"}})
return true
},
_process: function(can, msg) { return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg]) },
_control: function(can, msg) {
var cb = can.onimport[msg.Option("_control")]
@ -113,17 +62,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}, data: {"className": "args"}},
]}
},
_grow: function(can, str) {
if (can.page.Select(can, can._output, "div.code", function(div) {
can.page.Modify(can, div, {style: {"max-height": 400}})
can.page.Append(can, div, [{text: [str]}])
div.scrollBy(0, 10000)
return true
}).length == 0) {
can.onappend.board(can, str)
}
// can.onmotion.story.auto(can, can._output)
},
})
Volcanos("onaction", {help: "控件交互", list: []})
Volcanos("onexport", {help: "导出数据", list: []})