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

opt callfunc

This commit is contained in:
shaoying 2021-01-17 07:37:12 +08:00
parent 61d2dc2cde
commit 48284b2235
19 changed files with 95 additions and 82 deletions

View File

@ -293,8 +293,8 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
can.run(event, cmds, function(msg) { can.run(event, cmds, function(msg) {
var sub = can.core.Value(can, "_outputs.-1") var sub = can.core.Value(can, "_outputs.-1")
if (can.core.CallFunc("onimport._process", [sub, msg, cmds, cb], sub)) { return } if (can.core.CallFunc([sub, "onimport._process"], [sub, msg, cmds, cb])) { return }
if (can.core.CallFunc("onimport._process", [can, msg, cmds, cb], can)) { return } if (can.core.CallFunc([can, "onimport._process"], [can, msg, cmds, cb])) { return }
typeof cb == "function" && cb(msg) typeof cb == "function" && cb(msg)
}, silent) }, silent)
return true return true
@ -304,8 +304,8 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
return can.run(event, cmds||[], function(msg) { return can.run(event, cmds||[], function(msg) {
var sub = can.core.Value(can, "_outputs.-1") var sub = can.core.Value(can, "_outputs.-1")
if (can.core.CallFunc("onimport._process", [sub, msg, cmds, cb], sub)) { return } if (can.core.CallFunc([sub, "onimport._process"], [sub, msg, cmds, cb])) { return }
if (can.core.CallFunc("onimport._process", [can, msg, cmds, cb], can)) { return } if (can.core.CallFunc([can, "onimport._process"], [can, msg, cmds, cb])) { return }
typeof cb == "function" && cb(msg) typeof cb == "function" && cb(msg)
if (silent) { return } if (silent) { return }
@ -381,21 +381,6 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
item.action == "auto" && (input.dataset.action = "auto") item.action == "auto" && (input.dataset.action = "auto")
switch (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||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.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, "args")
break
case "textarea": input.type = "textarea" 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.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 item.style.height = item.style.height || can.Conf(["feature", "textarea", item.name, "height"].join(".")) || can.Conf(["feature", "textarea", "height"].join(".")) || 30
@ -403,31 +388,42 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
case "password": case "password":
// no break // no break
case "text": case "text":
item.autocomplete = "off"
item.value = value || item.value || "" item.value = value || item.value || ""
item.className || can.page.ClassList.add(can, item, "args") item.className || can.page.ClassList.add(can, item, "args")
item.autocomplete = "off"
break break
case "select": input.type = "select"
item.values = typeof item.values == "string"? can.core.Split(item.values): item.values
if (!item.values && item.value) {
item.values = can.core.Split(item.value), item.value = item.values[0]
if (item.values[0] == "day") { item.value = item.values[1] }
} }
return can.page.Append(can, target, [{view: ["item "+item.type], list: [{text: [name, "label"]}, {text: [": ", "label"]}, input]}])[item.name] 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, "args")
break
case "button": item.value = value||item.value||item.name||"查看"; break
case "upfile": item.type = "file"; break
}
return can.page.Append(can, target, [{view: ["item "+item.type], list: [input]}])[item.name]
}, },
table: function(can, type, msg, cb, target) { table: function(can, msg, cb, target) {
var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value) { var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value) {
return {text: [value, "td"]} return {text: [value, "td"]}
}) }); table && can.page.Modify(can, table, {className: "content"})
table && can.page.Modify(can, table, {className: type||"content"})
return table return table
}, },
board: function(can, type, text, target) { text = can.page.Display(text || "") board: function(can, 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", "div", text]}]).code
}, },
figure: function(can, meta, key, target) { figure: function(can, meta, key, target) {
if (key.indexOf("@") != 0) { return } if (key.indexOf("@") != 0) { return }
var list = can.core.Split(key, "@=", "@=", {simple: true}) var list = can.core.Split(key, "@=", "@=")
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) {
@ -442,14 +438,14 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
} }) } })
}) })
}, },
_plugin: function(can, msg, meta, cb, target) { _plugin: function(can, value, meta, cb, target) {
meta.feature = can.base.Obj(msg.meta&&msg.meta[0] || "{}", {}) meta.feature = can.base.Obj(value.meta||"{}", {})
meta.inputs = can.base.Obj(msg.list&&msg.list[0] || "[]", []) meta.inputs = can.base.Obj(value.list||"[]", [])
meta.name = meta.name || msg.name&&msg.name[0] || "story" meta.name = meta.name||value.name||"story"
meta.help = meta.help || msg.help&&msg.help[0] || "story" meta.help = meta.help||value.help||"story"
meta.width = meta.width||can.Conf("width") meta.width = meta.width||can.Conf("width")
meta.type = "story" meta.type = meta.type||"story"
can.onappend._init(can, meta, ["/plugin/state.js"], function(sub) { can.onappend._init(can, meta, ["/plugin/state.js"], function(sub) {
typeof cb == "function" && cb(sub, meta) typeof cb == "function" && cb(sub, meta)
@ -457,9 +453,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
}, target||can._output) }, target||can._output)
}, },
plugin: function(can, meta, cb, target) { meta = meta || {} plugin: function(can, meta, cb, target) { meta = meta || {}
can.run({}, ["action", "command", meta.index], function(msg) { can.run({}, ["action", "command", meta.index], function(msg) { msg.Table(function(value) {
can.onappend._plugin(can, msg, meta, cb, target) can.onappend._plugin(can, value, meta, cb, target)
}, true) }) }, true)
}, },
plugins: function(can, meta, cb, target) { plugins: function(can, meta, cb, target) {
can.onappend.plugin(can, meta, function(sub) { can.onappend.plugin(can, meta, function(sub) {
@ -493,7 +489,7 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe
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})) can.onengine.signal(can, "resize", can.request({}, {width: width, height: height}))
}, },
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"))

View File

@ -55,6 +55,19 @@ Volcanos("core", {help: "核心模块",
next(obj, cb, 0) next(obj, cb, 0)
}), }),
Keys: function() { var list = []
for (var i = 0; i < arguments.length; i++) { var v = arguments[i]
switch (typeof v) {
case "number": list.push(v+""); break
case "string": list.push(v); break
case "object": list.push(arguments.callee.apply(this, v)); break
case "function": list.push(v()); break
default: list.push(v+"")
}
}
return list.join(".")
},
Value: function(data, key, value) { Value: function(data, key, value) {
if (data == undefined) { return } if (data == undefined) { return }
if (key == undefined) { return data } if (key == undefined) { return data }
@ -70,24 +83,26 @@ Volcanos("core", {help: "核心模块",
p = p[ls[0]], ls = ls.slice(1) p = p[ls[0]], ls = ls.slice(1)
}; return p }; return p
}, },
CallFunc: shy("调用器", function(func, args, mod) { CallFunc: shy("调用器", function(func, args, mod) { args = args||{}
func = typeof func == "string"? this.Value(mod, func): func var can = args["can"]||args[0], msg = args["msg"]||args[1]
func = typeof func == "function"? func: typeof func == "string"? this.Value(mod||can, func):
typeof func == "object" && func.slice? this.Value(func, this.Keys(func.slice(1))): null
if (typeof func != "function") { return } if (typeof func != "function") { return }
var ls = func.toString(); ls = ls.split(")")[0], ls = ls.split("(")[1] var cb = args["cb"]
var ls = func.toString().split(")")[0].split("(")[1].split(",")
var msg = args["msg"], can = args["can"], echo = false var list = [], echo = false; this.List(ls, function(item, index) { item = item.trim()
var list = []; this.List(ls.split(","), function(item, index) { item = item.trim() list.push(args[item] || msg&&msg.Option&&msg.Option(item) || args[index] || can&&can.Conf&&can.Conf(item) || null)
list.push(args[index] || args[item] || msg&&msg.Option(item) || can&&can.Conf(item))
if (item == "cb") { echo = true } if (item == "cb") { echo = true }
}) })
var res = typeof func == "function" && func.apply(mod||this, list) var res = func.apply(mod||can, list)
if (!echo && typeof args.cb == "function") { res && args.msg.Echo(res), args.cb(args.msg) } if (!echo && typeof cb == "function") { res && msg.Echo(res), cb(msg) }
return res return res
}), }),
Split: shy("分词器", function(str) { if (!str || !str.length) { return [] } Split: shy("分词器", function(str) { if (!str || !str.length) { return [] }
var opt = {simple: false}, arg = []; for (var i = 1; i < arguments.length; i++) { var opt = {detail: false}, arg = []; for (var i = 1; i < arguments.length; i++) {
typeof arguments[i] == "object"? opt = arguments[i]: arg.push(arguments[i]) typeof arguments[i] == "object"? opt = arguments[i]: arg.push(arguments[i])
} }
@ -109,7 +124,7 @@ Volcanos("core", {help: "核心模块",
if (!space) { if (!space) {
res.push(list.slice(begin, i)) res.push(list.slice(begin, i))
} }
opt.simple || res.push({text: list.slice(i, i+1), type: "space", left: left}) opt.detail && res.push({text: list.slice(i, i+1), type: "space", left: left})
space = true, begin = i+1 space = true, begin = i+1
} }
} else if (subs[list[i]]) { } else if (subs[list[i]]) {

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, "content", msg, function(value, key, index, line) { var table = can.onappend.table(can, 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)

View File

@ -39,9 +39,10 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta,
onkeydown: function(event, can) { var target = event.target onkeydown: function(event, can) { var target = event.target
can.onkeypop.input(event, can, target); switch (event.key) { can.onkeypop.input(event, can, target); switch (event.key) {
case "Enter": case "Enter":
if (can.Conf("type") == "text") { event.target.setSelectionRange(0, -1), can.run(event) } switch (can.Conf("type")) {
if (can.Conf("type") == "textarea") { if (event.ctrlKey) { break } can.run(event) } case "textarea": if (!event.ctrlKey) { return }
event.stopPropagation(), event.preventDefault(); break case "text": event.target.setSelectionRange(0, -1); break
}; can.run(event), event.stopPropagation(), event.preventDefault(); break
case "b": if (event.ctrlKey) { can.CloneInput() } break case "b": if (event.ctrlKey) { can.CloneInput() } break
case "m": if (event.ctrlKey) { can.CloneField() } break case "m": if (event.ctrlKey) { can.CloneField() } break
} }

View File

@ -8,7 +8,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(ev
{button: ["关闭", function(event) { can.page.Remove(can, figure.fieldset) }]}, {button: ["关闭", function(event) { can.page.Remove(can, figure.fieldset) }]},
], figure.action) ], figure.action)
can.onappend.table(can, "content", msg, function(value, key, index, line) { can.onappend.table(can, 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, figure.fieldset) can.page.Remove(can, figure.fieldset)

View File

@ -2,7 +2,7 @@ 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, "content", msg, function(value, key, index, line, array) { can.onappend.table(can, 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)
@ -10,7 +10,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}} }}
}, can.ui.content) }, can.ui.content)
can.onappend.board(can, "content", msg.Result(), can.ui.display) can.onappend.board(can, msg.Result(), can.ui.display)
typeof cb == "function" && cb(msg) typeof cb == "function" && cb(msg)
}, },
}) })

