mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt some
This commit is contained in:
parent
f3e14258a4
commit
b3bec1cfaa
11
frame.js
11
frame.js
@ -1,4 +1,3 @@
|
|||||||
_can_name = "/frame.js"
|
|
||||||
Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta, list, cb, target) {
|
Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta, list, cb, target) {
|
||||||
can.run = function(event, cmds, cb) { var msg = can.request(event); cmds = cmds||[]
|
can.run = function(event, cmds, cb) { var msg = can.request(event); cmds = cmds||[]
|
||||||
return (can.onengine[cmds[0]]||can.onengine._remote)(event, can, msg, can, cmds, cb)
|
return (can.onengine[cmds[0]]||can.onengine._remote)(event, can, msg, can, cmds, cb)
|
||||||
@ -15,6 +14,7 @@ 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)
|
||||||
|
|
||||||
can.onmotion.float.auto(can, panel._output)
|
can.onmotion.float.auto(can, panel._output)
|
||||||
|
panel.onkeypop._build(panel)
|
||||||
}, target)
|
}, target)
|
||||||
}, function() { can.misc.Log(can.user.title(), cli.RUN, can)
|
}, function() { can.misc.Log(can.user.title(), cli.RUN, can)
|
||||||
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)
|
||||||
@ -308,7 +308,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
var input = meta.action||kit.MDB_KEY; input != "auto" && can.require(["/plugin/input/"+input+".js"], function(can) {
|
var input = meta.action||kit.MDB_KEY; input != "auto" && can.require(["/plugin/input/"+input+".js"], function(can) {
|
||||||
can.core.Item(can.onfigure[input], function(key, on) { if (key.indexOf("on") != 0) { return }
|
can.core.Item(can.onfigure[input], function(key, on) { if (key.indexOf("on") != 0) { return }
|
||||||
target[key] = function(event) {
|
target[key] = function(event) {
|
||||||
can.onappend._init(can, {type: html.INPUT, name: input, pos: html.FLOAT}, [], function(sub) { sub.Conf(meta)
|
can.onappend._init(can, {type: html.INPUT, name: input, pos: chat.FLOAT}, [], function(sub) { sub.Conf(meta)
|
||||||
sub.run = function(event, cmds, cb) { var msg = sub.request(event, can.Option());
|
sub.run = function(event, cmds, cb) { var msg = sub.request(event, can.Option());
|
||||||
(meta.run||can.run)(event, cmds, cb, true)
|
(meta.run||can.run)(event, cmds, cb, true)
|
||||||
}
|
}
|
||||||
@ -619,10 +619,9 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onkeypop", {help: "键盘交互", list: [], _focus: [], _init: function(can, target) {
|
Volcanos("onkeypop", {help: "键盘交互", list: [], _focus: [], _init: function(can, target) {
|
||||||
var focus = can.onkeypop._focus
|
var focus = can.onkeypop._focus; can.onkeypop._build(can)
|
||||||
// can.onengine.listen(can, "keymap.focus", function(cb) { cb? focus.push(cb): focus.pop() })
|
// can.onengine.listen(can, "keymap.focus", function(cb) { cb? focus.push(cb): focus.pop() })
|
||||||
can.onengine.listen(can, "keymap.focus", function(cb) { cb? focus.push(cb): can.onkeypop._focus.length = 0 })
|
can.onengine.listen(can, "keymap.focus", function(cb) { cb? focus.push(cb): can.onkeypop._focus.length = 0 })
|
||||||
can.onkeypop._build(can)
|
|
||||||
target.onkeydown = function(event) { if (focus.length > 0) { return focus[focus.length-1](event) }
|
target.onkeydown = function(event) { if (focus.length > 0) { return focus[focus.length-1](event) }
|
||||||
event.target == target && can.page.Select(can, target, "fieldset.Action>div.output", function(item) {
|
event.target == target && can.page.Select(can, target, "fieldset.Action>div.output", function(item) {
|
||||||
target._keys = can.onkeypop._parse(event, can, "normal", target._keys||[], item)
|
target._keys = can.onkeypop._parse(event, can, "normal", target._keys||[], item)
|
||||||
@ -649,9 +648,6 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _focus: [], _init: functio
|
|||||||
}
|
}
|
||||||
|
|
||||||
var map = can.onkeypop._mode[mode]
|
var map = can.onkeypop._mode[mode]
|
||||||
var cb = map && map[event.key]; if (can.base.isFunc(cb) && event.key.length > 1) {
|
|
||||||
repeat(cb, count); return list
|
|
||||||
}
|
|
||||||
var cb = map && map[event.key.toLowerCase()]; if (can.base.isFunc(cb) && event.key.length > 1) {
|
var cb = map && map[event.key.toLowerCase()]; if (can.base.isFunc(cb) && event.key.length > 1) {
|
||||||
repeat(cb, count); return list
|
repeat(cb, count); return list
|
||||||
}
|
}
|
||||||
@ -776,4 +772,3 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _focus: [], _init: functio
|
|||||||
target.setSelectionRange(start, start)
|
target.setSelectionRange(start, start)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
_can_name = ""
|
|
||||||
|
@ -64,6 +64,7 @@ Volcanos("user", {help: "用户操作", agent: {
|
|||||||
"list": "查看", "back": "返回",
|
"list": "查看", "back": "返回",
|
||||||
"run": "执行", "refresh": "刷新",
|
"run": "执行", "refresh": "刷新",
|
||||||
"share": "共享", "clear": "清空",
|
"share": "共享", "clear": "清空",
|
||||||
|
"done": "完成",
|
||||||
}[text] || text
|
}[text] || text
|
||||||
},
|
},
|
||||||
toast: function(can, content, title, duration, progress) {
|
toast: function(can, content, title, duration, progress) {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Volcanos({name: "chat", panels: [
|
Volcanos({name: "chat", panels: [
|
||||||
{name: "Header", help: "标题栏", pos: "head", state: ["time", "username", "avatar"]},
|
{name: "Header", help: "标题栏", pos: chat.HEAD, state: ["time", "username", "avatar"]},
|
||||||
{name: "Search", help: "搜索框", pos: "auto"},
|
{name: "Search", help: "搜索框", pos: chat.AUTO},
|
||||||
{name: "River", help: "群聊组", pos: "left", action: ["create", "refresh"]},
|
{name: "River", help: "群聊组", pos: chat.LEFT, action: ["create", "refresh"]},
|
||||||
{name: "Action", help: "工作台", pos: "main"},
|
{name: "Action", help: "工作台", pos: chat.MAIN},
|
||||||
{name: "Footer", help: "状态条", pos: "foot", state: ["ncmd"]},
|
{name: "Footer", help: "状态条", pos: chat.FOOT, state: ["ncmd"]},
|
||||||
], main: {name: "Header", list: ["/publish/order.js"]}, plugin: [
|
], main: {name: "Header", list: ["/publish/order.js"]}, plugin: [
|
||||||
"/plugin/state.js",
|
"/plugin/state.js",
|
||||||
"/plugin/input.js",
|
"/plugin/input.js",
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg) {
|
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg) {
|
||||||
var river = can.Conf(chat.RIVER), storm = can.Conf(chat.STORM)
|
var river = can.Conf(chat.RIVER), storm = can.Conf(chat.STORM)
|
||||||
can.onmotion.clear(can), can.core.Next(msg.Table(), function(item, next) {
|
can.onmotion.clear(can), can.core.Next(msg.Table(), function(item, next) { item.type = chat.PLUGIN
|
||||||
item.width = parseInt(can.Conf(chat.WIDTH))-40, item.height = parseInt(can.Conf(chat.HEIGHT))-40
|
item.height = parseInt(can.Conf(chat.HEIGHT))-40, item.width = parseInt(can.Conf(chat.WIDTH))-40
|
||||||
item.feature = can.base.Obj(item.feature||item.meta)
|
item.feature = can.base.Obj(item.feature||item.meta)
|
||||||
item.inputs = can.base.Obj(item.inputs||item.list)
|
item.inputs = can.base.Obj(item.inputs||item.list)
|
||||||
item.type = mdb.PLUGIN
|
|
||||||
|
|
||||||
can.onappend.plugin(can, item, function(sub, meta) {
|
can.onappend.plugin(can, item, function(sub, meta) {
|
||||||
can.onimport._plugin(can, river, storm, sub, meta), next()
|
can.onimport._plugin(can, river, storm, sub, meta), next()
|
||||||
@ -14,7 +13,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
|||||||
!can.user.isMobile && can.onimport._menu(can, msg)
|
!can.user.isMobile && can.onimport._menu(can, msg)
|
||||||
})
|
})
|
||||||
|
|
||||||
can.onmotion.float.auto(can, can._output, "carte")
|
can.onmotion.float.auto(can, can._output, chat.CARTE)
|
||||||
},
|
},
|
||||||
_plugin: function(can, river, storm, sub, meta) {
|
_plugin: function(can, river, storm, sub, meta) {
|
||||||
sub.run = function(event, cmds, cb) { var msg = sub.request(event); cmds = cmds||[]
|
sub.run = function(event, cmds, cb) { var msg = sub.request(event); cmds = cmds||[]
|
||||||
@ -24,21 +23,20 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
|||||||
})
|
})
|
||||||
}, can._plugins = (can._plugins||[]).concat([sub])
|
}, can._plugins = (can._plugins||[]).concat([sub])
|
||||||
|
|
||||||
can.page.Append(can, can._action, [{view: ["item", "div", meta.name], onclick: function(event) {
|
can.page.Append(can, can._action, [{view: [html.ITEM, html.DIV, meta.name], onclick: function(event) {
|
||||||
can.onmotion.select(can, can._output, "fieldset.plugin", sub._target)
|
can.onmotion.select(can, can._output, "fieldset.plugin", sub._target)
|
||||||
can.onmotion.select(can, can._action, "div.item", event.target)
|
can.onmotion.select(can, can._action, "div.item", event.target)
|
||||||
}}])
|
}}])
|
||||||
|
|
||||||
can.page.Modify(can, sub._output, {style: {"max-width": meta.width}})
|
can.page.Modify(can, sub._output, {style: {"max-width": meta.width}})
|
||||||
|
|
||||||
sub._option.dataset = sub._option.dataset || {}
|
sub._option.dataset = sub._option.dataset||{}
|
||||||
meta.id && (sub._option.dataset.id = meta.id)
|
meta.id && (sub._option.dataset.id = meta.id)
|
||||||
sub._target.Meta = meta
|
sub._target.Meta = meta
|
||||||
},
|
},
|
||||||
_menu: function(can, msg) {
|
_menu: function(can, msg) {
|
||||||
if (can.user.isMobile || can.user.Search(can, cli.POD)) {
|
if (can.user.isMobile || can.user.Search(can, cli.POD)) { return }
|
||||||
return
|
|
||||||
}
|
|
||||||
can._menu && can.page.Remove(can, can._menu)
|
can._menu && can.page.Remove(can, can._menu)
|
||||||
can._menu = can.search({}, ["Header.onimport.menu", ctx.ACTION].concat(
|
can._menu = can.search({}, ["Header.onimport.menu", ctx.ACTION].concat(
|
||||||
can.base.Obj(msg.Option("menus"), [
|
can.base.Obj(msg.Option("menus"), [
|
||||||
@ -46,28 +44,23 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
|||||||
["help", "tutor", "manual", "service", "devops", "refer"],
|
["help", "tutor", "manual", "service", "devops", "refer"],
|
||||||
])
|
])
|
||||||
), function(event, button, list) {
|
), function(event, button, list) {
|
||||||
if (list[0] == "help") {
|
list[0] == "help"? can.user.open("/help/"+button+".shy"): can.onaction.layout(can, button)
|
||||||
can.user.open("/help/"+button+".shy")
|
|
||||||
} else {
|
|
||||||
can.onaction.layout(can, button)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_share: function(can, share) {
|
_share: function(can, share) {
|
||||||
share && can.run({}, ["_share", share], function(msg) {
|
share && can.run({}, ["_share", share], function(msg) {
|
||||||
can.user.topic(can, can.user.Search(can, chat.TOPIC)||msg.Option(chat.TOPIC)||"white")
|
can.user.topic(can, can.user.Search(can, chat.TOPIC)||msg.Option(chat.TOPIC))
|
||||||
can.user.title(can.user.Search(can, chat.TITLE)||msg.Option(chat.TITLE))
|
can.user.title(can.user.Search(can, chat.TITLE)||msg.Option(chat.TITLE))
|
||||||
can.onaction.layout(can, "auto")
|
can.onaction.layout(can, "auto")
|
||||||
|
|
||||||
if (msg["index"].length == 1) { can.user.mod.isCmd = true
|
if (msg[kit.MDB_INDEX].length == 1) { can.require(["/panel/cmd.css"])
|
||||||
can.page.ClassList.add(can, can._target, "cmd")
|
can.user.mod.isCmd = true, can.page.ClassList.add(can, can._target, "cmd")
|
||||||
can.require(["/panel/cmd.css"])
|
|
||||||
can.page.Select(can, document.body, "fieldset.panel", function(item) {
|
can.page.Select(can, document.body, "fieldset.panel", function(item) {
|
||||||
item != can._target && can.onmotion.hidden(can, item)
|
item != can._target && can.onmotion.hidden(can, item)
|
||||||
})
|
})
|
||||||
can.Conf({width: window.innerWidth+40, height: window.innerHeight})
|
can.Conf({height: window.innerHeight, width: window.innerWidth+40})
|
||||||
} else {
|
} else {
|
||||||
can.Conf({width: window.innerWidth, height: window.innerHeight})
|
can.Conf({height: window.innerHeight, width: window.innerWidth})
|
||||||
}
|
}
|
||||||
can.Conf(chat.RIVER, "_share"), can.Conf(chat.STORM, share)
|
can.Conf(chat.RIVER, "_share"), can.Conf(chat.STORM, share)
|
||||||
can.onimport._init(can, msg)
|
can.onimport._init(can, msg)
|
||||||
@ -102,13 +95,9 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
|||||||
can.base.isFunc(cb) && cb()
|
can.base.isFunc(cb) && cb()
|
||||||
},
|
},
|
||||||
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] == cli.CMD) {
|
||||||
if (cmds[0] == cli.CMD) {
|
can.onappend.plugin(can, {index: cmds[1]}, function(sub) { sub.run = function(event, cmds, cb) {} })
|
||||||
can.onappend.plugin(can, {index: cmds[1]}, function(sub, meta) {
|
|
||||||
sub.run = function(event, cmds, cb) {}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
can.onimport._share(can, can.user.Search(can, web.SHARE))
|
can.onimport._share(can, can.user.Search(can, web.SHARE))
|
||||||
},
|
},
|
||||||
onsize: function(can, msg, width, height) { can.Conf({width: width, height: height}) },
|
onsize: function(can, msg, width, height) { can.Conf({width: width, height: height}) },
|
||||||
|
@ -6,14 +6,14 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.onimport._toast(can, msg, target)
|
can.onimport._toast(can, msg, target)
|
||||||
can.base.isFunc(cb) && cb(msg)
|
can.base.isFunc(cb) && cb(msg)
|
||||||
},
|
},
|
||||||
_title: function(can, msg, target) { const TITLE = chat.TITLE
|
_title: function(can, msg, target) {
|
||||||
!can.user.isMobile && can.core.List(msg.result, function(item) {
|
!can.user.isMobile && can.core.List(msg.result, function(item) {
|
||||||
can.page.Append(can, target, [{view: [TITLE, html.DIV, item], title: "联系站长"}])
|
can.page.Append(can, target, [{view: [chat.TITLE, html.DIV, item], title: "联系站长"}])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_state: function(can, msg, target) { const STATE = "state"
|
_state: function(can, msg, target) {
|
||||||
can.core.List(can.base.Obj(can.Conf(STATE)||msg.Option(STATE), ["ncmd"]), function(item) {
|
can.core.List(can.base.Obj(msg.Option(chat.STATE)||can.Conf(chat.STATE), ["ncmd"]), function(item) {
|
||||||
can.page.Append(can, target, [{view: [STATE+" "+item, html.DIV, can.Conf(item)], list: [
|
can.page.Append(can, target, [{view: [can.base.join([chat.STATE, item]), html.DIV, can.Conf(item)], list: [
|
||||||
{text: [item, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [can.Conf(item)||"", html.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.onaction._cmd(can)
|
can.show = can.show? (can.page.Remove(can, can.show), null): can.onaction._cmd(can)
|
||||||
@ -22,7 +22,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
_toast: function(can, msg, target) {
|
_toast: function(can, msg, target) {
|
||||||
can.toast = can.page.Append(can, target, [{view: "toast", onclick: function(event) {
|
can.toast = can.page.Append(can, target, [{view: chat.TOAST, onclick: function(event) {
|
||||||
can.show = can.show? (can.page.Remove(can, can.show), null): can.onappend.float(can, can._toast).first
|
can.show = can.show? (can.page.Remove(can, can.show), null): can.onappend.float(can, can._toast).first
|
||||||
can.page.Modify(can, can.show, {style: {left: "", top: "", right: 0, bottom: 32}})
|
can.page.Modify(can, can.show, {style: {left: "", top: "", right: 0, bottom: 32}})
|
||||||
}}]).first
|
}}]).first
|
||||||
@ -31,10 +31,10 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.page.Append(can, target, [{input: ["cmd", function(event) {
|
can.page.Append(can, target, [{input: ["cmd", function(event) {
|
||||||
can.onkeypop.input(event, can); if (event.key != "Enter") { return }
|
can.onkeypop.input(event, can); if (event.key != "Enter") { return }
|
||||||
switch (event.target.value) {
|
switch (event.target.value) {
|
||||||
case "close": can.cli && can.cli.close(); break
|
case cli.CLOSE: can.cli && can.cli.close(); break
|
||||||
case "clear": can.cli && can.cli.close(); break
|
case cli.CLEAR: can.cli && can.cli.close(); break
|
||||||
default:
|
default:
|
||||||
can.run(event, [cli.RUN].concat(can.core.Split(event.target.value+" ")), function(msg) {
|
can.run(event, [cli.RUN].concat(can.core.Split(event.target.value, ice.SP)), function(msg) {
|
||||||
can.cli && can.cli.close()
|
can.cli && can.cli.close()
|
||||||
can.cli = can.onappend.float(can, msg, function(value, key, index, line, list) {
|
can.cli = can.onappend.float(can, msg, function(value, key, index, line, list) {
|
||||||
|
|
||||||
@ -44,8 +44,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
}]}])
|
}]}])
|
||||||
},
|
},
|
||||||
|
|
||||||
toast: function(can, msg, title, content, fileline, time) { can._toast = can._toast || can.request()
|
toast: function(can, msg, title, content, fileline, time) { can._toast = can._toast||can.request()
|
||||||
can.page.Modify(can, can.toast, [time.split(" ").pop(), title, content].join(" "))
|
can.page.Modify(can, can.toast, [time.split(ice.SP).pop(), title, content].join(ice.SP))
|
||||||
can._toast.Push({time: time, fileline: fileline, title: title, content: content})
|
can._toast.Push({time: time, fileline: fileline, title: title, content: content})
|
||||||
},
|
},
|
||||||
ncmd: function(can, msg, follow, cmds) { const NCMD = "ncmd"; can._cmds = can._cmds || can.request()
|
ncmd: function(can, msg, follow, cmds) { const NCMD = "ncmd"; can._cmds = can._cmds || can.request()
|
||||||
@ -73,15 +73,15 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
can.search({}, ["Action.onexport.size"], function(msg, top, left, width, height) {
|
can.search({}, ["Action.onexport.size"], function(msg, top, left, width, height) {
|
||||||
can.onappend.plugin(can, {index: cmds[0], args: cmds.slice(1), width: width, height: height-100}, function(sub) {
|
can.onappend.plugin(can, {index: cmds[0], args: cmds.slice(1), height: height-100, width: width}, function(sub) {
|
||||||
sub.run = function(event, cmds, cb) {
|
sub.run = function(event, cmds, cb) {
|
||||||
can.run(event, can.misc.Concat([ctx.ACTION, cli.RUN, cmds[0]], cmds), cb)
|
can.run(event, can.misc.Concat([ctx.ACTION, cli.RUN, cmds[0]], cmds), cb)
|
||||||
}
|
}
|
||||||
|
|
||||||
can.page.Modify(can, sub._output, {style: {"max-width": width}})
|
|
||||||
can.page.Modify(can, sub._target, {style: {top: top+100, left: left}})
|
can.page.Modify(can, sub._target, {style: {top: top+100, left: left}})
|
||||||
can.page.Modify(can, sub._legend, {style: {display: "block"}})
|
can.page.Modify(can, sub._legend, {style: {display: html.BLOCK}})
|
||||||
can.page.ClassList.add(can, sub._target, "float")
|
can.page.Modify(can, sub._output, {style: {"max-width": width}})
|
||||||
|
can.page.ClassList.add(can, sub._target, chat.FLOAT)
|
||||||
}, document.body)
|
}, document.body)
|
||||||
})
|
})
|
||||||
}).first
|
}).first
|
||||||
|
@ -19,7 +19,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, cli.POD)) {
|
} else if (can.user.Search(can, ice.POD)) {
|
||||||
can.onaction.River(can)
|
can.onaction.River(can)
|
||||||
can.onaction.Footer(can)
|
can.onaction.Footer(can)
|
||||||
}
|
}
|
||||||
@ -33,32 +33,32 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.user.Search(can, chat.GRANT, "")
|
can.user.Search(can, chat.GRANT, "")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_title: function(can, msg, target) { const TITLE = chat.TITLE
|
_title: function(can, msg, target) {
|
||||||
can.user.title(can.user.Search(can, TITLE)||can.user.Search(can, cli.POD))
|
can.user.title(can.user.Search(can, chat.TITLE)||can.user.Search(can, cli.POD))
|
||||||
!can.user.isMobile && can.core.List(msg.result||["shylinux.com/x/contexts"], function(item) {
|
!can.user.isMobile && can.core.List(msg.result||["shylinux.com/x/contexts"], function(item) {
|
||||||
can.page.Append(can, target, [{view: [TITLE, html.DIV, item], title: "返回主页", onclick: function(event) {
|
can.page.Append(can, target, [{view: [chat.TITLE, html.DIV, item], title: "返回主页", onclick: function(event) {
|
||||||
can.onaction.title(event, can)
|
can.onaction.title(event, can)
|
||||||
}}])
|
}}])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_state: function(can, msg, target) { const STATE = "state"
|
_state: function(can, msg, target) {
|
||||||
can.core.List(can.base.Obj(can.Conf(STATE)||msg.Option(STATE), [kit.MDB_TIME, aaa.USERNAME]), function(item) {
|
can.core.List(can.base.Obj(msg.Option(chat.STATE)||can.Conf(chat.STATE), [kit.MDB_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: can.base.join([chat.STATE, item]), list: [{img: can.Conf(item)||ice.SP}], onmouseenter: function(event) {
|
||||||
can.onaction.carte(event, can, [can.page.Format(html.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, html.DIV, (can.Conf(item)||"").slice(0, 10)], onmouseenter: function(event) {
|
can.page.Append(can, target, [{view: [can.base.join([chat.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 == kit.MDB_TIME && can.onimport._time(can, target)
|
item == kit.MDB_TIME && can.onimport._time(can, target)
|
||||||
}}])
|
}}])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_search: function(can, msg, target) { const SEARCH = "search"
|
_search: function(can, msg, target) {
|
||||||
var ui = can.page.Append(can, target, [{view: SEARCH, list: [{type: "input", data: {type: "text", placeholder: SEARCH}, onkeydown: function(event) {
|
var ui = can.page.Append(can, target, [{view: mdb.SEARCH, list: [{type: html.INPUT, data: {type: html.TEXT, placeholder: mdb.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
|
||||||
}
|
}
|
||||||
@ -66,12 +66,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.user.isMobile && can.page.Modify(can, ui.first, {style: {float: "right"}})
|
can.user.isMobile && can.page.Modify(can, ui.first, {style: {float: "right"}})
|
||||||
},
|
},
|
||||||
_background: function(can, msg) {
|
_background: function(can, msg) {
|
||||||
if (can.user.isLocalFile) { return }
|
if (can.user.isExtension || can.user.isLocalFile) { return }
|
||||||
if (can.user.isExtension) { return }
|
|
||||||
can.onlayout.background(can, msg.Option(aaa.BACKGROUND), document.body)
|
can.onlayout.background(can, msg.Option(aaa.BACKGROUND), document.body)
|
||||||
},
|
},
|
||||||
_menus: function(can, msg, target) {
|
_menus: function(can, msg, target) {
|
||||||
var menus = can.base.Obj(can.Conf(chat.MENUS)||msg.Option(chat.MENUS), [chat.HEADER, ["setting", "black", "white", "print"]])
|
var menus = can.base.Obj(msg.Option(chat.MENUS)||can.Conf(chat.MENUS), [chat.HEADER, ["setting", chat.BLACK, chat.WHITE, chat.PRINT]])
|
||||||
can.onimport.menu(can, can.user.isMobile||can.user.isExtension||can.user.Search(can, cli.POD)? [chat.HEADER, chat.RIVER]: menus, function(event, item) {
|
can.onimport.menu(can, can.user.isMobile||can.user.isExtension||can.user.Search(can, cli.POD)? [chat.HEADER, chat.RIVER]: menus, function(event, item) {
|
||||||
can.core.CallFunc(can.onaction[item]||function(event, can) {
|
can.core.CallFunc(can.onaction[item]||function(event, can) {
|
||||||
can.run(event, [item], function(msg) { can.user.toast(can, "执行成功", can.user.trans(can, item)) })
|
can.run(event, [item], function(msg) { can.user.toast(can, "执行成功", can.user.trans(can, item)) })
|
||||||
@ -81,7 +80,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
|
|
||||||
_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(ssh.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") == ice.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"),
|
||||||
|
|
||||||
@ -122,19 +121,19 @@ 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 (can.base.isString(item)) {
|
||||||
return {view: ["menu", html.DIV, can.user.trans(can, item)], onclick: function(event) {
|
return {view: [html.MENU, html.DIV, can.user.trans(can, item)], onclick: function(event) {
|
||||||
can.base.isFunc(cb) && cb(event, item, cmds)
|
can.base.isFunc(cb) && cb(event, item, cmds)
|
||||||
}}
|
}}
|
||||||
|
|
||||||
} else if (item.length > 0) {
|
} else if (item.length > 0) {
|
||||||
return {view: ["menu", html.DIV, can.user.trans(can, item[0])], onmouseenter: function(event) {
|
return {view: [html.MENU, html.DIV, can.user.trans(can, item[0])], onmouseenter: function(event) {
|
||||||
can.onaction.carte(event, can, item.slice(1), function(event, button) {
|
can.onaction.carte(event, can, item.slice(1), function(event, button) {
|
||||||
can.base.isFunc(cb) && cb(event, button, item)
|
can.base.isFunc(cb) && cb(event, button, item)
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
|
|
||||||
} else if (typeof item == "object") {
|
} else if (can.base.isObject(item)) {
|
||||||
return item
|
return item
|
||||||
}
|
}
|
||||||
}) }]).first
|
}) }]).first
|
||||||
@ -156,7 +155,6 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, meta,
|
|||||||
_trans: {
|
_trans: {
|
||||||
"river": "菜单",
|
"river": "菜单",
|
||||||
"search": "搜索",
|
"search": "搜索",
|
||||||
|
|
||||||
"create": "创建",
|
"create": "创建",
|
||||||
"share": "共享",
|
"share": "共享",
|
||||||
|
|
||||||
@ -173,12 +171,14 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, meta,
|
|||||||
"print": "打印主题",
|
"print": "打印主题",
|
||||||
|
|
||||||
"shareuser": "共享用户",
|
"shareuser": "共享用户",
|
||||||
|
"language": "语言",
|
||||||
|
"chinese": "中文",
|
||||||
"clear": "清除背景",
|
"clear": "清除背景",
|
||||||
},
|
},
|
||||||
onmain: function(can, msg) {
|
onmain: function(can, msg) {
|
||||||
function init() { can.run({}, [], function(msg) {
|
function init() { can.run({}, [], function(msg) {
|
||||||
can.base.Copy(can.onaction._trans, can.base.Obj(msg.Option(chat.TRANS), {}))
|
can.base.Copy(can.onaction._trans, can.base.Obj(msg.Option(chat.TRANS), {}))
|
||||||
can.onimport._init(can, msg, [], function(msg) { can.onengine.signal(can, "onlogin", msg) }, can._output)
|
can.onimport._init(can, msg, [], function(msg) { can.onengine.signal(can, chat.ONLOGIN, msg) }, can._output)
|
||||||
|
|
||||||
can.search({}, ["River.onmotion.toggle"])
|
can.search({}, ["River.onmotion.toggle"])
|
||||||
}) }; can.search({}, ["River.onmotion.hidden"])
|
}) }; can.search({}, ["River.onmotion.hidden"])
|
||||||
@ -186,7 +186,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, meta,
|
|||||||
// 登录检查
|
// 登录检查
|
||||||
can.user.isLocalFile? init(): can.run({}, [chat.CHECK], function(msg) {
|
can.user.isLocalFile? init(): can.run({}, [chat.CHECK], function(msg) {
|
||||||
can.Conf(aaa.USERNAME, msg.Option(ice.MSG_USERNAME))? init():
|
can.Conf(aaa.USERNAME, msg.Option(ice.MSG_USERNAME))? init():
|
||||||
msg.Option("sso")? can.user.jumps(msg.Option("sso")): can.user.login(can, init, msg.Option("login"))
|
msg.Option(chat.SSO)? can.user.jumps(msg.Option(chat.SSO)): can.user.login(can, init, msg.Option(aaa.LOGIN))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
onstorm_select: function(can, msg, river, storm) {
|
onstorm_select: function(can, msg, river, storm) {
|
||||||
@ -194,34 +194,22 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, meta,
|
|||||||
},
|
},
|
||||||
|
|
||||||
title: function(event, can) {
|
title: function(event, can) {
|
||||||
var args = {}; can.core.List([chat.TITLE, chat.TOPIC, "layout"], function(key) {
|
var args = {}; can.core.List([chat.TITLE, chat.TOPIC, chat.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))
|
||||||
},
|
},
|
||||||
carte: function(event, can, list, cb) { can.user.carte(event, can, can.onaction, list, cb) },
|
|
||||||
river: function(event, can) { can.onaction.River(can) },
|
river: function(event, can) { can.onaction.River(can) },
|
||||||
|
|
||||||
black: function(event, can, button) {
|
black: function(event, can, button) { can.onlayout.topic(can, button), can.onlayout._init(can) },
|
||||||
can.onlayout.topic(can, button)
|
white: function(event, can, button) { can.onlayout.topic(can, button), can.onlayout._init(can) },
|
||||||
can.onlayout._init(can)
|
print: function(event, can, button) { can.onlayout.topic(can, can.base.join([chat.WHITE, button]))
|
||||||
},
|
can.set("River", chat.HEIGHT, -1), can.set("Action", chat.HEIGHT, -1)
|
||||||
white: function(event, can, button) {
|
|
||||||
can.onlayout.topic(can, button)
|
|
||||||
can.onlayout._init(can)
|
|
||||||
},
|
|
||||||
print: function(event, can, button) {
|
|
||||||
can.onlayout.topic(can, "white print")
|
|
||||||
|
|
||||||
can.set("River", "height", -1)
|
|
||||||
can.set("Action", "height", -1)
|
|
||||||
},
|
},
|
||||||
webpack: function(event, can) {
|
webpack: function(event, can) {
|
||||||
can.user.input(event, can, [
|
can.user.input(event, can, [{name: kit.MDB_NAME, value: can.user.title()}], function(ev, button, meta, list) {
|
||||||
{name: "name", value: can.user.title()},
|
|
||||||
], function(ev, button, meta, list) {
|
|
||||||
can.core.Item(Volcanos.meta.pack, function(key, msg) {
|
can.core.Item(Volcanos.meta.pack, function(key, msg) {
|
||||||
can.core.List(["_event", "_can", "_xhr", "sessid", ""], function(key) { delete(msg[key]) })
|
can.core.List(["_event", "_can", "_xhr", ice.MSG_SESSID, ""], function(key) { delete(msg[key]) })
|
||||||
})
|
})
|
||||||
var msg = can.request(event, {
|
var msg = can.request(event, {
|
||||||
name: meta.name, content: JSON.stringify(Volcanos.meta.pack),
|
name: meta.name, content: JSON.stringify(Volcanos.meta.pack),
|
||||||
@ -236,34 +224,26 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, meta,
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
carte: function(event, can, list, cb) { can.user.carte(event, can, can.onaction, list, cb) },
|
||||||
|
share: function(event, can, arg) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE].concat(arg||[])) },
|
||||||
|
|
||||||
username: function(event, can) {
|
username: function(event, can) {
|
||||||
can.onaction.carte(event, can, ["shareuser", aaa.USERNICK, "clear", aaa.LOGOUT, "english", "chinese"])
|
can.onaction.carte(event, can, ["shareuser", aaa.USERNICK, [aaa.LANGUAGE, aaa.ENGLISH, aaa.CHINESE], "clear", aaa.LOGOUT])
|
||||||
},
|
|
||||||
english: function(event, can) {
|
|
||||||
can.user.Search(can, "language", "en")
|
|
||||||
},
|
|
||||||
chinese: function(event, can) {
|
|
||||||
can.user.Search(can, "language", "zh")
|
|
||||||
},
|
|
||||||
shareuser: function(event, can) {
|
|
||||||
can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE, kit.MDB_TYPE, aaa.LOGIN])
|
|
||||||
},
|
|
||||||
share: function(event, can, arg) {
|
|
||||||
can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE].concat(arg||[]))
|
|
||||||
},
|
},
|
||||||
|
shareuser: function(event, can) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE, kit.MDB_TYPE, aaa.LOGIN]) },
|
||||||
usernick: function(event, can) {
|
usernick: function(event, can) {
|
||||||
can.user.input(event, can, [{name: aaa.USERNICK, value: can.Conf(aaa.USERNAME)}], function(ev, button, data, list, args) {
|
can.user.input(event, can, [{name: aaa.USERNICK, value: can.Conf(aaa.USERNAME)}], function(ev, button, data, list, args) {
|
||||||
can.run(event, [aaa.USERNICK, list[0]], function(msg) {
|
can.run(event, [aaa.USERNICK, list[0]], function(msg) {
|
||||||
can.page.Select(can, can._output, "div.username", function(item) {
|
can.page.Select(can, can._output, can.base.Keys(html.DIV, aaa.USERNAME), function(item) {
|
||||||
can.page.Modify(can, item, can.Conf(aaa.USERNAME, list[0]))
|
can.page.Modify(can, item, can.Conf(aaa.USERNAME, list[0]))
|
||||||
}), can.user.toast(can, "修改成功")
|
}), can.user.toast(can, "修改成功")
|
||||||
}, true)
|
}, true)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
clear: function(event, can, button) {
|
english: function(event, can) { can.user.Search(can, aaa.LANGUAGE, "en") },
|
||||||
can.onimport.background(event, can, "")
|
chinese: function(event, can) { can.user.Search(can, aaa.LANGUAGE, "zh") },
|
||||||
can.onimport.avatar(event, can, "")
|
clear: function(event, can, button) { can.onimport.background(event, can, ""), can.onimport.avatar(event, can, "") },
|
||||||
},
|
|
||||||
logout: function(event, can) { can.user.logout(can) },
|
logout: function(event, can) { can.user.logout(can) },
|
||||||
|
|
||||||
River: function(can) { can.search({}, ["River.onmotion.toggle"]) },
|
River: function(can) { can.search({}, ["River.onmotion.toggle"]) },
|
||||||
|
@ -1,28 +1,30 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
can.onmotion.clear(can, can.ui.content)
|
can.list = msg.Table(), can.onmotion.clear(can, can.ui.content)
|
||||||
var table = can.onappend.table(can, msg, function(value, key, index, line, array) { can.Status("count", index+1)
|
var table = can.onappend.table(can, msg, function(value, key, index, line, array) { can.Status(kit.MDB_TOTAL, index+1)
|
||||||
return {text: [key == "text" && can.base.isFunc(line.text) && line.text.help || value, "td"], onclick: function(event) {
|
return {text: [key == kit.MDB_TEXT && can.base.isFunc(line.text) && line.text.help || value, html.TD], onclick: function(event) {
|
||||||
can.onaction[can.type == "*"||event.ctrlKey? "plugin": "select"](event, can, index)
|
can.onaction[can.type == "*"||event.ctrlKey? chat.PLUGIN: mdb.SELECT](event, can, index)
|
||||||
}}
|
}}
|
||||||
}, can.ui.content, can.core.List((msg.Option("sort")||"ctx,cmd,type,name,text").split(","), function(item) {
|
}, can.ui.content, can.core.List((msg.Option("sort")||"ctx,cmd,type,name,text").split(","), function(item) {
|
||||||
return list.indexOf(item)
|
return list.indexOf(item)
|
||||||
})); table && can.page.Modify(can, can.ui.display, {style: {width: table.offsetWidth}})
|
})); table && can.page.Modify(can, can.ui.display, {style: {width: table.offsetWidth}})
|
||||||
|
|
||||||
if (msg.Length() == 1) {
|
msg.Length() == 1 && can.page.Select(can, table, html.TD)[0].click()
|
||||||
can.page.Select(can, table, "td")[0].click()
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
_word: function(can, msg, cmds, fields) { can.type = cmds[0]
|
_word: function(can, msg, cmds, fields) { can.type = cmds[0]
|
||||||
var res = can.request({}, {word: cmds, fields: fields.join(","), sort: msg.Option("sort"), index: msg.Option("index"), river: msg.Option("river")})
|
var cb = can.onaction[cmds[1]]; if (cb) { cb({}, can); return }
|
||||||
|
|
||||||
if (cmds[1] == "clear") { can.onaction["清空"]({}, can); return }
|
var res = can.request({}, {
|
||||||
can.onengine.signal(can, "onsearch", res)
|
word: cmds,
|
||||||
can.run(res._event, cmds, function(res) {
|
fields: fields.join(","),
|
||||||
can.list = res.Table()
|
sort: msg.Option("sort"),
|
||||||
can.onimport._init(can, res, fields)
|
index: msg.Option("index"),
|
||||||
}), can.ui.word.setSelectionRange(0, -1)
|
river: msg.Option("river"),
|
||||||
|
})
|
||||||
|
|
||||||
|
can.onengine.signal(can, chat.ONSEARCH, res)
|
||||||
|
can.run(res._event, cmds, function(res) { can.onimport._init(can, res, fields) })
|
||||||
can.onmotion.show(can), can.ui.input.focus()
|
can.onmotion.show(can), can.ui.input.focus()
|
||||||
|
can.ui.word.setSelectionRange(0, -1)
|
||||||
},
|
},
|
||||||
|
|
||||||
select: function(can, msg, cmds, cb) { can.ui.word.value = cmds[1]
|
select: function(can, msg, cmds, cb) { can.ui.word.value = cmds[1]
|
||||||
@ -41,31 +43,29 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
} )
|
} )
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "交互操作", list: ["关闭", "清空", "完成"], _init: function(can, meta, list, cb, target) {
|
Volcanos("onaction", {help: "交互操作", list: [cli.CLEAR, cli.CLOSE, cli.DONE], _init: function(can, meta, list, cb, target) {
|
||||||
can.base.isFunc(cb) && cb()
|
can.base.isFunc(cb) && cb()
|
||||||
},
|
},
|
||||||
onlogin: function(can, msg) {
|
onlogin: function(can, msg) {
|
||||||
can.onappend._action(can, can.Conf("action")||can.onaction.list)
|
can.onappend._action(can, can.Conf(html.ACTION)||can.onaction.list)
|
||||||
can.ui = can.page.Append(can, can._output, [
|
can.ui = can.page.Append(can, can._output, [
|
||||||
{input: ["word", function(event) { can.onkeypop.input(event, can)
|
{input: ["word", function(event) { can.onkeypop.input(event, can)
|
||||||
if (event.key == "Escape") { can.onmotion.hide(can) }
|
if (event.key == "Escape") { can.onmotion.hide(can) }
|
||||||
|
|
||||||
if (event.key == "Enter") { event.stopPropagation(), event.preventDefault()
|
if (event.key == "Enter") { event.stopPropagation(), event.preventDefault()
|
||||||
if (event.shiftKey) {
|
if (event.shiftKey) { var first = can.page.Select(can, can.ui.content, html.TR)[1]
|
||||||
var first = can.page.Select(can, can.ui.content, "tr")[1]
|
return can.onaction[can.type == "*"? chat.PLUGIN: html.SELECT](event, can, first.dataset.index)
|
||||||
return can.onaction[can.type == "*"? "plugin": "select"](event, can, first.dataset.index)
|
|
||||||
}
|
}
|
||||||
if (event.ctrlKey) { return can.onaction["完成"](event, can) }
|
if (event.ctrlKey) { return can.onaction[cli.DONE](event, can) }
|
||||||
can.input(event, event.target.value)
|
can.input(event, event.target.value)
|
||||||
}
|
}
|
||||||
}]},
|
}]},
|
||||||
{view: "content"}, {view: ["display", "table"]}, {view: "preview"},
|
{view: chat.CONTENT}, {view: [chat.DISPLAY, html.TABLE]}, {view: chat.PROFILE},
|
||||||
])
|
]), can.page.ClassList.add(can, can.ui.display, chat.CONTENT)
|
||||||
can.page.ClassList.add(can, can.ui.display, "content")
|
|
||||||
},
|
},
|
||||||
"关闭": function(event, can) { can.onmotion.hide(can) },
|
close: function(event, can) { can.onmotion.hide(can) },
|
||||||
"清空": function(event, can) { can.onmotion.clear(can, can.ui.preview) },
|
clear: function(event, can) { can.onmotion.clear(can, can.ui.profile) },
|
||||||
"完成": function(event, can) { can.base.isFunc(can.cb) && can.cb() },
|
done: function(event, can) { can.base.isFunc(can.cb) && can.cb() },
|
||||||
|
|
||||||
select: function(event, can, index) { var line = can.list[index]
|
select: function(event, can, index) { var line = can.list[index]
|
||||||
if (can.base.isFunc(line.text)) { return can.onmotion.hide(can), line.text(event) }
|
if (can.base.isFunc(line.text)) { return can.onmotion.hide(can), line.text(event) }
|
||||||
@ -74,32 +74,31 @@ Volcanos("onaction", {help: "交互操作", list: ["关闭", "清空", "完成"]
|
|||||||
return can.onimport.select(can, msg, [line.type, line.name, line.text], can.cb)
|
return can.onimport.select(can, msg, [line.type, line.name, line.text], can.cb)
|
||||||
}
|
}
|
||||||
|
|
||||||
var fields = can.page.Select(can, can.ui.display, "th", function(item) { return item.innerText })
|
var fields = can.page.Select(can, can.ui.display, html.TH, function(item) { return item.innerText })
|
||||||
can.page.Append(can, can.ui.display, [{td: can.core.List(fields, function(item) {
|
can.page.Append(can, can.ui.display, [{td: can.core.List(fields, function(item) {
|
||||||
return line[item]
|
return line[item]
|
||||||
}), data: {index: index}, onclick: function(event) { can.page.Remove(can, event.target.parentNode)
|
}), data: {index: index}, onclick: function(event) { can.page.Remove(can, event.target.parentNode)
|
||||||
can.Status("selected", can.page.Select(can, can.ui.display, "tr").length-1)
|
can.Status(kit.MDB_COUNT, can.page.Select(can, can.ui.display, html.TR).length-1)
|
||||||
}}]), can.Status("selected", can.page.Select(can, can.ui.display, "tr").length-1)
|
}}]), can.Status(kit.MDB_COUNT, can.page.Select(can, can.ui.display, html.TR).length-1)
|
||||||
},
|
},
|
||||||
|
|
||||||
plugin: function(event, can, index) { var line = can.list[index]
|
plugin: function(event, can, index) { var line = can.list[index]
|
||||||
if (can.base.isFunc(line.text)) { return can.onmotion.hide(can), line.text(event) }
|
if (can.base.isFunc(line.text)) { return can.onmotion.hide(can), line.text(event) }
|
||||||
|
|
||||||
var cmd = line.cmd == "command"? can.core.Keys(line.text, line.name): can.core.Keys(line.ctx, line.cmd)
|
var cmd = line.cmd == "command"? can.core.Keys(line.text, line.name): can.core.Keys(line.ctx, line.cmd)
|
||||||
can.onappend.plugin(can, {type: "plugin", index: cmd||msg.Option("index")}, function(sub, meta) {
|
can.onappend.plugin(can, {type: chat.PLUGIN, index: cmd||msg.Option(kit.MDB_INDEX)}, function(sub, meta) {
|
||||||
can.search({}, "Action.onexport.size", function(msg, width) {
|
can.search({}, "Action.onexport.size", function(msg, width) { sub.Conf(chat.WIDTH, width-60) })
|
||||||
sub.Conf("width", width-60)
|
|
||||||
})
|
|
||||||
sub.run = function(event, cmds, cb) { var msg = can.request(event, line)
|
sub.run = function(event, cmds, cb) { var msg = can.request(event, line)
|
||||||
can.run(event, can.misc.Concat([ctx.ACTION, cli.RUN, meta.index], cmds), cb)
|
can.run(event, can.misc.Concat([ctx.ACTION, cli.RUN, meta.index], cmds), cb)
|
||||||
}
|
}
|
||||||
}, can.ui.preview)
|
}, can.ui.profile)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: ["selected", "count"],
|
Volcanos("onexport", {help: "导出数据", list: [kit.MDB_COUNT, kit.MDB_TOTAL],
|
||||||
select: function(can) {
|
select: function(can) {
|
||||||
return can.page.Select(can, can.ui.display, "tr", function(tr) {
|
return can.page.Select(can, can.ui.display, html.TR, function(tr) {
|
||||||
return can.page.Select(can, tr, "td", function(td) { return td.innerHTML })
|
return can.page.Select(can, tr, html.TD, function(td) { return td.innerHTML })
|
||||||
}).slice(1)
|
}).slice(1)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -1,42 +1,36 @@
|
|||||||
var _can_name = "/plugin/input.js"
|
_can_name = "/plugin/input.js"
|
||||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta, list, cb, target) {
|
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta, list, cb, target) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta, list, cb, target) {
|
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta, list, cb, target) {
|
||||||
can.base.isFunc(cb) && cb(); switch (meta.type) {
|
can.base.isFunc(cb) && cb(); switch (meta.type) {
|
||||||
case "select": meta.value && (target.value = meta.value); break
|
case html.SELECT: meta.value && (target.value = meta.value); break
|
||||||
case "button": meta.action == "auto" && target.click(); break
|
case html.BUTTON: meta.action == ice.AUTO && target.click(); break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"run": function(event, can) {
|
run: function(event, can) {
|
||||||
var title = can.sup._name+" "+can.sup.Input([], true)
|
var title = can.sup._name+ice.SP+can.sup.Input([], true)
|
||||||
var toast = can.user.toast(can, "执行中...", title, -1)
|
var toast = can.user.toast(can, "执行中...", title, -1)
|
||||||
can.run(event, [], function() { toast.close(), can.user.toast(can, "执行成功...", title) })
|
can.run(event, [], function() { toast.close(), can.user.toast(can, "执行成功...", title) })
|
||||||
},
|
},
|
||||||
"refresh": function(event, can) { can.run(event) },
|
list: function(event, can) { can.run(event) },
|
||||||
"list": function(event, can) { can.run(event) },
|
back: function(event, can) { can.sup.onimport._back(can.sup) },
|
||||||
"back": function(event, can) { can.sup.onimport._back(can.sup) },
|
refresh: function(event, can) { can.run(event) },
|
||||||
|
|
||||||
onchange: function(event, can) {
|
|
||||||
if (can.Conf("type") == "select") { can.run(event) }
|
|
||||||
},
|
|
||||||
ondblclick: function(event, can) {
|
|
||||||
if (can.Conf("type") == "text") { event.target.setSelectionRange(0, -1) }
|
|
||||||
},
|
|
||||||
onclick: function(event, can) {
|
onclick: function(event, can) {
|
||||||
if (can.Conf("type") == "button") { can.run(event, [ctx.ACTION, can.Conf("name")].concat(can.sup.Input())) }
|
if (can.Conf(kit.MDB_TYPE) == html.BUTTON) { can.run(event, [ctx.ACTION, can.Conf(kit.MDB_NAME)].concat(can.sup.Input())) }
|
||||||
},
|
},
|
||||||
|
onchange: function(event, can) {
|
||||||
onkeydown: function(event, can) { var target = event.target
|
if (can.Conf(kit.MDB_TYPE) == html.SELECT) { can.run(event) }
|
||||||
switch (can.Conf("type")) {
|
},
|
||||||
case "textarea": if (!event.ctrlKey) { return }
|
onkeydown: function(event, can) {
|
||||||
}
|
if (can.Conf(kit.MDB_TYPE) == html.TEXTAREA) { if (!event.ctrlKey) { return } }
|
||||||
can.onkeypop.input(event, can, target); switch (event.key) {
|
can.onkeypop.input(event, can, event.target); switch (event.key) {
|
||||||
case "Enter":
|
case lang.ENTER:
|
||||||
switch (can.Conf("type")) {
|
switch (can.Conf(kit.MDB_TYPE)) {
|
||||||
case "textarea": if (!event.ctrlKey) { return }
|
case html.TEXTAREA: if (!event.ctrlKey) { return }
|
||||||
case "text": event.target.setSelectionRange(0, -1); break
|
case html.TEXT: event.target.setSelectionRange(0, -1); break
|
||||||
}; can.run(event), event.stopPropagation(), event.preventDefault(); break
|
}; can.run(event), event.stopPropagation(), event.preventDefault(); break
|
||||||
case "b": if (event.ctrlKey) { can.CloneInput() } break
|
case "b": if (event.ctrlKey) { can.CloneInput() } break
|
||||||
case "m": if (event.ctrlKey) { can.CloneField() } break
|
case "m": if (event.ctrlKey) { can.CloneField() } break
|
||||||
@ -44,4 +38,4 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta,
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: []})
|
Volcanos("onexport", {help: "导出数据", list: []})
|
||||||
var _can_name = ""
|
_can_name = ""
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(event, can, meta, cb, target) {
|
Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(event, can, meta, cb, target) {
|
||||||
function set(now) { target.value = can.base.Time(now), can.page.Remove(can, can._target)
|
function set(now) { target.value = can.base.Time(now), can.page.Remove(can, can._target)
|
||||||
meta && meta.action == "auto" && can.run({})
|
meta && meta.action == ice.AUTO && can.run({})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加控件
|
// 添加控件
|
||||||
var now = target.value? new Date(target.value): new Date()
|
var now = target.value? new Date(target.value): new Date()
|
||||||
can.onappend._action(can, ["关闭",
|
can.onappend._action(can, [cli.CLOSE,
|
||||||
["hour"].concat(can.core.List(24)), ["minute"].concat(can.core.List(0, 60, 5)), ["second"].concat(can.core.List(0, 60, 5)),
|
["hour"].concat(can.core.List(24)), ["minute"].concat(can.core.List(0, 60, 5)), ["second"].concat(can.core.List(0, 60, 5)),
|
||||||
"今天", "", "上一月", ["year"].concat(can.core.List(now.getFullYear() - 10, now.getFullYear() + 10)),
|
"今天", "", "上一月", ["year"].concat(can.core.List(now.getFullYear() - 10, now.getFullYear() + 10)),
|
||||||
["month"].concat(can.core.List(1, 13)), "下一月",
|
["month"].concat(can.core.List(1, 13)), "下一月",
|
||||||
], can._action, {
|
], can._action, {
|
||||||
"关闭": function(event) { can.page.Remove(can, can._target) },
|
close: function(event) { can.page.Remove(can, can._target) },
|
||||||
"hour": function(event, can, key, value) { now.setHours(parseInt(value)||0), show(now) },
|
"hour": function(event, can, key, value) { now.setHours(parseInt(value)||0), show(now) },
|
||||||
"minute": function(event, can, key, value) { now.setMinutes(parseInt(value)||0), show(now) },
|
"minute": function(event, can, key, value) { now.setMinutes(parseInt(value)||0), show(now) },
|
||||||
"second": function(event, can, key, value) { now.setSeconds(parseInt(value)||0), show(now) },
|
"second": function(event, can, key, value) { now.setSeconds(parseInt(value)||0), show(now) },
|
||||||
@ -26,7 +26,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(e
|
|||||||
"后一年": function(event) { now.setFullYear(now.getFullYear()+1), show(now) },
|
"后一年": function(event) { now.setFullYear(now.getFullYear()+1), show(now) },
|
||||||
})
|
})
|
||||||
|
|
||||||
can._table = can.page.Append(can, can._output, [{view: ["content", "table"]}]).first
|
can._table = can.page.Append(can, can._output, [{view: [chat.CONTENT, html.TABLE]}]).first
|
||||||
var today = new Date(); function show(now) {
|
var today = new Date(); function show(now) {
|
||||||
// 设置控件
|
// 设置控件
|
||||||
can.Action("month", now.getMonth()+1)
|
can.Action("month", now.getMonth()+1)
|
||||||
@ -37,8 +37,8 @@ Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(e
|
|||||||
|
|
||||||
// 设置组件
|
// 设置组件
|
||||||
can.page.Appends(can, can._table, [{th: ["日", "一", "二", "三", "四", "五", "六"]}])
|
can.page.Appends(can, can._table, [{th: ["日", "一", "二", "三", "四", "五", "六"]}])
|
||||||
var tr; function add(day, type) { if (day.getDay() == 0) { tr = can.page.Append(can, can._table, [{type: "tr"}]).last }
|
var tr; function add(day, type) { if (day.getDay() == 0) { tr = can.page.Append(can, can._table, [{type: html.TR}]).last }
|
||||||
can.page.Append(can, tr, [{text: [day.getDate(), "td", can.base.Time(today, "%y-%m-%d") == can.base.Time(day, "%y-%m-%d")? "select": type],
|
can.page.Append(can, tr, [{text: [day.getDate(), html.TD, can.base.Time(today, "%y-%m-%d") == can.base.Time(day, "%y-%m-%d")? html.SELECT: type],
|
||||||
dataset: {date: day.getTime()}, onclick: function(event) {
|
dataset: {date: day.getTime()}, onclick: function(event) {
|
||||||
set(now = new Date(parseInt(event.target.dataset.date)))
|
set(now = new Date(parseInt(event.target.dataset.date)))
|
||||||
},
|
},
|
||||||
|
@ -1,27 +1,22 @@
|
|||||||
Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(event, can, meta, cb, target) {
|
Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(event, can, meta, cb, target) {
|
||||||
can.run(event, [ctx.ACTION, "inputs", meta.name, target.value], function(msg) {
|
can.run(event, [ctx.ACTION, mdb.INPUTS, meta.name, target.value], function(msg) {
|
||||||
if (msg.Length() == 0) { return can.page.Remove(can, can._target) }
|
if (msg.Length() == 0) { return can.page.Remove(can, can._target) }
|
||||||
|
|
||||||
can.onappend._action(can, ["close", "clear"], can._action, {
|
can.onappend._action(can, [cli.CLOSE, cli.CLEAR], can._action, {
|
||||||
"close": function(event) { can.page.Remove(can, can._target) },
|
close: function(event) { can.page.Remove(can, can._target) },
|
||||||
"clear": function(event) { target.value = "" },
|
clear: function(event) { target.value = "" },
|
||||||
})
|
})
|
||||||
|
|
||||||
function show(msg) {
|
function show(msg) { can.onmotion.clear(can)
|
||||||
can.onmotion.clear(can)
|
|
||||||
can.onappend.table(can, msg, function(value, key, index, line) {
|
can.onappend.table(can, msg, function(value, key, index, line) {
|
||||||
return {text: [value, "td"], onclick: function() {
|
return {text: [value, html.TD], onclick: function() { target.value = line[key]
|
||||||
target.value = line[key]
|
msg.Option(ice.MSG_PROCESS) == ice.PROCESS_AGAIN? can.run({}, [ctx.ACTION, mdb.INPUTS, meta.name, target.value], function(msg) {
|
||||||
msg.Option("_process") == "_again"? can.run({}, [ctx.ACTION, "inputs", meta.name, target.value], function(msg) {
|
|
||||||
show(msg)
|
show(msg)
|
||||||
}): can.page.Remove(can, can._target)
|
}): can.page.Remove(can, can._target)
|
||||||
|
|
||||||
}}
|
}}
|
||||||
}), can.Status("count", msg.Length())
|
}), can.Status(kit.MDB_COUNT, msg.Length())
|
||||||
}
|
}
|
||||||
show(msg)
|
show(msg), can.onlayout.figure(event, can)
|
||||||
|
|
||||||
can.onlayout.figure(event, can)
|
|
||||||
})
|
})
|
||||||
}}})
|
}}})
|
||||||
|
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
Volcanos("onfigure", {help: "控件详情", list: [], province: {onclick: function(event, can, meta, cb, target) {
|
Volcanos("onfigure", {help: "控件详情", list: [], province: {onclick: function(event, can, meta, cb, target) {
|
||||||
can.require(["/require/shylinux.com/x/echarts/echarts.js","/require/shylinux.com/x/echarts/china.js"], function() {
|
can.require(["/require/github.com/shylinux/echarts/echarts.js", "/require/github.com/shylinux/echarts/china.js"], function() {
|
||||||
can.onappend._action(can, ["关闭", "清空"], can._action, {
|
can.onappend._action(can, [cli.CLOSE, cli.CLEAR], can._action, {
|
||||||
"关闭": function(event) { can.page.Remove(can, can._target) },
|
close: function(event) { can.page.Remove(can, can._target) },
|
||||||
"清空": function(event) { target.value = "" },
|
clear: function(event) { target.value = "" },
|
||||||
})
|
})
|
||||||
|
|
||||||
var china_chart = echarts.init(can.page.Append(can, can._output, [{type: "div", style: {width: "600px", height: "400px"}}]).first)
|
var china_chart = echarts.init(can.page.Append(can, can._output, [{type: html.DIVk, style: {width: "600px", height: "400px"}}]).first)
|
||||||
china_chart.setOption({geo: {map: 'china'}}), china_chart.on('click', function (params) {
|
china_chart.setOption({geo: {map: 'china'}}), china_chart.on('click', function (params) {
|
||||||
target.value = params.name, can.page.Remove(can, can._target)
|
target.value = params.name, can.page.Remove(can, can._target)
|
||||||
}), can.Status("count", 34)
|
}), can.Status(kit.MDB_COUNT, 34)
|
||||||
can.onlayout.figure(event, can)
|
can.onlayout.figure(event, can)
|
||||||
})
|
})
|
||||||
}}, })
|
}}, })
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
var _can_name = "/plugin/state.js"
|
_can_name = "/plugin/state.js"
|
||||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, list, cb, target) {
|
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, list, cb, target) {
|
||||||
},
|
},
|
||||||
_process: function(can, msg) {
|
_process: function(can, msg) {
|
||||||
@ -237,4 +237,4 @@ Volcanos("onaction", {help: "交互操作", list: [
|
|||||||
close: function(event, can) { can.page.Remove(can, can._target) },
|
close: function(event, can) { can.page.Remove(can, can._target) },
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: []})
|
Volcanos("onexport", {help: "导出数据", list: []})
|
||||||
var _can_name = ""
|
_can_name = ""
|
||||||
|
@ -1,23 +1,17 @@
|
|||||||
var _can_name = "/plugin/table.js"
|
_can_name = "/plugin/table.js"
|
||||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
|
can.onmotion.clear(can)
|
||||||
can.onappend.table(can, msg)
|
can.onappend.table(can, msg)
|
||||||
can.onappend.board(can, msg)
|
can.onappend.board(can, msg)
|
||||||
can.onmotion.story.auto(can, target)
|
can.onmotion.story.auto(can, target)
|
||||||
|
can.base.isFunc(cb) && cb(msg)
|
||||||
},
|
},
|
||||||
|
|
||||||
_process: function(can, msg) {
|
_process: function(can, msg) {
|
||||||
if (msg.Option("sess.toast")) {
|
msg.Option(ice.MSG_TOAST) && can.user.toast(can, msg.Option(ice.MSG_TOAST))
|
||||||
can.user.toast(can, msg.Option("sess.toast"))
|
return can.core.CallFunc([can.onimport, msg.Option(ice.MSG_PROCESS)], [can, msg])
|
||||||
}
|
|
||||||
return can.core.CallFunc([can.onimport, msg.Option("_process")], [can, msg])
|
|
||||||
},
|
|
||||||
|
|
||||||
_control: function(can, msg) {
|
|
||||||
var cb = can.onimport[msg.Option("_control")]
|
|
||||||
return can.base.isFunc(cb) && cb(can, msg)
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "控件交互", list: []})
|
Volcanos("onaction", {help: "控件交互", list: []})
|
||||||
Volcanos("onexport", {help: "导出数据", list: []})
|
Volcanos("onexport", {help: "导出数据", list: []})
|
||||||
var _can_name = ""
|
_can_name = ""
|
||||||
|
193
proto.js
193
proto.js
@ -17,9 +17,8 @@ const kit = {
|
|||||||
MDB_LIST: "list",
|
MDB_LIST: "list",
|
||||||
}
|
}
|
||||||
const ice = {
|
const ice = {
|
||||||
SP: " ",
|
SP: " ", PT: ".", NL: "\n",
|
||||||
PT: ".",
|
POD: "pod", CTX: "ctx", CMD: "cmd", ARG: "arg", OPT: "opt",
|
||||||
NL: "\n",
|
|
||||||
|
|
||||||
TRUE: "true",
|
TRUE: "true",
|
||||||
|
|
||||||
@ -28,59 +27,55 @@ const ice = {
|
|||||||
MSG_TITLE: "sess.title",
|
MSG_TITLE: "sess.title",
|
||||||
MSG_RIVER: "sess.river",
|
MSG_RIVER: "sess.river",
|
||||||
MSG_STORM: "sess.storm",
|
MSG_STORM: "sess.storm",
|
||||||
|
MSG_TOAST: "sess.toast",
|
||||||
MSG_FIELDS: "fields",
|
MSG_FIELDS: "fields",
|
||||||
|
MSG_SESSID: "sessid",
|
||||||
|
|
||||||
MSG_APPEND: "append",
|
MSG_APPEND: "append",
|
||||||
|
|
||||||
MSG_TARGET: "_target",
|
MSG_TARGET: "_target",
|
||||||
|
MSG_HANDLE: "_handle",
|
||||||
|
|
||||||
MSG_ACTION: "_action",
|
MSG_ACTION: "_action",
|
||||||
MSG_STATUS: "_status",
|
MSG_STATUS: "_status",
|
||||||
MSG_HANDLE: "_handle",
|
|
||||||
MSG_DISPLAY: "_display",
|
MSG_DISPLAY: "_display",
|
||||||
|
MSG_PROCESS: "_process",
|
||||||
|
|
||||||
|
PROCESS_AGAIN: "_again",
|
||||||
|
|
||||||
|
AUTO: "auto",
|
||||||
}
|
}
|
||||||
|
|
||||||
const ctx = {
|
const ctx = {
|
||||||
CONTEXT: "context",
|
CONTEXT: "context", COMMAND: "command", CONFIG: "config",
|
||||||
COMMAND: "command",
|
|
||||||
ACTION: "action",
|
ACTION: "action",
|
||||||
CONFIG: "config",
|
|
||||||
}
|
}
|
||||||
const cli = {
|
const cli = {
|
||||||
RUN: "run",
|
RUN: "run",
|
||||||
POD: "pod",
|
POD: "pod", CTX: "ctx", CMD: "cmd", ARG: "arg", OPT: "opt",
|
||||||
CTX: "ctx",
|
OPEN: "open", CLOSE: "close", START: "start", STOP: "stop",
|
||||||
CMD: "cmd",
|
CLEAR: "clear",
|
||||||
ARG: "arg",
|
DONE: "done",
|
||||||
|
|
||||||
OPEN: "open",
|
|
||||||
CLOSE: "close",
|
|
||||||
START: "start",
|
|
||||||
STOP: "stop",
|
|
||||||
}
|
}
|
||||||
const web = {
|
const web = {
|
||||||
SHARE: "share",
|
SHARE: "share",
|
||||||
SPACE: "space",
|
SPACE: "space",
|
||||||
}
|
}
|
||||||
const aaa = {
|
const aaa = {
|
||||||
USERNAME: "username",
|
USERNAME: "username", USERNICK: "usernick", BACKGROUND: "background", AVATAR: "avatar",
|
||||||
USERNICK: "usernick",
|
|
||||||
BACKGROUND: "background",
|
|
||||||
AVATAR: "avatar",
|
|
||||||
|
|
||||||
LOGIN: "login",
|
LANGUAGE: "language", ENGLISH: "english", CHINESE: "chinese",
|
||||||
LOGOUT: "logout",
|
|
||||||
INVITE: "invite",
|
LOGIN: "login", LOGOUT: "logout", INVITE: "invite",
|
||||||
}
|
}
|
||||||
const mdb = {
|
const mdb = {
|
||||||
CREATE: "create",
|
CREATE: "create", REMOVE: "remove", INSERT: "insert", DELETE: "delete",
|
||||||
REMOVE: "remove",
|
MODIFY: "modify", SELECT: "select",
|
||||||
INSERT: "insert",
|
|
||||||
MODIFY: "modify",
|
|
||||||
PLUGIN: "plugin",
|
PLUGIN: "plugin",
|
||||||
|
SEARCH: "search",
|
||||||
|
INPUTS: "inputs",
|
||||||
|
|
||||||
HASH: "hash",
|
META: "meta", HASH: "hash", LIST: "list",
|
||||||
LIST: "list",
|
|
||||||
}
|
}
|
||||||
const ssh = {
|
const ssh = {
|
||||||
SCRIPT: "script",
|
SCRIPT: "script",
|
||||||
@ -96,70 +91,30 @@ const code = {
|
|||||||
WEBPACK: "webpack",
|
WEBPACK: "webpack",
|
||||||
}
|
}
|
||||||
const wiki = {
|
const wiki = {
|
||||||
TITLE: "title",
|
TITLE: "title", BRIEF: "brief", REFER: "refer", SPARK: "spark",
|
||||||
BRIEF: "brief",
|
ORDER: "order", TABLE: "table", CHART: "chart", IMAGE: "image", VIDEO: "video",
|
||||||
REFER: "refer",
|
FIELD: "field", SHELL: "shell", LOCAL: "local", PARSE: "parse",
|
||||||
SPARK: "spark",
|
|
||||||
|
|
||||||
CHART: "chart",
|
|
||||||
IMAGE: "image",
|
|
||||||
VIDEO: "video",
|
|
||||||
|
|
||||||
FIELD: "field",
|
|
||||||
SHELL: "shell",
|
|
||||||
}
|
}
|
||||||
const chat = {
|
const chat = {
|
||||||
LIB: "lib",
|
LIB: "lib", PAGE: "page", PANEL: "panel", PLUGIN: "plugin",
|
||||||
PAGE: "page",
|
STORY: "story", CARTE: "carte", INPUT: "input", FLOAT: "float",
|
||||||
PANEL: "panel",
|
HEAD: "head", AUTO: "auto", LEFT: "left", MAIN: "main", FOOT: "foot",
|
||||||
PLUGIN: "plugin",
|
SCROLL: "scroll", HEIGHT: "height", WIDTH: "width", LEFT: "left", TOP: "top",
|
||||||
|
|
||||||
STORY: "story",
|
LAYOUT: "layout", PROJECT: "project", CONTENT: "content", DISPLAY: "display", PROFILE: "profile",
|
||||||
CARTE: "carte",
|
|
||||||
INPUT: "input",
|
|
||||||
FLOAT: "float",
|
|
||||||
|
|
||||||
LAYOUT: "layout",
|
PUBLIC: "public", PROTECTED: "protected", PRIVATE: "private",
|
||||||
PROJECT: "project",
|
USER: "user", TOOL: "tool", NODE: "node",
|
||||||
CONTENT: "content",
|
|
||||||
DISPLAY: "display",
|
|
||||||
PROFILE: "profile",
|
|
||||||
|
|
||||||
HEAD: "head", LEFT: "left", MAIN: "main", FOOT: "foot",
|
HEADER: "header", FOOTER: "footer",
|
||||||
|
ONMAIN: "onmain", ONSIZE: "onsize", ONLOGIN: "onlogin", ONSEARCH: "onsearch",
|
||||||
|
|
||||||
SCROLL: "scroll",
|
RIVER: "river", STORM: "storm", FIELD: "field", TOAST: "toast",
|
||||||
HEIGHT: "height",
|
TOPIC: "topic", BLACK: "black", WHITE: "white", PRINT: "print",
|
||||||
WIDTH: "width",
|
|
||||||
TOP: "top",
|
|
||||||
LEFT: "left",
|
|
||||||
|
|
||||||
USER: "user",
|
AGENT: "agent", CHECK: "check", GRANT: "grant", SHARE: "share",
|
||||||
TOOL: "tool",
|
TITLE: "title", STATE: "state", MENUS: "menus", TRANS: "trans",
|
||||||
NODE: "node",
|
SSO: "sso",
|
||||||
|
|
||||||
PUBLIC: "public",
|
|
||||||
PROTECTED: "protected",
|
|
||||||
PRIVATE: "private",
|
|
||||||
|
|
||||||
HEADER: "header",
|
|
||||||
ONMAIN: "onmain",
|
|
||||||
ONSIZE: "onsize",
|
|
||||||
|
|
||||||
RIVER: "river",
|
|
||||||
STORM: "storm",
|
|
||||||
FIELD: "field",
|
|
||||||
|
|
||||||
TOPIC: "topic",
|
|
||||||
BLACK: "black",
|
|
||||||
WHITE: "white",
|
|
||||||
|
|
||||||
TITLE: "title",
|
|
||||||
MENUS: "menus",
|
|
||||||
TRANS: "trans",
|
|
||||||
AGENT: "agent",
|
|
||||||
CHECK: "check",
|
|
||||||
SHARE: "share",
|
|
||||||
GRANT: "grant",
|
|
||||||
CMD_MARGIN: 53,
|
CMD_MARGIN: 53,
|
||||||
}
|
}
|
||||||
const team = {
|
const team = {
|
||||||
@ -172,44 +127,28 @@ const mall = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const html = {
|
const html = {
|
||||||
FIELDSET: "fieldset",
|
FIELDSET: "fieldset", LEGEND: "legend", OPTION: "option", ACTION: "action", OUTPUT: "output", STATUS: "status",
|
||||||
LEGEND: "legend",
|
FORM_OPTION: "form.option", DIV_ACTION: "div.action", DIV_OUTPUT: "div.output", DIV_STATUS: "div.status",
|
||||||
OPTION: "option",
|
|
||||||
ACTION: "action",
|
|
||||||
OUTPUT: "output",
|
|
||||||
STATUS: "status",
|
|
||||||
|
|
||||||
FORM_OPTION: "form.option",
|
INPUT: "input", INPUT_ARGS: ".args", TEXT: "text", TEXTAREA: "textarea", SELECT: "select", BUTTON: "button",
|
||||||
DIV_ACTION: "div.action",
|
SPACE: "space", BLOCK: "block", NONE: "none",
|
||||||
DIV_OUTPUT: "div.output",
|
|
||||||
DIV_STATUS: "div.status",
|
|
||||||
|
|
||||||
INPUT: "input", INPUT_ARGS: ".args",
|
|
||||||
TEXT: "text", TEXTAREA: "textarea",
|
|
||||||
SELECT: "select",
|
|
||||||
BUTTON: "button",
|
|
||||||
SPACE: "space",
|
|
||||||
BR: "br",
|
BR: "br",
|
||||||
|
|
||||||
TABLE: "table", TR: "tr", TH: "th", TD: "td",
|
TABLE: "table", TR: "tr", TH: "th", TD: "td",
|
||||||
DIV: "div",
|
DIV: "div",
|
||||||
IMG: "img",
|
IMG: "img",
|
||||||
CODE: "code",
|
|
||||||
SPAN: "span",
|
SPAN: "span",
|
||||||
NONE: "none",
|
CODE: "code",
|
||||||
BLOCK: "block",
|
|
||||||
LABEL: "label",
|
LABEL: "label",
|
||||||
VIDEO: "video",
|
VIDEO: "video",
|
||||||
|
|
||||||
FORM: "form",
|
FORM: "form", FILE: "file",
|
||||||
FILE: "file",
|
LIST: "list", ITEM: "item", MENU: "menu",
|
||||||
LIST: "list",
|
|
||||||
ITEM: "item",
|
|
||||||
}
|
}
|
||||||
const lang = {
|
const lang = {
|
||||||
STRING: "string",
|
STRING: "string", OBJECT: "object", FUNCTION: "function",
|
||||||
OBJECT: "object",
|
|
||||||
FUNCTION: "function",
|
ENTER: "Enter",
|
||||||
}
|
}
|
||||||
|
|
||||||
function shy(help, meta, list, cb) {
|
function shy(help, meta, list, cb) {
|
||||||
@ -219,26 +158,24 @@ function shy(help, meta, list, cb) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cb = args[args.length-1] || function() {}
|
cb = args[args.length-1]||function() {}
|
||||||
cb.help = next(lang.STRING) || ""
|
cb.help = next(lang.STRING)||""
|
||||||
cb.meta = next(lang.OBJECT) || {}
|
cb.meta = next(lang.OBJECT)|| {}
|
||||||
cb.list = next(lang.OBJECT) || []
|
cb.list = next(lang.OBJECT)||[]
|
||||||
return cb
|
return cb
|
||||||
}; var _can_name = ""
|
}; var _can_name = ""
|
||||||
var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args: {}, pack: {}, libs: [], cache: {}}, function(name, can, libs, cb) {
|
var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args: {}, pack: {}, libs: [], cache: {}}, function(name, can, libs, cb) {
|
||||||
var meta = arguments.callee.meta, list = arguments.callee.list
|
var meta = arguments.callee.meta, list = arguments.callee.list
|
||||||
if (typeof name == lang.OBJECT) { var Config = name; Config.panels = Config.panels||[], Config.main = Config.main||{}
|
if (typeof name == lang.OBJECT) { var Config = name; Config.panels = Config.panels||[], Config.main = Config.main||{}
|
||||||
meta.libs = ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"]
|
libs = [], meta.libs = ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"]
|
||||||
|
|
||||||
// 预加载
|
// 预加载
|
||||||
var Preload = Config.preload||[]
|
|
||||||
for (var i = 0; i < Config.panels.length; i++) { var panel = Config.panels[i]
|
for (var i = 0; i < Config.panels.length; i++) { var panel = Config.panels[i]
|
||||||
panel && (Preload = Preload.concat(panel.list = panel.list || ["/panel/"+panel.name+".css", "/panel/"+panel.name+".js"]))
|
panel && (libs = libs.concat(panel.list = panel.list||["/panel/"+panel.name+".css", "/panel/"+panel.name+".js"]))
|
||||||
}; Preload = Preload.concat(Config.plugin, Config.main.list)
|
}; libs = libs.concat(Config.plugin, Config.main.list)
|
||||||
|
|
||||||
// 根模块
|
// 根模块
|
||||||
name = Config.name, can = {_follow: Config.name, _target: Config.target||document.body}
|
name = Config.name, can = {_follow: Config.name, _target: Config.target||document.body}, cb = function(can) {
|
||||||
libs = Preload.concat(meta.libs, meta.volcano), cb = function(can) {
|
|
||||||
can.onengine._init(can, can.Conf(Config), Config.panels, Config._init, can._target)
|
can.onengine._init(can, can.Conf(Config), Config.panels, Config._init, can._target)
|
||||||
}, _can_name = "", can._root = can
|
}, _can_name = "", can._root = can
|
||||||
}
|
}
|
||||||
@ -251,8 +188,6 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
|
|||||||
// 加载模块
|
// 加载模块
|
||||||
for (var i = 0; i < cache.length; i++) { var sub = cache[i]
|
for (var i = 0; i < cache.length; i++) { var sub = cache[i]
|
||||||
if (typeof cb == lang.FUNCTION && cb(can, name, sub)) { continue }
|
if (typeof cb == lang.FUNCTION && cb(can, name, sub)) { continue }
|
||||||
if (can[sub._name] && can[sub._name]._merge && can[sub._name]._merge(can, sub)) { continue }
|
|
||||||
if (sub._name == "onkeypop") { can[sub._name] = sub; continue }
|
|
||||||
!can[sub._name] && (can[sub._name] = {}); for (var k in sub) {
|
!can[sub._name] && (can[sub._name] = {}); for (var k in sub) {
|
||||||
can[sub._name].hasOwnProperty(k) || (can[sub._name][k] = sub[k])
|
can[sub._name].hasOwnProperty(k) || (can[sub._name][k] = sub[k])
|
||||||
}
|
}
|
||||||
@ -271,7 +206,7 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
|
|||||||
},
|
},
|
||||||
request: function(event, option) { event = event||{}
|
request: function(event, option) { event = event||{}
|
||||||
var msg = event._msg||can.misc.Message(event, can); event._msg = msg
|
var msg = event._msg||can.misc.Message(event, can); event._msg = msg
|
||||||
function set(key, value) { msg[key] == undefined && msg.Option(key, value) }
|
function set(key, value) { can.base.isUndefined(msg[key]) && msg.Option(key, value) }
|
||||||
|
|
||||||
can.core.List(arguments, function(option, index) { if (index == 0) { return }
|
can.core.List(arguments, function(option, index) { if (index == 0) { return }
|
||||||
can.base.isFunc(option.Option)? can.core.List(option.Option(), function(key) {
|
can.base.isFunc(option.Option)? can.core.List(option.Option(), function(key) {
|
||||||
@ -280,8 +215,7 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
|
|||||||
}); return msg
|
}); return msg
|
||||||
},
|
},
|
||||||
|
|
||||||
set: function(name, key, value) {
|
set: function(name, key, value) { var msg = can.request({}); msg.Option(key, value)
|
||||||
var msg = can.request({}); msg.Option(key, value)
|
|
||||||
return can.search(msg._event, [can.base.Keys(name, "onimport", key)])
|
return can.search(msg._event, [can.base.Keys(name, "onimport", key)])
|
||||||
},
|
},
|
||||||
get: function(name, key) { return can.search({}, [can.base.Keys(name, "onexport", key)]) },
|
get: function(name, key) { return can.search({}, [can.base.Keys(name, "onexport", key)]) },
|
||||||
@ -291,8 +225,7 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_can_name) { // 加入缓存
|
if (_can_name) { // 加入缓存
|
||||||
meta.cache[_can_name] = meta.cache[_can_name]||[]
|
meta.cache[_can_name] = meta.cache[_can_name]||[], meta.cache[_can_name].push(can)
|
||||||
meta.cache[_can_name].push(can)
|
|
||||||
} else { // 加入队列
|
} else { // 加入队列
|
||||||
list.push(can)
|
list.push(can)
|
||||||
}
|
}
|
||||||
@ -314,7 +247,7 @@ Volcanos.meta._load = function(url, cb) {
|
|||||||
}
|
}
|
||||||
function cmd(tool) {
|
function cmd(tool) {
|
||||||
Volcanos({name: "chat", panels: [
|
Volcanos({name: "chat", panels: [
|
||||||
{name: "cmd", help: "工作台", pos: "main", tool: tool},
|
{name: "cmd", help: "工作台", pos: chat.MAIN, tool: tool},
|
||||||
], main: {name: "cmd", list: []}, plugin: [
|
], main: {name: "cmd", list: []}, plugin: [
|
||||||
"/plugin/state.js",
|
"/plugin/state.js",
|
||||||
"/plugin/input.js",
|
"/plugin/input.js",
|
||||||
|
@ -5,6 +5,5 @@
|
|||||||
</head>
|
</head>
|
||||||
<body style="min-width:800px; min-height:600px; overflow:auto">
|
<body style="min-width:800px; min-height:600px; overflow:auto">
|
||||||
<script src="/proto.js"></script>
|
<script src="/proto.js"></script>
|
||||||
<script src="/frame.js"></script>
|
|
||||||
<script src="/publish/chrome/popup.js"></script>
|
<script src="/publish/chrome/popup.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
Volcanos({name: "demo", iceberg: "http://localhost:9020/chat/", volcano: "/frame.js",
|
Volcanos({name: "demo", iceberg: "http://localhost:9020/chat/", panels: [
|
||||||
libs: ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"], panels: [
|
|
||||||
{name: "Header", help: "标题栏", pos: "head", state: ["time", "username"]},
|
{name: "Header", help: "标题栏", pos: "head", state: ["time", "username"]},
|
||||||
{name: "Search", help: "搜索框", pos: "auto"},
|
{name: "Search", help: "搜索框", pos: "auto"},
|
||||||
{name: "River", help: "群聊组", pos: "left", action: ["create", "refresh"]},
|
{name: "River", help: "群聊组", pos: "left", action: ["create", "refresh"]},
|
||||||
@ -8,42 +7,39 @@ Volcanos({name: "demo", iceberg: "http://localhost:9020/chat/", volcano: "/frame
|
|||||||
], main: {name: "Header", list: ["/publish/order.js"]}, plugin: [
|
], main: {name: "Header", list: ["/publish/order.js"]}, plugin: [
|
||||||
"/plugin/state.js", "/plugin/input.js", "/plugin/table.js",
|
"/plugin/state.js", "/plugin/input.js", "/plugin/table.js",
|
||||||
], river: {
|
], river: {
|
||||||
"serivce": {name: "运营群", storm: {
|
serivce: {name: "运营群", storm: {
|
||||||
"wx": {name: "公众号 wx", action: [
|
wx: {name: "公众号 wx", action: [
|
||||||
{name: "微信公众号", help: "wx", index: "web.wiki.word", args: ["usr/icebergs/misc/wx/wx.shy"]},
|
{name: "微信公众号", help: "wx", index: "web.wiki.word", args: ["usr/icebergs/misc/wx/wx.shy"]},
|
||||||
]},
|
]},
|
||||||
"mp": {name: "小程序 mp", action: [
|
mp: {name: "小程序 mp", action: [
|
||||||
{name: "微信小程序", help: "mp", index: "web.wiki.word", args: ["usr/icebergs/misc/mp/mp.shy"]},
|
{name: "微信小程序", help: "mp", index: "web.wiki.word", args: ["usr/icebergs/misc/mp/mp.shy"]},
|
||||||
]},
|
]},
|
||||||
"lark": {name: "机器人 lark", action: [
|
lark: {name: "机器人 lark", action: [
|
||||||
{name: "飞书机器人", help: "lark", index: "web.wiki.word", args: ["usr/icebergs/misc/lark/lark.shy"]},
|
{name: "飞书机器人", help: "lark", index: "web.wiki.word", args: ["usr/icebergs/misc/lark/lark.shy"]},
|
||||||
]},
|
]},
|
||||||
"share": {name: "上下文 share", action: [
|
|
||||||
{name: "系统上下文", help: "shylinux/contexts", index: "web.wiki.word", args: ["usr/learning/社会/管理/20200724.shy"]},
|
|
||||||
]},
|
|
||||||
}},
|
}},
|
||||||
"product": {name: "产品群", storm: {
|
product: {name: "产品群", storm: {
|
||||||
"office": {name: "办公 office", action: [
|
office: {name: "办公 office", action: [
|
||||||
{name: "feel", help: "影音媒体", index: "web.wiki.feel"},
|
{name: "feel", help: "影音媒体", index: "web.wiki.feel"},
|
||||||
{name: "draw", help: "思维导图", index: "web.wiki.draw"},
|
{name: "draw", help: "思维导图", index: "web.wiki.draw"},
|
||||||
{name: "data", help: "数据表格", index: "web.wiki.data"},
|
{name: "data", help: "数据表格", index: "web.wiki.data"},
|
||||||
{name: "plan", help: "计划任务", index: "web.team.plan"},
|
{name: "plan", help: "计划任务", index: "web.team.plan"},
|
||||||
{name: "think", help: "智库", index: "web.wiki.word", args: ["usr/learning/"]},
|
{name: "think", help: "智库", index: "web.wiki.word", args: ["usr/learning/"]},
|
||||||
{name: "index", help: "索引", index: "web.wiki.word", args: ["usr/learning/index.shy"]},
|
{name: "index", help: "索引", index: "web.wiki.word", args: ["usr/learning/index.shy"]},
|
||||||
{name: "context", help: "编程", index: "web.wiki.word", args: ["usr/learning/自然/编程/index.shy"]},
|
{name: "context", help: "编程", index: "web.wiki.word", args: ["src/main.shy"]},
|
||||||
]},
|
]},
|
||||||
"english": {name: "英汉 english", action: [
|
english: {name: "英汉 english", action: [
|
||||||
{name: "english", help: "英汉", index: "web.wiki.alpha.alpha", args: ["word", "hi"]},
|
{name: "english", help: "英汉", index: "web.wiki.alpha.alpha", args: ["word", "hi"]},
|
||||||
{name: "chinese", help: "汉英", index: "web.wiki.alpha.alpha", args: ["line", "你好"]},
|
{name: "chinese", help: "汉英", index: "web.wiki.alpha.alpha", args: ["line", "你好"]},
|
||||||
{name: "wubi", help: "五笔", index: "web.code.input.wubi", args: ["word", "wqvb"]},
|
{name: "wubi", help: "五笔", index: "web.code.input.wubi", args: ["word", "wqvb"]},
|
||||||
{name: "wubi", help: "五笔", index: "web.code.input.wubi", args: ["line", "你好"]},
|
{name: "wubi", help: "五笔", index: "web.code.input.wubi", args: ["line", "你好"]},
|
||||||
]},
|
]},
|
||||||
"learning": {name: "学习 learning", action: [
|
learning: {name: "学习 learning", action: [
|
||||||
{name: "golang", help: "编程", index: "web.wiki.word", args: ["usr/golang-story/src/main.shy"]},
|
{name: "golang", help: "编程", index: "web.wiki.word", args: ["usr/golang-story/src/main.shy"]},
|
||||||
{name: "tmux", help: "粘贴", index: "web.code.tmux.text"},
|
{name: "tmux", help: "粘贴", index: "web.code.tmux.text"},
|
||||||
{name: "study", help: "学习", index: "web.wiki.word", args: ["usr/learning/study.shy"]},
|
{name: "study", help: "学习", index: "web.wiki.word", args: ["usr/learning/study.shy"]},
|
||||||
]},
|
]},
|
||||||
"chrome": {name: "爬虫 chrome", action: [
|
chrome: {name: "爬虫 chrome", action: [
|
||||||
{name: "feel", help: "网页爬虫", index: "web.wiki.feel", args: ["spide/"], feature: {
|
{name: "feel", help: "网页爬虫", index: "web.wiki.feel", args: ["spide/"], feature: {
|
||||||
display: "/plugin/local/wiki/feel.js",
|
display: "/plugin/local/wiki/feel.js",
|
||||||
height: 200, limit: 3,
|
height: 200, limit: 3,
|
||||||
@ -52,68 +48,69 @@ Volcanos({name: "demo", iceberg: "http://localhost:9020/chat/", volcano: "/frame
|
|||||||
{name: "spided", help: "网页爬虫", index: "web.code.chrome.spide", args: location && location.protocol && location.protocol=="chrome-extension:"? ["1", "", "spide"]: ["1"]},
|
{name: "spided", help: "网页爬虫", index: "web.code.chrome.spide", args: location && location.protocol && location.protocol=="chrome-extension:"? ["1", "", "spide"]: ["1"]},
|
||||||
]},
|
]},
|
||||||
}},
|
}},
|
||||||
"project": {name: "研发群", storm: {
|
project: {name: "研发群", storm: {
|
||||||
"studio": {name: "研发 studio", action: [
|
studio: {name: "研发 studio", action: [
|
||||||
{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: "plan", help: "任务表", index: "web.team.plan"},
|
{name: "plan", help: "任务表", index: "web.team.plan"},
|
||||||
{name: "contexts", help: "上下文", index: "web.wiki.word", args: ["src/main.shy"]},
|
{name: "ctx", help: "上下文", index: "web.wiki.word", args: ["src/main.shy"]},
|
||||||
]},
|
]},
|
||||||
"cli": {name: "命令 cli", action: [
|
web: {name: "网页 web", action: [
|
||||||
{name: "bash", help: "命令行", index: "web.wiki.word", args: ["usr/icebergs/misc/bash/bash.shy"]},
|
|
||||||
{name: "tmux", help: "命令行", index: "web.wiki.word", args: ["usr/icebergs/misc/tmux/tmux.shy"]},
|
|
||||||
{name: "git", help: "代码库", index: "web.wiki.word", args: ["usr/icebergs/misc/git/git.shy"]},
|
|
||||||
{name: "vim", help: "编辑器", index: "web.wiki.word", args: ["usr/icebergs/misc/vim/vim.shy"]},
|
|
||||||
{name: "ssh", help: "命令行", index: "web.wiki.word", args: ["usr/icebergs/base/ssh/ssh.shy"]},
|
|
||||||
{name: "zsh", help: "命令行", index: "web.wiki.word", args: ["usr/icebergs/misc/bash/zsh.shy"]},
|
|
||||||
]},
|
|
||||||
"web": {name: "网页 web", action: [
|
|
||||||
{name: "HTML5", help: "浏览器", index: "web.wiki.word", args: ["usr/icebergs/misc/chrome/chrome.shy"]},
|
{name: "HTML5", help: "浏览器", index: "web.wiki.word", args: ["usr/icebergs/misc/chrome/chrome.shy"]},
|
||||||
]},
|
]},
|
||||||
"linux": {name: "系统 linux", action: [
|
cli: {name: "命令 cli", action: [
|
||||||
|
{name: "bash", help: "命令行", index: "web.wiki.word", args: ["usr/icebergs/misc/bash/bash.shy"]},
|
||||||
|
{name: "git", help: "代码库", index: "web.wiki.word", args: ["usr/icebergs/misc/git/git.shy"]},
|
||||||
|
{name: "vim", help: "编辑器", index: "web.wiki.word", args: ["usr/icebergs/misc/vim/vim.shy"]},
|
||||||
|
{name: "tmux", help: "命令行", index: "web.wiki.word", args: ["usr/icebergs/misc/tmux/tmux.shy"]},
|
||||||
|
]},
|
||||||
|
linux: {name: "系统 linux", action: [
|
||||||
{name: "idc", help: "平台", index: "web.wiki.word", args: ["usr/linux-story/idc/idc.shy"]},
|
{name: "idc", help: "平台", index: "web.wiki.word", args: ["usr/linux-story/idc/idc.shy"]},
|
||||||
{name: "iso", help: "系统", index: "web.wiki.word", args: ["usr/linux-story/iso/iso.shy"]},
|
{name: "iso", help: "系统", index: "web.wiki.word", args: ["usr/linux-story/iso/iso.shy"]},
|
||||||
{name: "iot", help: "设备", index: "web.wiki.word", args: ["usr/linux-story/iot/iot.shy"]},
|
{name: "iot", help: "设备", index: "web.wiki.word", args: ["usr/linux-story/iot/iot.shy"]},
|
||||||
|
{name: "cli", help: "命令", index: "web.wiki.word", args: ["usr/linux-story/cli/cli.shy"]},
|
||||||
{name: "linux", help: "系统", index: "web.wiki.word", args: ["usr/linux-story/src/main.shy"]},
|
{name: "linux", help: "系统", index: "web.wiki.word", args: ["usr/linux-story/src/main.shy"]},
|
||||||
]},
|
]},
|
||||||
"nginx": {name: "代理 nginx", action: [
|
nginx: {name: "代理 nginx", action: [
|
||||||
{name: "nginx", help: "代理", index: "web.wiki.word", args: ["usr/nginx-story/src/main.shy"]},
|
{name: "nginx", help: "代理", index: "web.wiki.word", args: ["usr/nginx-story/src/main.shy"]},
|
||||||
]},
|
]},
|
||||||
"context": {name: "编程 context", action: [
|
context: {name: "编程 context", action: [
|
||||||
{name: "grafana", help: "可视化", index: "web.wiki.word", args: ["usr/golang-story/src/grafana/grafana.shy"]},
|
|
||||||
{name: "gogs", help: "代码库", index: "web.wiki.word", args: ["usr/golang-story/src/gogs/gogs.shy"]},
|
|
||||||
{name: "golang", help: "编程", index: "web.wiki.word", args: ["usr/golang-story/src/main.shy"]},
|
{name: "golang", help: "编程", index: "web.wiki.word", args: ["usr/golang-story/src/main.shy"]},
|
||||||
]},
|
]},
|
||||||
"redis": {name: "缓存 redis", action: [
|
redis: {name: "缓存 redis", action: [
|
||||||
{name: "redis", help: "缓存", index: "web.wiki.word", args: ["usr/redis-story/src/main.shy"]},
|
{name: "redis", help: "缓存", index: "web.wiki.word", args: ["usr/redis-story/src/main.shy"]},
|
||||||
|
{name: "kafka", help: "队列", index: "web.wiki.word", args: ["usr/redis-story/src/kafka/kafka.shy"]},
|
||||||
]},
|
]},
|
||||||
"mysql": {name: "数据 mysql", action: [
|
mysql: {name: "存储 mysql", action: [
|
||||||
{name: "mysql", help: "数据存储", index: "web.wiki.word", args: ["usr/mysql-story/src/main.shy"]},
|
{name: "mysql", help: "数据存储", index: "web.wiki.word", args: ["usr/mysql-story/src/main.shy"]},
|
||||||
|
{name: "clickhouse", help: "数据存储", index: "web.wiki.word", args: ["usr/mysql-story/src/clickhouse/clickhouse.shy"]},
|
||||||
]},
|
]},
|
||||||
}},
|
}},
|
||||||
"profile": {name: "测试群", storm: {
|
profile: {name: "测试群", storm: {
|
||||||
"release": {name: "发布 release", index: [
|
release: {name: "发布 release", index: [
|
||||||
"web.code.publish", "web.code.compile", "web.code.autogen",
|
"web.code.publish", "web.code.compile", "web.code.autogen",
|
||||||
]},
|
]},
|
||||||
"research": {name: "测试 research", index: [
|
research: {name: "测试 research", index: [
|
||||||
"web.code.favor", "web.code.bench", "web.code.pprof",
|
"web.code.favor", "web.code.bench", "web.code.pprof",
|
||||||
|
"web.code.case",
|
||||||
]},
|
]},
|
||||||
}},
|
}},
|
||||||
"operate": {name: "运维群", storm: {
|
operate: {name: "运维群", storm: {
|
||||||
"cli": {name: "系统 cli", index: [
|
aaa: {name: "权限 aaa", index: [
|
||||||
"qrcode", "daemon", "system", "runtime",
|
|
||||||
]},
|
|
||||||
"web": {name: "应用 web", index: [
|
|
||||||
"spide", "route", "share", "dream",
|
|
||||||
]},
|
|
||||||
"aaa": {name: "权限 aaa", index: [
|
|
||||||
"user", "sess", "role", "totp",
|
"user", "sess", "role", "totp",
|
||||||
]},
|
]},
|
||||||
"nfs": {name: "文件 nfs", index: [
|
web: {name: "应用 web", index: [
|
||||||
|
"spide", "route", "share", "dream",
|
||||||
|
]},
|
||||||
|
cli: {name: "系统 cli", index: [
|
||||||
|
"qrcode", "daemon", "system", "runtime",
|
||||||
|
]},
|
||||||
|
nfs: {name: "文件 nfs", index: [
|
||||||
"cat", "dir", "tail", "trash",
|
"cat", "dir", "tail", "trash",
|
||||||
]},
|
]},
|
||||||
"ssh": {name: "脚本 ssh", index: [
|
ssh: {name: "脚本 ssh", index: [
|
||||||
"connect", "session", "service", "channel",
|
"connect", "session", "service", "channel",
|
||||||
|
"source", "screen",
|
||||||
]},
|
]},
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user