mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
opt callfunc
This commit is contained in:
parent
61d2dc2cde
commit
48284b2235
76
frame.js
76
frame.js
@ -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] }
|
||||||
|
}
|
||||||
|
|
||||||
|
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: [{text: [name, "label"]}, {text: [": ", "label"]}, input]}])[item.name]
|
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,24 +438,24 @@ 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)
|
||||||
sub.page.Remove(sub, sub._legend)
|
sub.page.Remove(sub, sub._legend)
|
||||||
}, 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"))
|
||||||
|
37
lib/core.js
37
lib/core.js
@ -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]]) {
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -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("<", "<").replace(">", ">"), value = value.replace("./", "")
|
value = value.replace("<", "<").replace(">", ">"), 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() {
|
||||||
|
@ -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))
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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) {
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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")
|
||||||
|
@ -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"]})
|
||||||
|
@ -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
|
||||||
|
6
proto.js
6
proto.js
@ -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
|
||||||
})
|
})
|
||||||
|
@ -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()
|
||||||
}})
|
}})
|
||||||
})
|
})
|
||||||
|
@ -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})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -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({})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user