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) {
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)
@ -96,6 +105,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
"studio": {name: "研发 studio", action: [
{name: "route", help: "路由器", index: "web.route"},
{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: "repos", help: "代码库", index: "web.code.git.status"},
{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 echo = false
var list = []; this.List(ls.split(","), function(item) {
list.push(args[item.trim()]||args)
if (item == "cb") { echo = true}
var msg = args["msg"], echo = false
var list = []; this.List(ls.split(","), function(item) { item = item.trim()
list.push(args[item]||msg&&msg.Option(item)||args)
if (item == "cb") { echo = true }
})
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) {
can.page.Cache(can.Conf(RIVER)+"."+can.Conf(STORM), can._output, can._output.scrollTop+1)
var river = can.Conf(RIVER, msg.Option(RIVER)), storm = can.Conf(STORM, msg.Option(STORM))
var position = can.Conf(ACTION, msg.Option(ACTION, can.page.Cache(river+"."+storm, can._output)||""))
if (position) { can._output.scrollTo(0, position-1); return }
can.onengine.listen(can, "storm.select", function(msg, river, storm) {
can.page.Cache(can.Conf(RIVER)+"."+can.Conf(STORM), can._output, can._output.scrollTop+1)
can.Conf(RIVER, river), can.Conf(STORM, storm)
can.run({}, [river, storm], function(msg) {
can.onimport._init(can, msg, list, cb, can._output)
var position = can.page.Cache(river+"."+storm, 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")
can._topic || can.user.Search(can, TOPIC) || can.user.Search(can, POD) || can.user.topic(can, can.base.isNight()? "black": "white")
topic: function(can, topic) {
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) {
@ -99,13 +103,15 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
can.onimport._init(can, msg, list, function(msg) {
typeof cb == "function" && cb(msg)
can.run({}, ["search", "River.onaction._init"])
can.run({}, ["search", "Action.onaction._init"])
can.run({}, ["search", "Footer.onaction._init"])
}, 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) })
},
title: function(event, can) {
var args = {}; can.core.List([POD, TOPIC, TITLE], function(key) {
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) {
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.ClassList.del(can, item, "select")