1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00

opt frame

This commit is contained in:
shaoying 2021-01-15 01:56:42 +08:00
parent 2d5b4b20e9
commit fdab93a60d
23 changed files with 121 additions and 149 deletions

152
frame.js
View File

@ -10,7 +10,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
}, can[item.name] = pane, next() }, can[item.name] = pane, next()
}, target) }, target)
}, function() { }, 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.onmotion._init(pane, target), pane.onkeypop._init(pane, target)
pane.onaction._init(pane, msg, [], cb, 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) { remote: function(event, can, msg, pane, cmds, cb) {
if (pane.onengine.engine(event, can, msg, pane, cmds, cb)) { return } if (pane.onengine.engine(event, can, msg, pane, cmds, cb)) { return }
can.misc.Run(event, can, {names: pane._name}, cmds, cb) 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 }, }, 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) 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.List(can.onengine.listen.meta[name], function(cb) {
can.core.CallFunc(cb, {msg: msg}) can.core.CallFunc(cb, {msg: msg})
}) })
}, }),
river: { river: {
"serivce": {name: "运营群", storm: { "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) { Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, list, cb, target, field) {
meta.name = meta.name || "", meta.name = meta.name.split(" ")[0] 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 legend = can.page.Select(can, field, "legend")[0]
var option = can.page.Select(can, field, "form.option")[0] var option = can.page.Select(can, field, "form.option")[0]
var action = can.page.Select(can, field, "div.action")[0] var action = can.page.Select(can, field, "div.action")[0]
var output = can.page.Select(can, field, "div.output")[0] var output = can.page.Select(can, field, "div.output")[0]
var status = can.page.Select(can, field, "div.status")[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, var sub = Volcanos(meta.name, {_follow: can._follow+"."+meta.name,
_legend: legend, _option: option, _action: action, _output: output, _status: status, _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 || "" return item.name && item.value || ""
}) })
can.onappend._init(can, meta, list, function(sub) { 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) typeof cb == "function" && cb(sub)
can.core.Timer(10, function() {
for (var k in sub._inputs) { sub._inputs[k]._target.focus(); break }
})
}, target) }, target)
}, },
Pack: function(cmds, slient) { 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, []) _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++ function add(item, next) { item._input != "button" && index++
var input = Volcanos(item.name, {_follow: can._follow+"."+item.name, 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, _status: can._status,
_option: can._option, _action: can._action, _output: can._output, _target: can.onappend.input(can, item.type, item, args[index], can._option),
CloneInput: function() { add(item)._target.focus() }, CloneInput: function() { add(item)._target.focus() },
CloneField: function() { can.Clone() }, 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) { }, [item.display||"/plugin/input.js"].concat(Volcanos.meta.volcano).concat(Volcanos.meta.libs), function(input) {
input.Conf(item), input.sup = can input.Conf(item), input.sup = can, input.run = function(event, cmds, cb, silent) {
input.run = function(event, cmds, cb, silent) {
var msg = can.request(event, can.Conf("option"))
return can.onappend._output(can, meta, event, can.Pack(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 _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) { can.onmotion.clear(can, action), can.core.List(list, function(item) {
item === ""? /*空白*/ can.page.Append(can, action, [{view: "item space"}]): 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 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) 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 which = item[event.target.selectedIndex+1]
var cb = meta[which] var cb = meta[which]
typeof cb == "function" && cb(event, can, which) typeof cb == "function" && cb(event, can, which)
var cb = meta[item[0]] var cb = meta[item[0]]
typeof cb == "function" && cb(event, can, item[0], which) 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) item.input[1](event, can)
}}] }]): typeof item == "object" && /*其它*/ can.page.Append(can, action, [item]) }}] }]): typeof item == "object" && /*其它*/ can.page.Append(can, action, [item])
}) })
}, },
_output: function(can, meta, event, cmds, cb, silent) { _output: function(can, meta, event, cmds, cb, silent) {
var msg = can.request(event) var msg = can.request(event); can.page.Select(can, can._output, "div.control .args", function(item) {
can.page.Select(can, can._output, "div.control .args", function(item) {
item.name && item.value && msg.Option(item.name, item.value) 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) typeof cb == "function" && cb(msg)
if (silent) { return } if (silent) { return }
var display = meta.feature.display || "table" var display = msg.Option("_display") || meta.display || meta.feature.display || "/plugin/table.js"
display.indexOf("/") == 0 || (display = "/plugin/"+display)
display.endsWith(".js") || (display += ".js")
var output = Volcanos(display, {_follow: can._follow+"."+display, 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, _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, Option: can.Option, Action: can.Action, Status: can.Status,
}, [display].concat(Volcanos.meta.volcano).concat(Volcanos.meta.libs), function(table) { }, [display].concat(Volcanos.meta.volcano).concat(Volcanos.meta.libs), function(table) {
table.Conf(can.Conf()), table.sup = can table.Conf(can.Conf()), table.sup = can, table.run = function(event, cmds, cb, silent) {
table.run = function(event, cmds, cb, silent) {
var msg = can.request(event, can.Conf("option"))
return can.onappend._output(can, meta, event, can.Pack(cmds, silent), cb, silent) return can.onappend._output(can, meta, event, can.Pack(cmds, silent), cb, silent)
}, table._msg = msg }, 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.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) table.onexport && table.onappend._status(table, msg._export||meta._export||table.onexport.list, table._status)
}, can._output) }, can._output)
}); can._outputs.push(output) }); can._outputs.push(output)
}, silent) }, silent)
}, },
_detail: function(can, target, list, cb) { _detail: function(can, list, target) {
list.length > 0 && (target.oncontextmenu = function(event) { list.length > 0 && (target.oncontextmenu = function(event) {
can.user.carte(event, can, can.ondetail||{}, list, function(ev, item, meta) { can.user.carte(event, can, can.ondetail||can.onaction||{}, list, function(ev, item, meta) {
(cb||can.ondetail[item]||can.onaction[item])(event, can, item) (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], var ui = can.page.Append(can, target, [{view: [type, "div", item.nick||item.name],
onclick: function(event) { onclick: function(event) { cb(event, ui.first)
can.page.Select(can, target, "div."+type, function(item) { can.onmotion.select(can, target, "div."+type, ui.first)
can.page.ClassList.del(can, item, "select") }, oncontextmenu: function(event) { cbs(event, ui.first) },
}), can.page.ClassList.add(can, ui.item, "select")
cb(event, ui.item)
}, oncontextmenu: function(event) { cbs(event, ui.item) },
}]) }])
return ui.item return ui.first
}, },
tree: function(can, msg, field, split, target, cb) { tree: function(can, list, field, split, cb, target) {
var list = {}; msg.Table(function(value) { var node = {}; can.core.List(list, function(item) {
value[field] && can.core.List(value[field].split(split), function(item, index, array) { item[field] && can.core.List(item[field].split(split), function(value, index, array) {
var last = array.slice(0, index).join(split) var last = array.slice(0, index).join(split), name = array.slice(0, index+1).join(split)
var 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) {
list[name] || (list[name] = can.page.Append(can, list[last]||target, [{view: ["item", "div", item+(index==array.length-1?"":split)], onclick: function(event) { index < array.length - 1? can.onmotion.toggle(can, node[name]): typeof cb == "function" && cb(event, item)
can.page.Toggle(can, list[name])
index == array.length - 1 && typeof cb == "function" && cb(event, value)
}}, {view: "list", style: {display: "none"}}]).last) }}, {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: [ 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"]}, item.pos? undefined: {text: [(item.nick||item.name||"").split(" ")[0]+"("+(item.help||"").split(" ")[0]+")", "legend"]},
{view: ["option", "form"]}, {view: ["action"]}, {view: ["output"]}, {view: ["status"]}, {view: ["option", "form"]}, {view: ["action"]}, {view: ["output"]}, {view: ["status"]},
]}]) ]}])
}, },
input: function(can, option, type, item, value) { input: function(can, type, item, value, target) {
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 || ""
var input = {type: "input", name: item.name, data: item, dataset: {}} var input = {type: "input", name: item.name, data: item, dataset: {}}
item.value == "auto" && (item.value = "", item.action = "auto") item.value == "auto" && (item.value = "", item.action = "auto")
item.action == "auto" && (input.dataset.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 "upfile": item.type = "file"; break
case "button": item.value = item.value || can.Conf("feature.trans."+item.name) || item.name || "查看"; break case "button":
case "select": item.value = item.value||item.name||"查看";
break
case "select": input.type = "select"
item.values = typeof item.values == "string"? item.values.split(" "): item.values item.values = typeof item.values == "string"? item.values.split(" "): item.values
if (!item.values && item.value) { if (!item.values && item.value) {
item.values = item.value.split("|") item.values = item.value.split("|") , item.value = item.values[0]
item.value = item.values[0] if (item.values[0] == "day") { item.value = item.values[1] }
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} return {type: "option", value: value, inner: value}
}) }), item.className || can.page.ClassList.add(can, item, "args")
item.className || can.page.ClassList.add(can, item, item.position||"args")
break break
case "textarea": case "textarea": input.type = "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.width = can.Conf(["feature", "textarea", item.name, "width"].join(".")) || can.Conf(["feature", "textarea", "width"].join(".")) || item.style.width item.style.height = item.style.height || can.Conf(["feature", "textarea", item.name, "height"].join(".")) || can.Conf(["feature", "textarea", "height"].join(".")) || 30
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
// no break // no break
case "password": case "password":
// no break // no break
case "text": case "text":
item.value = value || item.value || "" item.value = value || item.value || ""
item.className || can.page.ClassList.add(can, item, item.position||"args") item.className || can.page.ClassList.add(can, item, "args")
item.autocomplete = "off"
break break
} }
var target = can.page.Append(can, option, [{view: ["item "+item.type], list: [item.position && {text: item.name+": "}, input]}])[item.name] return can.page.Append(can, target, [{view: ["item "+item.type], list: [{text: [name, "label"]}, {text: [": ", "label"]}, input]}])[item.name]
item.type == "textarea" && can.page.Append(can, option, [{type: "br"}])
return target
}, },
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) var table = can.page.AppendTable(can, msg, target, msg.append, cb)
table && can.page.Modify(can, table, {className: type||"content"}) table && can.page.Modify(can, table, {className: type||"content"})
return table 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 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 list = can.core.Split(key, "@=", "@=", {simple: true})
var pkey = list[0], pval = list[1]||"" var pkey = list[0], pval = list[1]||""
can.page.Modify(can, target, {autocomplete: "off"})
target.type != "button" && target.value.startsWith("@") && (target.value = pval||"") target.type != "button" && target.value.startsWith("@") && (target.value = pval||"")
pkey && can.require(["/plugin/input/"+pkey+".js"], function(can) { pkey && can.require(["/plugin/input/"+pkey+".js"], function(can) {
can.onfigure && can.core.Item(can.onfigure[pkey], function(key, cb) { if (key.startsWith("on")) { 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 } 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.Select(can, target, ["fieldset.main"], function(field, index) {
can.page.Modify(can, field, {style: {height: height}}) can.page.Modify(can, field, {style: {height: height}})
}) })
can.page.Select(can, target, ["fieldset.main>div.output"], function(output) { can.page.Select(can, target, ["fieldset.main>div.output"], function(output) {
can.page.Modify(can, output, {style: {height: height}}) 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) 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")) 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 } target.onkeydown = function(event) { if (event.target != target) { return }
can.page.Select(can, target, "fieldset.Action>div.output", function(item) { 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) { target.onkeyup = function(event) {
} }
}, },
_parse: function(event, can, target, mode, list) { _parse: function(event, can, mode, list, target) { list.push(event.key)
// event.key.length == 1 &&
list.push(event.key)
can.Status && can.Status("keys", list.join("")) can.Status && can.Status("keys", list.join(""))
for (var pre = 0; pre < list.length; pre++) { for (var pre = 0; pre < list.length; pre++) {
@ -638,7 +606,7 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
}, _engine: {}, }, _engine: {},
input: function(event, can) { var target = event.target 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() } if (target._keys.length == 0) { event.stopPropagation(), event.preventDefault() }
}, },
}) })
@ -651,7 +619,7 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
add? count++: count-- add? count++: count--
count < 0 && (add = true) count < 0 && (add = true)
count > 100 && (add = false) count > 50 && (add = false)
can.page.Select(can, target, "fieldset.story", function(item) { can.page.Select(can, target, "fieldset.story", function(item) {
can.page.Modify(can, item, {style: { 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 show: function(can, time, cb, target) { target = target || can._target
time = typeof time == "object"? time: {value: 10, length: time||20} 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.core.Timer(time, function(event, value, index) {
can.page.Modify(can, target, {style: {opacity: (index+1)/time.length}}) can.page.Modify(can, target, {style: {opacity: (index+1)/time.length}})
}, cb) }, cb)

View File

@ -92,7 +92,6 @@ Volcanos("page", {help: "网页模块",
} else if (item.button) { var list = can.core.List(item.button) } else if (item.button) { var list = can.core.List(item.button)
type = "button", name = name || list[0] type = "button", name = name || list[0]
data.value = data.value || name
data.innerText = can.user.trans(can, list[0]), data.onclick = function(event) { data.innerText = can.user.trans(can, list[0]), data.onclick = function(event) {
typeof list[1] == "function" && list[1](event, name) typeof list[1] == "function" && list[1](event, name)
event.stopPropagation() event.stopPropagation()
@ -164,6 +163,7 @@ Volcanos("page", {help: "网页模块",
data.onload = list[1] 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.placeholder && (data.placeholder = can.user.trans(can, data.placeholder))
data.title && (data.title = can.user.trans(can, data.title)) data.title && (data.title = can.user.trans(can, data.title))

View File

@ -56,7 +56,9 @@ Volcanos("user", {help: "用户模块", agent: {
if (typeof text == "function") { if (typeof text == "function") {
text = text.name || "" 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) { topic: function(can, name) {
can.page.Modify(can, document.body, {className: name}) can.page.Modify(can, document.body, {className: name})

View File

@ -151,6 +151,9 @@ div.hidden {
fieldset>form.option>div.item { fieldset>form.option>div.item {
float:left; margin-right:3px; float:left; margin-right:3px;
} }
fieldset>form.option>div.item label {
display:none;
}
fieldset>form.option>div.item input.args.char { fieldset>form.option>div.item input.args.char {
width:20px; width:20px;
} }

View File

@ -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.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.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.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) { can.onengine.listen(can, "search", function(msg, word) {

View File

@ -13,7 +13,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.onmotion.clear(can), can.sublist = {} can.onmotion.clear(can), can.sublist = {}
var select; msg.Table(function(value, index, array) { 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) can.onaction.storm(event, can, value.hash)
}, function(event) { }, 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) { 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.ondetail[item](event, can, item, value.hash)
}); can.page.Modify(can, ui.first, {style: {left: can._target.offsetWidth}}) }); 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 } if (index == 0 || [value.hash, value.name].indexOf(can._main_river) > -1) { select = view }
}), select && select.click() }), select && select.click()
@ -106,7 +106,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
}, },
action: function(event, can, river, storm) { action: function(event, can, river, storm) {
var msg = can.request(event, {river: can.Conf(RIVER, river), storm: can.Conf(STORM, 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.Select(can, can._output, "div.item.select", function(item) {
can.page.ClassList.del(can, item, "select") can.page.ClassList.del(can, item, "select")

View File

@ -13,7 +13,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
typeof cb == "function" && cb(msg) typeof cb == "function" && cb(msg)
}, },
_table: function(can, msg, fields) { can.onmotion.clear(can, can.ui.content) _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) can.Status("count", index+1)
return {text: [key == "text" && typeof line.text == "function" && line.text.help || value, "td"], onclick: function(event) { 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) 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.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("ctx") > -1 && can.page.RangeTable(can, table, [fields.indexOf("ctx"),
fields.indexOf("cmd"), fields.indexOf("type"), fields.indexOf("name")]) 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) { _word: function(can, msg, cmds, fields) {
var msg = can.request({}, {fields: fields.join(","), word: cmds}) 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.onmotion.clear(can, can.ui.content)
can.run(msg._event, cmds, function(msg) { can.list = msg.Table() can.run(msg._event, cmds, function(msg) { can.list = msg.Table()

View File

@ -18,7 +18,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta,
case "select": meta.value && (target.value = meta.value); break 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) }, "upload": function(event, can) { can.user.upload(event, can) },

View File

@ -8,7 +8,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(e
// 添加插件 // 添加插件
can._figure && can.page.Remove(can, can._figure.fieldset) 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) can._figure = figure; can.onlayout.figure(can, figure, event)
figure.table = can.page.Append(can, figure.output, [{type: "table"}]).first figure.table = can.page.Append(can, figure.output, [{type: "table"}]).first

View File

@ -4,7 +4,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(ev
if (!msg.append) { return } if (!msg.append) { return }
can._figure && can.page.Remove(can, can._figure.fieldset) 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._figure = figure; can.onlayout.figure(can, figure, event)
can.onappend._action(can, [ 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) }]}, {button: ["关闭", function(event) { can.page.Remove(can, can._figure.fieldset) }]},
], can._figure.action) ], 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() { return {type: "td", inner: value, onclick: function() {
target.value = value; msg.Option("_refresh") && run() target.value = value; msg.Option("_refresh") && run()
can.page.Remove(can, can._figure.fieldset) can.page.Remove(can, can._figure.fieldset)
}} }}
}) }, can._figure.output)
}, true) }, true)
}; run() }}, }, ["/plugin/input/key.css"]) }; run() }}, }, ["/plugin/input/key.css"])