View File

@ -118,7 +118,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
p = can.onsyntax[p.link] || p p = can.onsyntax[p.link] || p
function wrap(type, str) { return type? '<span class="'+type+'">'+str+'</span>': str } function wrap(type, str) { return type? '<span class="'+type+'">'+str+'</span>': str }
p.keyword && (line = can.core.List(can.core.Split(line, p.split && p.split.space || " ", p.split && p.split.operator || "{[(|)]}"), function(item, index, array) { p.keyword && (line = can.core.List(can.core.Split(line, p.split && p.split.space || " ", p.split && p.split.operator || "{[(|)]}", {detail: true}), function(item, index, array) {
item = typeof item == "object"? item: {text: item}, p.word && (item = p.word(item, index, array)) item = typeof item == "object"? item: {text: item}, p.word && (item = p.word(item, index, array))
var text = item.text; var key = item.keyword||p.keyword[text] var text = item.text; var key = item.keyword||p.keyword[text]
@ -269,7 +269,7 @@ Volcanos("onaction", {help: "控件交互", list: [],
toast.Close() toast.Close()
can.ui.tags.innerHTML = "" can.ui.tags.innerHTML = ""
can.onappend.table(can, "content", msg, function(value, key, index, line) { can.Status("标签数", index+1) can.onappend.table(can, 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() {

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, "content", msg, function(value, key, index) { can.onappend.table(can, msg, function(value, key, index) {
return {text: [value, "td"]} return {text: [value, "td"]}
}, can.ui.output) }, can.ui.output)
can.onappend.board(can, "content", msg.Result(), can.ui.output) can.onappend.board(can, msg.Result(), can.ui.output)
}, true) }, true)
}, },
_engine: { _engine: {
@ -142,7 +142,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"
can.page.Modify(can, can.ui.command, {style: {display: "none"}, value: ""}) can.page.Modify(can, can.ui.command, {style: {display: "none"}, value: ""})
can.onkeymap._normal(can) can.onkeymap._normal(can)
}, },
Enter: function(event, can) { var line = can.ui.command.value || can.ui.cmd.value ; var ls = can.core.Split(line, " ", ",", {simple: true}) Enter: function(event, can) { var line = can.ui.command.value || can.ui.cmd.value ; var ls = can.core.Split(line, " ", ",")
var cb = can.onkeymap._engine[ls[0]]; typeof cb == "function"? cb(event, can, line, ls): var cb = can.onkeymap._engine[ls[0]]; typeof cb == "function"? cb(event, can, line, ls):
can.onkeymap._remote(event, can, line, ["action", "command"].concat(ls)) can.onkeymap._remote(event, can, line, ["action", "command"].concat(ls))

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, "content", msg, function(value, key, index, line) { can.table = can.onappend.table(can, 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)

View File

@ -598,8 +598,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, "content", msg, function() {}, can.ui.display) can.onappend.table(can, msg, function() {}, can.ui.display)
can.onappend.board(can, "content", msg.Result(), can.ui.display) can.onappend.board(can, msg.Result(), can.ui.display)
}, true) }, true)
}, },
translate: function(event, can, point) { translate: function(event, can, point) {

View File

@ -5,7 +5,7 @@ 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, "content", can.path, function(value, key) { can.onappend.table(can, 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)

View File

@ -7,7 +7,7 @@ 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, "content", msg, function(value, key) { return can.onappend.table(can, 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)

View File

@ -1,8 +1,7 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, list, cb, target) { Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, list, cb, target) {
}, },
_process: function(can, msg, cmds, cb, silent) { _process: function(can, msg, cmds, cb, silent) {
var action = can.onimport[msg.Option("_process") || can.Conf("feature._process")] return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg, cmds, cb, silent])
return typeof action == "function" && action(can, msg, cmds, cb, silent)
}, },
_progress: function(can, msg, cmds, cb, silent) { _progress: function(can, msg, cmds, cb, silent) {
var size = msg.Append("size") || msg.Append("count") var size = msg.Append("size") || msg.Append("count")

View File

@ -151,7 +151,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", ["view",
}, },
"数据源": function(event, can) { "数据源": function(event, can) {
can.onmotion.clear(can, can.sub.ui.display) can.onmotion.clear(can, can.sub.ui.display)
can.onappend.table(can, "content", can.msg, null, can.sub.ui.display) can.onappend.table(can, can.msg, null, can.sub.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

@ -7,11 +7,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
typeof cb == "function" && cb(msg) typeof cb == "function" && cb(msg)
can.page.Append(can, can.ui.content, [can.onimport._control(can, msg)]) can.page.Append(can, can.ui.content, [can.onimport._control(can, msg)])
can.onappend.table(can, "content", msg, function(value, key, index, line, array) { can.onappend.table(can, 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.ui.content)
can.onappend.board(can, "content", msg.Result(), can.ui.display) can.onappend.board(can, msg.Result(), can.ui.display)
can.onimport._board(can, msg) can.onimport._board(can, msg)
}, },
_table: function(can, value, key, index, line, array) { _table: function(can, value, key, index, line, array) {
@ -72,11 +72,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, "content", msg, function(value, key, index, line, array) { can.onappend.table(can, 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.display) }, can.ui.display)
can.onappend.board(can, "content", msg.Result(), can.ui.display) can.onappend.board(can, msg.Result(), can.ui.display)
can.onimport._board(can, msg) can.onimport._board(can, msg)
return true return true
}, },
@ -112,7 +112,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.run(event) can.run(event)
}]}, }]},
{select: [["cache.field"].concat(msg["append"]||can.core.Split(msg.Option("fields"), {simple: true})), function(event) { {select: [["cache.field"].concat(msg["append"]||can.core.Split(msg.Option("fields"))), function(event) {
can.run(event) can.run(event)
}], _init: function(item) { }], _init: function(item) {
item.value = msg.Option("cache.field") || item.value item.value = msg.Option("cache.field") || item.value

View File

@ -17,7 +17,7 @@ var Volcanos = shy("火山架", {libs: [], cache: {}}, [], function(name, can, l
meta.libs = Config.libs, meta.volcano = Config.volcano meta.libs = Config.libs, meta.volcano = Config.volcano
// 预加载 // 预加载
var Preload = []; Config.panes.forEach(function(pane) { var Preload = [Config.volcano]; Config.panes.forEach(function(pane) {
Preload = Preload.concat(pane.list = pane.list || ["/pane/"+pane.name+".css", "/pane/"+pane.name+".js"]) Preload = Preload.concat(pane.list = pane.list || ["/pane/"+pane.name+".css", "/pane/"+pane.name+".js"])
}); Preload = Preload.concat(Config.plugin) }); Preload = Preload.concat(Config.plugin)
@ -32,7 +32,7 @@ var Volcanos = shy("火山架", {libs: [], cache: {}}, [], function(name, can, l
} }
} }
list.push(can = can || {}), can.__proto__ = {__proto__: Volcanos.meta, _name: name, _load: function(name, cb) { can = can || {}, can.__proto__ = {__proto__: Volcanos.meta, _name: name, _load: function(name, cb) {
// 加载缓存 // 加载缓存
var cache = meta.cache[name] || []; for (list.reverse(); list.length > 0; list) { var cache = meta.cache[name] || []; for (list.reverse(); list.length > 0; list) {
var sub = list.pop(); sub != can && cache.push(sub) var sub = list.pop(); sub != can && cache.push(sub)
@ -72,6 +72,8 @@ var Volcanos = shy("火山架", {libs: [], cache: {}}, [], function(name, can, l
if (_can_name) { if (_can_name) {
meta.cache[_can_name] = meta.cache[_can_name] || [] meta.cache[_can_name] = meta.cache[_can_name] || []
meta.cache[_can_name].push(can) meta.cache[_can_name].push(can)
} else {
list.push(can)
} }
return can.require(libs, cb), can return can.require(libs, cb), can
}) })

View File

@ -49,7 +49,7 @@ Volcanos("chrome", {
})}, })},
can.misc.WSS(can, {type: "chrome", name: "chrome"}, function(event, msg, cmd, arg) { can.misc.WSS(can, {type: "chrome", name: "chrome"}, function(event, msg, cmd, arg) {
can.core.CallFunc(can.core.Value(can, cmd), {can: can, msg: msg, cmds: arg, cb: function() { can.core.CallFunc([can, cmd], {can: can, msg: msg, cmds: arg, cb: function() {
msg.Reply() msg.Reply()
}}) }})
}) })

View File

@ -31,7 +31,7 @@ Volcanos("chrome", {
}, [], function(can) { can._load("chrome") }, [], function(can) { can._load("chrome")
chrome.extension.onMessage.addListener(function(req, sender, cb) { chrome.extension.onMessage.addListener(function(req, sender, cb) {
var msg = can.request(); can.core.List(req.option, function(key) { msg.Option(key, req[key][0]) }) var msg = can.request(); can.core.List(req.option, function(key) { msg.Option(key, req[key][0]) })
can.core.CallFunc(can.core.Value(can, req.detail[3]||"spide"), {can: can, msg: msg, cmds: req.detail.slice(4), cb: cb}) can.core.CallFunc([can, req.detail[3]||"spide"], {can: can, msg: msg, cmds: req.detail.slice(4), cb: cb})
}) })
}) })

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, "content", msg, null, can.ui.content) can.onappend.table(can, msg, null, can.ui.content)
can.onappend.board(can, "content", msg.Result(), can.ui.display) can.onappend.board(can, 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({})