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

add onengine.plugin

This commit is contained in:
harveyshao 2021-12-07 07:52:29 +08:00
parent c62a622cf0
commit c198d8bcd6
6 changed files with 63 additions and 3 deletions

View File

@ -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)

View File

@ -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 }

View File

@ -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;
}

View File

@ -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) {

View File

@ -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)

View File

@ -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")