View File

@ -2,15 +2,15 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.ui = can.onlayout.display(can, target) 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.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) { return {text: [value, "td"], onclick: function(event) {
can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.sup.onaction.change(event, can.sup, key, value, function(msg) {
can.run(event) 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) typeof cb == "function" && cb(msg)
}, },
}) })

View File

@ -1,5 +1,5 @@
Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, target) { 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.Conf({width: width, height: height}), can.core.Delay(list, 100, function() {
can.onimport._init(can, msg, list, cb, target) 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}) var msg = can.request({}, {dir_root: path, dir_deep: true})
can.run(msg._event, ["action", "dir", "./"], function(msg) { can.ui.project.innerHTML = "" can.run(msg._event, ["action", "dir", "./"], function(msg) { can.ui.project.innerHTML = ""
msg.path && can.Status("文件数", msg.path.length) 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) can.onimport.tabview(can, can.Option("path"), value.path)
}), typeof cb == "function" && cb() }, can.ui.project), typeof cb == "function" && cb()
}, true) }, true)
}, },
}, ["/plugin/local/code/inner.css"]) }, ["/plugin/local/code/inner.css"])
@ -269,7 +269,7 @@ Volcanos("onaction", {help: "控件交互", list: [],
toast.Close() toast.Close()
can.ui.tags.innerHTML = "" 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("<", "&lt;").replace(">", "&gt;"), value = value.replace("./", "") value = value.replace("<", "&lt;").replace(">", "&gt;"), value = value.replace("./", "")
return {text: ["", "td"], list: [{text: [value, "div"]}], onclick: function(event) { 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() { 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.current.scroll(0, -pos)
}) })
}} }}
}) }, can.ui.tags)
}, true) }, true)
}, },
}) })

