1
0
forked from x/volcanos
This commit is contained in:
shaoying 2020-12-22 11:12:29 +08:00
parent dc5324743a
commit 4c9edf6c30
5 changed files with 33 additions and 14 deletions

View File

@ -27,6 +27,15 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
}) })
}, },
listen: shy("", {}, [], function(can, name, cb) {
arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb)
}),
trigger: function(can, msg, name) {
can.core.List(can.onengine.listen.meta[name], function(cb) {
can.core.CallFunc(cb, {"msg": msg})
})
},
search: function(event, can, msg, pane, cmds, cb) { search: function(event, can, msg, pane, cmds, cb) {
var sub, mod = can, fun = can, key = ""; can.core.List(cmds[1].split("."), function(value) { var sub, mod = can, fun = can, key = ""; can.core.List(cmds[1].split("."), function(value) {
fun && (sub = mod, mod = fun, fun = mod[value], key = value) fun && (sub = mod, mod = fun, fun = mod[value], key = value)
@ -96,6 +105,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
"studio": {name: "研发 studio", action: [ "studio": {name: "研发 studio", action: [
{name: "route", help: "路由器", index: "web.route"}, {name: "route", help: "路由器", index: "web.route"},
{name: "tmux", help: "命令行", index: "web.code.tmux.session"}, {name: "tmux", help: "命令行", index: "web.code.tmux.session"},
{name: "inner", help: "编辑器", index: "web.code.inner", args: ["src/", "main.go"]},
{name: "vimer", help: "编辑器", index: "web.code.vimer", args: ["src/", "main.go"]}, {name: "vimer", help: "编辑器", index: "web.code.vimer", args: ["src/", "main.go"]},
{name: "repos", help: "代码库", index: "web.code.git.status"}, {name: "repos", help: "代码库", index: "web.code.git.status"},
{name: "total", help: "统计量", index: "web.code.git.total"}, {name: "total", help: "统计量", index: "web.code.git.total"},

View File

@ -74,10 +74,10 @@ Volcanos("core", {help: "核心模块",
var ls = func.toString(); ls = ls.split(")")[0], ls = ls.split("(")[1] var ls = func.toString(); ls = ls.split(")")[0], ls = ls.split("(")[1]
var echo = false var msg = args["msg"], echo = false
var list = []; this.List(ls.split(","), function(item) { var list = []; this.List(ls.split(","), function(item) { item = item.trim()
list.push(args[item.trim()]||args) list.push(args[item]||msg&&msg.Option(item)||args)
if (item == "cb") { echo = true} if (item == "cb") { echo = true }
}) })
var res = typeof func == "function" && func.apply(mod||this, list) var res = typeof func == "function" && func.apply(mod||this, list)

View File

@ -55,13 +55,16 @@ Volcanos("onengine", {help: "解析引擎", list: [],
}, },
}) })
Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg, list, cb, target) { Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg, list, cb, target) {
can.page.Cache(can.Conf(RIVER)+"."+can.Conf(STORM), can._output, can._output.scrollTop+1) can.onengine.listen(can, "storm.select", function(msg, river, storm) {
var river = can.Conf(RIVER, msg.Option(RIVER)), storm = can.Conf(STORM, msg.Option(STORM)) can.page.Cache(can.Conf(RIVER)+"."+can.Conf(STORM), can._output, can._output.scrollTop+1)
var position = can.Conf(ACTION, msg.Option(ACTION, can.page.Cache(river+"."+storm, can._output)||"")) can.Conf(RIVER, river), can.Conf(STORM, storm)
if (position) { can._output.scrollTo(0, position-1); return }
can.run({}, [river, storm], function(msg) { var position = can.page.Cache(river+"."+storm, can._output)
can.onimport._init(can, msg, list, cb, can._output) if (position) { can._output.scrollTo(0, position-1); return }
can.run({}, [river, storm], function(msg) {
can.onimport._init(can, msg, list, cb, can._output)
})
}) })
}, },
}) })

View File

@ -90,8 +90,12 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}) }) }) })
}, },
time: function(can, target) { target.innerHTML = can.base.Time(null, "%w %H:%M:%S") topic: function(can, topic) {
can._topic || can.user.Search(can, TOPIC) || can.user.Search(can, POD) || can.user.topic(can, can.base.isNight()? "black": "white") can.user.topic(can, topic || can._topic || can.user.Search(can, TOPIC) || can.user.Search(can, POD) || (can.base.isNight()? "black": "white"))
},
time: function(can, target) {
can.onimport.topic(can)
target.innerHTML = can.base.Time(null, "%w %H:%M:%S")
}, },
}) })
Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) { Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) {
@ -99,13 +103,15 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
can.onimport._init(can, msg, list, function(msg) { can.onimport._init(can, msg, list, function(msg) {
typeof cb == "function" && cb(msg) typeof cb == "function" && cb(msg)
can.run({}, ["search", "River.onaction._init"]) can.run({}, ["search", "River.onaction._init"])
can.run({}, ["search", "Action.onaction._init"])
can.run({}, ["search", "Footer.onaction._init"]) can.run({}, ["search", "Footer.onaction._init"])
}, can._output) }, can._output)
}) } }) }
can.user.topic(can, can.user.Search(can, TOPIC) || (can.user.Search(can, POD)||can.base.isNight() ? "black": "white")) can.onimport.topic(can)
can.user.isLocalFile? init(): can.run({}, ["check"], function(msg) { msg.Result()? init(): can.user.login(can, init) }) can.user.isLocalFile? init(): can.run({}, ["check"], function(msg) { msg.Result()? init(): can.user.login(can, init) })
}, },
title: function(event, can) { title: function(event, can) {
var args = {}; can.core.List([POD, TOPIC, TITLE], function(key) { var args = {}; can.core.List([POD, TOPIC, TITLE], function(key) {
var value = can.user.Search(can, key); value && (args[key] = value) var value = can.user.Search(can, key); value && (args[key] = value)

View File

@ -64,7 +64,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
}, },
action: function(event, can, river, storm) { action: function(event, can, river, storm) {
var msg = can.request(event, {river: can.Conf(RIVER, river), storm: can.Conf(STORM, storm)}) var msg = can.request(event, {river: can.Conf(RIVER, river), storm: can.Conf(STORM, storm)})
can.run(event, ["search", "Action.onaction._init"]) can.onengine.trigger(can, msg, "storm.select")
can.page.Select(can, can._output, "div.item.select", function(item) { can.page.Select(can, can._output, "div.item.select", function(item) {
can.page.ClassList.del(can, item, "select") can.page.ClassList.del(can, item, "select")