1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
This commit is contained in:
shaoying 2022-07-02 22:57:12 +08:00
parent 521e25fe6d
commit d6fffd47f4
14 changed files with 62 additions and 87 deletions

View File

@ -198,6 +198,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
_action: function(can, list, action, meta) { _action: function(can, list, action, meta) {
list = can.base.getValid(list, can.core.Item(meta)) list = can.base.getValid(list, can.core.Item(meta))
list = can.base.Obj(list, can.core.Value(can, [chat.ONACTION, mdb.LIST])) list = can.base.Obj(list, can.core.Value(can, [chat.ONACTION, mdb.LIST]))
if (!list) { return }
var _list = []; for (var i = 0; i < list.length; i++) { var _list = []; for (var i = 0; i < list.length; i++) {
switch (list[i]) { case "": _list.push(""); break switch (list[i]) { case "": _list.push(""); break
case mdb.PAGE: case mdb.PAGE:
@ -220,7 +221,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
}) () }) ()
} }
} }
meta = meta||can.onaction, action = action||can._action, can.onmotion.clear(can, action) meta = meta||can.onaction||{}, action = action||can._action, can.onmotion.clear(can, action)
return can.core.List(_list, function(item) { if (item == undefined) { return } can.onappend.input(can, item == ""? /*空白*/ {type: html.SPACE}: return can.core.List(_list, function(item) { if (item == undefined) { return } can.onappend.input(can, item == ""? /*空白*/ {type: html.SPACE}:
can.base.isString(item)? /*按键*/ {type: html.BUTTON, value: can.user.trans(can, item), onclick: function(event) { can.base.isString(item)? /*按键*/ {type: html.BUTTON, value: can.user.trans(can, item), onclick: function(event) {
var cb = meta[item]||meta["_engine"]; cb? can.core.CallFunc(cb, {event: event, can: can, button: item}): can.run(event, [ctx.ACTION, item].concat(can.sup.Input())) var cb = meta[item]||meta["_engine"]; cb? can.core.CallFunc(cb, {event: event, can: can, button: item}): can.run(event, [ctx.ACTION, item].concat(can.sup.Input()))
@ -271,13 +272,13 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
var process = msg._can == can || msg._can == sub var process = msg._can == can || msg._can == sub
if (process && can.core.CallFunc([sub, chat.ONIMPORT, ice.MSG_PROCESS], {can: sub, msg: msg})) { return } if (process && can.core.CallFunc([sub, chat.ONIMPORT, ice.MSG_PROCESS], {can: sub, msg: msg})) { return }
if (process && can.core.CallFunc([can, chat.ONIMPORT, ice.MSG_PROCESS], {can: can, msg: msg})) { return } if (process && can.core.CallFunc([can, chat.ONIMPORT, ice.MSG_PROCESS], {can: can, msg: msg})) { return }
!silent && can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)||meta.display||meta.feature.display) !silent && can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)||meta.display||meta.feature.display, can._output, can._action)
}) })
}, },
_output: function(can, msg, display, output, action, cb) { display = display||chat.PLUGIN_TABLE_JS, output = output||can._output _output: function(can, msg, display, output, action, cb) { display = display||chat.PLUGIN_TABLE_JS, output = output||can._output
Volcanos(display, {_follow: can.core.Keys(can._follow, display), _display: display, _target: output, _fields: can._target, Volcanos(display, {_follow: can.core.Keys(can._follow, display), _display: display, _target: output, _fields: can._target,
_option: can._option, _action: can._action, _output: can._output, _status: can._status, _legend: can._legend, _inputs: {}, _option: can._option, _action: can._action, _output: can._output, _status: can._status, _legend: can._legend, _inputs: {},
Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status, Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status, _root: can._root,
}, [display, chat.PLUGIN_TABLE_JS], function(table) { table.Conf(can.Conf()) }, [display, chat.PLUGIN_TABLE_JS], function(table) { table.Conf(can.Conf())
table.run = function(event, cmds, cb, silent) { var msg = can.request(event) table.run = function(event, cmds, cb, silent) { var msg = can.request(event)
if (msg.RunAction(event, table, cmds)) { return } if (msg.RunAction(event, table, cmds)) { return }
@ -423,7 +424,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
}, ondblclick: function(event) { if ([mdb.KEY].indexOf(key) > -1) { return } }, ondblclick: function(event) { if ([mdb.KEY].indexOf(key) > -1) { return }
var item = can.core.List(can.Conf("feature.insert"), function(item) { if (item.name == key) { return item } })[0]||{name: key, value: value} var item = can.core.List(can.Conf("feature.insert"), function(item) { if (item.name == key) { return item } })[0]||{name: key, value: value}
item.run = function(event, cmds, cb) { can.run(can.request(event, line)._event, cmds, cb, true) } item.run = function(event, cmds, cb) { can.run(can.request(event, line), cmds, cb, true) }
can.onmotion.modifys(can, event.target, function(event, value, old) { run([ctx.ACTION, mdb.MODIFY, key, value]) }, item) can.onmotion.modifys(can, event.target, function(event, value, old) { run([ctx.ACTION, mdb.MODIFY, key, value]) }, item)
}} }}
}); table && can.page.Modify(can, table, {className: chat.CONTENT}) }); table && can.page.Modify(can, table, {className: chat.CONTENT})
@ -665,7 +666,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
} }
} }
can.base.isFunc(cbs) && cbs(sub, meta, skip) can.base.isFunc(cbs) && cbs(sub, meta, skip)
}, target): /* 后端命令 */ can.run(can.request({}, meta)._event, [ctx.ACTION, ctx.COMMAND, meta.index], function(msg) { msg.Table(function(value) { }, target): /* 后端命令 */ can.run(can.request({}, meta), [ctx.ACTION, ctx.COMMAND, meta.index], function(msg) { msg.Table(function(value) {
can.onappend._plugin(can, value, meta, cbs, target) can.onappend._plugin(can, value, meta, cbs, target)
}) }, true) }) }, true)
return res return res
@ -903,7 +904,7 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
}, },
share: function(event, can, input, args) { share: function(event, can, input, args) {
return can.user.input(event, can, input, function(ev, button, data, list, _args) { return can.user.input(event, can, input, function(ev, button, data, list, _args) {
can.search(can.request(event, {args: [mdb.TYPE, chat.FIELD].concat(args||[], _args||[])})._event, [["Header", chat.ONACTION, web.SHARE]]) can.search(can.request(event, {args: [mdb.TYPE, chat.FIELD].concat(args||[], _args||[])}), [["Header", chat.ONACTION, web.SHARE]])
}) })
}, },