View File

@ -98,10 +98,10 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"
toast.Close() toast.Close()
can.ui.output.innerHTML = "" 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"]} return {text: [value, "td"]}
}) }, can.ui.output)
can.onappend.board(can, msg, can.ui.output, "content") can.onappend.board(can, "content", msg.Result(), can.ui.output)
}, true) }, true)
}, },
_engine: { _engine: {

View File

@ -1,7 +1,7 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) { Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) {
can.ui = can.page.Appends(can, can._target, [{view: "content"}, {view: "display"}]) 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) { return {text: [value, "td"], oncontextmenu: function(event) {
can.user.carte(event, can, can.ondetail, can.ondetail.list, function(ev, cmd, meta) { 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) 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) { }, onclick: function(event) {
if (key == "path") { can.run(event, [can.Option("path", value)]) } if (key == "path") { can.run(event, [can.Option("path", value)]) }
}} }}
}) }, can.ui.content)
can.onexport.list = msg.append can.onexport.list = msg.append
typeof cb == "function" && cb(msg) typeof cb == "function" && cb(msg)

View File

@ -1,5 +1,5 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = "" 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: "project", style: {display: "none"}},
{view: "content", onmouseenter: function(event) { {view: "content", onmouseenter: function(event) {
can.onkeypop.action = can can.onkeypop.action = can
@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.current = null 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.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.onimport.block(can, svg), can.onimport.group(can, svg).click()
can.page.Select(can, svg, "*", function(item, index) { 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) return typeof cb == "function" && cb(msg)
}, },
group: function(can, target) { var name = target.Groups() || "svg" 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.group = target, can.core.List(["font-size", "storke-width", "stroke", "fill"], function(key) {
can.Action(key, target.Value(key)||can.Action(key)) can.Action(key, target.Value(key)||can.Action(key))
}), can.onmotion.show(can, 10, null, target) }), 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.onaction[item](event, can, item)
} }
}) })
}) }, can.ui.project)
}, },
block: function(can, target) { block: function(can, target) {
target.Val = function(key, value) { target.Val = function(key, value) {
@ -603,8 +603,8 @@ Volcanos("onaction", {help: "组件菜单", list: [
_mode: { _mode: {
run: function(event, can) { var target = event.target 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, ["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.table(can, "content", msg, function() {}, can.ui.display)
can.onappend.board(can, msg, can.ui.display, "content") can.onappend.board(can, "content", msg.Result(), can.ui.display)
}, true) }, true)
}, },
translate: function(event, can, point) { translate: function(event, can, point) {

View File

@ -5,13 +5,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}) })
can.ui = can.onlayout.display(can, target) 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) { return {type: "td", inner: value, onclick: function(event) {
can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.sup.onaction.change(event, can.sup, key, value, function(msg) {
can.onimport._init(can, msg, list, cb, target) can.onimport._init(can, msg, list, cb, target)
}) })
}} }}
}) }, can.ui.content)
var feature = can.Conf("feature") || {} var feature = can.Conf("feature") || {}
can.page.Modify(can, can._action, {style: {display: "none"}}) can.page.Modify(can, can._action, {style: {display: "none"}})

