mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
add onengine.plugin
This commit is contained in:
parent
c62a622cf0
commit
c198d8bcd6
43
frame.js
43
frame.js
@ -24,6 +24,26 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta,
|
|||||||
can.ondaemon._init(can), can.onmotion._init(can, target), can.onkeypop._init(can)
|
can.ondaemon._init(can), can.onmotion._init(can, target), can.onkeypop._init(can)
|
||||||
can.onlayout.topic(can), can.onengine.signal(can, chat.ONMAIN, can.request())
|
can.onlayout.topic(can), can.onengine.signal(can, chat.ONMAIN, can.request())
|
||||||
can.base.isFunc(cb) && cb()
|
can.base.isFunc(cb) && cb()
|
||||||
|
|
||||||
|
can.onengine.listen(can, "onsearch", function(msg, word) {
|
||||||
|
if (word[0] == "*" || word[0] == ctx.COMMAND) { var meta = can.onengine.plugin.meta
|
||||||
|
var list = word[1] == ""? meta: meta[word[1]]? kit.Dict(word[1], meta[word[1]]): {}
|
||||||
|
can.core.Item(list, function(name, command) {
|
||||||
|
name = can.base.trimPrefix(name, "can.")
|
||||||
|
can.core.List(msg.Option(ice.MSG_FIELDS).split(ice.FS), function(item) {
|
||||||
|
msg.Push(item, kit.Dict(
|
||||||
|
"ctx", "onengine",
|
||||||
|
"cmd", "command",
|
||||||
|
"type", "can",
|
||||||
|
"name", name,
|
||||||
|
"text", command.help,
|
||||||
|
"context", "can",
|
||||||
|
"command", name,
|
||||||
|
)[item]||"")
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_search: function(event, can, msg, panel, cmds, cb) {
|
_search: function(event, can, msg, panel, cmds, cb) {
|
||||||
@ -67,6 +87,22 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta,
|
|||||||
can.core.CallFunc(cb, {msg: msg})
|
can.core.CallFunc(cb, {msg: msg})
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
|
plugin: shy("添加插件", {}, [], function(can, name, command) {
|
||||||
|
var type = html.TEXT; command.list = can.core.List(command.list, function(item) {
|
||||||
|
switch (typeof item) {
|
||||||
|
case lang.OBJECT: return type = item.type||type, item
|
||||||
|
case lang.STRING:
|
||||||
|
switch (item) {
|
||||||
|
case "list":
|
||||||
|
case "back": return {type: type = html.BUTTON, name: item}
|
||||||
|
case "name": return {type: type = html.TEXT, name: item}
|
||||||
|
case "text": return {type: type = html.TEXTAREA, name: item}
|
||||||
|
default: return {type: type, name: item}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
arguments.callee.meta[can.core.Keys("can", name)] = command
|
||||||
|
}),
|
||||||
})
|
})
|
||||||
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 }
|
||||||
can.misc.WSS(can, {type: "chrome", name: can.misc.Search(can, "daemon")||name||""}, function(event, msg, cmd, arg) { if (!msg) { return }
|
can.misc.WSS(can, {type: "chrome", name: can.misc.Search(can, "daemon")||name||""}, function(event, msg, cmd, arg) { if (!msg) { return }
|
||||||
@ -333,8 +369,15 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
plugin: function(can, meta, cb, target) { meta = meta||{}, meta.index = meta.index||can.core.Keys(meta.ctx, meta.cmd)
|
plugin: function(can, meta, cb, target) { meta = meta||{}, meta.index = meta.index||can.core.Keys(meta.ctx, meta.cmd)
|
||||||
|
var p = can.onengine.plugin.meta[meta.index]
|
||||||
var res = {}; function cbs(sub, meta, skip) { res.__proto__ = sub, cb(sub, meta, skip) }
|
var res = {}; function cbs(sub, meta, skip) { res.__proto__ = sub, cb(sub, meta, skip) }
|
||||||
(meta.meta || meta.inputs && meta.inputs.length > 0)? can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, cbs, target):
|
(meta.meta || meta.inputs && meta.inputs.length > 0)? can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, cbs, target):
|
||||||
|
p? can.onappend._plugin(can, {name: meta.index, help: p.help, meta: p.meta, list: p.list}, meta, function(sub, meta, skip) {
|
||||||
|
can.base.isFunc(cbs) && cbs(sub, meta, skip)
|
||||||
|
sub.run = function(event, cmds, cb) {
|
||||||
|
can.core.CallFunc(p, {msg: can.request(event), cmds: cmds, cb: cb})
|
||||||
|
}
|
||||||
|
}, target):
|
||||||
can.run(can.request({}, meta)._event, [ctx.ACTION, ctx.COMMAND, meta.index], function(msg) { msg.Table(function(value) {
|
can.run(can.request({}, meta)._event, [ctx.ACTION, ctx.COMMAND, meta.index], function(msg) { msg.Table(function(value) {
|
||||||
can.onappend._plugin(can, value, meta, cbs, target)
|
can.onappend._plugin(can, value, meta, cbs, target)
|
||||||
}) }, true)
|
}) }, true)
|
||||||
|
@ -202,7 +202,7 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
|||||||
},
|
},
|
||||||
layout: function(can, msg) { return can.Conf(chat.LAYOUT) },
|
layout: function(can, msg) { return can.Conf(chat.LAYOUT) },
|
||||||
plugin: function(can, msg, word) {
|
plugin: function(can, msg, word) {
|
||||||
var fields = (msg.Option(ice.MSG_FIELDS)||"ctx,cmd,type,name,text").split(",")
|
var fields = msg.Option(ice.MSG_FIELDS).split(ice.FS)
|
||||||
can.page.Select(can, can._output, "fieldset.plugin>legend", function(item) {
|
can.page.Select(can, can._output, "fieldset.plugin>legend", function(item) {
|
||||||
if (item.innerHTML.indexOf(word[1]) == -1) { return }
|
if (item.innerHTML.indexOf(word[1]) == -1) { return }
|
||||||
|
|
||||||
|
@ -7,6 +7,9 @@ fieldset.panel.cmd>div.output>fieldset.plugin {
|
|||||||
fieldset.panel.cmd>div.output>fieldset.plugin>legend {
|
fieldset.panel.cmd>div.output>fieldset.plugin>legend {
|
||||||
display:none;
|
display:none;
|
||||||
}
|
}
|
||||||
|
fieldset.panel.cmd>div.output>fieldset.plugin>div.legend {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
fieldset.panel.cmd>div.output>fieldset.plugin>div.legend {
|
fieldset.panel.cmd>div.output>fieldset.plugin>div.legend {
|
||||||
float:left; padding:0 10px; margin-right:3px;
|
float:left; padding:0 10px; margin-right:3px;
|
||||||
height:25px; font-size:18px;
|
height:25px; font-size:18px;
|
||||||
@ -19,3 +22,6 @@ fieldset.plugin>legend {
|
|||||||
body.white fieldset.panel.cmd>div.output>fieldset.plugin>div.legend {
|
body.white fieldset.panel.cmd>div.output>fieldset.plugin>div.legend {
|
||||||
background-color:honeydew;
|
background-color:honeydew;
|
||||||
}
|
}
|
||||||
|
fieldset.panel.cmd>div.output>fieldset.plugin>div.status {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
@ -67,6 +67,16 @@ Volcanos("onengine", {help: "解析引擎", list: [], _engine: function(event, c
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg, list, cb, target) {
|
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
|
can.onengine.plugin(can, "log", shy("日志", {}, ["text", "list", "back"], function(msg, cmds) {
|
||||||
|
console.log(cmds[0])
|
||||||
|
msg.Option(ice.MSG_DISPLAY, "/plugin/story/pie.js")
|
||||||
|
}))
|
||||||
|
can.onengine.plugin(can, "pie", shy("比例图", {}, ["list", "back"], function(msg, cmds) {
|
||||||
|
msg.Push("value", 200)
|
||||||
|
msg.Push("value", 300)
|
||||||
|
msg.Push("value", 400)
|
||||||
|
msg.Option(ice.MSG_DISPLAY, "/plugin/story/pie.js")
|
||||||
|
}))
|
||||||
can.base.isFunc(cb) && cb()
|
can.base.isFunc(cb) && cb()
|
||||||
},
|
},
|
||||||
onlogin: function(can, msg) {
|
onlogin: function(can, msg) {
|
||||||
|
@ -28,7 +28,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
},
|
},
|
||||||
_item: function(can, node, target, width) { width = width||node.meta.width
|
_item: function(can, node, target, width) { width = width||node.meta.width
|
||||||
var ui = can.page.Append(can, target, [{view: [html.ITEM, html.DIV, node.meta.name||"hi"]}, {view: [html.LIST]}])
|
var ui = can.page.Append(can, target, [{view: [html.ITEM, html.DIV, node.meta.name||"hi"]}, {view: [html.LIST]}])
|
||||||
ui.list._fieldset = can.onimport._field(can, node.meta, target._fieldset, width)
|
ui.list._fieldset = can.onimport._plugin(can, node.meta, target._fieldset, width)
|
||||||
|
|
||||||
var msg = can.request({}); msg.Push(node.meta, "", true)
|
var msg = can.request({}); msg.Push(node.meta, "", true)
|
||||||
ui.item.onclick = function(event) {
|
ui.item.onclick = function(event) {
|
||||||
@ -54,7 +54,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.core.List(node.list, function(node) { can.onimport._item(can, node, ui.list, width) })
|
can.core.List(node.list, function(node) { can.onimport._item(can, node, ui.list, width) })
|
||||||
return ui.item
|
return ui.item
|
||||||
},
|
},
|
||||||
_field: function(can, meta, target, width) {
|
_plugin: function(can, meta, target, width) {
|
||||||
var size = {width: width, height: meta.height}
|
var size = {width: width, height: meta.height}
|
||||||
var field = can.onappend.field(can, chat.LAYOUT, {}, target).fieldset
|
var field = can.onappend.field(can, chat.LAYOUT, {}, target).fieldset
|
||||||
can.page.ClassList.add(can, field, meta.style)
|
can.page.ClassList.add(can, field, meta.style)
|
||||||
|
@ -2,6 +2,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
|
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
|
||||||
if (msg.Option("branch")) { return can.onappend.table(can, msg) }
|
if (msg.Option("branch")) { return can.onappend.table(can, msg) }
|
||||||
can.onappend._status(can, ["from", "commit", "total", "max", "date", "text", "add", "del"])
|
can.onappend._status(can, ["from", "commit", "total", "max", "date", "text", "add", "del"])
|
||||||
|
can.Conf(html.HEIGHT, can.Conf(html.HEIGHT)||200)
|
||||||
|
|
||||||
can.msg = msg, can.data = msg.Table(), can.onimport._sum(can)
|
can.msg = msg, can.data = msg.Table(), can.onimport._sum(can)
|
||||||
can.Action(html.HEIGHT, msg.Option(html.HEIGHT)||can.user.mod.isCmd? "max": can.user.isMobile&&can.user.isLandscape()? "200": "400")
|
can.Action(html.HEIGHT, msg.Option(html.HEIGHT)||can.user.mod.isCmd? "max": can.user.isMobile&&can.user.isLandscape()? "200": "400")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user