1
0
forked from x/volcanos
This commit is contained in:
shaoying 2021-07-28 21:54:02 +08:00
parent b6453d36d5
commit b4139813f4
6 changed files with 73 additions and 56 deletions

View File

@ -16,8 +16,8 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta,
panel.onaction._init(panel, item, item.list, next, panel._target) panel.onaction._init(panel, item, item.list, next, panel._target)
}, target) }, target)
}, function() { can.onlayout.topic(can) }, function() { can.onlayout.topic(can)
can.misc.Log(can.user.title(), "run", can) can.misc.Log(can.user.title(), cli.RUN, can)
can.base.Copy(can.onengine.river, can.Conf("river")) can.base.Copy(can.onengine.river, can.Conf(chat.RIVER))
can.ondaemon._init(can), can.onmotion._init(can, target), can.onkeypop._init(can, target) can.ondaemon._init(can), can.onmotion._init(can, target), can.onkeypop._init(can, target)
can.onengine.signal(can, "onmain", can.request()) can.onengine.signal(can, "onmain", can.request())
can.base.isFunc(cb) && cb() can.base.isFunc(cb) && cb()
@ -66,7 +66,7 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta,
}) })
}), }),
river: {}, _merge: function(can, sub) { river: {}, _merge: function(can, sub) {
for (var k in sub["river"]) { can.onengine["river"] = sub["river"]; break } for (var k in sub[chat.RIVER]) { can.onengine[chat.RIVER] = sub[chat.RIVER]; break }
}, },
}) })
Volcanos("ondaemon", {help: "推荐引擎", list: [], _init: function(can, name) { if (can.user.isLocalFile) { return } Volcanos("ondaemon", {help: "推荐引擎", list: [], _init: function(can, name) { if (can.user.isLocalFile) { return }
@ -130,7 +130,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
sub.page.Select(sub, status, "div."+key+">span", function(item) { sub.page.Select(sub, status, "div."+key+">span", function(item) {
return value == undefined? (value = item.innerHTML): (item.innerHTML = value) return value == undefined? (value = item.innerHTML): (item.innerHTML = value)
}).length == 0 && value != undefined && sub.page.Append(sub, status, [{view: "item "+key, list: [ }).length == 0 && value != undefined && sub.page.Append(sub, status, [{view: "item "+key, list: [
{text: [key, "label"]}, {text: [": ", "label"]}, {text: [value+"", "span", key]}, {text: [key, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [value+"", html.SPAN, key]},
]}]); return value ]}]); return value
}, },
Clone: function() { Clone: function() {
@ -168,7 +168,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
}); return sub }); return sub
}, },
_option: function(can, meta, option) { var index = -1, args = can.base.Obj(meta.args||meta.arg, []), opts = can.base.Obj(meta.opts, {}) _option: function(can, meta, option) { var index = -1, args = can.base.Obj(meta.args||meta.arg, []), opts = can.base.Obj(meta.opts, {})
function add(item, next) { item._input != "button" && item.type != "button" && index++ function add(item, next) { item._input != html.BUTTON && item.type != html.BUTTON && index++
return Volcanos(item.name, {_follow: can.core.Keys(can._follow, item.name), _target: can.onappend.input(can, item, args[index]||opts[item.name], option), return Volcanos(item.name, {_follow: can.core.Keys(can._follow, item.name), _target: can.onappend.input(can, item, args[index]||opts[item.name], option),
_option: can._option, _action: can._action, _output: can._output, _status: can._status, _option: can._option, _action: can._action, _output: can._output, _status: can._status,
Option: can.Option, Action: can.Action, Status: can.Status, Option: can.Option, Action: can.Action, Status: can.Status,
@ -199,7 +199,7 @@ 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.core.List(list, function(item) { can.onappend.input(can, item == ""? /*空白*/ {type: "space"}: can.core.List(list, function(item) { can.onappend.input(can, item == ""? /*空白*/ {type: "space"}:
typeof item == "string"? /*按键*/ {type: "button", value: item, onclick: function(event) { typeof item == "string"? /*按键*/ {type: html.BUTTON, value: item, onclick: function(event) {
var cb = meta[item]||meta["_engine"] var cb = meta[item]||meta["_engine"]
cb? can.core.CallFunc(cb, [event, can, item]): can.run(event, [ctx.ACTION,item].concat(can.sup.Pack())) cb? can.core.CallFunc(cb, [event, can, item]): can.run(event, [ctx.ACTION,item].concat(can.sup.Pack()))
@ -267,13 +267,13 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
_status: function(can, list, status) { status = status || can._status _status: function(can, list, status) { status = status || can._status
can.core.List(list, function(item) { item = typeof item == "object"? item: {name: item} can.core.List(list, function(item) { item = typeof item == "object"? item: {name: item}
can.page.Append(can, status, [{view: "item "+item.name, title: item.name, list: [ can.page.Append(can, status, [{view: "item "+item.name, title: item.name, list: [
{text: [item.name, "label"]}, {text: [": ", "label"]}, {text: [(item.value||"")+"", "span", item.name]}, {text: [item.name, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value||"")+"", html.SPAN, item.name]},
], }]) ], }])
}) })
}, },
item: function(can, type, item, cb, cbs, target) { target = target||can._output item: function(can, type, item, cb, cbs, target) { target = target||can._output
var ui = can.page.Append(can, target, [{view: [type, "div", item.nick||item.name], var ui = can.page.Append(can, target, [{view: [type, html.DIV, item.nick||item.name],
onclick: function(event) { cb(event, ui.first) onclick: function(event) { cb(event, ui.first)
can.onmotion.select(can, target, "div."+type, ui.first) can.onmotion.select(can, target, "div."+type, ui.first)
}, oncontextmenu: function(event) { cbs(event, ui.first) }, }, oncontextmenu: function(event) { cbs(event, ui.first) },
@ -284,15 +284,15 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
item[field] && can.core.List(item[field].split(split), function(value, index, array) { item[field] && can.core.List(item[field].split(split), function(value, index, array) {
var last = array.slice(0, index).join(split), name = array.slice(0, index+1).join(split) var last = array.slice(0, index).join(split), name = array.slice(0, index+1).join(split)
node[name] || (node[name] = can.page.Append(can, node[last], [{view: ["item", "div", value+(index==array.length-1?"":split)], onclick: function(event) { node[name] || (node[name] = can.page.Append(can, node[last], [{view: ["item", html.DIV, value+(index==array.length-1?"":split)], onclick: function(event) {
index < array.length - 1? can.onmotion.toggle(can, node[name]): can.base.isFunc(cb) && cb(event, item) index < array.length - 1? can.onmotion.toggle(can, node[name]): can.base.isFunc(cb) && cb(event, item)
}}, {view: "list", style: {display: "none"}}]).last) }}, {view: "list", style: {display: "none"}}]).last)
}) })
}); return node }); return node
}, },
field: function(can, type, item, target) { type = type || "input", item = item || {} field: function(can, type, item, target) { type = type || html.INPUT, item = item || {}
return can.page.Append(can, target||can._output, [{view: [(type||"")+" "+(item.name||"")+" "+(item.pos||""), "fieldset"], list: [ return can.page.Append(can, target||can._output, [{view: [(type||"")+" "+(item.name||"")+" "+(item.pos||""), "fieldset"], list: [
{text: [(item.nick||item.name||"").split(" ")[0]+"("+(item.help||"").split(" ")[0]+")", "legend"]}, {text: [(item.nick||item.name||"").split(" ")[0]+"("+(item.help||"").split(" ")[0]+")", html.LEGEND]},
{view: ["option", "form"]}, {view: ["action"]}, {view: ["output"]}, {view: ["status"]}, {view: ["option", "form"]}, {view: ["action"]}, {view: ["output"]}, {view: ["status"]},
]}]) ]}])
}, },
@ -304,15 +304,17 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
var title = can.Conf(["feature", "title", item.name].join("."))||"" var title = can.Conf(["feature", "title", item.name].join("."))||""
var input = {type: "input", name: item.name, data: item, dataset: {}} var input = {type: html.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")
title && (input.title = title) title && (input.title = title)
switch (item.type = item.type||item._input||"text") { var br = []
case "textarea": input.type = "textarea" switch (item.type = item.type||item._input||html.TEXT) {
item.style.width = item.style.width || can.Conf(["feature", "textarea", item.name, "width"].join(".")) || can.Conf(["feature", "textarea", "width"].join(".")) || 400 case "textarea": input.type = html.TEXTAREA; item.style = item.style||{}
item.style.height = item.style.height || can.Conf(["feature", "textarea", item.name, "height"].join(".")) || can.Conf(["feature", "textarea", "height"].join(".")) || 30 item.style.width = item.style.width || can.Conf(["feature", html.TEXTAREA, item.name, "width"].join(".")) || can.Conf(["feature", html.TEXTAREA, "width"].join(".")) || 400
item.style.height = item.style.height || can.Conf(["feature", html.TEXTAREA, item.name, "height"].join(".")) || can.Conf(["feature", html.TEXTAREA, "height"].join(".")) || 30
br.push({type: "br"})
// no break // no break
case "password": case "password":
// no break // no break
@ -321,7 +323,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
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")
break break
case "select": input.type = "select" case "select": input.type = html.SELECT
item.values = typeof item.values == "string"? can.core.Split(item.values): item.values item.values = typeof item.values == "string"? can.core.Split(item.values): item.values
if (!item.values && item.value) { if (!item.values && item.value) {
item.values = can.core.Split(item.value), item.value = item.values[0] item.values = can.core.Split(item.value), item.value = item.values[0]
@ -329,15 +331,15 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
} }
item.value = value||item.value, 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: html.OPTION, value: value, inner: value}
}), item.className || can.page.ClassList.add(can, item, "args") }), item.className || can.page.ClassList.add(can, item, "args")
break break
case "button": item.value = item.value||item.name||"查看"; break case "button": item.value = item.value||item.name||"查看"; break
case "upfile": item.type = "file"; break case "upfile": item.type = html.FILE; break
case "upload": item.type = "file", input.name = "upload"; break case "upload": item.type = html.FILE, input.name = "upload"; break
} }
return can.page.Append(can, target, [{view: ["item "+item.type], list: [input]}])[item.name] return can.page.Append(can, target, [{view: ["item "+item.type], list: [input]}].concat(br))[item.name]
}, },
table: function(can, msg, cb, target, sort) { table: function(can, msg, cb, target, sort) {
var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key, index, line, array) { var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key, index, line, array) {
@ -353,7 +355,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
} }
return {text: [value, "td"], onclick: function(event) { var target = event.target return {text: [value, "td"], onclick: function(event) { var target = event.target
if (target.tagName == "INPUT" && target.type == "button") { var msg = can.sup.request(event, can.Option()) if (target.tagName == "INPUT" && target.type == html.BUTTON) { var msg = can.sup.request(event, can.Option())
key == "value"? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line) key == "value"? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line)
return can.run(event, [ctx.ACTION, target.name], function(msg) { can.run() }, true) return can.run(event, [ctx.ACTION, target.name], function(msg) { can.run() }, true)
} }
@ -369,8 +371,8 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
if (item.name == key) { return {name: key, value: "@"+pkey+"="+value} } if (item.name == key) { return {name: key, value: "@"+pkey+"="+value} }
})[0]||{name: key, value: "@key="+value} })[0]||{name: key, value: "@key="+value}
can.onmotion.modify(can, target, function(event, value, old) { var msg = can.sup.request(event, can.Option()) can.onmotion.modify(can, target, function(event, value, old) { var msg = can.sup.request(event, can.Option())
key == "value"? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line) key == kit.MDB_VALUE? can.core.List(array, function(item, index) { msg.Option(item.key, item.value) }): msg.Option(line)
can.run(event, [ctx.ACTION, mdb.MODIFY, key == "value"? line.key||line.name: key, value], function(msg) { can.run() }, true) can.run(event, [ctx.ACTION, mdb.MODIFY, key == kit.MDB_VALUE? line.key||line.name: key, value], function(msg) { can.run() }, true)
}, item) }, item)
}} }}
}); table && can.page.Modify(can, table, {className: "content"}) }); table && can.page.Modify(can, table, {className: "content"})
@ -384,7 +386,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
board: function(can, text, target) { board: function(can, text, target) {
// text = text.replace(/</g, "&lt;"), text = text.replace(/>/g, "&gt;"), text = can.page.Color(text||"") // text = text.replace(/</g, "&lt;"), text = text.replace(/>/g, "&gt;"), text = can.page.Color(text||"")
text = can.page.Color(text||"") text = can.page.Color(text||"")
var code = text && can.page.Append(can, target||can._output, [{text: [text, "div", "code"]}]).code var code = text && can.page.Append(can, target||can._output, [{text: [text, html.DIV, html.CODE]}]).code
can.page.Select(can, code, "input[type=button]", function(target) { can.page.Select(can, code, "input[type=button]", function(target) {
target.onclick = function(event) { target.onclick = function(event) {
var msg = can.sup.request(event, can.Option()) var msg = can.sup.request(event, can.Option())
@ -405,9 +407,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
var list = can.core.Split(key, "@=", "@=") var list = can.core.Split(key, "@=", "@=")
var pkey = list[0], pval = list[1]||"" var pkey = list[0], pval = list[1]||""
target.type != "button" && (target.value = pval||""), can.require(["/plugin/input/"+pkey+".js"], function(can) { target.type != html.BUTTON && (target.value = pval||""), can.require(["/plugin/input/"+pkey+".js"], function(can) {
can.core.Item(can.onfigure[pkey], function(key, on) { if (key.indexOf("on") == 0) { target[key] = function(event) { can.core.Item(can.onfigure[pkey], function(key, on) { if (key.indexOf("on") == 0) { target[key] = function(event) {
can.onappend._init(can, {type: "input", name: pkey, pos: "float"}, [], function(sub) { can.onappend._init(can, {type: html.INPUT, name: pkey, pos: "float"}, [], function(sub) {
sub.run = function(event, cmds, cb) { sub.run = function(event, cmds, cb) {
var msg = sub.request(event, can.Option()); var msg = sub.request(event, can.Option());
(meta.run||can.run)(event, cmds, cb, true) (meta.run||can.run)(event, cmds, cb, true)
@ -438,7 +440,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
}, },
plugin: function(can, meta, cb, target) { meta = meta || {} plugin: function(can, meta, cb, target) { meta = meta || {}
meta.inputs && meta.inputs.length > 0? can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, cb, target): meta.inputs && meta.inputs.length > 0? can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, cb, target):
can.run({}, [ctx.ACTION, "command", meta.index||can.core.Keys(meta.ctx, meta.cmd)], function(msg) { msg.Table(function(value) { can.run({}, [ctx.ACTION, ctx.COMMAND, meta.index||can.core.Keys(meta.ctx, meta.cmd)], function(msg) { msg.Table(function(value) {
can.onappend._plugin(can, value, meta, cb, target) can.onappend._plugin(can, value, meta, cb, target)
}) }, true) }) }, true)
}, },
@ -507,7 +509,7 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe
can.onengine.signal(can, "onresize", can.request({}, {width: width, height: height})) can.onengine.signal(can, "onresize", 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, cli.POD)||can.base.isNight())? "black": "white"))
}, },
figure: function(event, can, target, right) { target = target||can._target; if (!event || !event.target) { return } figure: function(event, can, target, right) { target = target||can._target; if (!event || !event.target) { return }
var left = event.clientX-event.offsetX, top = event.clientY-event.offsetY+event.target.offsetHeight; if (right) { var left = event.clientX-event.offsetX, top = event.clientY-event.offsetY+event.target.offsetHeight; if (right) {
@ -612,12 +614,12 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
story: { story: {
_hash: { _hash: {
spark: function(can, meta, target) { spark: function(can, meta, target) {
if (meta["name"] == "inner") { if (meta[kit.MDB_NAME] == "inner") {
target.title = "点击复制", target.onclick = function(event) { target.title = "点击复制", target.onclick = function(event) {
can.user.copy(event, can, target.innerText) can.user.copy(event, can, target.innerText)
} }
} else { } else {
can.page.Select(can, target, "span", function(item) { can.page.Select(can, target, html.SPAN, function(item) {
item.title = "点击复制", item.onclick = function(event) { item.title = "点击复制", item.onclick = function(event) {
can.user.copy(event, can, item.innerText) can.user.copy(event, can, item.innerText)
} }
@ -642,9 +644,9 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
select: function(can, target, name, which) { select: function(can, target, name, which) {
can.page.Select(can, target, name, function(item, index) { can.page.Select(can, target, name, function(item, index) {
if (item == which || which == index) { if (item == which || which == index) {
can.page.ClassList.add(can, item, "select") can.page.ClassList.add(can, item, html.SELECT)
} else { } else {
can.page.ClassList.del(can, item, "select") can.page.ClassList.del(can, item, html.SELECT)
} }
}) })
}, },
@ -652,7 +654,7 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
if (back.length > 120 || back.indexOf("\n") > -1) { if (back.length > 120 || back.indexOf("\n") > -1) {
return can.onmotion.modifys(can, target, cb) return can.onmotion.modifys(can, target, cb)
} }
var ui = can.page.Appends(can, target, [{type: "input", value: back, style: {width: target.offsetWidth > 400? 400: target.offsetWidth-20}, onkeydown: function(event) { var ui = can.page.Appends(can, target, [{type: html.INPUT, value: back, style: {width: target.offsetWidth > 400? 400: target.offsetWidth-20}, onkeydown: function(event) {
switch (event.key) { switch (event.key) {
case "Enter": case "Enter":
target.innerHTML = event.target.value target.innerHTML = event.target.value
@ -672,7 +674,7 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
}}]); ui.first.focus(), ui.first.setSelectionRange(0, -1) }}]); ui.first.focus(), ui.first.setSelectionRange(0, -1)
}, },
modifys: function(can, target, cb) { var back = target.innerHTML modifys: function(can, target, cb) { var back = target.innerHTML
var ui = can.page.Appends(can, target, [{type: "textarea", value: back, style: {height: "80px", width: target.offsetWidth > 400? 400: target.offsetWidth-20}, onkeydown: function(event) { var ui = can.page.Appends(can, target, [{type: html.TEXTAREA, value: back, style: {height: "80px", width: target.offsetWidth > 400? 400: target.offsetWidth-20}, onkeydown: function(event) {
switch (event.key) { switch (event.key) {
case "Enter": case "Enter":
if (event.ctrlKey) { if (event.ctrlKey) {
@ -1069,7 +1071,7 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
target.setSelectionRange(start, start) target.setSelectionRange(start, start)
}, },
input: function(event, can) { var target = event.target input: function(event, can) { var target = event.target
target._keys = can.onkeypop._parse(event, can, event.ctrlKey? "insert_ctrl": "insert", target._keys||[], target) target._keys = can.onkeypop._parse(event, can, event.ctrlKey? "insert_ctrl": mdb.INSERT, target._keys||[], target)
if (target._keys.length == 0) { event.stopPropagation(), event.preventDefault() } if (target._keys.length == 0) { event.stopPropagation(), event.preventDefault() }
}, },
}) })

View File

@ -61,7 +61,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _engine: function(event, p
var storm = river && river.storm[cmds[1]] var storm = river && river.storm[cmds[1]]
if (!storm || cmds.length != 2) { return false } if (!storm || cmds.length != 2) { return false }
if (storm.index) { cmds = [can._ACTION, "command"].concat(storm.index) if (storm.index) { cmds = [can._ACTION, ctx.COMMAND].concat(storm.index)
can.run(event, cmds, cb) can.run(event, cmds, cb)
} else { } else {
can.core.List(storm.action, function(value) { can.core.List(storm.action, function(value) {
@ -90,7 +90,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
], ],
onmain: function(can, msg) { onmain: function(can, msg) {
var cmds = location.pathname.split("/").slice(1) var cmds = location.pathname.split("/").slice(1)
if (cmds[0] == "cmd") { if (cmds[0] == cli.CMD) {
can.onappend.plugin(can, {index: cmds[1]}, function(sub, meta) { can.onappend.plugin(can, {index: cmds[1]}, function(sub, meta) {
sub.run = function(event, cmds, cb) {} sub.run = function(event, cmds, cb) {}
}) })

View File

@ -14,8 +14,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}, },
_state: function(can, msg, target) { const STATE = "state" _state: function(can, msg, target) { const STATE = "state"
can.core.List(can.base.Obj(msg.Option(STATE), can.Conf(STATE)||["ncmd"]), function(item) { can.core.List(can.base.Obj(msg.Option(STATE), can.Conf(STATE)||["ncmd"]), function(item) {
can.page.Append(can, target, [{view: [STATE+" "+item, "div", can.Conf(item)], list: [ can.page.Append(can, target, [{view: [STATE+" "+item, html.DIV, can.Conf(item)], list: [
{text: [item, "label"]}, {text: [": ", "label"]}, {text: [can.Conf(item)||"", "span", item]}, {text: [item, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [can.Conf(item)||"", html.SPAN, item]},
], onclick: function(event) { ], onclick: function(event) {
can.show = can.show? (can.page.Remove(can, can.show), null): can.onimport._cmd(can) can.show = can.show? (can.page.Remove(can, can.show), null): can.onimport._cmd(can)
}}]) }}])
@ -52,7 +52,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}, },
ncmd: function(can, msg, time, follow, commands) { const NCMD = "ncmd"; can._cmds = can._cmds || can.request() ncmd: function(can, msg, time, follow, commands) { const NCMD = "ncmd"; can._cmds = can._cmds || can.request()
can._cmds.Push({time: time, follow: follow, commands: commands}) can._cmds.Push({time: time, follow: follow, commands: commands})
can.page.Select(can, can._output, can.core.Keys("span", NCMD), function(item) { can.page.Select(can, can._output, can.core.Keys(html.SPAN, NCMD), function(item) {
item.innerHTML = can.Conf(NCMD, parseInt(can.Conf(NCMD)||"0")+1+"")+"" item.innerHTML = can.Conf(NCMD, parseInt(can.Conf(NCMD)||"0")+1+"")+""
}) })
}, },

View File

@ -21,7 +21,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.onaction.Footer(can) can.onaction.Footer(can)
} else if (can.user.isExtension) { } else if (can.user.isExtension) {
can.onaction.River(can) can.onaction.River(can)
} else if (can.user.Search(can, "pod")) { } else if (can.user.Search(can, cli.POD)) {
can.onaction.River(can) can.onaction.River(can)
can.onaction.Footer(can) can.onaction.Footer(can)
} }
@ -36,9 +36,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
} }
}, },
_title: function(can, msg, target) { const TITLE = "title" _title: function(can, msg, target) { const TITLE = "title"
can.user.title(can.user.Search(can, TITLE)||can.user.Search(can, "pod")) can.user.title(can.user.Search(can, TITLE)||can.user.Search(can, cli.POD))
!can.user.isMobile && can.core.List(msg.result||["github.com/shylinux/contexts"], function(item) { !can.user.isMobile && can.core.List(msg.result||["github.com/shylinux/contexts"], function(item) {
can.page.Append(can, target, [{view: [TITLE, "div", item], title: "返回主页", onclick: function(event) { can.page.Append(can, target, [{view: [TITLE, html.DIV, item], title: "返回主页", onclick: function(event) {
can.onaction.title(event, can) can.onaction.title(event, can)
}}]) }}])
}) })
@ -47,12 +47,12 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.core.List(can.base.Obj(msg.Option(STATE), can.Conf(STATE)||["time", aaa.USERNAME]), function(item) { can.core.List(can.base.Obj(msg.Option(STATE), can.Conf(STATE)||["time", aaa.USERNAME]), function(item) {
if (item == aaa.AVATAR) { if (item == aaa.AVATAR) {
can.page.Append(can, target, [{view: [STATE+" "+item], list: [{img: can.Conf(item)}], onmouseenter: function(event) { can.page.Append(can, target, [{view: [STATE+" "+item], list: [{img: can.Conf(item)}], onmouseenter: function(event) {
can.onaction.carte(event, can, [can.page.Format("img", can.Conf(item), 160)]) can.onaction.carte(event, can, [can.page.Format(html.IMG, can.Conf(item), 160)])
}}]) }}])
return return
} }
can.page.Append(can, target, [{view: [STATE+" "+item, "div", (can.Conf(item)||"").slice(0, 10)], onmouseenter: function(event) { can.page.Append(can, target, [{view: [STATE+" "+item, html.DIV, (can.Conf(item)||"").slice(0, 10)], onmouseenter: function(event) {
can.core.CallFunc([can.onaction, item], [event, can, item]) can.core.CallFunc([can.onaction, item], [event, can, item])
}, _init: function(target) { }, _init: function(target) {
item == "time" && can.onimport._time(can, target) item == "time" && can.onimport._time(can, target)
@ -60,7 +60,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}) })
}, },
_search: function(can, msg, target) { const SEARCH = "search" _search: function(can, msg, target) { const SEARCH = "search"
var ui = can.page.Append(can, target, [{view: SEARCH, list: [{type: "input", data: {placeholder: SEARCH}, onkeydown: function(event) { var ui = can.page.Append(can, target, [{view: SEARCH, list: [{type: html.INPUT, data: {placeholder: SEARCH}, onkeydown: function(event) {
can.onkeypop.input(event, can); switch (event.key) { can.onkeypop.input(event, can); switch (event.key) {
case "Enter": can.search(event, ["Search.onimport.select", "*", event.target.value]); break case "Enter": can.search(event, ["Search.onimport.select", "*", event.target.value]); break
} }
@ -74,14 +74,14 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.onlayout.background(can, msg.Option(aaa.BACKGROUND), document.body) can.onlayout.background(can, msg.Option(aaa.BACKGROUND), document.body)
}, },
_menu: function(can, msg, target) { _menu: function(can, msg, target) {
can.onimport.menu(can, can.user.isMobile||can.user.isExtension||can.user.Search(can, "pod")? ["header", chat.RIVER]: can.onimport.menu(can, can.user.isMobile||can.user.isExtension||can.user.Search(can, cli.POD)? [chat.HEADER, chat.RIVER]:
["header", ["setting", "black", "white", "print", "pack"]], function(event, item) { [chat.HEADER, ["setting", "black", "white", "print", "pack"]], function(event, item) {
can.core.CallFunc([can.onaction, item], [event, can, item]) can.core.CallFunc([can.onaction, item], [event, can, item])
}) })
}, },
_weixin: function(can, msg) { can.run({}, [ctx.ACTION, chat.AGENT], function(msg) { _weixin: function(can, msg) { can.run({}, [ctx.ACTION, chat.AGENT], function(msg) {
can.require(can.base.Obj(msg.Option("script")), function(can) { can.require(can.base.Obj(msg.Option(ssh.SCRIPT)), function(can) {
wx.config({debug: msg.Option("debug") == "true", wx.config({debug: msg.Option("debug") == "true",
appId: msg.Option("appid"), signature: msg.Option("signature"), appId: msg.Option("appid"), signature: msg.Option("signature"),
nonceStr: msg.Option("noncestr"), timestamp: msg.Option("timestamp"), nonceStr: msg.Option("noncestr"), timestamp: msg.Option("timestamp"),
@ -124,12 +124,12 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
menu: function(can, cmds, cb) { menu: function(can, cmds, cb) {
return can.page.Append(can, can._output, [{type: cmds[0], list: can.core.List(cmds.slice(1), function(item) { return can.page.Append(can, can._output, [{type: cmds[0], list: can.core.List(cmds.slice(1), function(item) {
if (typeof item == "string") { if (typeof item == "string") {
return {view: ["menu", "div", can.user.trans(can, item)], onclick: function(event) { return {view: ["menu", html.DIV, can.user.trans(can, item)], onclick: function(event) {
can.base.isFunc(cb) && cb(event, item) can.base.isFunc(cb) && cb(event, item)
}} }}
} else if (item.length > 0) { } else if (item.length > 0) {
return {view: ["menu", "div", can.user.trans(can, item[0])], onmouseenter: function(event) { return {view: ["menu", html.DIV, can.user.trans(can, item[0])], onmouseenter: function(event) {
can.onaction.carte(event, can, item.slice(1), cb) can.onaction.carte(event, can, item.slice(1), cb)
}} }}
@ -190,7 +190,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, meta,
}, },
title: function(event, can) { title: function(event, can) {
var args = {}; can.core.List(["pod", "title", "topic", "layout"], function(key) { var args = {}; can.core.List([cli.POD, chat.TITLE, "topic", "layout"], function(key) {
var value = can.user.Search(can, key); value && (args[key] = value) var value = can.user.Search(can, key); value && (args[key] = value)
}) })
can.user.jumps(can.user.MergeURL(can, args, true)) can.user.jumps(can.user.MergeURL(can, args, true))

View File

@ -20,7 +20,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}, },
select: function(can, msg, cmds, cb) { can.ui.word.value = cmds[1] select: function(can, msg, cmds, cb) { can.ui.word.value = cmds[1]
var fields = (cmds[2]||msg.Option("fields")||"ctx,cmd,type,name,text").split(",") var fields = (cmds[2]||msg.Option(ice.MSG_FIELDS)||"ctx,cmd,type,name,text").split(",")
can.page.Appends(can, can.ui.display, [{th: fields}]), can.cb = function() { can.page.Appends(can, can.ui.display, [{th: fields}]), can.cb = function() {
can.base.isFunc(cb) && cb(can.onexport.select(can)), can.onmotion.hide(can) can.base.isFunc(cb) && cb(can.onexport.select(can)), can.onmotion.hide(can)
} }

View File

@ -4,6 +4,7 @@ const kit = {
MDB_NAME: "name", MDB_NAME: "name",
MDB_TEXT: "text", MDB_TEXT: "text",
MDB_LINK: "link", MDB_LINK: "link",
MDB_VALUE: "value",
MDB_HASH: "hash", MDB_HASH: "hash",
MDB_LIST: "list", MDB_LIST: "list",
@ -58,6 +59,9 @@ const mdb = {
HASH: "hash", HASH: "hash",
LIST: "list", LIST: "list",
} }
const ssh = {
SCRIPT: "script",
}
const nfs = { const nfs = {
DIR: "dir", DIR: "dir",
} }
@ -98,6 +102,7 @@ const chat = {
USER: "user", USER: "user",
TOOL: "tool", TOOL: "tool",
NODE: "node", NODE: "node",
HEADER: "header",
} }
const team = { const team = {
TASK: "task", TASK: "task",
@ -111,7 +116,17 @@ const mall = {
const html = { const html = {
DIV: "div", DIV: "div",
IMG: "img", IMG: "img",
CODE: "code",
SPAN: "span",
LABEL: "label",
BUTTON: "button",
LEGEND: "legend",
TEXTAREA: "textarea", TEXTAREA: "textarea",
SELECT: "select",
OPTION: "option",
INPUT: "input",
TEXT: "text",
FILE: "file",
ITEM: "item", ITEM: "item",
LIST: "list", LIST: "list",
@ -211,13 +226,13 @@ var Volcanos = shy("火山架", {volcano: "/frame.js", args: {}, pack: {}, libs:
Volcanos.meta._load = function(url, cb) { Volcanos.meta._load = function(url, cb) {
switch (url.split("?")[0].split(".").pop().toLowerCase()) { switch (url.split("?")[0].split(".").pop().toLowerCase()) {
case "css": case "css":
var item = document.createElement("link") var item = document.createElement(kit.MDB_LINK)
item.rel = "stylesheet", item.type = "text/css" item.rel = "stylesheet", item.type = "text/css"
item.href = url; item.onload = cb item.href = url; item.onload = cb
document.head.appendChild(item) document.head.appendChild(item)
return item return item
case "js": case "js":
var item = document.createElement("script") var item = document.createElement(ssh.SCRIPT)
item.src = url, item.onload = cb item.src = url, item.onload = cb
document.body.appendChild(item) document.body.appendChild(item)
return item return item