1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-12-29 17:58:49 +08:00
parent 8aa1f22883
commit 568f0e96ac
4 changed files with 18 additions and 12 deletions

View File

@ -358,18 +358,19 @@ var icon = {
admin: "bi bi-window-sidebar", login: "bi bi-person-check", admin: "bi bi-window-sidebar", login: "bi bi-person-check",
configs: "bi bi-gear", conf: "bi bi-gear", logs: "bi bi-calendar4-week", configs: "bi bi-gear", conf: "bi bi-gear", logs: "bi bi-calendar4-week",
help: "bi bi-question-square", doc: "bi bi-question-square", help: "bi bi-question-square", doc: "bi bi-question-square",
play: "bi bi-play-circle", full: "bi bi-arrows-fullscreen", app: "bi bi-box-arrow-up-right", play: "bi bi-play-circle", full: "bi bi-arrows-fullscreen", app: "bi bi-box-arrow-down-right",
open: "bi bi-box-arrow-up-right", main: "bi bi-box-arrow-up-right", portal: "bi bi-box-arrow-up-right", open: "bi bi-box-arrow-up-right", main: "bi bi-box-arrow-up-right", portal: "bi bi-box-arrow-up-right",
push: "bi bi-cloud-upload", pull: "bi bi-cloud-download", push: "bi bi-cloud-upload", pull: "bi bi-cloud-download",
start: "bi bi-play-circle", stop: "bi bi-stop-circle", start: "bi bi-play-circle", stop: "bi bi-stop-circle",
trash: "bi bi-trash", remove: "bi bi-trash", trash: "bi bi-trash", remove: "bi bi-trash",
record1: "bi bi-images", record2: "bi bi-record-circle", record1: "bi bi-images", record2: "bi bi-record-circle",
upload: "bi bi-cloud-upload", download: "bi bi-cloud-download", upload: "bi bi-box-arrow-in-up", download: "bi bi-box-arrow-down",
"export": "bi bi-box-arrow-up", "import": "bi bi-box-arrow-in-down",
more: "bi bi-three-dots-vertical", actions: "bi bi-three-dots", more: "bi bi-three-dots-vertical", actions: "bi bi-three-dots",
preview: "bi bi-window-stack", show: "bi bi-window-stack", preview: "bi bi-window-stack", show: "bi bi-window-stack",
display: "bi bi-window-desktop", exec: "bi bi-window-desktop", display: "bi bi-window-desktop", exec: "bi bi-window-desktop",
compile: "bi bi-tools", publish: "bi bi-send-check", version: "bi bi-tags", upgrade: "bi bi-rocket-takeoff", compile: "bi bi-tools", publish: "bi bi-send-check", version: "bi bi-tags", upgrade: "bi bi-rocket-takeoff",
vimer: "bi bi-keyboard", repos: "bi bi-git", build: "bi bi-tools", tag: "bi bi-tags", vimer: "bi bi-code-slash", repos: "bi bi-git", build: "bi bi-tools", tag: "bi bi-tags",
xterm: "bi bi-terminal", cmds: "bi bi-terminal", xterm: "bi bi-terminal", cmds: "bi bi-terminal",
} }
var svg = { var svg = {

View File

@ -314,7 +314,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
field: function(can, type, item, target) { type = type||html.STORY, item = item||{} field: function(can, type, item, target) { type = type||html.STORY, item = item||{}
var name = can.core.Split(item.nick||item.name||"").pop()||""; can.base.isIn(name, var name = can.core.Split(item.nick||item.name||"").pop()||""; can.base.isIn(name,
tcp.SERVER, tcp.CLIENT, web.STUDIO, web.SERVICE, mdb.SEARCH, tcp.SERVER, tcp.CLIENT, web.STUDIO, web.SERVICE, mdb.SEARCH,
) && (name = (item.index||"").split(".").slice(-2).join(".")), type != html.PLUG && (name = can.core.Keys(item._space||item.space, name)) ) && (name = (item.index||"").split(".").slice(-2).join(".")), (type != html.PLUG) && (name = can.core.Keys(item._space||item.space, name))
var title = item.title || (item.help && item.help != name && !can.user.isEnglish(can)? name+"("+can.core.Split(item.help)[0]+")": name) var title = item.title || (item.help && item.help != name && !can.user.isEnglish(can)? name+"("+can.core.Split(item.help)[0]+")": name)
target = can.base.isFunc(target)? target(): target target = can.base.isFunc(target)? target(): target
return can.page.Append(can, target||can._output, [{view: [type, html.FIELDSET], list: [{type: html.LEGEND, list: [item.icon && {icon: item.icon}, {text: title}]}, {view: [html.OPTION, html.FORM]}, html.ACTION, html.OUTPUT, html.STATUS]}]) return can.page.Append(can, target||can._output, [{view: [type, html.FIELDSET], list: [{type: html.LEGEND, list: [item.icon && {icon: item.icon}, {text: title}]}, {view: [html.OPTION, html.FORM]}, html.ACTION, html.OUTPUT, html.STATUS]}])
@ -580,7 +580,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
var value = can.onengine.plugin(can, meta.index); if (value) { can.onappend._plugin(can, value, meta, function(sub, meta, skip) { var value = can.onengine.plugin(can, meta.index); if (value) { can.onappend._plugin(can, value, meta, function(sub, meta, skip) {
value.meta && value.meta._init && value.meta._init(sub, meta), _cb(sub, meta, skip) }, target, field); return res } value.meta && value.meta._init && value.meta._init(sub, meta), _cb(sub, meta, skip) }, target, field); return res }
can.runAction(can.request({}, {_method: http.GET, pod: meta.space})._caller(), ctx.COMMAND, [meta.index], function(msg) { can.runAction(can.request({}, {_method: http.GET, pod: meta.space})._caller(), ctx.COMMAND, [meta.index], function(msg) {
if (msg.Length() == 0) { can.onappend._plugin(can, {index: "can._plugin", style: html.HIDE}, meta, _cb, target, field) } if (msg.Length() == 0) { return can.misc.Warn("not found", meta.index), can.onappend._plugin(can, {index: "can._plugin", style: html.HIDE}, meta, _cb, target, field) }
msg.Table(function(value) { can.onappend._plugin(can, value, meta, _cb, target, field) }) msg.Table(function(value) { can.onappend._plugin(can, value, meta, _cb, target, field) })
}); return res }); return res
}, },

View File

@ -192,21 +192,24 @@ Volcanos("misc", {
if (can.base.beginWith(obj.pod, nfs.PS, web.HTTP)) { if (can.base.beginWith(obj.pod, nfs.PS, web.HTTP)) {
if (location.search.indexOf("debug=true") > 0 && obj.pod.indexOf("debug=true") == -1) { if (location.search.indexOf("debug=true") > 0 && obj.pod.indexOf("debug=true") == -1) {
var ls = obj.pod.split("#"); ls[0] += (ls[0].indexOf("?") > 0? "&": "?") + "debug=true", obj.pod = ls.join("#") var ls = obj.pod.split("#"); ls[0] += (ls[0].indexOf("?") > 0? "&": "?") + "debug=true", obj.pod = ls.join("#")
} } return obj.pod
return obj.pod
} }
obj.pod = obj.pod||can.misc.Search(can, ice.POD); return can.misc.MergeURL(can, obj, true) obj.pod = obj.pod||can.misc.Search(can, ice.POD); return can.misc.MergeURL(can, obj, true)
// obj.pod = can.core.Keys(can.misc.Search(can, ice.POD), obj.pod); return can.misc.MergeURL(can, obj, true) // obj.pod = can.core.Keys(can.misc.Search(can, ice.POD), obj.pod); return can.misc.MergeURL(can, obj, true)
}, },
MergeURL: function(can, obj, clear) { var path = location.pathname; obj._path && (path = obj._path), delete(obj._path) MergeURL: function(can, obj, clear) { var path = location.pathname; obj._path && (path = obj._path), delete(obj._path)
can.misc.Search(can, log.DEBUG) && (obj.debug = ice.TRUE); var hash = obj._hash||""; delete(obj._hash) can.misc.Search(can, log.DEBUG) && (obj.debug = ice.TRUE); var hash = obj._hash||""; delete(obj._hash)
var args = [web.CHAT]; can.core.List([ice.POD, ice.CMD], function(key) { obj[key] && args.push(key, obj[key]), delete(obj[key]) }) // var args = [web.CHAT]; can.core.List([ice.POD, ice.CMD], function(key) { obj[key] && args.push(key, obj[key]), delete(obj[key]) })
var args = []; can.core.List([ice.POD, ice.CMD], function(key) { obj[key] && args.push(key == ice.POD? "s": "c", obj[key]), delete(obj[key]) })
var _location = location; if (can.user.isExtension) { var _location = new URL(Volcanos.meta.iceberg) } var _location = location; if (can.user.isExtension) { var _location = new URL(Volcanos.meta.iceberg) }
return can.base.MergeURL(_location.origin+(args.length == 1? path: nfs.PS+args.join(nfs.PS))+(clear? "": _location.search), obj)+(hash? "#"+hash: "") return can.base.MergeURL(_location.origin+(args.length == 1? path: nfs.PS+args.join(nfs.PS))+(clear? "": _location.search), obj)+(hash? "#"+hash: "")
}, },
ParseURL: function(can, url) { url = url||location.href; var args = can.base.ParseURL(url), _location = new URL(url) ParseURL: function(can, url) { url = url||location.href; var args = can.base.ParseURL(url), _location = new URL(url)
delete(args.link), delete(args.origin), delete(args._origin) delete(args.link), delete(args.origin), delete(args._origin)
var ls = can.core.Split(_location.pathname, nfs.PS); if (ls[0] == chat.SHARE) { args[chat.SHARE] = ls[1] } var ls = can.core.Split(_location.pathname, nfs.PS);
if (ls[0] == chat.SHARE) { args[chat.SHARE] = ls[1] }
if (ls[0] == "s") { args[ice.POD] = ls[1]; if (ls[2] == "c") { args[ice.CMD] = ls[3] } }
if (ls[0] == "c") { args[ice.CMD] = ls[1] }
for (var i = 1; i < ls.length; i += 2) { if (can.base.isIn(ls[i], [ice.POD, ice.CMD])) { args[ls[i]] = ls[i+1] } } for (var i = 1; i < ls.length; i += 2) { if (can.base.isIn(ls[i], [ice.POD, ice.CMD])) { args[ls[i]] = ls[i+1] } }
return args return args
}, },

View File

@ -9,7 +9,7 @@ Volcanos(chat.ONIMPORT, {
_display: function(can, msg) { can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)) }, _display: function(can, msg) { can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)) },
_clear: function(can, msg) { can.onmotion.clear(can) }, _clear: function(can, msg) { can.onmotion.clear(can) },
_inner: function(can, sub, msg) { can.onappend.table(sub, msg), can.onappend.board(sub, msg), can.onmotion.story.auto(sub) }, _inner: function(can, sub, msg) { can.onappend.table(sub, msg), can.onappend.board(sub, msg), can.onmotion.story.auto(sub) },
_field: function(can, msg, cb) { var height = can.base.Max(html.STORY_HEIGHT, can.ConfHeight(), can.onexport.outputHeight(can)), width = can.ConfWidth() _field: function(can, msg, cb) { var height = can.base.Max(html.STORY_HEIGHT, can.ConfHeight()), width = can.ConfWidth()
msg.Table(function(item) { can.onappend._plugin(can, item, {_space: can.ConfSpace(), index: item.index, args: can.base.Obj(item.args||item.arg, []), height: height, width: width}, function(sub) { msg.Table(function(item) { can.onappend._plugin(can, item, {_space: can.ConfSpace(), index: item.index, args: can.base.Obj(item.args||item.arg, []), height: height, width: width}, function(sub) {
can.onmotion.delay(can, function() { can.onmotion.scrollIntoView(can, sub._target) }, 300) can.onmotion.delay(can, function() { can.onmotion.scrollIntoView(can, sub._target) }, 300)
sub.run = function(event, cmds, cb) { var index = msg.Option(ice.MSG_INDEX) sub.run = function(event, cmds, cb) { var index = msg.Option(ice.MSG_INDEX)
@ -50,7 +50,7 @@ Volcanos(chat.ONIMPORT, {
can.page.Append(can, div, [{text: arg}]), can._output.scrollTop = div.offsetTop, div.scrollBy(0, 10000), true can.page.Append(can, div, [{text: arg}]), can._output.scrollTop = div.offsetTop, div.scrollBy(0, 10000), true
})) { can.onappend.board(can, arg) } })) { can.onappend.board(can, arg) }
}, },
_open: function(can, msg, arg) { can.user.opens(arg) }, _open: function(can, msg, arg) { can.user.opens(arg); if (can.ConfIndex() == "web.dream") { can.Update() } },
_close: function(can, msg) { can.user.close() || history.back() }, _close: function(can, msg) { can.user.close() || history.back() },
change: function(event, can, name, value, cb, data) { return can.page.SelectArgs(can, can._option, "", function(input) { if (input.name != name || value == input.value) { return } change: function(event, can, name, value, cb, data) { return can.page.SelectArgs(can, can._option, "", function(input) { if (input.name != name || value == input.value) { return }
can.page.Select(can, input.parentNode, "span.value", function(target) { target.innerText = value }) can.page.Select(can, input.parentNode, "span.value", function(target) { target.innerText = value })
@ -81,6 +81,7 @@ Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动",
function(can) { if (!can.isCmdMode()) { return "打开链接" } }, function(can) { if (can.isCmdMode()) { return "打开首页" } }, function(can) { if (!can.isCmdMode()) { return "打开链接" } }, function(can) { if (can.isCmdMode()) { return "打开首页" } },
function(can) { if (can.ConfSpace() || can.isCmdMode() && can.misc.Search(can, ice.POD)) { return "打开空间" } }, function(can) { if (can.ConfSpace() || can.isCmdMode() && can.misc.Search(can, ice.POD)) { return "打开空间" } },
function(can) { if (can.misc.Search(can, log.MSG_DEBUG)) { return "查看源码" } }, function(can) { if (can.misc.Search(can, log.MSG_DEBUG)) { return "查看源码" } },
function(can) { if (can.misc.Search(can, log.MSG_DEBUG)) { return "查看镜像" } },
["视图", "参数", ["视图", "参数",
function(can) { if (can._action.innerHTML) { return "操作" } }, function(can) { if (can._action.innerHTML) { return "操作" } },
function(can) { if (can._status.innerHTML) { return "状态" } }, function(can) { if (can._status.innerHTML) { return "状态" } },
@ -93,7 +94,7 @@ Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动",
// ["数据", "保存参数", "清空参数", "复制数据", "下载数据", "清空数据"], // ["数据", "保存参数", "清空参数", "复制数据", "下载数据", "清空数据"],
["调试", ["调试",
function(can) { if (can.Conf("_help")) { return "查看文档" } }, function(can) { if (can.Conf("_help")) { return "查看文档" } },
"查看脚本", "查看源码", "查看脚本", "查看源码", "查看镜像",
"查看通知", "查看视图", "查看数据", "会话存储", "本地存储", "查看通知", "查看视图", "查看数据", "会话存储", "本地存储",
"查看报文", "查看配置", "查看日志", "删除工具", "查看报文", "查看配置", "查看日志", "删除工具",
], ],
@ -161,6 +162,7 @@ Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动",
"查看文档": function(event, can) { can.requests(event, {action: ice.HELP}), can.onengine.signal(can, chat.ONDEBUGS, can.requestPodCmd(event)) }, "查看文档": function(event, can) { can.requests(event, {action: ice.HELP}), can.onengine.signal(can, chat.ONDEBUGS, can.requestPodCmd(event)) },
"查看脚本": function(event, can) { can.onappend._float(can, web.CODE_VIMER, can.misc.SplitPath(can, can.sub._path)) }, "查看脚本": function(event, can) { can.onappend._float(can, web.CODE_VIMER, can.misc.SplitPath(can, can.sub._path)) },
"查看源码": function(event, can) { can.requests(event, {action: nfs.SOURCE}), can.onengine.signal(can, chat.ONDEBUGS, can.requestPodCmd(event)) }, "查看源码": function(event, can) { can.requests(event, {action: nfs.SOURCE}), can.onengine.signal(can, chat.ONDEBUGS, can.requestPodCmd(event)) },
"查看镜像": function(event, can) { can.onappend._float(can, {index: "web.code.compile"}) },
"查看通知": function(event, can) { can.onappend._float(can, {index: "can.toast"}, [can.ConfIndex()]) }, "查看通知": function(event, can) { can.onappend._float(can, {index: "can.toast"}, [can.ConfIndex()]) },
"查看视图": function(event, can) { can.onappend._float(can, {index: "can.view", _target: can._fields||can._target}) }, "查看视图": function(event, can) { can.onappend._float(can, {index: "can.view", _target: can._fields||can._target}) },
"查看数据": function(event, can) { can.onappend._float(can, {index: "can.data", _target: can}) }, "查看数据": function(event, can) { can.onappend._float(can, {index: "can.data", _target: can}) },