View File

@ -2,7 +2,7 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg
var proto = {_event: event, _can: can, var proto = {_event: event, _can: can,
RunAction: function(event, sub, cmds, meta) { var msg = can.request(event); meta = meta || sub&&sub.onaction || {} RunAction: function(event, sub, cmds, meta) { var msg = can.request(event); meta = meta || sub&&sub.onaction || {}
if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return } if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
if (cmds && cmds[0] == ctx.ACTION && can.base.isFunc(meta[cmds[1]])) { if (cmds && cmds[0] == ctx.ACTION && can.base.isFunc(meta[cmds[1]])) { event = event._event||event
return msg.Option(ice.MSG_HANDLE, ice.TRUE), can.core.CallFunc(meta[cmds[1]], {event: event, can: sub, msg: msg, button: cmds[1], cmd: cmds[1]}), true return msg.Option(ice.MSG_HANDLE, ice.TRUE), can.core.CallFunc(meta[cmds[1]], {event: event, can: sub, msg: msg, button: cmds[1], cmd: cmds[1]}), true
} }
return false return false

View File

@ -131,7 +131,7 @@ Volcanos("user", {help: "用户操作", info: {}, agent: {
return !meta.action && can.onmotion.float.add(can, chat.TOAST, action), action return !meta.action && can.onmotion.float.add(can, chat.TOAST, action), action
}, },
share: function(can, msg, cmd) { share: function(can, msg, cmd) {
can.run(msg._event, cmd||[ctx.ACTION, chat.SHARE], function(msg) { can.run(msg, cmd||[ctx.ACTION, chat.SHARE], function(msg) {
can.user.toast(can, {height: 300, width: 500, can.user.toast(can, {height: 300, width: 500,
title: msg.Append(mdb.NAME), duration: -1, title: msg.Append(mdb.NAME), duration: -1,
content: msg.Append(mdb.TEXT), action: [cli.CLOSE, cli.OPEN], content: msg.Append(mdb.TEXT), action: [cli.CLOSE, cli.OPEN],
@ -313,7 +313,7 @@ Volcanos("user", {help: "用户操作", info: {}, agent: {
}, },
select: function(event, can, type, fields, cb, cbs) { select: function(event, can, type, fields, cb, cbs) {
var msg = can.request(event, {fields: fields||"type,name,text"}) var msg = can.request(event, {fields: fields||"type,name,text"})
can.search(msg._event, ["Search.onimport.select", type, "", ""], function(list) { can.search(msg, ["Search.onimport.select", type, "", ""], function(list) {
can.core.Next(list, cb, cbs||function() { can.core.Next(list, cb, cbs||function() {
can.user.toastSuccess(can) can.user.toastSuccess(can)
}) })

View File

@ -13,7 +13,7 @@ fieldset.Action.free>div.output fieldset.plugin.select { display:block; }
fieldset.Action.flow>div.output fieldset.plugin { float:left; } fieldset.Action.flow>div.output fieldset.plugin { float:left; }
fieldset.Action div.output fieldset.plugin.Full { background-color:#073947f2; padding:0; margin:0; position:fixed; left:0; top:0; overflow:auto; z-index:10; } fieldset.Action div.output fieldset.plugin.Full { background-color:#073947f2; padding:0; margin:0; position:fixed; left:0; top:0; overflow:auto; z-index:10; }
fieldset.Action div.output fieldset.plugin.Full>legend { float:left; display:contents; } fieldset.Action div.output fieldset.plugin.Full>legend { float:left; display:block; }
fieldset.Action div.output fieldset.story.Full { background-color:#073947f2; padding:0; margin:0; position:fixed; left:0; top:0; overflow:auto; z-index:10; } fieldset.Action div.output fieldset.story.Full { background-color:#073947f2; padding:0; margin:0; position:fixed; left:0; top:0; overflow:auto; z-index:10; }
fieldset.Action div.output fieldset.story.Full>legend { height:30px; float:left; } fieldset.Action div.output fieldset.story.Full>legend { height:30px; float:left; }
fieldset.Action>div.project.toggle { fieldset.Action>div.project.toggle {

View File

@ -186,7 +186,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, cb, t
can.Conf(chat.TOOL)? can.core.Next(can.Conf(chat.TOOL), function(item, next) { can.Conf(chat.TOOL)? can.core.Next(can.Conf(chat.TOOL), function(item, next) {
can.onimport._cmd(can, item, next) can.onimport._cmd(can, item, next)
}): can.run(can.request()._event, [ctx.ACTION, ctx.COMMAND], function(msg) { }): can.run(can.request(), [ctx.ACTION, ctx.COMMAND], function(msg) {
can.core.Next(msg.Table(), function(item, next) { can.core.Next(msg.Table(), function(item, next) {
can.onimport._cmd(can, item, next) can.onimport._cmd(can, item, next)
}) })

View File

@ -222,19 +222,19 @@ Volcanos("ondetail", {help: "菜单交互",
}, },
"重命名群组": function(event, can, button, river) { "重命名群组": function(event, can, button, river) {
can.user.input(event, can, [mdb.NAME], function(event, button, meta, list) { can.user.input(event, can, [mdb.NAME], function(event, button, meta, list) {
can.run(can.request(event, {hash: river})._event, [ctx.ACTION, mdb.MODIFY, mdb.NAME, meta.name], function(msg) { can.run(can.request(event, {hash: river}), [ctx.ACTION, mdb.MODIFY, mdb.NAME, meta.name], function(msg) {
can.misc.Search(can, {river: river}) can.misc.Search(can, {river: river})
}) })
}) })
}, },
"删除群组": function(event, can, button, river) { "删除群组": function(event, can, button, river) {
can.run(can.request(event, {hash: river})._event, [ctx.ACTION, mdb.REMOVE], function(msg) { can.misc.Search(can, {}) }) can.run(can.request(event, {hash: river}), [ctx.ACTION, mdb.REMOVE], function(msg) { can.misc.Search(can, {}) })
}, },
"保存参数": function(event, can, button, river, storm) { "保存参数": function(event, can, button, river, storm) {
can.getAction(ctx.ARGS, function(item, next, index, array) { var msg = can.request({}, {hash: storm, id: item.dataset.id}) can.getAction(ctx.ARGS, function(item, next, index, array) { var msg = can.request({}, {hash: storm, id: item.dataset.id})
var toast = can.user.toast(can, (index+1)+ice.PS+array.length, button, 10000, (index+1)*100/array.length) var toast = can.user.toast(can, (index+1)+ice.PS+array.length, button, 10000, (index+1)*100/array.length)
can.run(msg._event, [river, chat.STORM, ctx.ACTION, mdb.MODIFY, ice.ARG, item.dataset.args], function(msg) { can.run(msg, [river, chat.STORM, ctx.ACTION, mdb.MODIFY, ice.ARG, item.dataset.args], function(msg) {
can.core.Timer(200, function() { can.core.Timer(200, function() {
toast.close(), next(), index == array.length-1 && can.user.toastSuccess(can, button) toast.close(), next(), index == array.length-1 && can.user.toastSuccess(can, button)
}) })
@ -243,13 +243,13 @@ Volcanos("ondetail", {help: "菜单交互",
}, },
"重命名应用": function(event, can, button, river, storm) { "重命名应用": function(event, can, button, river, storm) {
can.user.input(event, can, [mdb.NAME], function(ev, button, meta, list, args) { can.user.input(event, can, [mdb.NAME], function(ev, button, meta, list, args) {
can.run(can.request(event, {hash: storm})._event, [river, chat.STORM, ctx.ACTION, mdb.MODIFY].concat(args), function(msg) { can.run(can.request(event, {hash: storm}), [river, chat.STORM, ctx.ACTION, mdb.MODIFY].concat(args), function(msg) {
can.misc.Search(can, {river: river, storm: storm}) can.misc.Search(can, {river: river, storm: storm})
}) })
}) })
}, },
"删除应用": function(event, can, button, river, storm) { "删除应用": function(event, can, button, river, storm) {
can.run(can.request(event, {hash: storm})._event, [river, chat.STORM, ctx.ACTION, mdb.REMOVE], function(msg) { can.run(can.request(event, {hash: storm}), [river, chat.STORM, ctx.ACTION, mdb.REMOVE], function(msg) {
can.misc.Search(can, {river: river}) can.misc.Search(can, {river: river})
}) })
}, },

View File

@ -27,7 +27,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}) })
can.onengine.signal(can, chat.ONSEARCH, res) can.onengine.signal(can, chat.ONSEARCH, res)
can.run(res._event, cmds, function(res) { can.onimport._init(can, res, fields) }) can.run(res, cmds, function(res) { can.onimport._init(can, res, fields) })
can.onmotion.show(can), can.onmotion.focus(can, can.ui.word) can.onmotion.show(can), can.onmotion.focus(can, can.ui.word)
}, },

View File

@ -170,7 +170,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
}}, {view: html.LIST}]); list = ui.list }}, {view: html.LIST}]); list = ui.list
if (index > 0) { ui.item.click() } if (index > 0) { ui.item.click() }
} }
can.run(can.request({}, {dir_root: path, dir_deep: true})._event, [ice.PWD], function(msg) { can._file = msg.Table() can.run(can.request({}, {dir_root: path, dir_deep: true}), [ice.PWD], function(msg) { can._file = msg.Table()
can.core.List(can._file, function(item) { if (can.Option(nfs.FILE).indexOf(item.path) == 0) { item.expand = true } }) can.core.List(can._file, function(item) { if (can.Option(nfs.FILE).indexOf(item.path) == 0) { item.expand = true } })
can.onappend.tree(can, can._file, nfs.PATH, ice.PS, function(event, item) { can.onappend.tree(can, can._file, nfs.PATH, ice.PS, function(event, item) {
can.onimport.tabview(can, path, item.path) can.onimport.tabview(can, path, item.path)
@ -178,7 +178,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
}, true) }, true)
}, function() { can.base.isFunc(cb) && cb() }) }, function() { can.base.isFunc(cb) && cb() })
can.run(can.request({}, {fields: "index"})._event, [ctx.ACTION, ctx.COMMAND, "search", "command"], function(msg) { can.run(can.request({}, {fields: "index"}), [ctx.ACTION, ctx.COMMAND, "search", "command"], function(msg) {
can.onappend.tree(can, msg.Table(), ctx.INDEX, ice.PT, function(event, item) { can.onappend.tree(can, msg.Table(), ctx.INDEX, ice.PT, function(event, item) {
can.onimport.tabview(can, can.Option(nfs.PATH), item.index, ctx.INDEX) can.onimport.tabview(can, can.Option(nfs.PATH), item.index, ctx.INDEX)
}, project.module) }, project.module)

View File

@ -36,21 +36,21 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, args, cb) { var
show(msg) show(msg)
}, },
nfs.TAGS, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text")) nfs.TAGS, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text"))
can.run(msg._event, [ctx.ACTION, mdb.SEARCH, can.parse, cmds[0], can.Option(nfs.PATH)], function(msg) { var sub = msg._can can.run(msg, [ctx.ACTION, mdb.SEARCH, can.parse, cmds[0], can.Option(nfs.PATH)], function(msg) { var sub = msg._can
can.page.style(can, sub._output, html.MAX_HEIGHT, can.ConfHeight()/4), show(msg, msg._word = cmds[0]) can.page.style(can, sub._output, html.MAX_HEIGHT, can.ConfHeight()/4), show(msg, msg._word = cmds[0])
can.page.ClassList.has(sub, sub._target, html.SELECT) || sub._legend.click() can.page.ClassList.has(sub, sub._target, html.SELECT) || sub._legend.click()
can.onmotion.focus(can, msg._can._inputs["word"]._target) can.onmotion.focus(can, msg._can._inputs["word"]._target)
}, true) }, true)
}, },
nfs.GREP, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text", nfs.PATH, can.Option(nfs.PATH))) nfs.GREP, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text", nfs.PATH, can.Option(nfs.PATH)))
can.run(msg._event, [ctx.ACTION, nfs.GREP, cmds[0]], function(msg) { var sub = msg._can can.run(msg, [ctx.ACTION, nfs.GREP, cmds[0]], function(msg) { var sub = msg._can
can.page.style(can, sub._output, html.MAX_HEIGHT, can.ConfHeight()/4), show(msg, msg._word = cmds[0]) can.page.style(can, sub._output, html.MAX_HEIGHT, can.ConfHeight()/4), show(msg, msg._word = cmds[0])
can.page.ClassList.has(sub, sub._target, html.SELECT) || sub._legend.click() can.page.ClassList.has(sub, sub._target, html.SELECT) || sub._legend.click()
can.onmotion.focus(can, msg._can._inputs["word"]._target) can.onmotion.focus(can, msg._can._inputs["word"]._target)
}, true) }, true)
}, },
"last", function(cmds) { history.pop(), show(history.pop()) }, "last", function(cmds) { history.pop(), show(history.pop()) },
))) { return } can.run(msg._event, cmds, function(msg) { show(msg) }, true) })) ))) { return } can.run(msg, cmds, function(msg) { show(msg) }, true) }))
can.onimport.toolkit(can, {index: SEARCH}, function(sub) { can.onimport.toolkit(can, {index: SEARCH}, function(sub) {
can.ui.search = sub, can.base.isFunc(cb) && cb(sub) can.ui.search = sub, can.base.isFunc(cb) && cb(sub)
can.ui.search._show = show can.ui.search._show = show

View File

@ -134,7 +134,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
can.core.Value(item, "auto.cmd") && can.core.Timer300ms(function() { can.core.Value(item, "auto.cmd") && can.core.Timer300ms(function() {
var msg = sub.request({}, can.core.Value(item, "opts")); msg.Option(ice.MSG_HANDLE, ice.TRUE) var msg = sub.request({}, can.core.Value(item, "opts")); msg.Option(ice.MSG_HANDLE, ice.TRUE)
sub.Update(msg._event, [ctx.ACTION, can.core.Value(item, "auto.cmd")]) sub.Update(msg, [ctx.ACTION, can.core.Value(item, "auto.cmd")])
}) })
}, can._output, target) }, can._output, target)
}, },

View File

@ -7,10 +7,10 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
_location: function(can, msg, _arg) { location.href = _arg; return true }, _location: function(can, msg, _arg) { location.href = _arg; return true },
_replace: function(can, msg, _arg) { location.replace(_arg); return true }, _replace: function(can, msg, _arg) { location.replace(_arg); return true },
_history: function(can, msg) { history.back(); return true }, _history: function(can, msg) { history.back(); return true },
_confirm: function(can, msg, _arg) { can.user.confirm(_arg) && can.runAction(can.request({}, msg)._event, "confirm"); return true }, _confirm: function(can, msg, _arg) { can.user.confirm(_arg) && can.runAction(can.request({}, msg), "confirm"); return true },
_refresh: function(can, msg) { _refresh: function(can, msg) {
can.core.Timer(parseInt(msg.Option("_delay")||"500"), function() { can.core.Timer(parseInt(msg.Option("_delay")||"500"), function() {
can.Update(can.request({}, {_count: parseInt(msg.Option("_count"))-1})._event) can.Update(can.request({}, {_count: parseInt(msg.Option("_count"))-1}))
}) })
return true return true
}, },
@ -90,23 +90,21 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
}) })
Volcanos("onaction", {help: "交互操作", list: [ Volcanos("onaction", {help: "交互操作", list: [
"刷新数据", "切换全屏", "共享工具", "打开链接", "生成链接", "生成脚本", "生成图片", [ "刷新数据", "切换全屏", "共享工具", "打开链接", "生成链接", "生成脚本", "生成图片", [
"其它", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据", "删除工具", "其它", "刷新页面", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据", "删除工具",
], ],
], _init: function(can, msg, list, cb, target) {}, ], _init: function(can, msg, list, cb, target) {},
_engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input([], true))) }, _engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input([], true))) },
"刷新数据": function(event, can) { can.Update({}, can.Input([], true)) }, "刷新数据": function(event, can) { can.Update({}, can.Input([], true)) },
"切换全屏": function(event, can) { var sub = can._outputs[can._outputs.length-1] "切换全屏": function(event, can) { var sub = can._outputs[can._outputs.length-1]
if (can.page.ClassList.neg(can, can._target, "Full")) { if (can.page.ClassList.neg(can, can._target, "Full")) { sub._height_bak = sub.ConfHeight(), sub._width_bak = sub.ConfWidth()
sub._height_bak = sub.ConfHeight(), sub._width_bak = sub.ConfWidth() var height = window.innerHeight-(can._status.innerText? 2: 1)*html.ACTION_HEIGHT; can.user.isMobile && (height -= 2*html.ACTION_HEIGHT)
var height = window.innerHeight-(can._status.innerText? 2: 1)*html.ACTION_HEIGHT
can.user.isMobile && (height -= 2*html.ACTION_HEIGHT)
can.page.style(can, can._output, html.HEIGHT, sub.ConfHeight(height), html.MIN_WIDTH, sub.ConfWidth(window.innerWidth)) can.page.style(can, can._output, html.HEIGHT, sub.ConfHeight(height), html.MIN_WIDTH, sub.ConfWidth(window.innerWidth))
can.core.CallFunc([sub, "onimport.layout"], {can: sub}) can.core.CallFunc([sub, "onimport.layout"], {can: sub})
} else { } else {
sub.ConfHeight(sub._height_bak), sub.ConfWidth(sub._width_bak) sub.ConfHeight(sub._height_bak), sub.ConfWidth(sub._width_bak)
can.core.CallFunc([sub, "onimport.layout"], {can: sub})
can.page.style(can, can._output, html.HEIGHT, "", html.MIN_WIDTH, "") can.page.style(can, can._output, html.HEIGHT, "", html.MIN_WIDTH, "")
can.core.CallFunc([sub, "onimport.layout"], {can: sub})
} }
}, },
"共享工具": function(event, can) { var meta = can.Conf() "共享工具": function(event, can) { var meta = can.Conf()
@ -133,6 +131,9 @@ Volcanos("onaction", {help: "交互操作", list: [
}, },
"生成图片": function(event, can) { can.onmotion.toimage(event, can, can._name) }, "生成图片": function(event, can) { can.onmotion.toimage(event, can, can._name) },
"刷新页面": function(event, can) { var sub = can.core.Value(can._outputs, "-1")
can.core.CallFunc([sub, chat.ONIMPORT, "_init"], {can: sub, msg: sub._msg, cb: function(msg) {}, target: can._output})
},
"清空参数": function(event, can) { can.page.SelectArgs(can, can._option, "", function(item) { return item.value = "" }) }, "清空参数": function(event, can) { can.page.SelectArgs(can, can._option, "", function(item) { return item.value = "" }) },
"扩展参数": function(event, can) { can.onmotion.toggle(can, can._action) }, "扩展参数": function(event, can) { can.onmotion.toggle(can, can._action) },
"复制数据": function(event, can) { can.user.copy(event, can, can.onexport.table(can)||can.onexport.board(can)) }, "复制数据": function(event, can) { can.user.copy(event, can, can.onexport.table(can)||can.onexport.board(can)) },
@ -146,10 +147,6 @@ Volcanos("onaction", {help: "交互操作", list: [
"保存参数": function(event, can) { can.search(event, ["River.ondetail.保存参数"]) }, "保存参数": function(event, can) { can.search(event, ["River.ondetail.保存参数"]) },
"打包页面": function(event, can) { can.onengine.signal(can, "onwebpack", can.request(event)) }, "打包页面": function(event, can) { can.onengine.signal(can, "onwebpack", can.request(event)) },
"刷新页面": function(event, can) { var sub = can.core.Value(can._outputs, "-1"), msg = sub._msg
can.core.CallFunc([sub, chat.ONIMPORT, "_init"], {can: sub, msg: msg, list: msg.result||msg.append||[], cb: function(msg) {
}, target: can._output})
},
"摄像头": function(event, can) { "摄像头": function(event, can) {
var constraints = {audio: false, video: {width: 200, height: 200}} var constraints = {audio: false, video: {width: 200, height: 200}}
@ -177,10 +174,12 @@ Volcanos("onaction", {help: "交互操作", list: [
}) })
}, },
actions: function(event, can) { can.onmotion.toggle(can, can._action) },
clear: function(event, can, name) { can.onmotion.clear(can, can._output) }, clear: function(event, can, name) { can.onmotion.clear(can, can._output) },
close: function(event, can) { can.page.Remove(can, can._target) }, close: function(event, can) { can.page.Remove(can, can._target) },
upload: function(event, can) { can.user.upload(event, can) }, upload: function(event, can) { can.user.upload(event, can) },
actions: function(event, can) { can.onmotion.toggle(can, can._action) },
next: function(event, can) { can.Update(event, [ctx.ACTION, mdb.NEXT, can.Status(mdb.TOTAL)||0, can.Option(mdb.LIMIT)||can.Action(mdb.LIMIT)||"", can.Option(mdb.OFFEND)||can.Action(mdb.OFFEND)||""]) },
prev: function(event, can) { can.Update(event, [ctx.ACTION, mdb.PREV, can.Status(mdb.TOTAL)||0, can.Option(mdb.LIMIT)||can.Action(mdb.LIMIT)||"", can.Option(mdb.OFFEND)||can.Action(mdb.OFFEND)||""]) },
change: function(event, can, name, value, cb) { change: function(event, can, name, value, cb) {
return can.page.SelectArgs(can, can._option, "", function(input) { return can.page.SelectArgs(can, can._option, "", function(input) {
if (input.name == name && value != input.value) { input.value = value if (input.name == name && value != input.value) { input.value = value
@ -190,36 +189,19 @@ Volcanos("onaction", {help: "交互操作", list: [
}) })
}, },
next: function(event, can) { openLocation: function(event, can) { can.user.agent.openLocation(can.request(event)) },
can.Update(event, [ctx.ACTION, "next", can.Status("total")||0, can.Option("limit")||can.Action("limit")||"", can.Option("offend")||can.Action("offend")||""])
},
prev: function(event, can) {
can.Update(event, [ctx.ACTION, "prev", can.Status("total")||0, can.Option("limit")||can.Action("limit")||"", can.Option("offend")||can.Action("offend")||""])
},
getClipboardData: function(event, can, button) {
function add(text) {
can.run(event, can.base.Simple(ctx.ACTION, button, can.base.ParseJSON(text)), function(msg) {
can.user.toastSuccess(can), can.Update()
}, true)
}
if (navigator.clipboard) {
navigator.clipboard.readText().then(add).catch(function(err) { can.misc.Log(err) })
} else {
can.user.input(event, can, [{type: html.TEXTAREA, name: mdb.TEXT}], function(ev, button, data, list, args) { add(list[0]) })
}
},
getLocation: function(event, can, button) { getLocation: function(event, can, button) {
can.user.agent.getLocation(function(data) { can.request(event, data) can.user.agent.getLocation(function(data) { can.request(event, data)
can.user.input(event, can, [mdb.TYPE, mdb.NAME, mdb.TEXT, "latitude", "longitude"], function(ev, bu, data, list, args) { can.user.input(event, can, [mdb.TYPE, mdb.NAME, mdb.TEXT, "latitude", "longitude"], function(ev, bu, data, list, args) {
can.run(event, [ctx.ACTION, button].concat(can.base.Simple(args, data)), function(msg) { can.run(event, [ctx.ACTION, button].concat(can.base.Simple(args, data)), function(msg) { can.user.toastSuccess(can, button) }, true)
can.user.toastSuccess(can), can.Update()
}, true)
}) })
}) })
}, },
openLocation: function(event, can) { can.user.agent.openLocation(can.request(event)) }, getClipboardData: function(event, can, button) {
function add(text) { can.run(event, can.base.Simple(ctx.ACTION, button, can.base.ParseJSON(text)), function(msg) { can.user.toastSuccess(can, button) }, true) }
navigator.clipboard? navigator.clipboard.readText().then(add).catch(function(err) { can.misc.Log(err) }):
can.user.input(event, can, [{type: html.TEXTAREA, name: mdb.TEXT}], function(ev, button, data, list, args) { add(list[0]) })
},
}) })
Volcanos("onexport", {help: "导出数据", list: [], Volcanos("onexport", {help: "导出数据", list: [],
table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return } table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return }
@ -228,7 +210,5 @@ Volcanos("onexport", {help: "导出数据", list: [],
}) })
return res.join(ice.NL) return res.join(ice.NL)
}, },
board: function(can) { var msg = can._msg board: function(can) { var msg = can._msg; return msg.Result() },
return msg.Result()
},
}) })

