diff --git a/frame.js b/frame.js index b03cbff7..6cd5f34f 100644 --- a/frame.js +++ b/frame.js @@ -149,7 +149,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, if (!cmds[i]) { cmds.pop() } else { break } } - var last = sub._history[sub._history.length-1]; !sub.base.Eq(last, cmds) && cmds[0] != "action" && !silent && sub._history.push(cmds) + var last = sub._history[sub._history.length-1]; !sub.base.Eq(last, cmds) && cmds[0] != ctx.ACTION && !silent && sub._history.push(cmds) return cmds }, }, list.concat(Volcanos.meta.volcano, Volcanos.meta.libs), function(sub) { sub.Conf(meta) @@ -175,12 +175,12 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, CloneInput: function() { add(item)._target.focus() }, CloneField: function() { can.Clone() }, }, [item.display||"/plugin/input.js"].concat(Volcanos.meta.volcano, Volcanos.meta.libs), function(input) { input.Conf(item), input.sup = can, input.run = function(event, cmds, cb, silent) { var msg = can.request(event) - if (msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && input.onaction[cmds[1]]) { + if (msg.Option("_handle") != "true" && cmds && cmds[0] == ctx.ACTION && input.onaction[cmds[1]]) { 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]]) { + if (msg.Option("_handle") != "true" && cmds && cmds[0] == ctx.ACTION && table.onaction[cmds[1]]) { return msg.Option("_handle", "true"), can.core.CallFunc(table.onaction[cmds[1]], {event: event, can: table, msg: msg}) } @@ -201,7 +201,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, can.core.List(list, function(item) { can.onappend.input(can, item == ""? /*空白*/ {type: "space"}: typeof item == "string"? /*按键*/ {type: "button", value: item, onclick: function(event) { var cb = meta[item]||meta["_engine"] - cb? can.core.CallFunc(cb, [event, can, item]): can.run(event, ["action",item].concat(can.sup.Pack())) + cb? can.core.CallFunc(cb, [event, can, item]): can.run(event, [ctx.ACTION,item].concat(can.sup.Pack())) }}: item.length > 0? /*列表*/ {type: "select", name: item[0], values: item.slice(1), onchange: function(event) { var which = item[event.target.selectedIndex+1] @@ -217,12 +217,12 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, item.name && item.value && msg.Option(item.name, item.value) }) - if (msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && can.onaction[cmds[1]]) { + if (msg.Option("_handle") != "true" && cmds && cmds[0] == ctx.ACTION && can.onaction[cmds[1]]) { return msg.Option("_handle", "true"), can.core.CallFunc(can.onaction[cmds[1]], {event: event, can: can, msg: msg, cmd: cmds[1]}) } var feature = can.Conf("feature") - var input = msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && feature && feature[cmds[1]]; if (input) { + var input = msg.Option("_handle") != "true" && cmds && cmds[0] == ctx.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), function(msg) { @@ -248,7 +248,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, Option: can.Option, Action: can.Action, Status: can.Status, }, [display].concat(Volcanos.meta.volcano, Volcanos.meta.libs), function(table) { table.Conf(can.Conf()), table.sup = can, table.run = function(event, cmds, cb, silent) { var msg = can.request(event) - if (msg.Option("_handle") != "true" && cmds && cmds[0] == "action" && table.onaction[cmds[1]]) { + if (msg.Option("_handle") != "true" && cmds && cmds[0] == ctx.ACTION && table.onaction[cmds[1]]) { return msg.Option("_handle", "true"), can.core.CallFunc(table.onaction[cmds[1]], {event: event, can: table, msg: msg}) } @@ -345,8 +345,10 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, can.core.List(array, function(item, index) { line[item.key||line.name] = item.value }) if (key == "extra.cmd") { can.onappend.plugin(can, {ctx: line["extra.ctx"], cmd: line["extra.cmd"], arg: line["extra.arg"]}, function(sub) { - sub.run = function(event, cmds, cb) { - can.run(event, [ctx.ACTION, cli.RUN].concat(cmds), cb, true) + sub.run = function(event, cmds, cb) { var msg = can.request(event, can.Option(), line) + can.run(event, (cmds[0] == "_search"? []: [ctx.ACTION, cli.RUN]).concat(cmds), function(msg) { + cb(msg) + }, true) } }, target) } @@ -382,7 +384,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, can.page.Select(can, code, "input[type=button]", function(target) { target.onclick = function(event) { var msg = can.sup.request(event, can.Option()) - return can.run(event, ["action", target.name], function(msg) { can.run() }, true) + return can.run(event, [ctx.ACTION, target.name], function(msg) { can.run() }, true) } }) code && code.scrollBy(0, 10000) @@ -432,7 +434,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, }, plugin: function(can, meta, cb, target) { meta = meta || {} meta.inputs && meta.inputs.length > 0? can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, cb, target): - can.run({}, ["action", "command", meta.index||can.core.Keys(meta.ctx, meta.cmd)], function(msg) { msg.Table(function(value) { + can.run({}, [ctx.ACTION, "command", meta.index||can.core.Keys(meta.ctx, meta.cmd)], function(msg) { msg.Table(function(value) { can.onappend._plugin(can, value, meta, cb, target) }) }, true) }, diff --git a/lib/user.js b/lib/user.js index 45578c08..1491c07a 100644 --- a/lib/user.js +++ b/lib/user.js @@ -84,7 +84,7 @@ Volcanos("user", {help: "用户操作", agent: { return action }, share: function(can, msg, cmd) { - can.run(msg._event, cmd||["action", "share"], function(msg) { + can.run(msg._event, cmd||[ctx.ACTION, "share"], function(msg) { can.user.toast(can, {height: 300, width: 500, title: msg.Append("name"), duration: -1, content: msg.Append("text"), action: ["close"], @@ -96,7 +96,7 @@ Volcanos("user", {help: "用户操作", agent: { {username: "username"}, {password: "password"}, ], function(event, button, data, list) { return { "登录": function() { - can.run({}, ["action", "login", data["username"], data["password"]], function(msg) { + can.run({}, [ctx.ACTION, "login", data["username"], data["password"]], function(msg) { if (msg.Option("user.name")) { can.page.Remove(can, ui._target), can.base.isFunc(cb) && cb() } else { @@ -126,7 +126,7 @@ Volcanos("user", {help: "用户操作", agent: { can.page.Modify(can, ui._target, {className: "input login", style: {left: (window.innerWidth-ui._target.offsetWidth)/2, top: window.innerHeight/6}}) }, logout: function(can, force) { if (force||can.user.confirm("logout?")) { - can.run({}, ["action", "logout"], function(msg) { can.user.Cookie(can, "sessid", "") + can.run({}, [ctx.ACTION, "logout"], function(msg) { can.user.Cookie(can, "sessid", "") can.user.Search(can, "share")? can.user.Search(can, "share", ""): can.user.reload(true) }) } }, @@ -246,7 +246,7 @@ Volcanos("user", {help: "用户操作", agent: { var msg = can.request(event, can.Option(), {_handle: "true"}) msg._upload = upload[0].files[0], msg._progress = action.show - can.run(event, ["action", "upload"], function(msg) { + can.run(event, [ctx.ACTION, "upload"], function(msg) { can.user.toast(can, "上传成功"), can.Update() action.close() }, true) diff --git a/page/demo.html b/page/demo.html index 56ec8a10..b9b03549 100644 --- a/page/demo.html +++ b/page/demo.html @@ -21,7 +21,7 @@ {type: "button", name: "执行"}, ]}, function(sub, meta) { sub.run = function(event, cmds, cb) { - can.run(event, ["action", "run", "cli.system"].concat(cmds), cb) + can.run(event, [ctx.ACTION, "run", "cli.system"].concat(cmds), cb) } }, document.body) }, diff --git a/page/index.css b/page/index.css index 35c3da5d..79e280d7 100644 --- a/page/index.css +++ b/page/index.css @@ -87,6 +87,12 @@ fieldset.plugin { background-color:#061c3c9e; margin:10px; padding:10px; } +fieldset.plugin>div.status { + border-top:1px solid darkcyan; +} +fieldset.story>div.status { + border-top:1px solid darkcyan; +} fieldset.float { position:absolute; background-color:#023531cf; @@ -358,9 +364,6 @@ fieldset>form.option { fieldset>div.action { float:left; } -fieldset>div.status { - border-top:1px solid darkcyan; -} fieldset>form.option>div.item { float:left; margin-right:3px; min-height:25px; vertical-align:middle; diff --git a/panel/cmd.js b/panel/cmd.js index cb04538f..36cbc2fd 100644 --- a/panel/cmd.js +++ b/panel/cmd.js @@ -6,7 +6,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg, onmain: function(can, msg) { var args = location.pathname.split("/").slice(1) can.onappend.plugin(can, {index: args[2], args: args.slice(3), opts: can.user.Search(), width: window.innerWidth}, function(sub, meta) { - sub.run = function(event, cmds, cb) { can.run(event, ["action", "run", args[2]].concat(cmds), cb) } + sub.run = function(event, cmds, cb) { can.run(event, [ctx.ACTION, "run", args[2]].concat(cmds), cb) } can.onmotion.hidden(can, sub._legend) can.user.title(meta.name) }) diff --git a/plugin/input.js b/plugin/input.js index 07393669..d13c39a9 100644 --- a/plugin/input.js +++ b/plugin/input.js @@ -25,7 +25,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta, if (can.Conf("type") == "text") { event.target.setSelectionRange(0, -1) } }, onclick: function(event, can) { - if (can.Conf("type") == "button") { can.run(event, ["action", can.Conf("name")].concat(can.sup.Pack())) } + if (can.Conf("type") == "button") { can.run(event, [ctx.ACTION, can.Conf("name")].concat(can.sup.Pack())) } }, onkeydown: function(event, can) { var target = event.target diff --git a/plugin/input/key.js b/plugin/input/key.js index 0b4f8ce2..a0514ce3 100644 --- a/plugin/input/key.js +++ b/plugin/input/key.js @@ -1,5 +1,5 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(event, can, meta, cb, target) { - can.run(event, ["action", "inputs", meta.name, target.value], function(msg) { + can.run(event, [ctx.ACTION, "inputs", meta.name, target.value], function(msg) { if (msg.Length() == 0) { return can.page.Remove(can, can._target) } can.onappend._action(can, ["关闭", "清空"], can._action, { diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 89b2250e..c4d3db12 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -52,7 +52,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, case "inner": can.onimport.tabview(can, msg.Option("path"), msg.Option("file"), msg.Option("line")); return } } - can.run(event, ["action", "favor"].concat(cmds), function(msg) { + can.run(event, [ctx.ACTION, "favor"].concat(cmds), function(msg) { can.base.isFunc(cb) && cb(msg) can.core.Timer(10, function() { can.onappend._action(sub, ["关闭"], sub._action, { @@ -134,7 +134,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"], } // plugin - var p = can.onsyntax[can.parse]; !p? can.run({}, ["action", "plugin", can.parse, msg.Option("file"), msg.Option("path")], function(msg) { + var p = can.onsyntax[can.parse]; !p? can.run({}, [ctx.ACTION, "plugin", can.parse, msg.Option("file"), msg.Option("path")], function(msg) { init(p = can.onsyntax[can.parse] = can.base.Obj(msg.Result())) }, true): init(p) }, @@ -182,7 +182,7 @@ Volcanos("onaction", {help: "控件交互", list: ["项目", "收藏"], "收藏": function(event, can) { can.onmotion.toggle(can, can.ui.favor._target) }, "搜索": function(event, can) { can.onmotion.toggle(can, can.ui.search) }, "运行": function(event, can) { var msg = can.request(event, {_toast: "运行中..."}) - can.run(event, ["action", "engine", can.parse, can.Option("file"), can.Option("path")], function(msg) { + can.run(event, [ctx.ACTION, "engine", can.parse, can.Option("file"), can.Option("path")], function(msg) { can.onappend.table(can, msg, null, can.ui.output||can.ui.display) can.onappend.board(can, msg.Result(), can.ui.output||can.ui.display) can.page.Modify(can, can.ui.display, {style: {display: "block"}}) @@ -270,7 +270,7 @@ Volcanos("onaction", {help: "控件交互", list: ["项目", "收藏"], value = can.ui.word.value = value || can.ui.word.value || "main" can.request(event, {_toast: "搜索中..."}) - can.run(event, ["action", "search", can.parse, value, can.Option("path")], function(msg) { + can.run(event, [ctx.ACTION, "search", can.parse, value, can.Option("path")], function(msg) { can.onmotion.clear(can, can.ui.tags) can.onappend.table(can, msg, function(value, key, index, line) { @@ -312,8 +312,8 @@ Volcanos("onaction", {help: "控件交互", list: ["项目", "收藏"], {name: "zone", value: "@key=some"}, {name: "name", value: "@key=some"}, ], function(event, button, meta, list) { - can.run(event, ["action", "favor", - "action", "insert", "zone", meta.zone||"some", + can.run(event, [ctx.ACTION, "favor", + ctx.ACTION, "insert", "zone", meta.zone||"some", "type", can.parse, "name", meta.name||"some", "text", (value||"").trimRight(), "path", can.Option("path"), "file", can.Option("file"), "line", can.Option("line"), ], function(msg) { diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js index 9cfa1a77..8d1e96ab 100644 --- a/plugin/local/code/vimer.js +++ b/plugin/local/code/vimer.js @@ -141,7 +141,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert" can.onkeymap._normal(can) cb(event, can, line, ls) } else { - can.onkeymap._remote(event, can, line, ["action", "engine"].concat(ls)) + can.onkeymap._remote(event, can, line, [ctx.ACTION, "engine"].concat(ls)) } }, jk: function(event, can) { can.keylist = can.keylist.slice(0, -1) @@ -299,7 +299,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert" }) Volcanos("onaction", {help: "控件交互", list: ["项目"], save: function(event, can) { var msg = can.request(event, {content: can.onexport.content(can)}) - can.run(event, ["action", "save", can.parse, can.Option("file"), can.Option("path")], function(msg) { + can.run(event, [ctx.ACTION, "save", can.parse, can.Option("file"), can.Option("path")], function(msg) { can.user.toast(can, "保存成功") }, true) }, diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js index 5b31132a..99465a86 100644 --- a/plugin/local/team/plan.js +++ b/plugin/local/team/plan.js @@ -78,7 +78,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }, onclick: function(event) { if (event.target.type == "button") { var msg = can.request(event, can.task) - can.run(event, ["action", event.target.name], function(msg) { + can.run(event, [ctx.ACTION, event.target.name], function(msg) { can.run() }, true) } }, @@ -89,7 +89,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }, function(sub, meta) { sub.run = function(event, cmds, cb) { var msg = can.request(event, {"task.zone": task.zone, "task.id": task.id}) - can.run(event, ["action", "command", "run", meta.index].concat(cmds), function(msg) { + can.run(event, [ctx.ACTION, "command", "run", meta.index].concat(cmds), function(msg) { can.base.isFunc(cb) && cb(msg) }, true) } @@ -170,7 +170,7 @@ Volcanos("onaction", {help: "组件交互", list: [ ], insertTask: function(event, can, time) { var msg = can.sup.request(event, {begin_time: time}) can.user.input(event, can, can.Conf("feature.insert"), function(event, button, data, list) { - var args = ["action", "insert"]; can.core.Item(data, function(key, value) { + var args = [ctx.ACTION, "insert"]; can.core.Item(data, function(key, value) { if (key == "begin_time") { value = value || time } if (key == "close_time") { value = value || time } key && value && args.push(key, value) @@ -179,7 +179,7 @@ Volcanos("onaction", {help: "组件交互", list: [ }, modifyTask: function(event, can, task, key, value) { var msg = can.request(event, task) - can.run(event, ["action", "modify", key, value, task[key]], function(msg) { + can.run(event, [ctx.ACTION, "modify", key, value, task[key]], function(msg) { task[key] = value, can.onimport._profile(can, task) can.user.toast(can, "修改成功") }, true) diff --git a/plugin/local/wiki/data.js b/plugin/local/wiki/data.js index bcb2e2ed..1ab340ef 100644 --- a/plugin/local/wiki/data.js +++ b/plugin/local/wiki/data.js @@ -54,7 +54,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "全选", }, "保存": function(event, can, cmd) { - can.run(event, ["action", cmd, can.Option("path"), can.onexport.file(can)], function(msg) { + can.run(event, [ctx.ACTION, cmd, can.Option("path"), can.onexport.file(can)], function(msg) { can.user.toast(can, "保存成功") }, true) }, diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js index 39374ab1..8f3fce30 100644 --- a/plugin/local/wiki/draw.js +++ b/plugin/local/wiki/draw.js @@ -323,7 +323,7 @@ Volcanos("onaction", {help: "组件菜单", list: [ "编辑": function(event, can, key) { can.Action("go", "auto") }, "save": function(event, can, key) { var msg = can.request(event, {content: can.onexport.content(can, can.svg)}) - can.run(event, ["action", "save", can.Option("path"), can.Option("file")], function(msg) { + can.run(event, [ctx.ACTION, "save", can.Option("path"), can.Option("file")], function(msg) { can.user.toast(can, "保存成功") }, true) }, @@ -433,7 +433,7 @@ Volcanos("onaction", {help: "组件菜单", list: [ }) }, run: function(event, can) { var target = event.target - event.type == "click" && target.Value("type") && can.run(event, ["action", "run", target.Value("zone"), target.Value("type"), target.Value("name"), target.Value("text")], function(msg) { + event.type == "click" && target.Value("type") && can.run(event, [ctx.ACTION, "run", target.Value("zone"), target.Value("type"), target.Value("name"), target.Value("text")], function(msg) { can.onappend.table(can, msg, function() {}, can.ui.display) can.onappend.board(can, msg.Result(), can.ui.display) }, true) diff --git a/plugin/local/wiki/word.js b/plugin/local/wiki/word.js index a4e3b5d3..3244e1e3 100644 --- a/plugin/local/wiki/word.js +++ b/plugin/local/wiki/word.js @@ -45,7 +45,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, item.type = "story" can.onappend._init(can, item, ["/plugin/state.js"], function(sub) { sub.run = function(event, cmds, cb, silent) { - can.run(event, (cmds && can.onengine[cmds[0]]? []: ["action", "story", data.type, data.name, data.text]).concat(cmds), cb, true) + can.run(event, (cmds && can.onengine[cmds[0]]? []: [ctx.ACTION, "story", data.type, data.name, data.text]).concat(cmds), cb, true) } can.page.Modify(can, sub._output, {style: {"max-width": item.width}}) diff --git a/plugin/state.js b/plugin/state.js index 311587b9..c1d85a05 100644 --- a/plugin/state.js +++ b/plugin/state.js @@ -94,7 +94,7 @@ Volcanos("onaction", {help: "交互操作", list: [ can.onlayout.figure(event, can, ui._target, true) }, "生成链接": function(event, can) { var meta = can.Conf() - var args = can.Option(); args._path = "/chat/cmd/"+meta.index + var args = can.Option(); args._path = "/chat/cmd/"+(meta.index||can.core.Keys(meta.ctx, meta.cmd)) var msg = can.request(event, {link: can.user.MergeURL(can, args)}) can.search(event, ["Header.onaction.share"]) }, diff --git a/plugin/story/spide.js b/plugin/story/spide.js index 445f5236..402f4154 100644 --- a/plugin/story/spide.js +++ b/plugin/story/spide.js @@ -142,7 +142,7 @@ Volcanos("ondetail", {help: "用户交互", list: [], plugin: function(event, can, args) { can.onappend.plugin(can, {type: "float", index: "web.code.inner", args: args, _action: ["关闭"]}, function(sub) { sub.run = function(event, cmds, cb) { - can.run(event, ["action", "inner"].concat(cmds), function(msg) { + can.run(event, [ctx.ACTION, "inner"].concat(cmds), function(msg) { can.search(event, ["Action.onexport.size"], function(msg, left, top, width, height) { left = left||0 var top = 120, margin = 20; if (can.user.isMobile) { margin = 0 if (can.user.isLandscape) {