View File

@ -1,5 +1,5 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { target.innerHTML = "" 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.Conf({width: width, height: height}), can.core.Delay(list, 100, function() {
can.onimport._init(can, msg, list, cb, target) 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")}}) can.page.Modify(can, can._target, {style: {"max-width": can.Conf("width")}})
if (msg.Option("_display") == "table") { 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) { return {text: [value, "td"], onclick: function(event) {
can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.sup.onaction.change(event, can.sup, key, value, function(msg) {
can.run(event) can.run(event)
}) })
}} }}
}) }, target)
} target.innerHTML = msg.Result() } target.innerHTML = msg.Result()
can.page.Select(can, target, ".story", function(item) { var data = item.dataset can.page.Select(can, target, ".story", function(item) { var data = item.dataset

View File

@ -2,8 +2,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.ui = can.page.Append(can, can._target, [ can.ui = can.page.Append(can, can._target, [
{view: ["content", "div"]}, {view: ["display", "pre"]}, {view: ["content", "div"]}, {view: ["display", "pre"]},
]) ])
can.onappend.table(can, msg, can.ui.content, "content") can.onappend.table(can, "content", msg, null, can.ui.content)
can.onappend.board(can, msg, can.ui.display, "content") can.onappend.board(can, "content", msg.Result(), can.ui.display)
return typeof cb == "function" && cb(msg) return typeof cb == "function" && cb(msg)
}, },
}) })