View File

@ -1,32 +1,25 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, cb, target) { Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
can.user.isMobile && !can.user.isLandscape() && can.onmotion.hidden(can, can._action) can.user.isMobile && !can.user.isLandscape() && can.onmotion.hidden(can, can._action)
var cbs = can.onimport[can._args["style"]]; if (can.base.isFunc(cbs)) { var cbs = can.onimport[can._args[ctx.STYLE]]; if (can.base.isFunc(cbs)) {
can.page.ClassList.add(can, target, can._args["style"]) can.page.ClassList.add(can, target, can._args[ctx.STYLE])
return cbs(can, msg, target) return cbs(can, msg, target)
} }
can.onmotion.clear(can, target) can.onmotion.clear(can, target)
can.onappend.table(can, msg, null, target) can.onappend.table(can, msg, null, target)
can.onappend.board(can, msg, target) can.onappend.board(can, msg, target)
can.onmotion.story.auto(can, target) can.onmotion.story.auto(can, target)
can.base.isFunc(cb) && cb(msg) can.base.isFunc(cb) && cb(msg)
}, },
_process: function(can, msg) {
msg.Option(ice.MSG_TOAST) && can.user.toast(can, msg.Option(ice.MSG_TOAST))
return can.core.CallFunc([can.onimport, msg.Option(ice.MSG_PROCESS)], [can, msg])
},
card: function(can, msg, target) { card: function(can, msg, target) {
can.page.Appends(can, target, msg.Table(function(value) { can.page.Appends(can, target, msg.Table(function(value) {
return {view: "item", list: [ return {view: html.ITEM, list: [
{view: ["title", "div", value.name]}, {view: [wiki.TITLE, html.DIV, value.name]},
{view: ["content", "div", value.text]}, {view: [wiki.CONTENT, html.DIV, value.text]},
{view: "operate", inner: value.action, onclick: function(event) { {view: html.ACTION, inner: value.action, onclick: function(event) {
can.request(event, value) can.run(can.request(event, value), [ctx.ACTION, event.target.name])
can.run(event, [ctx.ACTION, event.target.name])
}}, }},
]} ]}
})) }))
}, },
}) })
Volcanos("onaction", {help: "控件交互", list: []})
Volcanos("onexport", {help: "导出数据", list: []})

