1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-02-29 20:14:34 +08:00
parent 78db3a2b2f
commit c69eeac9f7
5 changed files with 49 additions and 36 deletions

View File

@ -74,14 +74,24 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) {
Volcanos(chat.ONDAEMON, {_init: function(can, name, type, cbs) { if (can.user.isLocalFile) { return }
return can.misc.WSS(can, {type: type||web.PORTAL, name: name||can.misc.Search(can, cli.DAEMON)||""}, function(event, msg, cmd, arg, cb) {
if (cbs && can.core.CallFunc(cbs, {event: event, msg: msg, cmd: cmd, arg: arg, cb: cb})) { return }
var sub = can.ondaemon._list[can.core.Keys(msg[ice.MSG_TARGET])]||can; can.base.isFunc(sub.ondaemon[cmd])?
can.core.CallFunc(sub.ondaemon[cmd], {can: can, msg: msg, sub: sub, cmd: cmd, arg: arg, cb: cb}):
can.onengine._search({}, can, msg, can, [chat._SEARCH, cmd].concat(arg), cb)
var sub = can.ondaemon._list[can.core.Keys(msg[ice.MSG_TARGET])]||can;
sub.sub && can.base.isFunc(sub.sub.ondaemon[cmd])? can.core.CallFunc(sub.sub.ondaemon[cmd], {can: can, msg: msg, sub: sub, cmd: cmd, arg: arg, cb: cb}):
can.base.isFunc(sub.ondaemon[cmd])? can.core.CallFunc(sub.ondaemon[cmd], {can: can, msg: msg, sub: sub, cmd: cmd, arg: arg, cb: cb}):
can.onengine._search({}, can, msg, can, [chat._SEARCH, cmd].concat(arg), cb)
})
}, _list: [""], pwd: function(can, arg) { can.misc.sessionStorage(can, "can.daemon", can._wss_name = can.ondaemon._list[0] = arg[0]) },
close: function(can, msg, sub) { can.user.close() }, exit: function(can, msg, sub) { can.user.close() },
toast: function(can, sub, arg, cb) { can.core.CallFunc(can.user.toast, [sub].concat(arg)) },
refresh: function(can, sub) { can.base.isFunc(sub.Update) && sub.Update() },
online: function(can, sub) { debugger },
refresh: function(can, msg, sub, arg) {
if (arg[0] == "confirm") {
can.user.toastConfirm(can, arg[1]||"reload?", sub.ConfIndex(), function(event, button) {
can.base.isFunc(sub.Update) && sub.Update()
})
} else {
can.base.isFunc(sub.Update) && sub.Update()
}
},
grant: function(can, msg, sub, arg) {
var toast = can.user.toast(can, {duration: arg[1]||10000, content: "grant "+arg[0], action: shy({
confirm: function(event) { toast.close(), can.run(can.request(event, {name: arg[0]}), [ctx.ACTION, ctx.RUN, web.SPACE, aaa.LOGIN]) },

View File

@ -134,7 +134,7 @@ kbd { padding:0 var(--input-padding); }
img.qrcode { width:var(--qrcode-width); }
/* output style */
div.title>div.status { line-height:20px; display:flex; }
div.title>div.status>div.item { font-size:var(--status-font-size); font-weight:normal; float:left; padding:0 var(--input-padding); }
div.title>div.status>div.item { font-size:var(--status-font-size); font-weight:normal; white-space:pre; padding:0 var(--input-padding); display:flex; float:left; }
div.title>div.status>div.item.restart { background-color:var(--notice-bg-color); color:var(--notice-fg-color) !important; opacity:0.4; }
div.title>div.status>div.item.access { background-color:var(--danger-bg-color); color:var(--danger-fg-color) !important; opacity:0.4; }
div.title>div.status>div.item:not(:hover) { color:var(--disable-fg-color); }
@ -146,7 +146,7 @@ div.output.card>div.item:hover { background-color:var(--plugin-bg-color); color:
div.output.card>div.item.stop { color:var(--disable-fg-color); }
div.output.card>div.item>div.title { font-size:var(--legend-font-size); font-weight:bold; padding-bottom:var(--input-padding); display:flex; align-items:center; overflow:hidden; }
div.output.card>div.item>div.title>div.title>span { padding:var(--input-padding); }
div.output.card>div.item>div.title>img { height:var(--header-height); width:var(--header-height); float:left; }
div.output.card>div.item>div.title>img { height:var(--header-height); width:var(--header-height); margin:0; float:left; }
div.output.card>div.item>div.title>img.jpg { padding:var(--input-padding); }
div.item img.jpg { padding:var(--input-padding); }
div.output.card>div.item>div.content { white-space:pre; font-size:var(--status-font-size); padding:var(--input-padding); height:var(--header-height); }
@ -195,11 +195,16 @@ div.content>div.toggle.display { left:20%; bottom:-52px; rotate:90deg; border-to
div.project:not(.toggle) { width:var(--project-width); flex:0 0 var(--project-width); }
div.profile:not(.toggle) { width:50%; flex:0 0 50%; }
/* fieldset */
fieldset>div.action>div.friend { display:block; margin-left:10px !important; }
fieldset>div.action>div.friend { display:block; margin-right:10px !important; overflow:hidden; }
fieldset>div.action>div.friend img { height:var(--action-height); transition:all 1s; float:right; }
fieldset>div.action>div.friend:not(:hover) img:not(:first-child) { margin-right:-20px; }
fieldset>div.action>div.friend:hover img:not(:first-child) { margin-right:var(--input-margin); }
fieldset>div.action>div.online { display:block; margin-left:10px !important; }
fieldset>div.action>div.online { display:block; margin-right:10px !important; overflow:hidden; position:relative; }
fieldset>div.action>div.online span { background-color:var(--hover-bg-color); color:var(--hover-fg-color); font-size:var(--status-font-size); position:absolute; bottom:0; }
fieldset>div.action>div.online img { height:var(--action-height); transition:margin-right 1s; float:right; }
fieldset>div.action>div.online img:hover { background-color:var(--hover-bg-color); }
fieldset>div.action>div.online:not(:hover) img:not(:first-child) { margin-right:-20px; }
body.mobile fieldset>div.action>div.online img:not(:first-child) { margin-right:-20px; }
body.width6 fieldset>div.action>div.online:not(:hover) img:not(:first-child) { margin-right:var(--input-margin); }
fieldset>div.action>div.online:hover img:not(:first-child) { margin-right:var(--input-margin); }
fieldset>div.action>div.online:hover { background-color:unset; }
fieldset>form.option>div.item:not(.icon) { margin-right:var(--button-margin); }
fieldset>div.action>div.item:not(:last-child) { margin-right:var(--button-margin); }
fieldset.input>legend { display:none; }
@ -474,7 +479,7 @@ input[type=button] { border-radius:var(--button-radius); }
fieldset>form.option>div.item.select { border-radius:var(--button-radius); }
fieldset>form.option>div.item.button { border-radius:var(--button-radius); }
fieldset>div.action div.item.button { border-radius:var(--button-radius); }
fieldset>div.action div.item.button:last-child { margin-right:20px; }
fieldset>div.action>div.item.button:last-child { margin-right:20px; }
fieldset>div.action div.item.select:not(.button):not(.cmds) { border-radius:var(--button-radius); border-bottom:var(--notice-bg-color) solid 3px; }
fieldset:not(.input):not(.panel):not(.full):not(.cmd) { border-radius:var(--plugin-radius); }
fieldset>div.status>legend:not(:hover):not(.select) { border-radius:0; }

View File

@ -76,7 +76,7 @@ Volcanos("user", {
return fmt == "%W"? list: can.base.Time(time, (fmt||"%y-%m-%d %H:%M:%S").replace("%w", list[now.getDay()]))
},
toastConfirm: function(can, content, title, action) {
if (!action.list || action.list.length == 0) { action = shy({confirm: action}, [html.CANCEL, html.CONFIRM], function() {}) }
if (!action.list || action.list.length == 0) { action = shy({confirm: action}, [html.CANCEL, html.CONFIRM]) }
var carte = can.user.toast(can, {content: content, title: title, action: action||[cli.CLOSE], duration: -1})
can.page.style(can, carte._target, html.TOP, 200, html.BOTTOM, ""); return carte
},
@ -99,7 +99,10 @@ Volcanos("user", {
] }]); can.onengine.signal(can, chat.ONTOAST, can.request({}, {time: can.misc._time(), title: meta.title, content: meta.content}))
meta.action.meta && can.core.Item(meta.action.meta, function(key, cb) { cb.help && can.core.Value(meta.action.meta, ["_trans", key], cb.help) })
var action = can.onappend._action(can, meta.action.list? meta.action.list.reverse(): meta.action, ui.action, {_trans: meta.action.meta? meta.action.meta._trans: {},
_engine: function(event, button) { can.core.CallFunc(meta.action.meta? meta.action.meta[button]: meta.action, [event, button]) },
_engine: function(event, button) {
can.core.CallFunc(meta.action.meta? meta.action.meta[button]: meta.action, [event, button])
action.close(event)
},
open: function(event) { meta.content.indexOf(ice.HTTP) == 0 && can.user.open(meta.content), meta.title.indexOf(ice.HTTP) == 0 && can.user.open(meta.title) },
close: function(event) { action.timer.stop = true, can.page.Remove(can, ui._target) },
cancel: function(event) { action.timer.stop = true, can.page.Remove(can, ui._target) },

View File

@ -2,6 +2,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { if (can.user.mod.isPod)
can.require(["/plugin/local/code/inner.js"], function(can) { can.onimport._last_init(can, msg, function() {
can.onengine.listen(can, "tabview.line.select", function(msg) { can.onaction._selectLine(can) })
can.db.undo = [], can.db.redo = [], can.onimport._input(can), cb && cb(msg)
can.onimport._online(can)
}) })
},
_input: function(can) { var ui = can.page.Append(can, can.ui.content.parentNode, [

View File

@ -226,29 +226,23 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
}, sub.onaction.close = function() { can.onmotion.hidden(can, target) }, can.base.isFunc(cb) && cb(sub)
}, target, field)
},
_online: function(can, delay) {
can.onmotion.delay(can, function() {
if (!can.ui.friend) {
if (can.isCmdMode()) {
can.ui.friend = can.page.Append(can, can._action, ["item friend"])._target
} else {
var p = can.page.SelectOne(can, can._action, "div.item._space").nextSibling
can.ui.friend = can.page.insertBefore(can, ["item friend"], p, can._action)
}
_online: function(can, delay) { can.onmotion.delay(can, function() {
if (!can.ui.online) {
if (can.isCmdMode()) {
can.ui.online = can.page.Append(can, can._action, ["item online"])._target
} else {
var p = can.page.SelectOne(can, can._action, "div.item._space"); p = p? p.nextSibling: p
can.ui.online = can.page.insertBefore(can, ["item online"], p, can._action)
}
can._root.Header.run(can.request({}, {_space: can.ConfSpace(), _index: can.ConfIndex()}), [ctx.ACTION, web.ONLINE], function(msg) {
can.page.Appends(can, can.ui.friend, msg.Table(function(value, index) {
return index < 5 && {img: can.misc.Resource(can,
value.username == can.user.info.username? value.icons: value.avatar||"usr/icons/contexts.png"),
title: [
[value.usernick, value.username].join(" "),
[value.agent, value.system, value.ip].join(" "),
].join("\n")}
}))
})
can.onimport._online(can, 30000)
}, delay)
},
}
can._root.Header.run(can.request({}, {_space: can.ConfSpace()||can.misc.Search(can, ice.POD), _index: can.ConfIndex()}), [ctx.ACTION, web.ONLINE], function(msg) {
can.page.Appends(can, can.ui.online, msg.Table(function(value, index) {
return index < 5 && {img: can.misc.Resource(can, value.username == can.user.info.username? value.icons: value.avatar||"usr/icons/contexts.png"),
title: [[value.usernick, value.username].join(lex.SP), [value.agent, value.system, value.ip].join(lex.SP)].join(lex.NL)}
}))
can.page.Append(can, can.ui.online, [{text: msg.Length()+""}])
}), can.onimport._online(can, 30000)
}, delay) },
})
Volcanos(chat.ONLAYOUT, {
_init: function(can, height, width) {