View File

@ -1,13 +1,13 @@
Volcanos("onimport", {help: "导入数据", list: [], Volcanos("onimport", {help: "导入数据", list: [],
_init: function(can, msg, list, cb, target) { can._output.innerHTML = "" _init: function(can, msg, list, cb, target) { can._output.innerHTML = ""
if (msg.Option("_display") == "table") { 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) { return {text: [value, "td"], click: function(event) {
can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.sup.onaction.change(event, can.sup, key, value, function(msg) {
can.run(event) can.run(event)
}) })
}} }}
}) }, can._target)
return typeof cb == "function" && cb(msg) return typeof cb == "function" && cb(msg)
} }
can.ui = can.page.Append(can, can._output, [{view: "content"}, {view: "display"}]) can.ui = can.page.Append(can, can._output, [{view: "content"}, {view: "display"}])

View File

@ -1,18 +1,18 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = "" 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.Conf({width: width, height: height}), can.core.Delay(list, 100, function() {
can.onimport._init(can, msg, list, cb, target) can.onimport._init(can, msg, list, cb, target)
}) })
}) })
if (msg.Option("_display") == "table") { 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) { return {text: [value, "td"], click: function(event) {
can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.sup.onaction.change(event, can.sup, key, value, function(msg) {
can.run(event) can.run(event)
}) })
}} }}
}) }, can._target)
return typeof cb == "function" && cb(msg) return typeof cb == "function" && cb(msg)
} }
can.ui = can.page.Append(can, can._output, [{view: "content"}, {view: "display"}]) can.ui = can.page.Append(can, can._output, [{view: "content"}, {view: "display"}])
@ -194,7 +194,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", ["view",
}, },
"数据源": function(event, can) { "数据源": function(event, can) {
can.ui.display.innerHTML = "" 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"]}) Volcanos("onexport", {help: "导出数据", list: ["from", "commit", "total", "date", "begin", "add", "del", "close", "note"]})

View File

@ -6,11 +6,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
// {view: ["content", "div"]}, {view: ["display", "pre"]}, // {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) 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) can.onimport._board(can, msg)
typeof cb == "function" && cb(msg) typeof cb == "function" && cb(msg)
@ -137,11 +137,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
return true return true
}, },
_inner: function(can, msg) { _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) 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) // can.onimport._board(can, msg)
return true return true
}, },

