1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00
This commit is contained in:
harveyshao 2022-12-11 20:18:27 +08:00
parent d81a08d4ae
commit 65c8ff8de6
10 changed files with 70 additions and 31 deletions

View File

@ -97,12 +97,12 @@ Volcanos("misc", {Message: function(event, can) { var msg = {}
if (meta[cmds[0]]) { return meta[cmds[0]](cmds.slice(1)), true } if (meta[cmds[0]]) { return meta[cmds[0]](cmds.slice(1)), true }
}, },
Run: function(event, can, dataset, cmds, cb) { var msg = can.request(event) Run: function(event, can, dataset, cmds, cb) { var msg = can.request(event)
var form = {cmds: cmds||msg.cmd}; msg.option && msg.option.forEach(function(item) { var form = {}; msg.option && msg.option.forEach(function(item) {
if ([ice.MSG_HANDLE, ice.MSG_DAEMON].indexOf(item) > -1) { return } if ([ice.MSG_HANDLE, ice.MSG_DAEMON].indexOf(item) > -1) { return }
if (can.base.isObject(msg.Option(item))) { return } if (can.base.isObject(msg.Option(item))) { return }
if (can.base.isFunc(msg.Option(item))) { return } if (can.base.isFunc(msg.Option(item))) { return }
msg[item] && (form[item] = msg[item]) msg[item] && (form[item] = msg[item])
}) }), form.cmds = cmds||form.cmds
can.misc.POST(can, msg, can.base.MergeURL(dataset.names.toLowerCase(), can.misc.POST(can, msg, can.base.MergeURL(dataset.names.toLowerCase(),
"_name", (msg._can.sup||msg._can)._name, "_index", (msg._can.sup||msg._can)._index, ice.MSG_DAEMON, msg.__daemon||dataset.daemon||"" "_name", (msg._can.sup||msg._can)._name, "_index", (msg._can.sup||msg._can)._index, ice.MSG_DAEMON, msg.__daemon||dataset.daemon||""
), form, cb) ), form, cb)

View File

@ -140,7 +140,7 @@ Volcanos("page", {ClassList: {
case mdb.PAGE: case mdb.PAGE:
_list.push({type: html.TEXT, name: mdb.LIMIT, value: can._msg.Option(mdb.LIMIT)}) _list.push({type: html.TEXT, name: mdb.LIMIT, value: can._msg.Option(mdb.LIMIT)})
_list.push({type: html.TEXT, name: mdb.OFFEND, value: can._msg.Option(mdb.OFFEND)}) _list.push({type: html.TEXT, name: mdb.OFFEND, value: can._msg.Option(mdb.OFFEND)})
_list.push(mdb.PREV, mdb.NEXT) _list.push(mdb.NEXT, mdb.PREV)
break break
default: default:
(function() { var item = can.core.SplitInput(list[i], html.BUTTON); (function() { var item = can.core.SplitInput(list[i], html.BUTTON);

View File

@ -60,6 +60,10 @@ Volcanos("user", {info: {}, agent: {
web.CLEAR, "清空", web.REFRESH, "刷新", web.SUBMIT, "提交", web.CANCEL, "取消", web.UPLOAD, "上传", web.DOWNLOAD, "下载", web.TOIMAGE, "截图", web.SHARE, "共享", web.CLEAR, "清空", web.REFRESH, "刷新", web.SUBMIT, "提交", web.CANCEL, "取消", web.UPLOAD, "上传", web.DOWNLOAD, "下载", web.TOIMAGE, "截图", web.SHARE, "共享",
"Close", "关闭", "Close others", "关闭其它", "Close all", "关闭所有", "Close", "关闭", "Close others", "关闭其它", "Close all", "关闭所有",
chat.IFRAME, "浏览", chat.LOCATION, "地图", chat.IFRAME, "浏览", chat.LOCATION, "地图",
nfs.SAVE, "保存", nfs.LOAD, "加载",
cli.ORDER, "加载",
aaa.INVITE, "邀请",
cli.SYSTEM, "命令",
"revert", "恢复", "revert", "恢复",
"full", "全屏", "full", "全屏",
)[text]||text )[text]||text

View File

@ -47,7 +47,8 @@ div.output div.project div.list { margin-left:10px; }
div.output div.project div.switch { transform: rotate(90deg) translate(1px, 0px); width:12px; float:left; } div.output div.project div.switch { transform: rotate(90deg) translate(1px, 0px); width:12px; float:left; }
div.output div.project div.switch.open { transform: rotate(180deg) translate(-4px, 4px); } div.output div.project div.switch.open { transform: rotate(180deg) translate(-4px, 4px); }
div.output div.project div.zone>div.name { background-color:steelblue; color:white; text-align:center; padding:3px; clear:both; } div.output div.project div.zone>div.name { background-color:steelblue; color:white; text-align:center; padding:3px; clear:both; }
div.output div.project div.zone>div.list>div.zone>div.name { padding-left:20px; text-align:left; } div.output div.project div.zone>div.list>div.zone>div.name { background-color:#09466fc2; padding-left:20px; text-align:left; }
div.output div.project div.zone>div.list>div.zone>div.name:hover { background-color:#3c7da8d9; }
div.output div.project div.item>div.name { padding-left:20px; } div.output div.project div.item>div.name { padding-left:20px; }
div.output div.project div.zone>div.action>div.item { padding:0; margin:0; float:right; clear:none; } div.output div.project div.zone>div.action>div.item { padding:0; margin:0; float:right; clear:none; }
div.output div.project div.zone>div.action>div.item input[type=text] { background-color:#ff000000; padding-left:10px; color:white; } div.output div.project div.zone>div.action>div.item input[type=text] { background-color:#ff000000; padding-left:10px; color:white; }
@ -186,6 +187,7 @@ body.white fieldset.panel.Action div.action { color:white; }
body.white fieldset.plugin { background-color:#ffffffa1; } body.white fieldset.plugin { background-color:#ffffffa1; }
body.white fieldset.float { background-color:#0e3369; color:white; } body.white fieldset.float { background-color:#0e3369; color:white; }
body.white fieldset.full { background-color:#0e3369; color:white; } body.white fieldset.full { background-color:#0e3369; color:white; }
body.white div.output div.project div.zone>div.list>div.zone>div.name { background-color:#09466f66; color:black; }
/* white hover */ /* white hover */
body.white legend:hover { background-color:skyblue; } body.white legend:hover { background-color:skyblue; }

View File

@ -9,19 +9,16 @@ Volcanos(chat.ONIMPORT, {
}, },
tabInputs: function(event, can, ps, key, pre, cb, parent) { tabInputs: function(event, can, ps, key, pre, cb, parent) {
var core = ["usr/icebergs/core/", "usr/volcanos/plugin/local/"]
can.runAction(event, mdb.INPUTS, [key, pre], function(msg) { var _trans = {} can.runAction(event, mdb.INPUTS, [key, pre], function(msg) { var _trans = {}
var carte = can.user[parent? "carteRight": "carte"](event, can, {}, msg.Table(function(value) { var p = can.base.trimPrefix(value[key], pre) var carte = can.user[parent? "carteRight": "carte"](event, can, {}, msg.Table(function(value) { var p = can.base.trimPrefix(value[key], pre)
if (can.base.beginWith(pre, "usr/icebergs/core/") && can.base.beginWith(value[key], "usr/volcanos/plugin/local/")) { if (can.base.beginWith(pre, core[0]) && can.base.beginWith(value[key], core[1])) { var p = can.base.trimPrefix(can.base.replaceAll(value[key], core[1], core[0]), pre) }
var p = can.base.trimPrefix(can.base.replaceAll(value[key], "usr/volcanos/plugin/local/", "usr/icebergs/core/"), pre) if (can.base.beginWith(pre, core[1]) && can.base.beginWith(value[key], core[0])) { var p = can.base.trimPrefix(can.base.replaceAll(value[key], core[0], core[1]), pre) }
}
if (can.base.beginWith(pre, "usr/volcanos/plugin/local/") && can.base.beginWith(value[key], "usr/icebergs/core/")) {
var p = can.base.trimPrefix(can.base.replaceAll(value[key], "usr/icebergs/core/", "usr/volcanos/plugin/local/"), pre)
}
return _trans[p] = value[key], p return _trans[p] = value[key], p
}), function(event, button) { }), function(event, button) {
can.base.endWith(button, ps)? can.onimport.tabInputs(event, can, ps, key, pre+button, cb, carte): cb(can.core.Split(_trans[button], ps), pre) can.base.endWith(button, ps)? can.onimport.tabInputs(event, can, ps, key, pre+button, cb, carte): cb(can.core.Split(_trans[button], ps), pre)
}, parent)._target, _p = can.core.Split(event.target.innerHTML.trim(), ice.PT)[0] }, parent)._target, _p = can.core.Split(event.target.innerHTML.trim(), ice.PT)[0]
can.page.Select(can, carte, html.DIV_ITEM, function(target) { can.base.beginWith(target.innerHTML, _p) && carte.insertBefore(target, carte.firstChild) }) can.page.Select(can, carte, html.DIV_ITEM, function(target) { event.target.innerHTML.trim() != target.innerHTML.trim() && can.base.beginWith(target.innerHTML, _p) && carte.insertBefore(target, carte.firstChild) })
function remove(p) { if (p && p._sub) { remove(p._sub), can.page.Remove(can, p._sub), delete(p._sub) } } if (parent) { remove(parent), parent._sub = carte } function remove(p) { if (p && p._sub) { remove(p._sub), can.page.Remove(can, p._sub), delete(p._sub) } } if (parent) { remove(parent), parent._sub = carte }
}) })
}, },

View File

@ -40,11 +40,11 @@ Volcanos(chat.ONSYNTAX, {
"#": code.KEYWORD, "#": code.KEYWORD,
}, },
regexp: { regexp: {
"^u_\\w+$": code.DATATYPE, "^u_\\w $": code.DATATYPE,
"^\\w+_t$": code.DATATYPE, "^\\w _t$": code.DATATYPE,
"^\\w+_pt$": code.DATATYPE, "^\\w _pt$": code.DATATYPE,
"^[-]*\\d+$": code.CONSTANT, "^[-]*\\d $": code.CONSTANT,
"^[A-Z0-9_]+$": code.CONSTANT, "^[A-Z0-9_] $": code.CONSTANT,
}, },
keyword: { keyword: {
"#include": code.KEYWORD, "#include": code.KEYWORD,
@ -107,9 +107,8 @@ Volcanos(chat.ONSYNTAX, {
}, },
}, },
sh: { sh: {
render: {},
split: { split: {
operator: "=", operator: "=()|><;",
}, },
prefix: { prefix: {
"#": code.COMMENT, "#": code.COMMENT,
@ -118,7 +117,7 @@ Volcanos(chat.ONSYNTAX, {
" {": code.COMMENT, " {": code.COMMENT,
}, },
regexp: { regexp: {
"[A-Z0-9_]+": code.CONSTANT, "[A-Z0-9_] ": code.CONSTANT,
}, },
keyword: { keyword: {
"local": code.KEYWORD, "local": code.KEYWORD,
@ -134,17 +133,42 @@ Volcanos(chat.ONSYNTAX, {
"elif": code.KEYWORD, "elif": code.KEYWORD,
"else": code.KEYWORD, "else": code.KEYWORD,
"fi": code.KEYWORD, "fi": code.KEYWORD,
"for": code.KEYWORD,
"while": code.KEYWORD,
"do": code.KEYWORD,
"done": code.KEYWORD,
"case": code.KEYWORD, "case": code.KEYWORD,
"in": code.KEYWORD, "in": code.KEYWORD,
"esac": code.KEYWORD, "esac": code.KEYWORD,
"shift": code.FUNCTION,
"eval": code.FUNCTION, "eval": code.FUNCTION,
"trap": code.FUNCTION,
"test": code.FUNCTION, "test": code.FUNCTION,
"echo": code.FUNCTION, "echo": code.FUNCTION,
"mkdir": code.FUNCTION,
"cat": code.FUNCTION, "cat": code.FUNCTION,
"rm": code.FUNCTION, "rm": code.FUNCTION,
"mkdir": code.FUNCTION,
"mktemp": code.FUNCTION,
"history": code.FUNCTION,
"complete": code.FUNCTION,
"compgen": code.FUNCTION,
"bind": code.FUNCTION,
"alias": code.FUNCTION,
"xargs": code.FUNCTION,
"curl": code.FUNCTION,
"sed": code.FUNCTION,
"tr": code.FUNCTION,
"du": code.FUNCTION,
"cut": code.FUNCTION,
"tail": code.FUNCTION,
"head": code.FUNCTION,
"grep": code.FUNCTION,
"/dev/null": code.CONSTANT,
"DEBUG": code.CONSTANT,
"EXIT": code.CONSTANT,
}, },
}, configure: {link: "sh"}, }, configure: {link: "sh"},
shy: { shy: {
@ -171,11 +195,11 @@ Volcanos(chat.ONSYNTAX, {
}, },
go: { go: {
split: { split: {
operator: "{([-+:;!.,*])}", operator: "{([- :;!.,*])}",
}, },
regexp: { regexp: {
"[0-9]+": code.CONSTANT, "[0-9] ": code.CONSTANT,
"[A-Z_0-9]+": code.CONSTANT, "[A-Z_0-9] ": code.CONSTANT,
}, },
prefix: { prefix: {
"//": code.COMMENT, "//": code.COMMENT,
@ -266,7 +290,7 @@ Volcanos(chat.ONSYNTAX, {
}, },
js: { js: {
split: { split: {
operator: "{[(.,:;!?|<*>-+)]}", operator: "{[(.,:;!?|<*>- )]}",
}, },
prefix: { prefix: {
"// ": code.COMMENT, "// ": code.COMMENT,
@ -342,8 +366,12 @@ Volcanos(chat.ONSYNTAX, {
operator: ".[]()>,{:;}", operator: ".[]()>,{:;}",
}, },
regexp: { regexp: {
"[-0-9]+px": code.CONSTANT, "[-0-9] px": code.CONSTANT,
"#[^ ;]+": code.CONSTANT, "#[^ ;] ": code.CONSTANT,
},
prefix: {
"// ": code.COMMENT,
"/* ": code.COMMENT,
}, },
keyword: { keyword: {
"body": code.KEYWORD, "body": code.KEYWORD,
@ -366,6 +394,9 @@ Volcanos(chat.ONSYNTAX, {
"h1": code.KEYWORD, "h1": code.KEYWORD,
"h2": code.KEYWORD, "h2": code.KEYWORD,
"h3": code.KEYWORD, "h3": code.KEYWORD,
"hover": code.DATATYPE,
"focus": code.DATATYPE,
"background-color": code.FUNCTION, "background-color": code.FUNCTION,
"font-family": code.FUNCTION, "font-family": code.FUNCTION,

View File

@ -28,7 +28,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
Volcanos(chat.ONFIGURE, { Volcanos(chat.ONFIGURE, {
create: function(can, target, zone, path) { create: function(can, target, zone, path) {
can.isCmdMode()? can.onappend._action(can, can.base.Obj(can._msg.Option(ice.MSG_ACTION)).concat( can.isCmdMode()? can.onappend._action(can, can.base.Obj(can._msg.Option(ice.MSG_ACTION)).concat(
["favor", "git", "首页", "官网" , "文档" , "百度"], window.webview? ["浏览器", "录屏", "编辑器", "日志"]: [], ["favor", "git", "首页", "官网" , "文档" , "百度"], window.webview? ["浏览器", "录屏", "日志", "编辑器"]: [],
), target): can.onmotion.hidden(can, target.parentNode) ), target): can.onmotion.hidden(can, target.parentNode)
}, },
recent: function(can, target, zone, path) { var total = 0 recent: function(can, target, zone, path) { var total = 0

View File

@ -142,7 +142,7 @@ Volcanos(chat.ONACTION, {list: [
"生成链接": function(event, can) { can.onmotion.share(event, can, [], [mdb.LINK, can.user.copy(event, can, can.onexport.link(can))]) }, "生成链接": function(event, can) { can.onmotion.share(event, can, [], [mdb.LINK, can.user.copy(event, can, can.onexport.link(can))]) },
"生成脚本": function(event, can) { var conf = can.Conf() "生成脚本": function(event, can) { var conf = can.Conf()
var args = can.Input().join(ice.SP), list = [ var args = can.Input().join(ice.SP), list = [
"export ctx_dev="+location.origin+"; ctx_temp=$(mktemp); curl -o $ctx_temp -fsSL $ctx_dev;"+" source $ctx_temp "+(conf.index||"")+ice.SP+args, "export ctx_dev="+location.origin+"; ctx_temp=$(mktemp); curl -o $ctx_temp -fsSL $ctx_dev;"+" source $ctx_temp cmd "+(conf.index||"")+ice.SP+args,
"ish_sys_dev_run_command "+args, "ish_sys_dev_run_action", "ish_sys_dev_run_source", "ish_sys_dev_run_command "+args, "ish_sys_dev_run_action", "ish_sys_dev_run_source",
] ]
can.user.copy(event, can, list[0]) can.user.copy(event, can, list[0])

View File

@ -163,7 +163,11 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl
meta.type = "plug", can.onappend.plugin(can, meta, function(sub) { sub.sup = can meta.type = "plug", can.onappend.plugin(can, meta, function(sub) { sub.sup = can
sub.ConfHeight(target.offsetHeight-2*html.ACTION_HEIGHT), sub.ConfWidth(target.offsetWidth) sub.ConfHeight(target.offsetHeight-2*html.ACTION_HEIGHT), sub.ConfWidth(target.offsetWidth)
can.page.style(can, sub._output, html.MAX_HEIGHT, sub.ConfHeight(), html.MAX_WIDTH, sub.ConfWidth()) can.page.style(can, sub._output, html.MAX_HEIGHT, sub.ConfHeight(), html.MAX_WIDTH, sub.ConfWidth())
sub.run = function(event, cmds, cb) { can.runActionCommand(can.request(event, can.Option()), meta.index, cmds, cb) } sub.run = function(event, cmds, cb) {
if (can.page.Select(can, sub._option, "input[name=path]").length > 0 && sub.Option(nfs.PATH) == "") {
sub.request(event, {path: "./"})
}
can.runActionCommand(can.request(event, can.Option()), meta.index, cmds, cb) }
sub.onaction.close = function() { can.onmotion.hidden(can, target) } sub.onaction.close = function() { can.onmotion.hidden(can, target) }
can.base.isFunc(cb) && cb(sub) can.base.isFunc(cb) && cb(sub)
}, target) }, target)

View File

@ -64,12 +64,13 @@ var ctx = {
EXTRA_INDEX: "extra.index", EXTRA_ARGS: "extra.args", EXTRA_INDEX: "extra.index", EXTRA_ARGS: "extra.args",
} }
var cli = { var cli = {
DAEMON: "daemon", SYSTEM: "system", DAEMON: "daemon",
BEGIN: "begin", START: "start", OPEN: "open", CLOSE: "close", STOP: "stop", END: "end", RESTART: "restart", BEGIN: "begin", START: "start", OPEN: "open", CLOSE: "close", STOP: "stop", END: "end", RESTART: "restart",
COLOR: "color", WHITE: "white", BLACK: "black", RED: "red", GREEN: "green", BLUE: "blue", COLOR: "color", WHITE: "white", BLACK: "black", RED: "red", GREEN: "green", BLUE: "blue",
YELLOW: "yellow", CYAN: "cyan", PURPLE: "purple", MAGENTA: "magenta", GLASS: "#0000", YELLOW: "yellow", CYAN: "cyan", PURPLE: "purple", MAGENTA: "magenta", GLASS: "#0000",
MAKE: "make", MAIN: "main", EXEC: "exec", DONE: "done", COST: "cost", FROM: "from", CLEAR: "clear", MAKE: "make", MAIN: "main", EXEC: "exec", DONE: "done", COST: "cost", FROM: "from", CLEAR: "clear",
PWD: "pwd", PWD: "pwd",
ORDER: "order",
} }
var aaa = { var aaa = {
LOGIN: "login", LOGOUT: "logout", INVITE: "invite", TOKEN: "token", LOGIN: "login", LOGOUT: "logout", INVITE: "invite", TOKEN: "token",