diff --git a/frame.js b/frame.js index 38dafcd3..e590fb0a 100644 --- a/frame.js +++ b/frame.js @@ -6,7 +6,7 @@ Volcanos("onaction", { _init: function(can, meta, list, cb, target) { }, can[item.name] = pane, next(); }, can._target); }, function() { can.onlayout._init(can, meta, list, function() { - can.require(["publish/order.js"], function(can) { + can.require(["/publish/order.js"], function(can) { function getAction() {} function getStorm(storm) { can.core.Item(storm, function(key, value) { value._link? can.require([value._link], function(can) { @@ -64,6 +64,10 @@ Volcanos("onaction", { _init: function(can, meta, list, cb, target) { can.core.List(storm.action, function(value) { msg.Push("name", value.name||""); msg.Push("help", value.help||""); + msg.Push("pod", value.pod||""); + msg.Push("group", value.group||""); + msg.Push("index", value.index||""); + msg.Push("args", value.args||"[]"); msg.Push("inputs", JSON.stringify(value.inputs||[])); msg.Push("feature", JSON.stringify(value.feature||{})); }) @@ -108,7 +112,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { _target: can.onappend.input(sub, option, item.type, item, args[index]), _option: option, _action: action, _output: output, _follow: can._follow+"."+meta.name+"."+item.name, - }, Config.libs.concat([item.display||"plugin/input.js"]), function(input) { + }, Config.libs.concat([item.display||"/plugin/input.js"]), function(input) { input.onimport._init(input, input.Conf(item), item.list||[], function() {}, input._target); input.run = function(event, cmds, cb, silent) { @@ -135,12 +139,12 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { // 添加组件 var display = (msg.Option("_display")||feature.display||"table.js") - display.indexOf("/") == 0 || (display = "plugin/"+display) + display.indexOf("/") == 0 || (display = "/plugin/"+display) sub[display] = Volcanos(display, { _target: output, _option: option, _action: action, _output: output, _follow: can._follow+"."+meta.name+"."+display, - }, Config.libs.concat(["frame.js", display]), function(table) { table.Conf(sub.Conf()) + }, Config.libs.concat(["/frame.js", display]), function(table) { table.Conf(sub.Conf()) table.onimport._init(table, msg, msg.append||[], function() {}, output) table.run = function(event, cmds, cb, silent) { @@ -223,7 +227,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { item.value == "auto" && (item.value = "") item.action == "auto" && (input.dataset.action = "auto") var target = can.page.Append(can, option, [{view: ["item "+item.type], list: [item.position && {text: item.name+": "}, input]}]).last - item.figure && item.figure.indexOf("@") == 0 && (item.figure = item.figure.slice(1)) && can.require(["plugin/input/"+item.figure], function() { + item.figure && item.figure.indexOf("@") == 0 && (item.figure = item.figure.slice(1)) && can.require(["/plugin/input/"+item.figure], function() { target.type != "button" && (target.value = "") }) diff --git a/index.html b/index.html index fd8afa22..d1830245 100644 --- a/index.html +++ b/index.html @@ -4,11 +4,11 @@ volcanos - + - - + + diff --git a/index.js b/index.js index f1fa9372..b3c065b1 100644 --- a/index.js +++ b/index.js @@ -1,20 +1,20 @@ -var Config = {name: "demo", volcano: "frame.js", iceberg: "/chat/", intshell: "plug.sh", - libs: ["lib/base", "lib/core", "lib/misc", "lib/page", "lib/user"], panes: [ - {type: "pane", name: "Header", help: "标题栏", pos: "head", list: ["pane/Header.js", "pane/Header.css"], state: [ +var Config = {name: "demo", volcano: "/frame.js", iceberg: "/chat/", intshell: "plug.sh", + libs: ["/lib/base", "/lib/core", "/lib/misc", "/lib/page", "/lib/user"], panes: [ + {type: "pane", name: "Header", help: "标题栏", pos: "head", list: ["/pane/Header.js", "/pane/Header.css"], state: [ "time", "username", ]}, - {type: "pane", name: "River", help: "群聊组", pos: "left", list: ["pane/River.js", "pane/River.css"]}, - {type: "pane", name: "Storm", help: "应用流", pos: "right", list: ["pane/Storm.js", "pane/Storm.css"]}, - {type: "pane", name: "Action", help: "工作台", pos: "middle", list: ["pane/Action.js", "pane/Action.css"]}, - {type: "pane", name: "Footer", help: "状态条", pos: "foot", list: ["pane/Footer.js", "pane/Footer.css"], state: [ + {type: "pane", name: "River", help: "群聊组", pos: "left", list: ["/pane/River.js", "/pane/River.css"]}, + {type: "pane", name: "Storm", help: "应用流", pos: "right", list: ["/pane/Storm.js", "/pane/Storm.css"]}, + {type: "pane", name: "Action", help: "工作台", pos: "middle", list: ["/pane/Action.js", "/pane/Action.css"]}, + {type: "pane", name: "Footer", help: "状态条", pos: "foot", list: ["/pane/Footer.js", "/pane/Footer.css"], state: [ "ncmd", ]}, ], main: {name: "Header", engine: "remote", list: []}, - list: ["plugin/state.js", "plugin/input.js", "plugin/table.js", - "plugin/input/key", - "plugin/input/date", - "plugin/input/upload", - "plugin/input/province", + list: ["/plugin/state.js", "/plugin/input.js", "/plugin/table.js", + "/plugin/input/key", + "/plugin/input/date", + "/plugin/input/upload", + "/plugin/input/province", ], } diff --git a/pane/Action.js b/pane/Action.js index b5585ac9..21331f9d 100644 --- a/pane/Action.js +++ b/pane/Action.js @@ -6,6 +6,19 @@ Volcanos("onaction", {help: "交互操作", list: [], can.onexport._init(can, msg, list, cb, target) }, }) +Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"], + "共享": function(event, can, value) { + var msg = can.request(event) + msg.Option("name", "storm") + msg.Option("node", value.pod) + msg.Option("group", value.group) + msg.Option("index", value.index) + msg.Option("args", value.args) + msg.Option("storm", can.Conf("storm")) + msg.Option("river", can.Conf("river")) + can.onappend.share(can, msg) + }, +}) Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "action"; can.Cache(can.Conf("river")+"."+can.Conf("storm"), can._output, can._output.scrollTop+1); @@ -16,7 +29,7 @@ Volcanos("onexport", {help: "导出数据", list: [], msg.Clear("option"), can.run(msg._event, [river, storm], function(sup) { can._output.innerHTML = ""; sup.Table(function(value, index, array) { value.inputs = can.base.Obj(value.inputs, []) value.inputs.length == 0 && (value.inputs = [{type: "text"}, {type: "button", name: "查看"}]) - can.onappend._init(can, value, Config.libs.concat(["plugin/state.js"]), function(sub) { + can.onappend._init(can, value, Config.libs.concat(["/plugin/state.js"]), function(sub) { sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, {_msg: sup}); // 插件回调 can.run(event, [river, storm, index].concat(cmds), function(msg) { @@ -25,6 +38,11 @@ Volcanos("onexport", {help: "导出数据", list: [], typeof cb == "function" && cb(msg) }, silent); } + sub._target.oncontextmenu = function(event) { + can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) { + meta[item] && meta[item](event, can, value) + }) + } }, can._output); }) }) }, diff --git a/pane/Storm.js b/pane/Storm.js index 78a05b3e..8753e652 100644 --- a/pane/Storm.js +++ b/pane/Storm.js @@ -7,9 +7,6 @@ Volcanos("onaction", {help: "交互操作", list: [], }, }) Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"], - _init: function(can, msg, list, cb, target) { - can.onexport._init(can, msg, list, cb, target) - }, "共享": function(event, can, value) { var msg = can.request(event) msg.Option("name", "storm") @@ -35,7 +32,6 @@ Volcanos("onexport", {help: "导出数据", list: [], // 右键点击 can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) { meta[item] && meta[item](event, can, value) - console.log(item) }) });