View File

@ -24,8 +24,7 @@ var Volcanos = shy("火山架", {libs: [], cache: {}}, [], function(name, can, l
// 根模块 // 根模块
name = Config.name, can = {_follow: Config.name, _target: document.body} name = Config.name, can = {_follow: Config.name, _target: document.body}
libs = Preload.concat(Config.main.list, Config.libs), cb = function(can) { libs = Preload.concat(Config.main.list, Config.libs), cb = function(can) {
can.onengine._init(can, can.Conf(Config), Config.panes, function(msg) { can.onengine._init(can, can.Conf(Config), Config.panes, function(msg) { can.base.Log(name, "run", can)
can.base.Log(name, "run", window.can = can)
var list = []; document.body.onresize = function() { can.core.Delay(list, 100, function() { 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) can.onlayout._init(can, can._target, can._width = window.innerWidth, can._height = window.innerHeight)
}) }, document.body.onresize() }) }, document.body.onresize()

View File

@ -2,8 +2,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.ui = can.page.Append(can, can._target, [ can.ui = can.page.Append(can, can._target, [
{view: ["content", "div"]}, {view: ["display", "pre"]}, {view: ["content", "div"]}, {view: ["display", "pre"]},
]) ])
can.onappend.table(can, msg, can.ui.content, "content") can.onappend.table(can, "content", msg, null, can.ui.content)
can.onappend.board(can, msg, can.ui.display, "content") can.onappend.board(can, "content", msg.Result(), can.ui.display)
var refresh = msg.Option("_refresh") || can.Conf("feature")["_refresh"] var refresh = msg.Option("_refresh") || can.Conf("feature")["_refresh"]
refresh && can.core.Timer(refresh, function() { refresh && can.core.Timer(refresh, function() {
can.run({}) can.run({})