diff --git a/frame.js b/frame.js index ab3391c7..2690973f 100644 --- a/frame.js +++ b/frame.js @@ -10,7 +10,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta, }, can[item.name] = pane, next() }, target) }, function() { - var pane = can[meta.main.name], msg = can.request({}) + var pane = can[meta.main.name], msg = can.request() pane.onmotion._init(pane, target), pane.onkeypop._init(pane, target) pane.onaction._init(pane, msg, [], cb, pane._target) }) @@ -37,17 +37,17 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta, remote: function(event, can, msg, pane, cmds, cb) { if (pane.onengine.engine(event, can, msg, pane, cmds, cb)) { return } can.misc.Run(event, can, {names: pane._name}, cmds, cb) - // pane.run(event, ["search", "Footer.onimport.ncmd"]) + pane.run(event, ["search", "Footer.onimport.ncmd"]) }, engine: function(event, can, msg, pane, cmds, cb) { return false }, - listen: shy("", {}, [], function(can, name, cb) { + listen: shy("事件回调", {}, [], function(can, name, cb) { arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb) }), - trigger: function(can, name, msg) { + signal: shy("事件触发", function(can, name, msg) { can.core.List(can.onengine.listen.meta[name], function(cb) { can.core.CallFunc(cb, {msg: msg}) }) - }, + }), river: { "serivce": {name: "运营群", storm: { @@ -161,13 +161,13 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta, }) Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, list, cb, target, field) { meta.name = meta.name || "", meta.name = meta.name.split(" ")[0] - field = field || can.onappend.field(can, target, meta.type, meta).first + field = field || can.onappend.field(can, meta.type, meta, target).first var legend = can.page.Select(can, field, "legend")[0] var option = can.page.Select(can, field, "form.option")[0] var action = can.page.Select(can, field, "div.action")[0] var output = can.page.Select(can, field, "div.output")[0] var status = can.page.Select(can, field, "div.status")[0] - can.core.Value(meta, {"width": can._width, "height": can._height}) + can.core.Value(meta, {width: can._width, height: can._height}) var sub = Volcanos(meta.name, {_follow: can._follow+"."+meta.name, _legend: legend, _option: option, _action: action, _output: output, _status: status, @@ -203,10 +203,8 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, return item.name && item.value || "" }) can.onappend._init(can, meta, list, function(sub) { + can.core.Timer(10, function() { for (var k in sub._inputs) { sub._inputs[k]._target.focus(); break } }) typeof cb == "function" && cb(sub) - can.core.Timer(10, function() { - for (var k in sub._inputs) { sub._inputs[k]._target.focus(); break } - }) }, target) }, Pack: function(cmds, slient) { @@ -230,15 +228,13 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, _option: function(can, meta, list, cb) { var index = -1, args = can.base.Obj(meta.args||meta.arg, []) function add(item, next) { item._input != "button" && index++ var input = Volcanos(item.name, {_follow: can._follow+"."+item.name, - _target: can.onappend.input(can, can._option, item.type, item, args[index]), - _option: can._option, _action: can._action, _output: can._output, + _option: can._option, _action: can._action, _output: can._output, _status: can._status, + _target: can.onappend.input(can, item.type, item, args[index], can._option), CloneInput: function() { add(item)._target.focus() }, CloneField: function() { can.Clone() }, - Option: can.Option, + Option: can.Option, Action: can.Action, Status: can.Status, }, [item.display||"/plugin/input.js"].concat(Volcanos.meta.volcano).concat(Volcanos.meta.libs), function(input) { - input.Conf(item), input.sup = can - input.run = function(event, cmds, cb, silent) { - var msg = can.request(event, can.Conf("option")) + input.Conf(item), input.sup = can, input.run = function(event, cmds, cb, silent) { return can.onappend._output(can, meta, event, can.Pack(cmds), cb, silent) } @@ -249,23 +245,22 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, _action: function(can, list, action, meta) { action = action || can._action, meta = meta || can.onaction can.onmotion.clear(can, action), can.core.List(list, function(item) { item === ""? /*空白*/ can.page.Append(can, action, [{view: "item space"}]): - typeof item == "string"? /*按键*/ can.onappend.input(can, action, "input", {type: "button", value: item, onclick: function(event) { + typeof item == "string"? /*按键*/ can.onappend.input(can, "input", {type: "button", value: item, onclick: function(event) { var cb = meta[item] || meta["_engine"] || can.onkeymap && can.onkeymap._remote typeof cb == "function"? cb(event, can, item): can.run(event, ["action", item], function(msg) {}, true) - }}): item.length > 0? /*列表*/ can.onappend.input(can, action, "input", {type: "select", name: item[0], values: item.slice(1), title: item[0], onchange: function(event) { + }}, action): item.length > 0? /*列表*/ can.onappend.input(can, "input", {type: "select", name: item[0], values: item.slice(1), title: item[0], onchange: function(event) { var which = item[event.target.selectedIndex+1] var cb = meta[which] typeof cb == "function" && cb(event, can, which) var cb = meta[item[0]] typeof cb == "function" && cb(event, can, item[0], which) - }}): item.input? /*文本*/ can.page.Append(can, action, [{view: "item", list: [{type: "input", name: item.input[0], onkeydown: function(event) { + }}, action): item.input? /*文本*/ can.page.Append(can, action, [{view: "item", list: [{type: "input", name: item.input[0], onkeydown: function(event) { item.input[1](event, can) }}] }]): typeof item == "object" && /*其它*/ can.page.Append(can, action, [item]) }) }, _output: function(can, meta, event, cmds, cb, silent) { - var msg = can.request(event) - can.page.Select(can, can._output, "div.control .args", function(item) { + var msg = can.request(event); can.page.Select(can, can._output, "div.control .args", function(item) { item.name && item.value && msg.Option(item.name, item.value) }) @@ -274,33 +269,29 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, typeof cb == "function" && cb(msg) if (silent) { return } - var display = meta.feature.display || "table" - display.indexOf("/") == 0 || (display = "/plugin/"+display) - display.endsWith(".js") || (display += ".js") + var display = msg.Option("_display") || meta.display || meta.feature.display || "/plugin/table.js" var output = Volcanos(display, {_follow: can._follow+"."+display, - _target: can._output, _fields: can._target, _option: can._option, _action: can._action, _output: can._output, _status: can._status, + _target: can._output, _fields: can._target, Option: can.Option, Action: can.Action, Status: can.Status, }, [display].concat(Volcanos.meta.volcano).concat(Volcanos.meta.libs), function(table) { - table.Conf(can.Conf()), table.sup = can - table.run = function(event, cmds, cb, silent) { - var msg = can.request(event, can.Conf("option")) + table.Conf(can.Conf()), table.sup = can, table.run = function(event, cmds, cb, silent) { return can.onappend._output(can, meta, event, can.Pack(cmds, silent), cb, silent) }, table._msg = msg - msg && table.onimport && table.onimport._init && table.onimport._init(table, msg, msg.result||[], function(msg) { + table.onimport && table.onimport._init && table.onimport._init(table, msg, msg.result||[], function(msg) { table.onaction && table.onappend._action(table, msg._action||meta._action||table.onaction.list, table._action) - table.ondetail && table.onappend._detail(table, table._output, msg._detail||meta._detail||table.ondetail.list) + table.ondetail && table.onappend._detail(table, msg._detail||meta._detail||table.ondetail.list, table._output) table.onexport && table.onappend._status(table, msg._export||meta._export||table.onexport.list, table._status) }, can._output) }); can._outputs.push(output) }, silent) }, - _detail: function(can, target, list, cb) { + _detail: function(can, list, target) { list.length > 0 && (target.oncontextmenu = function(event) { - can.user.carte(event, can, can.ondetail||{}, list, function(ev, item, meta) { - (cb||can.ondetail[item]||can.onaction[item])(event, can, item) + can.user.carte(event, can, can.ondetail||can.onaction||{}, list, function(ev, item, meta) { + (can.ondetail[item]||can.onaction[item])(event, can, item) }) }) }, @@ -312,89 +303,71 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, }) }, - item: function(can, target, type, item, cb, cbs) { + item: function(can, type, item, cb, cbs, target) { var ui = can.page.Append(can, target, [{view: [type, "div", item.nick||item.name], - onclick: function(event) { - can.page.Select(can, target, "div."+type, function(item) { - can.page.ClassList.del(can, item, "select") - }), can.page.ClassList.add(can, ui.item, "select") - cb(event, ui.item) - }, oncontextmenu: function(event) { cbs(event, ui.item) }, + onclick: function(event) { cb(event, ui.first) + can.onmotion.select(can, target, "div."+type, ui.first) + }, oncontextmenu: function(event) { cbs(event, ui.first) }, }]) - return ui.item + return ui.first }, - tree: function(can, msg, field, split, target, cb) { - var list = {}; msg.Table(function(value) { - value[field] && can.core.List(value[field].split(split), function(item, index, array) { - var last = array.slice(0, index).join(split) - var name = array.slice(0, index+1).join(split) - list[name] || (list[name] = can.page.Append(can, list[last]||target, [{view: ["item", "div", item+(index==array.length-1?"":split)], onclick: function(event) { - can.page.Toggle(can, list[name]) - - index == array.length - 1 && typeof cb == "function" && cb(event, value) + tree: function(can, list, field, split, cb, target) { + var node = {}; can.core.List(list, function(item) { + item[field] && can.core.List(item[field].split(split), function(value, index, array) { + var last = array.slice(0, index).join(split), name = array.slice(0, index+1).join(split) + node[name] || (node[name] = can.page.Append(can, node[last]||target, [{view: ["item", "div", value+(index==array.length-1?"":split)], onclick: function(event) { + index < array.length - 1? can.onmotion.toggle(can, node[name]): typeof cb == "function" && cb(event, item) }}, {view: "list", style: {display: "none"}}]).last) }) }) }, - field: function(can, target, type, item) { type = type || "input", item = item || {} + field: function(can, type, item, target) { type = type || "input", item = item || {} return can.page.Append(can, target, [{view: [(type||"")+" "+(item.name||"")+" "+(item.pos||""), "fieldset"], list: [ item.pos? undefined: {text: [(item.nick||item.name||"").split(" ")[0]+"("+(item.help||"").split(" ")[0]+")", "legend"]}, {view: ["option", "form"]}, {view: ["action"]}, {view: ["output"]}, {view: ["status"]}, ]}]) }, - input: function(can, option, type, item, value) { - item.name && item.name.indexOf("@") == 0 && (item.name = item.name.slice(1)) && (item.position = item.position || "opts") - item.figure = item.figure || item.value || "" - item.action = item.action || item.value || "" - item.cb = item.cb || item.value || "" - + input: function(can, type, item, value, target) { var input = {type: "input", name: item.name, data: item, dataset: {}} item.value == "auto" && (item.value = "", item.action = "auto") item.action == "auto" && (input.dataset.action = "auto") - switch (item.type = item.type || item._type || item._input || "text") { + switch (item.type = item.type||item._input||"text") { case "upfile": item.type = "file"; break - case "button": item.value = item.value || can.Conf("feature.trans."+item.name) || item.name || "查看"; break - case "select": + case "button": + item.value = item.value||item.name||"查看"; + break + case "select": input.type = "select" item.values = typeof item.values == "string"? item.values.split(" "): item.values if (!item.values && item.value) { - item.values = item.value.split("|") - item.value = item.values[0] - if (item.values[0] == "day") { - item.value = item.values[1] - } + item.values = item.value.split("|") , item.value = item.values[0] + if (item.values[0] == "day") { item.value = item.values[1] } } - item.value = value || item.value - input.type = "select", input.list = item.values.map(function(value) { + + item.value = value || item.value, input.list = item.values.map(function(value) { return {type: "option", value: value, inner: value} - }) - item.className || can.page.ClassList.add(can, item, item.position||"args") + }), item.className || can.page.ClassList.add(can, item, "args") break - case "textarea": - input.type = "textarea" - item.style.width = can.Conf(["feature", "textarea", item.name, "width"].join(".")) || can.Conf(["feature", "textarea", "width"].join(".")) || item.style.width - item.style.height = can.Conf(["feature", "textarea", item.name, "height"].join(".")) || can.Conf(["feature", "textarea", "height"].join(".")) || item.style.height - item.value = can.Conf("content") || item.value + case "textarea": input.type = "textarea" + item.style.width = item.style.width || can.Conf(["feature", "textarea", item.name, "width"].join(".")) || can.Conf(["feature", "textarea", "width"].join(".")) || 400 + item.style.height = item.style.height || can.Conf(["feature", "textarea", item.name, "height"].join(".")) || can.Conf(["feature", "textarea", "height"].join(".")) || 30 // no break case "password": // no break case "text": item.value = value || item.value || "" - item.className || can.page.ClassList.add(can, item, item.position||"args") - item.autocomplete = "off" + item.className || can.page.ClassList.add(can, item, "args") break } - var target = can.page.Append(can, option, [{view: ["item "+item.type], list: [item.position && {text: item.name+": "}, input]}])[item.name] - item.type == "textarea" && can.page.Append(can, option, [{type: "br"}]) - return target + return can.page.Append(can, target, [{view: ["item "+item.type], list: [{text: [name, "label"]}, {text: [": ", "label"]}, input]}])[item.name] }, - table: function(can, msg, target, type, cb) { + table: function(can, type, msg, cb, target) { var table = can.page.AppendTable(can, msg, target, msg.append, cb) table && can.page.Modify(can, table, {className: type||"content"}) return table }, - board: function(can, msg, target, type, text) { text = text || can.page.Display(msg.Result()) + board: function(can, type, text, target) { text = can.page.Display(text || "") return text && can.page.Append(can, target, [{view: ["code "+(type||""), "div", text]}]).code }, @@ -403,7 +376,6 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, var list = can.core.Split(key, "@=", "@=", {simple: true}) var pkey = list[0], pval = list[1]||"" - can.page.Modify(can, target, {autocomplete: "off"}) target.type != "button" && target.value.startsWith("@") && (target.value = pval||"") pkey && can.require(["/plugin/input/"+pkey+".js"], function(can) { can.onfigure && can.core.Item(can.onfigure[pkey], function(key, cb) { if (key.startsWith("on")) { @@ -444,16 +416,14 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe }) if (can.user.isMobile) { return } - can.onengine.trigger(can, "resize", can.request(event, {width: width, height: height})) - can.page.Select(can, target, ["fieldset.main"], function(field, index) { can.page.Modify(can, field, {style: {height: height}}) }) can.page.Select(can, target, ["fieldset.main>div.output"], function(output) { can.page.Modify(can, output, {style: {height: height}}) }) + can.onengine.signal(can, "resize", can.request(event, {width: width, height: height})) }, - resize: shy("", {}, [], function(cb) { arguments.callee.list.push(cb) }), topic: function(can, topic) { topic && (can._topic = topic) can.user.topic(can, can._topic || can.user.Search(can, "topic") || ((can.user.Search(can, "pod")||can.base.isNight())? "black": "white")) }, @@ -510,15 +480,13 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe target.onkeydown = function(event) { if (event.target != target) { return } can.page.Select(can, target, "fieldset.Action>div.output", function(item) { - target._keys = can.onkeypop._parse(event, can, item, "normal", target._keys||[]) + target._keys = can.onkeypop._parse(event, can, "normal", target._keys||[], item) }) } target.onkeyup = function(event) { } }, - _parse: function(event, can, target, mode, list) { - // event.key.length == 1 && - list.push(event.key) + _parse: function(event, can, mode, list, target) { list.push(event.key) can.Status && can.Status("keys", list.join("")) for (var pre = 0; pre < list.length; pre++) { @@ -638,7 +606,7 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe }, _engine: {}, input: function(event, can) { var target = event.target - target._keys = can.onkeypop._parse(event, can, target, event.ctrlKey? "insert_ctrl": "insert", target._keys||[]) + target._keys = can.onkeypop._parse(event, can, event.ctrlKey? "insert_ctrl": "insert", target._keys||[], target) if (target._keys.length == 0) { event.stopPropagation(), event.preventDefault() } }, }) @@ -651,7 +619,7 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe add? count++: count-- count < 0 && (add = true) - count > 100 && (add = false) + count > 50 && (add = false) can.page.Select(can, target, "fieldset.story", function(item) { can.page.Modify(can, item, {style: { @@ -663,7 +631,7 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe show: function(can, time, cb, target) { target = target || can._target time = typeof time == "object"? time: {value: 10, length: time||20} - can.page.Modify(can, target, {style: {opacity: 0, display: "block"}}) + can.page.Modify(can, target, {style: {opacity: 0, display: ""}}) can.core.Timer(time, function(event, value, index) { can.page.Modify(can, target, {style: {opacity: (index+1)/time.length}}) }, cb) diff --git a/lib/page.js b/lib/page.js index 1b9619aa..d31381c5 100644 --- a/lib/page.js +++ b/lib/page.js @@ -92,7 +92,6 @@ Volcanos("page", {help: "网页模块", } else if (item.button) { var list = can.core.List(item.button) type = "button", name = name || list[0] - data.value = data.value || name data.innerText = can.user.trans(can, list[0]), data.onclick = function(event) { typeof list[1] == "function" && list[1](event, name) event.stopPropagation() @@ -164,6 +163,7 @@ Volcanos("page", {help: "网页模块", data.onload = list[1] } + item.type == "input" && data.type == "button" && (data.value = can.user.trans(can, data.value)) data.placeholder && (data.placeholder = can.user.trans(can, data.placeholder)) data.title && (data.title = can.user.trans(can, data.title)) diff --git a/lib/user.js b/lib/user.js index ede7e1ca..d9a07ee4 100644 --- a/lib/user.js +++ b/lib/user.js @@ -56,7 +56,9 @@ Volcanos("user", {help: "用户模块", agent: { if (typeof text == "function") { text = text.name || "" } - return can._trans && can._trans[text] || text + return can._trans && can._trans[text] || can.Conf("trans."+text) || can.Conf("feature.trans."+text) || { + + }[text] || text }, topic: function(can, name) { can.page.Modify(can, document.body, {className: name}) diff --git a/page/index.css b/page/index.css index 5ef40c1e..7c1b994d 100644 --- a/page/index.css +++ b/page/index.css @@ -151,6 +151,9 @@ div.hidden { fieldset>form.option>div.item { float:left; margin-right:3px; } +fieldset>form.option>div.item label { + display:none; +} fieldset>form.option>div.item input.args.char { width:20px; } diff --git a/pane/Action.js b/pane/Action.js index 17d95bd6..1b221c0d 100644 --- a/pane/Action.js +++ b/pane/Action.js @@ -100,10 +100,10 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg, can.core.CallFunc(can.onaction[key], {event: event, can: can, key: key}) }) - can._target.ontouchstart = function(event) { can.onengine.trigger(can, "action.touch", {}) } + can._target.ontouchstart = function(event) { can.onengine.signal(can, "action.touch", {}) } can.Conf({width: can._output.offsetWidth-33, height: window.innerHeight}) can.onengine.listen(can, "resize", function(width, height) { can.Conf({width: width, height: height}) - can.onengine.trigger(can, "action.resize", can.request({}, {width: width, height: height})) + can.onengine.signal(can, "action.resize", can.request({}, {width: width, height: height})) }) can.onengine.listen(can, "search", function(msg, word) { diff --git a/pane/River.js b/pane/River.js index 1c1efd58..b10cb54a 100644 --- a/pane/River.js +++ b/pane/River.js @@ -13,7 +13,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.onmotion.clear(can), can.sublist = {} var select; msg.Table(function(value, index, array) { - var view = can.onappend.item(can, target, "item", value, function(event, item) { + var view = can.onappend.item(can, "item", value, function(event, item) { // 左键点击 can.onaction.storm(event, can, value.hash) }, function(event) { @@ -21,7 +21,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, var ui = can.user.carte(event, can, can.ondetail, can.ondetail.list, function(ev, item, meta) { can.ondetail[item](event, can, item, value.hash) }); can.page.Modify(can, ui.first, {style: {left: can._target.offsetWidth}}) - }) + }, target) if (index == 0 || [value.hash, value.name].indexOf(can._main_river) > -1) { select = view } }), select && select.click() @@ -106,7 +106,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg, }, action: function(event, can, river, storm) { var msg = can.request(event, {river: can.Conf(RIVER, river), storm: can.Conf(STORM, storm)}) - can.onengine.trigger(can, "storm.select", msg) + can.onengine.signal(can, "storm.select", msg) can.page.Select(can, can._output, "div.item.select", function(item) { can.page.ClassList.del(can, item, "select") diff --git a/pane/Search.js b/pane/Search.js index fe138e20..0e28494d 100644 --- a/pane/Search.js +++ b/pane/Search.js @@ -13,7 +13,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, typeof cb == "function" && cb(msg) }, _table: function(can, msg, fields) { can.onmotion.clear(can, can.ui.content) - var table = can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line) { + var table = can.onappend.table(can, "content", msg, function(value, key, index, line) { can.Status("count", index+1) return {text: [key == "text" && typeof line.text == "function" && line.text.help || value, "td"], onclick: function(event) { if (event.shiftKey) { var msg = can.request(event, line) @@ -42,7 +42,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }}]) can.Status("selected", can.page.Select(can, can.ui.table, "tr").length-1) }} - }) + }, can.ui.content) fields.indexOf("ctx") > -1 && can.page.RangeTable(can, table, [fields.indexOf("ctx"), fields.indexOf("cmd"), fields.indexOf("type"), fields.indexOf("name")]) @@ -51,7 +51,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }, _word: function(can, msg, cmds, fields) { var msg = can.request({}, {fields: fields.join(","), word: cmds}) - can.onengine.trigger(can, "search", msg) + can.onengine.signal(can, "search", msg) can.onmotion.clear(can, can.ui.content) can.run(msg._event, cmds, function(msg) { can.list = msg.Table() diff --git a/plugin/input.js b/plugin/input.js index 80e233db..793fd001 100644 --- a/plugin/input.js +++ b/plugin/input.js @@ -18,7 +18,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta, case "select": meta.value && (target.value = meta.value); break } - can.onappend.figure(can, meta, meta.figure, target) + can.onappend.figure(can, meta, meta.value, target) }, "upload": function(event, can) { can.user.upload(event, can) }, diff --git a/plugin/input/date.js b/plugin/input/date.js index 6e8aebf0..2926a0a6 100644 --- a/plugin/input/date.js +++ b/plugin/input/date.js @@ -8,7 +8,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(e // 添加插件 can._figure && can.page.Remove(can, can._figure.fieldset) - var figure = can.onappend.field(can, document.body, "input date", {}) + var figure = can.onappend.field(can, "input date", {}, document.body) can._figure = figure; can.onlayout.figure(can, figure, event) figure.table = can.page.Append(can, figure.output, [{type: "table"}]).first diff --git a/plugin/input/key.js b/plugin/input/key.js index 33afc9ed..15b4de8e 100644 --- a/plugin/input/key.js +++ b/plugin/input/key.js @@ -4,7 +4,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(ev if (!msg.append) { return } can._figure && can.page.Remove(can, can._figure.fieldset) - var figure = can.onappend.field(can, document.body, "input key", {}) + var figure = can.onappend.field(can, "input key", {}, document.body) can._figure = figure; can.onlayout.figure(can, figure, event) can.onappend._action(can, [ @@ -12,12 +12,12 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(ev {button: ["关闭", function(event) { can.page.Remove(can, can._figure.fieldset) }]}, ], can._figure.action) - can.onappend.table(can, msg, can._figure.output, "content", function(value, key, index, line) { + can.onappend.table(can, "content", msg, function(value, key, index, line) { return {type: "td", inner: value, onclick: function() { target.value = value; msg.Option("_refresh") && run() can.page.Remove(can, can._figure.fieldset) }} - }) + }, can._figure.output) }, true) }; run() }}, }, ["/plugin/input/key.css"]) diff --git a/plugin/local/chat/media.js b/plugin/local/chat/media.js index 6c16e45e..19201b45 100644 --- a/plugin/local/chat/media.js +++ b/plugin/local/chat/media.js @@ -2,15 +2,15 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.ui = can.onlayout.display(can, target) can.ui.canvas = can.page.Append(can, can.ui.display, [{type: "canvas", width: 320, height: 240, style: {display: "none"}}]).first - can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line, array) { + can.onappend.table(can, "content", msg, function(value, key, index, line, array) { return {text: [value, "td"], onclick: function(event) { can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.run(event) }) }} - }) + }, can.ui.content) - can.onappend.board(can, msg, can.ui.display, "content") + can.onappend.board(can, "content", msg.Result(), can.ui.display) typeof cb == "function" && cb(msg) }, }) diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index feb041d3..c67963a4 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -1,5 +1,5 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, target) { - var list = []; can.onengine.listen(can, "resize", function(width, height) { + var list = []; can.onengine.listen(can, "action.resize", function(width, height) { can.Conf({width: width, height: height}), can.core.Delay(list, 100, function() { can.onimport._init(can, msg, list, cb, target) }) @@ -71,9 +71,9 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, var msg = can.request({}, {dir_root: path, dir_deep: true}) can.run(msg._event, ["action", "dir", "./"], function(msg) { can.ui.project.innerHTML = "" msg.path && can.Status("文件数", msg.path.length) - can.onappend.tree(can, msg, "path", "/", can.ui.project, function(event, value) { + can.onappend.tree(can, msg.Table(), "path", "/", function(event, value) { can.onimport.tabview(can, can.Option("path"), value.path) - }), typeof cb == "function" && cb() + }, can.ui.project), typeof cb == "function" && cb() }, true) }, }, ["/plugin/local/code/inner.css"]) @@ -269,7 +269,7 @@ Volcanos("onaction", {help: "控件交互", list: [], toast.Close() can.ui.tags.innerHTML = "" - can.onappend.table(can, msg, can.ui.tags, "content", function(value, key, index, line) { can.Status("标签数", index+1) + can.onappend.table(can, "content", msg, function(value, key, index, line) { can.Status("标签数", index+1) value = value.replace("<", "<").replace(">", ">"), value = value.replace("./", "") return {text: ["", "td"], list: [{text: [value, "div"]}], onclick: function(event) { line.line && can.onimport.tabview(can, can.Option("path"), line.file.replace("./", ""), parseInt(line.line), function() { @@ -277,7 +277,7 @@ Volcanos("onaction", {help: "控件交互", list: [], can.current.scroll(0, -pos) }) }} - }) + }, can.ui.tags) }, true) }, }) diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js index 4c145cdd..11039245 100644 --- a/plugin/local/code/vimer.js +++ b/plugin/local/code/vimer.js @@ -98,10 +98,10 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert" toast.Close() can.ui.output.innerHTML = "" - can.onappend.table(can, msg, can.ui.output, "content", function(value, key, index) { + can.onappend.table(can, "content", msg, function(value, key, index) { return {text: [value, "td"]} - }) - can.onappend.board(can, msg, can.ui.output, "content") + }, can.ui.output) + can.onappend.board(can, "content", msg.Result(), can.ui.output) }, true) }, _engine: { diff --git a/plugin/local/wiki/data.js b/plugin/local/wiki/data.js index bac6d5cf..0e78e00b 100644 --- a/plugin/local/wiki/data.js +++ b/plugin/local/wiki/data.js @@ -1,7 +1,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) { can.ui = can.page.Appends(can, can._target, [{view: "content"}, {view: "display"}]) - can.table = can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line) { + can.table = can.onappend.table(can, "content", msg, function(value, key, index, line) { return {text: [value, "td"], oncontextmenu: function(event) { can.user.carte(event, can, can.ondetail, can.ondetail.list, function(ev, cmd, meta) { var cb = meta[cmd]; cb && cb(event, can, cmd, value, key, index, line) @@ -11,7 +11,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }, onclick: function(event) { if (key == "path") { can.run(event, [can.Option("path", value)]) } }} - }) + }, can.ui.content) can.onexport.list = msg.append typeof cb == "function" && cb(msg) diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js index 5099eb89..553ef98b 100644 --- a/plugin/local/wiki/draw.js +++ b/plugin/local/wiki/draw.js @@ -1,5 +1,5 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = "" - can.onappend.table(can, msg, target, "content"), can.ui = can.page.Append(can, target, [ + can.onappend.table(can, "content", msg, null, target), can.ui = can.page.Append(can, target, [ {view: "project", style: {display: "none"}}, {view: "content", onmouseenter: function(event) { can.onkeypop.action = can @@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.current = null // 加载绘图 - var code = can.onappend.board(can, msg, can.ui.content, "content", msg.Result()||can.onexport.content(can)) + var code = can.onappend.board(can, "content", msg.Result()||can.onexport.content(can), can.ui.content) can.page.Select(can, can.ui.content, "svg", function(svg) { can.svg = can.group = svg can.onimport.block(can, svg), can.onimport.group(can, svg).click() can.page.Select(can, svg, "*", function(item, index) { @@ -49,7 +49,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, return typeof cb == "function" && cb(msg) }, group: function(can, target) { var name = target.Groups() || "svg" - return can.onappend.item(can, can.ui.project, "item", {name: name}, function(event) { + return can.onappend.item(can, "item", {name: name}, function(event) { can.group = target, can.core.List(["font-size", "storke-width", "stroke", "fill"], function(key) { can.Action(key, target.Value(key)||can.Action(key)) }), can.onmotion.show(can, 10, null, target) @@ -68,7 +68,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.onaction[item](event, can, item) } }) - }) + }, can.ui.project) }, block: function(can, target) { target.Val = function(key, value) { @@ -603,8 +603,8 @@ Volcanos("onaction", {help: "组件菜单", list: [ _mode: { 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) { - can.onappend.table(can, msg, can.ui.display, "content") - can.onappend.board(can, msg, can.ui.display, "content") + can.onappend.table(can, "content", msg, function() {}, can.ui.display) + can.onappend.board(can, "content", msg.Result(), can.ui.display) }, true) }, translate: function(event, can, point) { diff --git a/plugin/local/wiki/feel.js b/plugin/local/wiki/feel.js index cc0f8211..0bf602c6 100644 --- a/plugin/local/wiki/feel.js +++ b/plugin/local/wiki/feel.js @@ -5,13 +5,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }) can.ui = can.onlayout.display(can, target) - can.onappend.table(can, can.path, can.ui.content, "content", function(value, key) { + can.onappend.table(can, "content", can.path, function(value, key) { return {type: "td", inner: value, onclick: function(event) { can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.onimport._init(can, msg, list, cb, target) }) }} - }) + }, can.ui.content) var feature = can.Conf("feature") || {} can.page.Modify(can, can._action, {style: {display: "none"}}) diff --git a/plugin/local/wiki/word.js b/plugin/local/wiki/word.js index 7118af0f..1bbfd535 100644 --- a/plugin/local/wiki/word.js +++ b/plugin/local/wiki/word.js @@ -1,5 +1,5 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { target.innerHTML = "" - var list = []; can.onengine.listen(can, "resize", function(width, height) { + var list = []; can.onengine.listen(can, "action.resize", function(width, height) { can.Conf({width: width, height: height}), can.core.Delay(list, 100, function() { can.onimport._init(can, msg, list, cb, target) }) @@ -7,13 +7,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.page.Modify(can, can._target, {style: {"max-width": can.Conf("width")}}) if (msg.Option("_display") == "table") { - return can.onappend.table(can, msg, target, "content", function(value, key) { + return can.onappend.table(can, "content", msg, function(value, key) { return {text: [value, "td"], onclick: function(event) { can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.run(event) }) }} - }) + }, target) } target.innerHTML = msg.Result() can.page.Select(can, target, ".story", function(item) { var data = item.dataset diff --git a/plugin/story/paste.js b/plugin/story/paste.js index fd3c998d..8c3cb550 100644 --- a/plugin/story/paste.js +++ b/plugin/story/paste.js @@ -2,8 +2,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.ui = can.page.Append(can, can._target, [ {view: ["content", "div"]}, {view: ["display", "pre"]}, ]) - can.onappend.table(can, msg, can.ui.content, "content") - can.onappend.board(can, msg, can.ui.display, "content") + can.onappend.table(can, "content", msg, null, can.ui.content) + can.onappend.board(can, "content", msg.Result(), can.ui.display) return typeof cb == "function" && cb(msg) }, }) diff --git a/plugin/story/spide.js b/plugin/story/spide.js index cc190710..269afb46 100644 --- a/plugin/story/spide.js +++ b/plugin/story/spide.js @@ -1,13 +1,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = "" if (msg.Option("_display") == "table") { - can.onappend.table(can, msg, can._target, "content", function(value, key) { + can.onappend.table(can, "content", msg, function(value, key) { return {text: [value, "td"], click: function(event) { can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.run(event) }) }} - }) + }, can._target) return typeof cb == "function" && cb(msg) } can.ui = can.page.Append(can, can._output, [{view: "content"}, {view: "display"}]) diff --git a/plugin/story/trend.js b/plugin/story/trend.js index ee9323cd..7e6362fa 100644 --- a/plugin/story/trend.js +++ b/plugin/story/trend.js @@ -1,18 +1,18 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = "" - var list = []; can.onengine.listen(can, "resize", function(width, height) { + var list = []; can.onengine.listen(can, "action.resize", function(width, height) { can.Conf({width: width, height: height}), can.core.Delay(list, 100, function() { can.onimport._init(can, msg, list, cb, target) }) }) if (msg.Option("_display") == "table") { - can.onappend.table(can, msg, can._target, "content", function(value, key) { + can.onappend.table(can, "content", msg, function(value, key) { return {text: [value, "td"], click: function(event) { can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.run(event) }) }} - }) + }, can._target) return typeof cb == "function" && cb(msg) } can.ui = can.page.Append(can, can._output, [{view: "content"}, {view: "display"}]) @@ -194,7 +194,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", ["view", }, "数据源": function(event, can) { can.ui.display.innerHTML = "" - can.onappend.table(can, can._msg, can.ui.display, "content") + can.onappend.table(can, "content", can._msg, null, can.ui.display) }, }) Volcanos("onexport", {help: "导出数据", list: ["from", "commit", "total", "date", "begin", "add", "del", "close", "note"]}) diff --git a/plugin/table.js b/plugin/table.js index 633b9fd5..f738bf4e 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -6,11 +6,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, // {view: ["content", "div"]}, {view: ["display", "pre"]}, // ])) - can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line, array) { + can.onappend.table(can, "content", msg, function(value, key, index, line, array) { return can.onimport._table(can, value, key, index, line, array) - }) + }, can.ui.content) - can.onappend.board(can, msg, can.ui.display, "content") + can.onappend.board(can, "content", msg.Result(), can.ui.display) can.onimport._board(can, msg) typeof cb == "function" && cb(msg) @@ -137,11 +137,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, return true }, _inner: function(can, msg) { - can.onappend.table(can, msg, can._output, "content", function(value, key, index, line, array) { + can.onappend.table(can, "content", msg, function(value, key, index, line, array) { return can.onimport._table(can, value, key, index, line, array) - }) + }, can._output) - can.onappend.board(can, msg, can._output, "content") + can.onappend.board(can, "content", msg.Result(), can._output) // can.onimport._board(can, msg) return true }, diff --git a/proto.js b/proto.js index 78c91f67..4aa40e30 100644 --- a/proto.js +++ b/proto.js @@ -24,8 +24,7 @@ var Volcanos = shy("火山架", {libs: [], cache: {}}, [], function(name, can, l // 根模块 name = Config.name, can = {_follow: Config.name, _target: document.body} libs = Preload.concat(Config.main.list, Config.libs), cb = function(can) { - can.onengine._init(can, can.Conf(Config), Config.panes, function(msg) { - can.base.Log(name, "run", window.can = can) + can.onengine._init(can, can.Conf(Config), Config.panes, function(msg) { can.base.Log(name, "run", can) var list = []; document.body.onresize = function() { can.core.Delay(list, 100, function() { can.onlayout._init(can, can._target, can._width = window.innerWidth, can._height = window.innerHeight) }) }, document.body.onresize() diff --git a/publish/chrome/spided.js b/publish/chrome/spided.js index a80305c5..30d49337 100644 --- a/publish/chrome/spided.js +++ b/publish/chrome/spided.js @@ -2,8 +2,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.ui = can.page.Append(can, can._target, [ {view: ["content", "div"]}, {view: ["display", "pre"]}, ]) - can.onappend.table(can, msg, can.ui.content, "content") - can.onappend.board(can, msg, can.ui.display, "content") + can.onappend.table(can, "content", msg, null, can.ui.content) + can.onappend.board(can, "content", msg.Result(), can.ui.display) var refresh = msg.Option("_refresh") || can.Conf("feature")["_refresh"] refresh && can.core.Timer(refresh, function() { can.run({})