View File

@ -125,6 +125,7 @@ var wiki = {
TITLE: "title", BRIEF: "brief", REFER: "refer", SPARK: "spark", TITLE: "title", BRIEF: "brief", REFER: "refer", SPARK: "spark",
ORDER: "order", TABLE: "table", CHART: "chart", IMAGE: "image", VIDEO: "video", ORDER: "order", TABLE: "table", CHART: "chart", IMAGE: "image", VIDEO: "video",
FIELD: "field", SHELL: "shell", LOCAL: "local", PARSE: "parse", FIELD: "field", SHELL: "shell", LOCAL: "local", PARSE: "parse",
CONTENT: "content",
NAVMENU: "navmenu", PREMENU: "premenu", NAVMENU: "navmenu", PREMENU: "premenu",
@ -225,7 +226,7 @@ var html = {
OPACITY: "opacity", OPACITY: "opacity",
STROKE_WIDTH: "stroke-width", STROKE: "stroke", FILL: "fill", FONT_SIZE: "font-size", MONOSPACE: "monospace", STROKE_WIDTH: "stroke-width", STROKE: "stroke", FILL: "fill", FONT_SIZE: "font-size", MONOSPACE: "monospace",
SCROLL: "scroll", HEIGHT: "height", WIDTH: "width", LEFT: "left", TOP: "top", RIGHT: "right", BOTTOM: "bottom", SCROLL: "scroll", HEIGHT: "height", WIDTH: "width", LEFT: "left", TOP: "top", RIGHT: "right", BOTTOM: "bottom",
MIN_HEIGHT: "min-height", MAX_HEIGHT: "max-height", MAX_WIDTH: "max-width", MARGIN_TOP: "margin-top", MARGIN_X: "margin-x", MARGIN_Y: "margin-y", MIN_HEIGHT: "min-height", MAX_HEIGHT: "max-height", MAX_WIDTH: "max-width", MIN_WIDTH: "min-width", MARGIN_TOP: "margin-top", MARGIN_X: "margin-x", MARGIN_Y: "margin-y",
PLUGIN_MARGIN: 10, ACTION_HEIGHT: 29, ACTION_MARGIN: 200, PLUGIN_MARGIN: 10, ACTION_HEIGHT: 29, ACTION_MARGIN: 200,
TOGGLE: "toggle", TOGGLE: "toggle",
@ -278,13 +279,13 @@ function shy(help, meta, list, cb) {
var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args: {}, pack: {}, libs: [], cache: {}}, function(name, can, libs, cb) { var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args: {}, pack: {}, libs: [], cache: {}}, function(name, can, libs, cb) {
var meta = arguments.callee.meta, list = arguments.callee.list var meta = arguments.callee.meta, list = arguments.callee.list
if (typeof name == lang.OBJECT) { var Config = name; Config.plugin = Config.plugin||chat.plugin_list if (typeof name == lang.OBJECT) { var Config = name; Config.plugin = Config.plugin||chat.plugin_list
Config.panels = Config.panels||chat.panel_list, Config.main = Config.main||{name: "Header"} Config.panels = Config.panels||chat.panel_list
meta.libs = Config.libs||chat.libs, meta.iceberg = Config.iceberg||meta.iceberg meta.libs = Config.libs||chat.libs, meta.iceberg = Config.iceberg||meta.iceberg
// 预加载 // 预加载
libs = []; for (var i = 0; i < Config.panels.length; i++) { var panel = Config.panels[i] libs = []; for (var i = 0; i < Config.panels.length; i++) { var panel = Config.panels[i]
panel && (libs = libs.concat(panel.list = panel.list||["/panel/"+panel.name+".css", "/panel/"+panel.name+".js"])) panel && (libs = libs.concat(panel.list = panel.list||["/panel/"+panel.name+".css", "/panel/"+panel.name+".js"]))
}; libs = libs.concat(Config.plugin, Config.main.list||[]) }; libs = libs.concat(Config.plugin)
// 根模块 // 根模块
_can_name = "", name = Config.name||"chat", cb = can||function(can) { _can_name = "", name = Config.name||"chat", cb = can||function(can) {
@ -330,7 +331,7 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
function next() { can._load(name, each), can.require(libs.slice(1), cb, each) } function next() { can._load(name, each), can.require(libs.slice(1), cb, each) }
meta.cache[name]? next(): (_can_path = libs[0], meta._load(name, next)) meta.cache[name]? next(): (_can_path = libs[0], meta._load(name, next))
}, },
request: function(event) { event = event||{} request: function(event) { event = event||{}, event = event._event||event
var msg = event._msg||can.misc.Message(event, can); event._msg = msg var msg = event._msg||can.misc.Message(event, can); event._msg = msg
function set(key, value) { msg.Option(key) || value == "" || msg.Option(key, value) } function set(key, value) { msg.Option(key) || value == "" || msg.Option(key, value) }
@ -345,10 +346,10 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
}, },
actions: function(event, button) { can.run(event, [ctx.ACTION, button], null, true) }, actions: function(event, button) { can.run(event, [ctx.ACTION, button], null, true) },
runAction: function(event, action, args, cb) { can.request(event, {_handle: ice.TRUE}, can.Option()) runAction: function(event, action, args, cb, silent) { can.request(event, {_handle: ice.TRUE}, can.Option())
can.run(event, can.misc.concat(can, [ctx.ACTION, action], args), cb||function(msg) { can.run(event, can.misc.concat(can, [ctx.ACTION, action], args), cb||function(msg) {
can.user.toastSuccess(can, action) can.user.toastSuccess(can, action)
}, true) }, silent)
}, },
search: function(event, cmds, cb) { search: function(event, cmds, cb) {
@ -359,11 +360,11 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
}, },
get: function(name, key, cb) { return can.search({}, [can.core.Keys(name, chat.ONEXPORT, key)], cb) }, get: function(name, key, cb) { return can.search({}, [can.core.Keys(name, chat.ONEXPORT, key)], cb) },
set: function(name, key, value) { var msg = can.request({}); msg.Option(key, value) set: function(name, key, value) { var msg = can.request({}); msg.Option(key, value)
return can.search(msg._event, [[name, chat.ONIMPORT, key]]) return can.search(msg, [[name, chat.ONIMPORT, key]])
}, },
setHeaderMenu: function(list, cb) { can._menu && can.page.Remove(can, can._menu) setHeaderMenu: function(list, cb) { can._menu && can.page.Remove(can, can._menu)
var msg = can.request({}, {trans: can.onaction._trans}) var msg = can.request({}, {trans: can.onaction._trans})
return can._menu = can.search(msg._event, [["Header", chat.ONIMPORT, "menu"], can._name].concat(list), cb) return can._menu = can.search(msg, [["Header", chat.ONIMPORT, "menu"], can._name].concat(list), cb)
}, },
setHeader: function(key, value) { return can.set("Header", key, value) }, setHeader: function(key, value) { return can.set("Header", key, value) },
getHeader: function(key, cb) { return can.get("Header", key, cb) }, getHeader: function(key, cb) { return can.get("Header", key, cb) },

View File

@ -38,7 +38,7 @@ Volcanos({
var msg = can.request({}, {tid: sender.tab.id, url: sender.url}) var msg = can.request({}, {tid: sender.tab.id, url: sender.url})
can.core.List(req.option, function(key) { msg.Option(key, req[key][0]) }) can.core.List(req.option, function(key) { msg.Option(key, req[key][0]) })
msg.__daemon = can.core.Keys(html.CHROME, sender.tab.id) msg.__daemon = can.core.Keys(html.CHROME, sender.tab.id)
can.run(msg._event, req.detail||[], cb) can.run(msg, req.detail||[], cb)
return true return true
}) })
chrome.history.onVisited.addListener(function(item) { chrome.history.onVisited.addListener(function(item) {