mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
114 lines
4.9 KiB
JavaScript
114 lines
4.9 KiB
JavaScript
Volcanos("onimport", {help: "导入数据", list: [],
|
|
_init: function(can, conf, output, action, option, field) {output.innerHTML = "";
|
|
function create(event, cmd) {
|
|
if (!ui.name.value) {ui.name.focus(); can.user.toast("请输入群名"); return}
|
|
|
|
var list = []
|
|
can.page.Select(can, ui.list, "tr", function(item, index) {if (index > 0) {
|
|
list.push(item.dataset.pod)
|
|
list.push(item.dataset.key)
|
|
list.push(item.dataset.index)
|
|
list.push(item.dataset.help)
|
|
}})
|
|
|
|
var name = ui.name.value;
|
|
switch (event.target.value) {
|
|
case "创建应用": cmd = "spawn"; break
|
|
case "追加应用": cmd = "append", name = can.Conf("storm"); break
|
|
}
|
|
|
|
can.run(event, [can.Conf("river"), cmd, name].concat(list), function(msg) {
|
|
can.Hide(), can.Export(event, "update", "storm");
|
|
})
|
|
}
|
|
|
|
can.page.AppendAction(can, field, [{type: "text", name: "pod"}])
|
|
|
|
var device = can.page.Append(can, field, [{"view": ["device", "table"]}]).last
|
|
var ui = can.page.Append(can, field, [{view: ["create"], list: [
|
|
{input: "name", value: can.Conf("def_name"), title: "应用名称"},
|
|
{button: ["创建应用", create]},
|
|
{button: ["追加应用", create]},
|
|
{name: "list", view: ["list", "table"], list: [
|
|
{text: ["3. 已选命令列表", "caption"]},
|
|
{row: ["ctx", "cmd", "name", "help"], sub: "th"},
|
|
]},
|
|
]}])
|
|
can.device = device
|
|
can.ui = ui
|
|
},
|
|
init: function(event, can, msg, key) {can.output.innerHTML = ""; can.Show(event, -100, -100);
|
|
var table = can.page.Append(can, can.output, "table")
|
|
|
|
can.page.Append(can, table, [{text: ["1. 选择用户节点 ->", "caption"]}])
|
|
can.page.AppendTable(can, table, msg, ["type", "name", "user"], function(event, value, key, index, tr, td) {
|
|
|
|
can.page.Select(can, table, "tr.select", function(item) {can.page.ClassList.del(can, item, "select")})
|
|
can.page.ClassList.add(can, tr, "select")
|
|
|
|
var node = msg.name[index];
|
|
can.run(event, [can.Conf("river"), msg.user[index], node], function(com) {var list = com.Table()
|
|
can.page.Appends(can, can.device, [{text: ["2. 选择模块命令 ->", "caption"]}])
|
|
can.com = list, can.command = can.page.AppendTable(can, can.device, com, ["key", "index", "name", "help"], function(event, value, key, index, tr, td) {
|
|
var line = list[index];
|
|
line.pod = node;
|
|
var last = can.page.Append(can, can.ui.list, [{
|
|
row: [line.key, line.index, line.name, line.help], dataset: line,
|
|
click: function(event) {last.parentNode.removeChild(last)},
|
|
}]).first
|
|
|
|
}, function(event, value, key, index, tr, td) {
|
|
can.user.carte(event, shy(can.ondetail, can.ondetail.list, function(event, key, meta) {
|
|
meta[key](event, can, com, value, key, index, td)
|
|
}))
|
|
})
|
|
})
|
|
}), table.querySelector("td").click()
|
|
},
|
|
steam: function(event, can, value, key, field) {
|
|
if (value == "create") {
|
|
can.run(event, [can.Conf("river")], function(msg) {
|
|
can.onimport.init(event, can, msg, key, field);
|
|
});
|
|
}
|
|
},
|
|
river: function(event, can, value, key, field) {if (value == "update") {return}
|
|
can.Conf("river", value)
|
|
},
|
|
storm: function(event, can, value, key, field) {if (value == "update") {return}
|
|
can.Conf("storm", value)
|
|
},
|
|
})
|
|
Volcanos("onaction", {help: "组件交互", list: ["关闭", "刷新", {input: ["pod"]}, {input: ["cmd", function(event, can) {
|
|
}, function(event, can) {
|
|
if (event.key == "Enter") {
|
|
can.page.Select(can, can.command, "tr", function(tr, index) {
|
|
if (index == 0) {return}
|
|
if (!can.page.ClassList.has(can, tr, "hidden")) {
|
|
tr.firstChild.click()
|
|
event.target.value = ""
|
|
}
|
|
})
|
|
return
|
|
}
|
|
can.page.Select(can, can.command, "tr", function(tr, index) {
|
|
if (index == 0) {return}
|
|
if (can.com[index-1].index.indexOf(event.target.value) > -1) {
|
|
can.page.ClassList.del(can, tr, "hidden")
|
|
} else {
|
|
can.page.ClassList.add(can, tr, "hidden")
|
|
}
|
|
})
|
|
}]}],
|
|
"关闭": function(event, can, meta, key, field) {
|
|
can.Hide()
|
|
},
|
|
"刷新": function(event, can, meta, key, field) {
|
|
can.Import(event, "create", "steam")
|
|
},
|
|
})
|
|
Volcanos("onchoice", {help: "组件菜单", list: ["关闭", "刷新"]})
|
|
Volcanos("ondetail", {help: "组件详情", list: []})
|
|
Volcanos("onexport", {help: "导出数据", list: []})
|
|
|