1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-05-14 00:02:26 +08:00
parent 54a7872244
commit ac01242ec1
5 changed files with 20 additions and 35 deletions

View File

@ -415,14 +415,13 @@ Volcanos("page", {
getquery: function(can, target) { getquery: function(can, target) {
var list = []; for (var p = target; p; p = p.parentNode) { var list = []; for (var p = target; p; p = p.parentNode) {
if (can.page.tagis(p, "body")) { list.pop(); break } if (can.page.tagis(p, "body")) { list.pop(); break }
list.push(can.core.Keys(p.tagName, can.core.List(p.classList).join("."))) list.push(can.core.Keys(p.tagName.toLowerCase(), can.core.List(p.classList).join(".")), ">")
if (can.page.tagis(p, html.FIELDSET)) { if (can.page.tagis(p, html.FIELDSET)) {
if (can.page.tagis(p, "fieldset.story.web.chat.tutor.float")) { return "" } if (can.page.tagis(p, "fieldset.web.chat.tutor")) { return "" }
break list.pop(); break
} }
list.push(">")
} }
return list.reverse().join("").toLowerCase() return list.reverse().join("")
}, },
theme: function(cb) { var themeMedia = window.matchMedia("(prefers-color-scheme: dark)") theme: function(cb) { var themeMedia = window.matchMedia("(prefers-color-scheme: dark)")
cb && themeMedia.addListener(function(event) { cb(event.matches? html.DARK: html.LIGHT) }) cb && themeMedia.addListener(function(event) { cb(event.matches? html.DARK: html.LIGHT) })

View File

@ -9,7 +9,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { var river = can.Conf(chat.R
can.user.info.nodetype == web.WORKER && item._command == web.WORD && (list = [river, storm, item._command]) can.user.info.nodetype == web.WORKER && item._command == web.WORD && (list = [river, storm, item._command])
} }
can.onappend.plugin(can, item, function(sub, meta, skip) { can.onappend.plugin(can, item, function(sub, meta, skip) {
if (can.base.isIn(meta.index, "can._notfound")) { sub.Conf(ctx.INDEX, msg.detail[index+3]) } if (msg.detail && can.base.isIn(meta.index, "can._notfound")) { sub.Conf(ctx.INDEX, msg.detail[index+3]) }
sub.run = function(event, cmds, cb) { return can.run(can.request(event, {pod: meta.pod||meta.space}), (can.base.beginWith(meta.index, "can.")? [meta.index]: [river, storm, meta.id||meta.index]).concat(cmds), cb) } sub.run = function(event, cmds, cb) { return can.run(can.request(event, {pod: meta.pod||meta.space}), (can.base.beginWith(meta.index, "can.")? [meta.index]: [river, storm, meta.id||meta.index]).concat(cmds), cb) }
sub.onexport.output = function() { msg.Length() > 1 && can.onexport.isauto(can) && can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, ""), can.onaction.layout(can, list[3]) } sub.onexport.output = function() { msg.Length() > 1 && can.onexport.isauto(can) && can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, ""), can.onaction.layout(can, list[3]) }
can.onaction.layout(can, list[3]), can.onimport._tabs(can, sub, meta), can._plugins = (can._plugins||[]).concat([sub]) can.onaction.layout(can, list[3]), can.onimport._tabs(can, sub, meta), can._plugins = (can._plugins||[]).concat([sub])
@ -19,7 +19,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { var river = can.Conf(chat.R
}, function() { can.onaction.layout(can, list[3]), _select._tabs.click() }) }, function() { can.onaction.layout(can, list[3]), _select._tabs.click() })
}, },
_tabs: function(can, sub, meta) { _tabs: function(can, sub, meta) {
var tabs = [{view: [html.ITEM, "", can.user.trans(can, meta.name, meta.help)], title: meta.help, onclick: function(event) { can._current = sub var tabs = [{view: [[html.ITEM, meta.name], "", can.user.trans(can, meta.name, meta.help)], title: meta.help, onclick: function(event) { can._current = sub
can.onengine.signal(can, "onevent", can.request(event, {query: can.page.getquery(can, event.target)}))
can.onmotion.select(can, can._output, html.FIELDSET_PLUGIN, sub._target), can.onmotion.select(can, can._action, html.DIV_ITEM, sub._tabs), can.onmotion.select(can, can._header_tabs, html.DIV_ITEM, sub._header_tabs) can.onmotion.select(can, can._output, html.FIELDSET_PLUGIN, sub._target), can.onmotion.select(can, can._action, html.DIV_ITEM, sub._tabs), can.onmotion.select(can, can._header_tabs, html.DIV_ITEM, sub._header_tabs)
can.onmotion.delay(can, function() { sub._header_tabs.scrollIntoViewIfNeeded() }) can.onmotion.delay(can, function() { sub._header_tabs.scrollIntoViewIfNeeded() })
var layout = can.onexport.layout(can); layout == FREE || (can._output.scrollTop = sub._target.offsetTop-10) var layout = can.onexport.layout(can); layout == FREE || (can._output.scrollTop = sub._target.offsetTop-10)

View File

@ -17,7 +17,7 @@ body.mobile fieldset.Footer>div.output { font-style:italic; height:var(--footer-
body.mobile fieldset.Footer>div.output div.toast { display:none; } body.mobile fieldset.Footer>div.output div.toast { display:none; }
body.mobile fieldset.Footer>div.output div.cmd { display:none; } body.mobile fieldset.Footer>div.output div.cmd { display:none; }
.picker { box-shadow:#626bd0 0px 2px 10px 5px !important; position:relative; top: -5px; transition:all 0.5s; } .picker { box-shadow:var(--notice-bg-color) 0px 0px 20px 5px !important; position:relative; left:-5px; top: -5px; transition:all 0.5s; background-color:blue !important; color:white !important; }
div.view span.string { color:#f29766; } div.view span.string { color:#f29766; }
div.view span.keyword { color:#5cadd4; } div.view span.keyword { color:#5cadd4; }
div.item:not(.string):not(.number):not(.boolean)>span.value { color:var(--disable-fg-color); font-style:italic; } div.item:not(.string):not(.number):not(.boolean)>span.value { color:var(--disable-fg-color); font-style:italic; }

View File

@ -28,7 +28,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can._wss = can.onda
case web.CLEAR: case web.CLEAR:
case cli.CLOSE: break case cli.CLOSE: break
default: var list = can.core.Split(event.target.value, lex.SP) default: var list = can.core.Split(event.target.value, lex.SP)
// can.onexport._float(can, "cli", list[0], list.slice(1), function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+html.PLUGIN_MARGIN, html.RIGHT, "") }) })
can.onexport._float(can, "cli", {index: "can.console", display: "/plugin/local/code/xterm.js"}, list, function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+html.PLUGIN_MARGIN, html.RIGHT, "") }) }) can.onexport._float(can, "cli", {index: "can.console", display: "/plugin/local/code/xterm.js"}, list, function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+html.PLUGIN_MARGIN, html.RIGHT, "") }) })
} }
}}, "", target, [chat.TITLE]) }, }}, "", target, [chat.TITLE]) },
@ -42,9 +41,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can._wss = can.onda
_data: function(can, name, item) { can.db[name] = can.db[name]||can.request(), can.db[name].Push(item), can.onimport.count(can, name) }, _data: function(can, name, item) { can.db[name] = can.db[name]||can.request(), can.db[name].Push(item), can.onimport.count(can, name) },
value: function(can, name, value) { can.page.Select(can, can._output, "div.item>span."+name, function(target) { target.innerHTML = value }) }, value: function(can, name, value) { can.page.Select(can, can._output, "div.item>span."+name, function(target) { target.innerHTML = value }) },
count: function(can, name) { can.page.Select(can, can._output, can.core.Keys(html.SPAN, name), function(item) { item.innerHTML = can.Conf(name, parseInt(can.Conf(name)||"0")+1+"")+"" }) }, count: function(can, name) { can.page.Select(can, can._output, can.core.Keys(html.SPAN, name), function(item) { item.innerHTML = can.Conf(name, parseInt(can.Conf(name)||"0")+1+"")+"" }) },
ntip: function(can, msg, time, title, content) { can.onimport._data(can, NTIP, {time: time, ntip: function(can, msg, time, title, content) { can.onimport._data(can, NTIP, {time: time, title: title, content: content}), can.page.Modify(can, can.ui.toast, [time, title, content].join(lex.SP)) },
// fileline: can.base.trimPrefix(msg.Option("log.caller"), location.origin+nfs.PS),
title: title, content: content}), can.page.Modify(can, can.ui.toast, [time, title, content].join(lex.SP)) },
ncmd: function(can, msg, _follow, _cmds) { can.onimport._data(can, NCMD, {time: can.base.Time(), follow: _follow, cmds: _cmds}), can.onimport.nlog(can, NLOG) }, ncmd: function(can, msg, _follow, _cmds) { can.onimport._data(can, NCMD, {time: can.base.Time(), follow: _follow, cmds: _cmds}), can.onimport.nlog(can, NLOG) },
nlog: function(can, name) { can.onimport.count(can, name) }, nlog: function(can, name) { can.onimport.count(can, name) },
menu: function(can, cmds, cb, trans) { can.base.isString(cmds) && (cmds = [cmds]) menu: function(can, cmds, cb, trans) { can.base.isString(cmds) && (cmds = [cmds])
@ -56,31 +53,20 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can._wss = can.onda
}, },
}) })
Volcanos(chat.ONACTION, {_init: function(can) {}, Volcanos(chat.ONACTION, {_init: function(can) {},
onsize: function(can) { onsize: function(can) { can.ConfHeight(can._target.offsetHeight), can.ConfWidth(can._target.offsetWidth)
can.ConfHeight(can._target.offsetHeight), can.ConfWidth(can._target.offsetWidth) can.onimport.value(can, html.HEIGHT, can.page.height()), can.onimport.value(can, html.WIDTH, can.page.width())
can.onimport.value(can, html.HEIGHT, can.page.height())
can.onimport.value(can, html.WIDTH, can.page.width())
}, },
onlogin: function(can, msg) { can.run(can.request({}, {_method: http.GET}), [], function(msg) { can.onmotion.clear(can), can.onimport._init(can, msg, can._output) }) }, onlogin: function(can, msg) { can.run(can.request({}, {_method: http.GET}), [], function(msg) { can.onmotion.clear(can), can.onimport._init(can, msg, can._output) }) },
ontoast: function(can, msg) { can.core.CallFunc(can.onimport.ntip, {can: can, msg: msg}) }, ontoast: function(can, msg) { can.core.CallFunc(can.onimport.ntip, {can: can, msg: msg}) },
onremote: function(can, msg) { can.core.CallFunc(can.onimport.ncmd, {can: can, msg: msg}) }, onremote: function(can, msg) { can.core.CallFunc(can.onimport.ncmd, {can: can, msg: msg}) },
onunload: function(can) { can._wss && can._wss.close() }, onunload: function(can) { can._wss && can._wss.close() },
onrecord: function(can, msg) { var zone = can.misc.sessionStorage(can, "web.chat.script:zone") onrecord: function(can, msg) { var zone = can.misc.sessionStorage(can, "web.chat.script:zone"); zone && can.runAction(can.request(), nfs.SCRIPT, [zone].concat(msg.cmds[0])) },
zone && can.runAction(can.request(), nfs.SCRIPT, [zone].concat(msg.cmds[0]))
},
onaction_cmd: function(can) { can.onappend.style(can, html.HIDE) }, onaction_cmd: function(can) { can.onappend.style(can, html.HIDE) },
onstorm_select: function(event, can, river, storm) { onstorm_select: function(event, can, river, storm) { event.isTrusted != undefined && can.onimport._data(can, chat.TUTOR, {time: can.base.Time(), type: chat.STORM, text: [river, storm].join(",")}) },
event.isTrusted != undefined && can.onimport._data(can, chat.TUTOR, {type: chat.STORM, text: [river, storm].join(",")}) ontheme: function(event, can, theme) { event.isTrusted && theme && can.onimport._data(can, chat.TUTOR, {time: can.base.Time(), type: chat.THEME, text: theme}) },
}, onevent: function(event, can, query) { event.isTrusted && query && can.onimport._data(can, chat.TUTOR, {time: can.base.Time(), type: event.type, text: query}) },
onremove: function(event, can, query) { onproject: function(event, can, query) { event.isTrusted && query && can.onimport._data(can, chat.TUTOR, {time: can.base.Time(), type: "item", text: query}) },
event.isTrusted != undefined && query && can.onimport._data(can, chat.TUTOR, {type: "remove", text: query}) onremove: function(event, can, query) { event.isTrusted && query && can.onimport._data(can, chat.TUTOR, {time: can.base.Time(), type: "remove", text: query}) },
},
onevent: function(event, can, query) {
event.isTrusted != undefined && query && can.onimport._data(can, chat.TUTOR, {type: event.type, text: query})
},
ontheme: function(event, can, theme) {
event.isTrusted != undefined && can.onimport._data(can, chat.TUTOR, {type: chat.THEME, text: theme})
},
oncommand_focus: function(can) { can.page.Select(can, can._output, ["div.cmd", html.INPUT], function(target) { can.onmotion.focus(can, target) }) }, oncommand_focus: function(can) { can.page.Select(can, can._output, ["div.cmd", html.INPUT], function(target) { can.onmotion.focus(can, target) }) },
onlayout: function(can, layout, before) { if (can.user.isMobile) { return } onlayout: function(can, layout, before) { if (can.user.isMobile) { return }
can.page.ClassList.del(can, can._target, before), can.page.ClassList.add(can, can._target, layout) can.page.ClassList.del(can, can._target, before), can.page.ClassList.add(can, can._target, layout)
@ -91,7 +77,6 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
}) })
}) }) }, }) }) },
}) })
// Volcanos(chat.ONEXPORT, {list: [NTIP, NLOG, NCMD, NKEY, html.WIDTH, html.HEIGHT, nfs.VERSION],
Volcanos(chat.ONEXPORT, {list: [cli.BEGIN, nfs.VERSION], Volcanos(chat.ONEXPORT, {list: [cli.BEGIN, nfs.VERSION],
height: function(can) { can.onexport._float(can, html.HEIGHT, "can.view") }, height: function(can) { can.onexport._float(can, html.HEIGHT, "can.view") },
width: function(can) { can.onexport._float(can, html.WIDTH, "can.data") }, width: function(can) { can.onexport._float(can, html.WIDTH, "can.data") },

View File

@ -30,9 +30,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target, cb) {
can.base.isFunc(button)? button(event, button): can.onaction[button](event, can, button), can.onkeymap.prevent(event) can.base.isFunc(button)? button(event, button): can.onaction[button](event, can, button), can.onkeymap.prevent(event)
}}]) }, }}]) },
_vimer_zone: function(can, msg, target) { msg.Table(function(value) { var action = can.page.parseAction(can, value) _vimer_zone: function(can, msg, target) { msg.Table(function(value) { var action = can.page.parseAction(can, value)
can.onimport.item(can, { can.onimport.item(can, {type: value.type, status: value.status,
type: value.type,
status: value.status,
icon: can.misc.Resource(can, value.icon||value.icons||value.avatar_url), icon: can.misc.Resource(can, value.icon||value.icons||value.avatar_url),
name: can.page.Color(value[can.Conf(mdb.FIELD)||mdb.VIEW]||value[mdb.NAME]||value[mdb.TEXT]||value[mdb.TYPE]), name: can.page.Color(value[can.Conf(mdb.FIELD)||mdb.VIEW]||value[mdb.NAME]||value[mdb.TEXT]||value[mdb.TYPE]),
title: value[mdb.TEXT]||value.description, title: value[mdb.TEXT]||value.description,
@ -114,6 +112,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target, cb) {
].concat(item._label||[], [ ].concat(item._label||[], [
item.action && {icon: "bi bi-three-dots", onclick: function(event) { can.onimport._menu(event, can, item, cbs) }}, item.action && {icon: "bi bi-three-dots", onclick: function(event) { can.onimport._menu(event, can, item, cbs) }},
]), _init: function(target) { ]), _init: function(target) {
can.ui[item.path] = target
item._select && can.onmotion.delay(can, function() { target.click() }) item._select && can.onmotion.delay(can, function() { target.click() })
}, onclick: function(event) { }, onclick: function(event) {
cb(event) cb(event)
@ -124,6 +123,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target, cb) {
item: function(can, item, cb, cbs, _target) { item: function(can, item, cb, cbs, _target) {
return can.page.Append(can, _target||can.ui.project||can._output, [can.onimport._item(can, item, function(event) { var target = event.currentTarget return can.page.Append(can, _target||can.ui.project||can._output, [can.onimport._item(can, item, function(event) { var target = event.currentTarget
can.onmotion.select(can, target.parentNode, html.DIV_ITEM, target) can.onmotion.select(can, target.parentNode, html.DIV_ITEM, target)
can.onengine.signal(can, "onproject", can.request(event, {type: "item", query: can.page.getquery(can, can._fields)+","+item.path}))
var show = target._list && can.onmotion.toggle(can, target._list); cb(event, item, show, target) var show = target._list && can.onmotion.toggle(can, target._list); cb(event, item, show, target)
}, cbs)])._target }, cbs)])._target
}, },