mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt chat
This commit is contained in:
parent
e50abf16d4
commit
1c2aa0a123
6
frame.js
6
frame.js
@ -82,17 +82,17 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
||||
case "River":
|
||||
if (cmds.length == 0) {
|
||||
can.core.Item(can.onengine.river, function(key, value) {
|
||||
msg.Push("key", key)
|
||||
msg.Push("hash", key)
|
||||
msg.Push("name", value.name)
|
||||
})
|
||||
}
|
||||
if (cmds.length != 1 && cmds[1] != "storm") {
|
||||
if (cmds.length != 1 && cmds[1] != "tool") {
|
||||
break
|
||||
}
|
||||
case "Storm":
|
||||
var river = can.onengine.river[cmds[0]]; if (!river) { break }
|
||||
can.core.Item(river.storm, function(key, value) {
|
||||
msg.Push("key", key)
|
||||
msg.Push("hash", key)
|
||||
msg.Push("name", value.name)
|
||||
msg.Push("count", (value.index||value.action).length)
|
||||
})
|
||||
|
12
lib/user.js
12
lib/user.js
@ -111,13 +111,15 @@ var user = Volcanos("user", {help: "用户模块",
|
||||
var pval = item.value.slice(1).split("=")[1]
|
||||
}
|
||||
|
||||
can.require(["/plugin/input/"+pkey], function(can) {
|
||||
can.core.Item(can.onfigure[pkey], function(key, value) { if (key.startsWith("on")) {
|
||||
target[key] = function(event) { value(event, can, item, target) }
|
||||
} })
|
||||
target.type != "button" && (target.value = pval)
|
||||
})
|
||||
can.page.Modify(can, target, {autocomplete: "off"})
|
||||
can.require(["/plugin/input/"+pkey], function(can) {
|
||||
can.onfigure._init(can, item, target, function(event) {
|
||||
var msg = can.request(event); can.page.Select(can, ui.table, "select,input,textarea", function(item) {
|
||||
item.name && item.value && msg.Option(item.name, item.value)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
return {type: ["tr"], list: [
|
||||
|
@ -15,7 +15,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
},
|
||||
title: function(event, can, key) { var msg = can.request(event)
|
||||
can.core.List(["share", "pod"], function(key) { var value = can.user.Search(can, key)
|
||||
can.core.List(["pod"], function(key) { var value = can.user.Search(can, key)
|
||||
value != undefined && msg.Option(key, can.user.Search(can, key))
|
||||
})
|
||||
var args = {}; can.core.List(msg.option, function(key) { args[key] = msg.Option(key) })
|
||||
|
@ -12,13 +12,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta,
|
||||
can.run({}, [], function(sup) { can._output.innerHTML = ""; var select; sup.Table(function(value, index, array) {
|
||||
var view = can.onappend.item(can, can._output, "item", value, function(event, item) { var msg = can.request(event, {_msg: sup})
|
||||
// 左键点击
|
||||
can.onimport.storm(event, can, value.key)
|
||||
can.onimport.storm(event, can, value.hash)
|
||||
}, function(event) {
|
||||
// 右键点击
|
||||
can.onappend.menu(can, sup, value)
|
||||
})
|
||||
|
||||
if (index == 0 || [value.key, value.name].indexOf(can._main_river) > -1) { select = view }
|
||||
if (index == 0 || [value.hash, value.name].indexOf(can._main_river) > -1) { select = view }
|
||||
}); select && select.click(), typeof cb == "function" && cb(sup) })
|
||||
},
|
||||
storm: function(event, can, river) {
|
||||
@ -26,24 +26,33 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta,
|
||||
return can.page.Modify(can, list, {style: {display: hide? "": "none"}})
|
||||
}
|
||||
|
||||
can.run({}, [river], function(msg) { var which = 0
|
||||
list = can.page.Append(can, can._output, [{view: "sublist", list: msg.Table(function(value, index) {
|
||||
river == can._main_river && value.key == can._main_storm && (which = index)
|
||||
return {text: [value.name, "div", "subitem"], onclick: function(event) {
|
||||
can.run({}, [river, "tool"], function(msg) { var which = 0
|
||||
list = can.page.Append(can, can._output, [{view: "sublist", list: msg.Table(function(storm, index) {
|
||||
river == can._main_river && storm.hash == can._main_storm && (which = index)
|
||||
return {text: [storm.name, "div", "subitem"], onclick: function(event) {
|
||||
// 左键点击
|
||||
var msg = can.request(event)
|
||||
msg.Option(RIVER, can.Conf(RIVER, river))
|
||||
msg.Option(STORM, can.Conf(STORM, value.key))
|
||||
msg.Option(STORM, can.Conf(STORM, storm.hash))
|
||||
can.run(event, ["search", "Action.onaction._init"])
|
||||
|
||||
value.name != "main" && can.user.title(can.user.Search(can, "pod") || value.name)
|
||||
storm.name != "main" && can.user.title(can.user.Search(can, "pod") || storm.name)
|
||||
can.page.Select(can, can._output, "div.subitem.select", function(item) {
|
||||
can.page.ClassList.del(can, item, "select")
|
||||
}), can.page.ClassList.add(can, event.target, "select")
|
||||
}, oncontextmenu: function(event) {
|
||||
// 右键点击
|
||||
can.user.carte(can, {}, ["添加工具", "保存", "删除"], function(ev, item, meta) {
|
||||
can.user.carte(can, {}, ["添加工具", "重命名", "保存", "删除应用"], function(ev, item, meta) {
|
||||
switch (item) {
|
||||
case "重命名":
|
||||
can.user.input(event, can, ["name"], function(event, button, meta, list) {
|
||||
var msg = can.request(event); msg.Option("hash", storm.hash)
|
||||
can.run(event, [river, "tool", "action", "modify", "name", meta.name], function(msg) {
|
||||
can.user.Search(can, {river: can.Conf(RIVER), storm: can.Conf(STORM)})
|
||||
})
|
||||
return true
|
||||
})
|
||||
break
|
||||
case "保存":
|
||||
var list = can.page.Select(can, document.body, "fieldset.Action>div.output>fieldset.plugin>form.option", function(item) {
|
||||
return JSON.stringify(can.page.Select(can, item, 'input[type="text"],select', function(item) {
|
||||
@ -51,17 +60,12 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta,
|
||||
}))
|
||||
})
|
||||
|
||||
can.run(event, [can.Conf(RIVER), value.key, STORM, "action", "save"].concat(list), function(msg) {
|
||||
can.run(event, [can.Conf(RIVER), storm.hash, STORM, "action", "save"].concat(list), function(msg) {
|
||||
can.user.toast(can, "保存成功", STORM)
|
||||
})
|
||||
break
|
||||
case "删除":
|
||||
can.run(event, [can.Conf(RIVER), value.key, STORM, "action", "remove"], function(msg) {
|
||||
can.user.Search(can, {river: can.Conf(RIVER)})
|
||||
}) || can.ondetail[item](event, can, value)
|
||||
break
|
||||
default:
|
||||
can.ondetail[item](event, can, item)
|
||||
can.ondetail[item](event, can, item, storm)
|
||||
}
|
||||
})
|
||||
}}
|
||||
@ -82,7 +86,7 @@ Volcanos("onaction", {help: "控件交互", list: ["创建", "刷新"], _init: f
|
||||
{_input: "text", name: "简介", value: "hello"},
|
||||
], function(event, button, meta, list) {
|
||||
can.run(event, ["action", "create"].concat(["type", list[0], "name", list[1], "text", list[2]]), function(msg) {
|
||||
// can.user.Search(can, {river: msg.Result()})
|
||||
can.user.Search(can, {river: msg.Result()})
|
||||
})
|
||||
return true
|
||||
})
|
||||
@ -90,19 +94,26 @@ Volcanos("onaction", {help: "控件交互", list: ["创建", "刷新"], _init: f
|
||||
"创建": function(event, can) { can.onaction.create(can) },
|
||||
"刷新": function(event, can) { can.user.Search(can, {river: can.Conf(RIVER), storm: can.Conf(STORM)}) },
|
||||
})
|
||||
Volcanos("ondetail", {help: "菜单交互", list: ["添加应用", "添加设备", "添加用户", "重命名", "共享", "删除"], _init: function(can, msg, list, cb, target) {
|
||||
Volcanos("ondetail", {help: "菜单交互", list: ["添加应用", "添加设备", "添加用户", "重命名", "共享", "删除群组"], _init: function(can, msg, list, cb, target) {
|
||||
can.onexport._init(can, msg, list, cb, target)
|
||||
},
|
||||
"添加工具": function(event, can, value) {
|
||||
"添加工具": function(event, can, button, storm) {
|
||||
can.run(event, ["search", "Search.onimport.select", "command", "", ""], function(list) {
|
||||
var args = []; can.core.List(list, function(item) {
|
||||
args = args.concat([item[0], item[5], item[4], ""])
|
||||
can.core.Next(list, function(item, next) {
|
||||
can.run({}, [can.Conf(RIVER), "tool", "action", "insert", "hash", can.Conf(STORM)].concat(["pod", item[0], "ctx", item[5], "cmd", item[4]]), function(msg) {
|
||||
next()
|
||||
})
|
||||
can.run(event, [can.Conf(RIVER), can.Conf(STORM), STORM, "action", "tool"].concat(args), function(msg) {
|
||||
can.user.Search(can, {river: can.Conf(RIVER), STORM: can.Conf(STORM)})
|
||||
}, function() {
|
||||
can.user.Search(can, {river: can.Conf(RIVER), storm: can.Conf(STORM)})
|
||||
})
|
||||
})
|
||||
},
|
||||
"删除应用": function(event, can, button, storm) {
|
||||
var msg = can.request(event); msg.Option("hash", storm.hash)
|
||||
can.run(event, [can.Conf(RIVER), "tool", "action", "remove"], function(msg) {
|
||||
can.user.Search(can, {river: can.Conf(RIVER)})
|
||||
})
|
||||
},
|
||||
|
||||
"添加应用": function(event, can, river, button) {
|
||||
can.user.input(event, can, [
|
||||
@ -110,8 +121,8 @@ Volcanos("ondetail", {help: "菜单交互", list: ["添加应用", "添加设备
|
||||
{_input: "text", name: "名称", value: "hi"},
|
||||
{_input: "text", name: "简介", value: "hello"},
|
||||
], function(event, button, meta, list) {
|
||||
can.run(event, [can.Conf(RIVER), STORM, "action", "create"].concat(list), function(msg) {
|
||||
can.user.Search(can, {river: can.Conf(RIVER), STORM: msg.Result()})
|
||||
can.run(event, [can.Conf(RIVER), "tool", "action", "create"].concat(["type", list[0], "name", list[1], "text", list[2]]), function(msg) {
|
||||
can.user.Search(can, {river: can.Conf(RIVER), storm: msg.Result()})
|
||||
})
|
||||
return true
|
||||
})
|
||||
@ -140,7 +151,8 @@ Volcanos("ondetail", {help: "菜单交互", list: ["添加应用", "添加设备
|
||||
},
|
||||
"重命名": function(event, can, river, button) {
|
||||
can.user.input(event, can, ["name"], function(event, button, meta, list) {
|
||||
can.run(event, [river.key, "action", "rename", meta.name], function(msg) {
|
||||
var msg = can.request(event); msg.Option("hash", river.hash)
|
||||
can.run(event, ["action", "modify", "name", meta.name], function(msg) {
|
||||
can.user.Search(can, {river: can.Conf(RIVER)})
|
||||
})
|
||||
return true
|
||||
@ -149,14 +161,14 @@ Volcanos("ondetail", {help: "菜单交互", list: ["添加应用", "添加设备
|
||||
"共享": function(event, can, value) {
|
||||
can.user.input(event, can, ["name"], function(event, button, meta, list) {
|
||||
var msg = can.request(event)
|
||||
can.user.share(can, msg, [value.key, "action", "share", meta.name])
|
||||
can.user.share(can, msg, [value.hash, "action", "share", meta.name])
|
||||
return true
|
||||
})
|
||||
|
||||
},
|
||||
"删除": function(event, can, river, button) {
|
||||
can.run(event, ["remove", "hash", river.key], function(msg) {
|
||||
// can.user.Search(can, {})
|
||||
"删除群组": function(event, can, river, button) {
|
||||
can.run(event, ["remove", "hash", river.hash], function(msg) {
|
||||
can.user.Search(can, {})
|
||||
})
|
||||
},
|
||||
})
|
||||
|
@ -1,4 +1,10 @@
|
||||
Volcanos("onfigure", {help: "控件详情", list: [],
|
||||
Volcanos("onfigure", {help: "控件详情", list: [], _init: function(can, item, target, cb) {
|
||||
can.core.Item(can.onfigure.key, function(key, value) { if (key.startsWith("on")) {
|
||||
target[key] = function(event) {
|
||||
cb(event), value(event, can, item, target)
|
||||
}
|
||||
} })
|
||||
},
|
||||
key: {onclick: function(event, can, item, target) {
|
||||
function run() { var msg = can.request(event); msg.Option(can.Option())
|
||||
can.run(event, ["action", "inputs", item.name, target.value], function(msg) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user