forked from x/volcanos
opt proto.js
This commit is contained in:
parent
d45af932f1
commit
3bad92a73b
35
frame.js
35
frame.js
@ -1,5 +1,5 @@
|
||||
Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta, list, cb, target) {
|
||||
can.core.Next(meta.panes, function(item, next) { item.type = "pane"
|
||||
can.core.Next(list, function(item, next) { item.type = "pane"
|
||||
can.onappend._init(can, item, item.list, function(pane) {
|
||||
pane.Status = function(key, value) { pane.run({}, ["search", "Footer.onimport."+key, value]) }
|
||||
|
||||
@ -14,8 +14,8 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
||||
can.require(meta.main.list, function(can) {
|
||||
var pane = can[meta.main.name], msg = can.request({})
|
||||
pane.onkeypop._init(pane, target), pane.onmotion._init(pane)
|
||||
pane.onengine._daemon(pane, pane.user.title())
|
||||
pane.onaction._init(pane, msg, [], cb, pane._target)
|
||||
pane.onengine._daemon(pane, pane.user.title())
|
||||
})
|
||||
})
|
||||
},
|
||||
@ -38,10 +38,10 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
||||
}, function() { can.user.toast(can, "wss connect", "iceberg") })
|
||||
},
|
||||
|
||||
search: function(event, can, msg, pane, cmds, cb) { var chain = cmds[1]
|
||||
var sub, mod = can, key, fun = can; can.core.List(chain.split("."), function(value, index, array) {
|
||||
fun && (sub = mod, mod = fun, key = value, fun = mod[value])
|
||||
}); if (!sub || !mod || !fun) { console.info("not found", chain); return }
|
||||
search: function(event, can, msg, pane, cmds, cb) {
|
||||
var sub, mod = can, fun = can; can.core.List(cmds[1].split("."), function(value, index, array) {
|
||||
fun && (sub = mod, mod = fun, fun = mod[value])
|
||||
}); if (!sub || !mod || !fun) { console.info("not found", cmds[1]); return }
|
||||
return typeof fun == "function" && fun(sub, msg, cmds.slice(2), cb, sub._target)
|
||||
},
|
||||
remote: function(event, can, msg, pane, cmds, cb) {
|
||||
@ -53,14 +53,13 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
||||
switch (pane._name) {
|
||||
case "River":
|
||||
cmds.length == 0 && can.core.Item(can.onengine.river, function(key, value) {
|
||||
msg.Push("hash", key), msg.Push("name", value.name)
|
||||
msg.Push({hash: key, name: value.name})
|
||||
}); if (cmds.length != 1 && cmds[1] != "tool") { return false }
|
||||
|
||||
var river = can.onengine.river[cmds[0]]; if (!river) { return false }
|
||||
can.core.Item(river.storm, function(key, value) {
|
||||
msg.Push("hash", key), msg.Push("name", value.name)
|
||||
}), typeof cb == "function" && cb(msg)
|
||||
return true
|
||||
msg.Push({hash: key, name: value.name})
|
||||
}), typeof cb == "function" && cb(msg); return true
|
||||
|
||||
case "Action":
|
||||
var river = can.onengine.river[cmds[0]]
|
||||
@ -203,7 +202,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
var output = can.page.Select(can, field, "div.output")[0]
|
||||
var status = can.page.Select(can, field, "div.status")[0]
|
||||
|
||||
var sub = Volcanos(meta.name, { _help: 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,
|
||||
_target: field, _inputs: {}, _outputs: [], _history: [],
|
||||
Option: function(key, value) {
|
||||
@ -251,7 +250,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
var last = sub._history[sub._history.length-1]; !sub.core.Eq(last, cmds) && cmds[0] != "action" && !slient && sub._history.push(cmds)
|
||||
return cmds
|
||||
},
|
||||
}, Volcanos.meta.libs.concat(list.concat([Volcanos.meta.volcano])), function(sub) { sub.Conf(meta)
|
||||
}, list.concat(Volcanos.meta.volcano).concat(Volcanos.meta.libs), function(sub) { sub.Conf(meta)
|
||||
meta.feature = sub.base.Obj(meta.feature, {})
|
||||
sub.page.ClassList.add(sub, field, meta.style||meta.feature.style||"")
|
||||
|
||||
@ -261,13 +260,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, { _help: 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,
|
||||
CloneInput: function() { add(item)._target.focus() },
|
||||
CloneField: function() { can.Clone() },
|
||||
Option: can.Option,
|
||||
}, Volcanos.meta.libs.concat([item.display||"/plugin/input.js", Volcanos.meta.volcano]), function(input) {
|
||||
}, [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"))
|
||||
@ -307,22 +306,22 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
typeof cb == "function" && cb(msg)
|
||||
if (silent) { return }
|
||||
|
||||
var display = meta.feature.display || "table.js"
|
||||
var display = meta.feature.display || "table"
|
||||
display.indexOf("/") == 0 || (display = "/plugin/"+display)
|
||||
display.endsWith(".js") || (display += ".js")
|
||||
|
||||
var output = Volcanos(display, { _help: 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, Status: can.Status,
|
||||
}, Volcanos.meta.libs.concat([display, Volcanos.meta.volcano]), function(table) {
|
||||
}, [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"))
|
||||
return can.onappend._output(can, meta, event, can.Pack(cmds, silent), cb, silent)
|
||||
}, table._msg = msg
|
||||
|
||||
table.onimport && table.onimport._init && table.onimport._init(table, msg, msg.result||[], function(msg) {
|
||||
msg && table.onimport && table.onimport._init && table.onimport._init(table, msg, msg.result||[], function(msg) {
|
||||
table.onaction && table.onappend._action(table, table._action, msg._action||meta._action||table.onaction.list)
|
||||
table.ondetail && table.onappend._detail(table, table._output, msg._detail||meta._detail||table.ondetail.list)
|
||||
table.onexport && table.onappend._status(table, table._status, msg._export||meta._export||table.onexport.list)
|
||||
|
@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
|
||||
can.onexport.list = msg.append
|
||||
typeof cb == "function" && cb()
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.onaction._compute(event, can)
|
||||
},
|
||||
})
|
||||
|
@ -18,7 +18,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
|
||||
var feature = can.Conf("feature") || {}
|
||||
can.page.Modify(can, can._action, {style: {display: "none"}})
|
||||
typeof cb == "function" && cb()
|
||||
typeof cb == "function" && cb(msg)
|
||||
|
||||
can.Action("倍速", can.rate = 1)
|
||||
can.Action("数量", can.limit = parseInt(msg.Option("limit"))||feature["limit"]||6)
|
||||
|
38
proto.js
38
proto.js
@ -1,17 +1,17 @@
|
||||
function shy(help, meta, list, cb) {
|
||||
var index = -1, args = arguments; function next(check) {
|
||||
if (++index >= args.length) { return }
|
||||
if (check && check != typeof args[index]) { index--; return }
|
||||
return args[index]
|
||||
var index = 0, args = arguments; function next(check) {
|
||||
if (index < args.length && (!check || check == typeof args[index])) {
|
||||
return args[index++]
|
||||
}
|
||||
}
|
||||
|
||||
var cb = arguments[arguments.length-1] || function() {}
|
||||
cb.help = next("string") || cb.name
|
||||
cb = args[args.length-1] || function() {}
|
||||
cb.help = next("string") || ""
|
||||
cb.meta = next("object") || {}
|
||||
cb.list = next("object") || []
|
||||
return cb
|
||||
}; var _can_name = ""
|
||||
var Volcanos = shy("火山架", {libs: [], cache: {}, index: 1}, [], function(name, can, libs, cb) {
|
||||
var Volcanos = shy("火山架", {libs: [], cache: {}}, [], function(name, can, libs, cb) {
|
||||
var meta = arguments.callee.meta, list = arguments.callee.list
|
||||
if (typeof name == "object") { var Config = name
|
||||
// 预加载
|
||||
@ -22,20 +22,18 @@ var Volcanos = shy("火山架", {libs: [], cache: {}, index: 1}, [], function(na
|
||||
// 根模块
|
||||
meta.libs = Config.libs, meta.volcano = Config.volcano
|
||||
name = Config.name, can = { _follow: Config.name,
|
||||
_target: document.body, _head: document.head, _body: document.body,
|
||||
_width: window.innerWidth, _height: window.innerHeight,
|
||||
_target: document.body, _width: window.innerWidth, _height: window.innerHeight,
|
||||
}, libs = Preload.concat(Config.volcano), cb = function(can) {
|
||||
can.onengine._init(can, can.Conf(Config), [], function(msg) {
|
||||
can.onengine._init(can, can.Conf(Config), Config.panes, function(msg) {
|
||||
can.base.Log(can)
|
||||
}, can._target)
|
||||
}
|
||||
}
|
||||
|
||||
var conf = {}, conf_cb = {}
|
||||
list.push(can = can || {}), can.__proto__ = {__proto__: Volcanos.meta, _name: name, _load: function(name, cb) {
|
||||
// 加载缓存
|
||||
for (var cache = meta.cache[name] || []; meta.index < list.length; meta.index++) {
|
||||
list[meta.index] != can && cache.push(list[meta.index])
|
||||
var cache = meta.cache[name] || []; for (list.reverse(); list.length > 0; list) {
|
||||
var sub = list.pop(); sub != can && cache.push(sub)
|
||||
}; meta.cache[name] = cache
|
||||
|
||||
// 加载模块
|
||||
@ -88,18 +86,18 @@ var Volcanos = shy("火山架", {libs: [], cache: {}, index: 1}, [], function(na
|
||||
},
|
||||
|
||||
Conf: function(key, value) {
|
||||
if (key == undefined) { return conf }
|
||||
if (typeof key == "object") { conf = key; return conf }
|
||||
conf[key] = value == undefined? conf[key]: value
|
||||
if (key == undefined) { return can._conf }
|
||||
if (typeof key == "object") { can._conf = key; return can._conf }
|
||||
can._conf[key] = value == undefined? can._conf[key]: value
|
||||
|
||||
if (conf[key] == undefined && key.indexOf(".") > 0) {
|
||||
var p = conf, ls = key.split("."); while (p && ls.length > 0) {
|
||||
if (can._conf[key] == undefined && key.indexOf(".") > 0) {
|
||||
var p = can._conf, ls = key.split("."); while (p && ls.length > 0) {
|
||||
p = p[ls[0]], ls = ls.slice(1)
|
||||
}
|
||||
return p
|
||||
}
|
||||
return conf[key]
|
||||
},
|
||||
return can._conf[key]
|
||||
}, _conf: {},
|
||||
}
|
||||
|
||||
if (_can_name) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user