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-03-04 10:48:27 +08:00
parent acca353827
commit 524de99f34
6 changed files with 37 additions and 32 deletions

View File

@ -82,7 +82,6 @@ Volcanos(chat.ONDAEMON, {_init: function(can, name, type, cbs) { if (can.user.is
}, _list: [""], pwd: function(can, arg) { can.misc.sessionStorage(can, "can.daemon", can._wss_name = can.ondaemon._list[0] = arg[0]) }, }, _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() }, 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)) }, toast: function(can, sub, arg, cb) { can.core.CallFunc(can.user.toast, [sub].concat(arg)) },
online: function(can, sub) { debugger },
refresh: function(can, msg, sub, arg) { refresh: function(can, msg, sub, arg) {
if (arg[0] == "confirm") { if (arg[0] == "confirm") {
can.user.toastConfirm(can, arg[1]||"reload?", sub.ConfIndex(), function(event, button) { can.user.toastConfirm(can, arg[1]||"reload?", sub.ConfIndex(), function(event, button) {
@ -116,6 +115,26 @@ Volcanos(chat.ONDAEMON, {_init: function(can, name, type, cbs) { if (can.user.is
can.core.CallFunc(can.core.Value(can, arg[0]), kit.Dict({can: can}, arg.slice(1))) can.core.CallFunc(can.core.Value(can, arg[0]), kit.Dict({can: can}, arg.slice(1)))
}, },
input: function(can, msg, sub, arg) { can.page.Select(can, sub._target, "input:focus", function(target) { target.value += arg[0] }) }, input: function(can, msg, sub, arg) { can.page.Select(can, sub._target, "input:focus", function(target) { target.value += arg[0] }) },
online: function(can, sub) { debugger },
_online: function(can, delay) { can.onmotion.delay(can, function() { can = can._fields? can.sup: can
if (can.ui._online) { return } can.ui._online = true
if (!can.ui.online) {
if (can.isCmdMode()) {
can.ui.online = can.page.Append(can, can.ui.head? can.ui.head: can._action, ["item online state"])._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 state"], p, can._action)
}
}
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)}
}))
msg.Length() > 0 && can.page.Append(can, can.ui.online, [{text: msg.Length()+""}])
can.onmotion.orderShow(can, can.ui.online, "*", 10, 300)
}), can.ondaemon._online(can, 30000)
}, delay) },
}) })
Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
meta.index && (meta.name = meta.index), meta.name = can.core.Split(meta.name||"", "\t .\n").pop()||can.Conf(mdb.NAME) meta.index && (meta.name = meta.index), meta.name = can.core.Split(meta.name||"", "\t .\n").pop()||can.Conf(mdb.NAME)
@ -170,7 +189,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
}) }) }) })
}), can.base.isFunc(cb) && cb(sub) }), can.base.isFunc(cb) && cb(sub)
if (sub.isOutputStyle()) { return } if (can.user.isMobile && !can.user.isLandscape()) { return } if (sub.isOutputStyle()) { return } if (can.user.isMobile && !can.user.isLandscape()) { return }
sub.isCmdMode() && !can.base.isIn(meta.index, web.CODE_VIMER, web.CODE_INNER, web.CHAT_MACOS_DESKTOP) && can.page.insertBefore(can, can.user.header(sub), sub._output, sub._fields||sub._target) sub.isCmdMode() && !can.base.isIn(meta.index, web.CODE_VIMER, web.CODE_INNER, web.CHAT_MACOS_DESKTOP) && can.page.insertBefore(can, [{view: "header", list: can.user.header(sub)}], sub._output, sub._fields||sub._target)
}); return sub }); return sub
}, },
_option: function(can, meta, option, skip) { var index = -1, args = can.base.Obj(meta.args||meta.arg, []), opts = can.base.Obj(meta.opts, {}) _option: function(can, meta, option, skip) { var index = -1, args = can.base.Obj(meta.args||meta.arg, []), opts = can.base.Obj(meta.opts, {})
@ -313,6 +332,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
can.onmotion.clear(can, can._action), sub.onappend._action(sub, can.Conf(ice.MSG_ACTION)||msg.Option(ice.MSG_ACTION), action||can._action) can.onmotion.clear(can, can._action), sub.onappend._action(sub, can.Conf(ice.MSG_ACTION)||msg.Option(ice.MSG_ACTION), action||can._action)
sub.onappend._status(sub, sub.onexport&&sub.onexport.list||msg.Option(ice.MSG_STATUS), null, msg), can.user.isMobile || sub.onappend.tools(sub, msg) sub.onappend._status(sub, sub.onexport&&sub.onexport.list||msg.Option(ice.MSG_STATUS), null, msg), can.user.isMobile || sub.onappend.tools(sub, msg)
can.core.Item(can.Action(), function(key) { var value = can.misc.sessionStorage(can, [can.ConfIndex(), ctx.ACTION, key]); value && can.Action(key, value[0]) }) can.core.Item(can.Action(), function(key) { var value = can.misc.sessionStorage(can, [can.ConfIndex(), ctx.ACTION, key]); value && can.Action(key, value[0]) })
if (msg.Option("sess.online") == ice.TRUE) { can.ondaemon._online(can) }
} can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onmotion.story.auto(can, can._output) } can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onmotion.story.auto(can, can._output)
if (can.onimport.size) { if (can.onimport.size) {
can.page.ClassList.has(can, can._target, html.FLOAT) && !can.page.ClassList.has(can, can._target, html.PLUG)? can.page.ClassList.has(can, can._target, html.FLOAT) && !can.page.ClassList.has(can, can._target, html.PLUG)?

View File

@ -203,12 +203,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.project:not(.toggle) { width:var(--project-width); flex:0 0 var(--project-width); }
div.profile:not(.toggle) { width:50%; flex:0 0 50%; } div.profile:not(.toggle) { width:50%; flex:0 0 50%; }
/* fieldset */ /* fieldset */
fieldset>div.action>div.online { margin-left:var(--button-margin) !important; display:block; } div.item.online.state { margin-left:var(--button-margin) !important; display:block; }
fieldset>div.action>div.online.state { box-shadow:none; margin-right:var(--button-margin) !important; display:block; overflow:hidden; position:relative; } div.item.online.state { box-shadow:none; margin-right:var(--button-margin) !important; display:block; 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; } div.item.online.state 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; } div.item.online.state img { height:var(--action-height); transition:margin-right 1s; float:right; }
fieldset>div.action>div.online img:hover { background-color:var(--hover-bg-color); } div.item.online.state img:hover { background-color:var(--hover-bg-color); }
fieldset>div.action>div.online:not(:hover) img:not(:first-child) { margin-right:-20px; } div.item.online.state:not(:hover) img:not(:first-child) { margin-right:-20px; }
fieldset>div.header { display:contents; }
fieldset>div.header>div { line-height:22px; padding:var(--input-padding); float:right; }
fieldset>div.header div.online { padding:0; }
fieldset>div.header img { height:var(--action-height); float:right; }
fieldset>div.action>div.online { margin-left:var(--button-margin) !important; display:block; } fieldset>div.action>div.online { margin-left:var(--button-margin) !important; display:block; }
fieldset>div.action>div.online.state { box-shadow:none; margin-right:var(--button-margin) !important; display:block; overflow:hidden; position:relative; } fieldset>div.action>div.online.state { box-shadow:none; margin-right:var(--button-margin) !important; display:block; overflow:hidden; position:relative; }
@ -754,6 +758,7 @@ fieldset.iframe.float>form.option>div.item.hash input { width:var(--form-width);
fieldset.iframe>form.option>div.item.hash input { width:var(--form-width); } fieldset.iframe>form.option>div.item.hash input { width:var(--form-width); }
fieldset.Action:not(.horizon):not(.grid)>fieldset.plugin>form.option>div.item.text.path>input { width:var(--project-width); } fieldset.Action:not(.horizon):not(.grid)>fieldset.plugin>form.option>div.item.text.path>input { width:var(--project-width); }
fieldset.inner.float>div.status { display:none; } fieldset.inner.float>div.status { display:none; }
fieldset.user>form.option>div.item.username input { width:var(--form-width); }
fieldset.inner>div.output>div.project div.item.modify { background-color:#00800036; } fieldset.inner>div.output>div.project div.item.modify { background-color:#00800036; }
fieldset.vimer>div.output>div.project div.item.modify { background-color:#00800036; } fieldset.vimer>div.output>div.project div.item.modify { background-color:#00800036; }
fieldset.vimer>div.output>div.project>div.zone.space div.item.stop { color:var(--disable-fg-color); } fieldset.vimer>div.output>div.project>div.zone.space div.item.stop { color:var(--disable-fg-color); }

View File

@ -324,7 +324,9 @@ Volcanos("user", {
can.core.Timer({interval: 100}, function() { can.page.Modify(can, target, can.user.time(can, null, "%H:%M:%S %w")) }) can.core.Timer({interval: 100}, function() { can.page.Modify(can, target, can.user.time(can, null, "%H:%M:%S %w")) })
}}, }},
avatar: {view: [[html.ITEM, "state", aaa.AVATAR]], list: [{img: can.user.info.avatar}], onclick: function(event) { header && header.onaction.avatar(event, header) }}, avatar: {view: [[html.ITEM, "state", aaa.AVATAR]], list: [{img: can.user.info.avatar}], onclick: function(event) { header && header.onaction.avatar(event, header) }},
usernick: {view: [[html.ITEM, "state", aaa.USERNICK, html.FLEX], "", can.user.info.usernick], onclick: function(event) { header && header.onaction.usernick(event, header) }}, usernick: {view: [[html.ITEM, "state", aaa.USERNICK, html.FLEX], "", can.user.info.usernick], onclick: function(event) { header && header.onaction.usernick(event, header) }, _init: function(target) {
can.ui.head = target.parentNode
}},
qrcode: {view: [[html.ITEM, "state", cli.QRCODE]], list: [{icon: icon.qrcode}], onclick: function(event) { var _can = can._fields? can.sup: can; _can.onaction["生成链接"](event, _can) }}, qrcode: {view: [[html.ITEM, "state", cli.QRCODE]], list: [{icon: icon.qrcode}], onclick: function(event) { var _can = can._fields? can.sup: can; _can.onaction["生成链接"](event, _can) }},
}; return can.core.List(can.base.getValid(can.core.List(arguments).slice(1), [html.SPACE, mdb.TIME, aaa.AVATAR, aaa.USERNICK, cli.QRCODE]), function(item) { return meta[item] }) }; return can.core.List(can.base.getValid(can.core.List(arguments).slice(1), [html.SPACE, mdb.TIME, aaa.AVATAR, aaa.USERNICK, cli.QRCODE]), function(item) { return meta[item] })
}, },

View File

@ -55,7 +55,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
}, },
_tabs: function(can) { _tabs: function(can) {
if (!can.isCmdMode()) { if (!can.isCmdMode()) {
can.onimport._online(can)
return can.ui._tabs = can._action return can.ui._tabs = can._action
} }
var ui = can.page.Append(can, can.ui.tabs, ["icon", "tabs", "head"]); can.ui._tabs = ui.tabs var ui = can.page.Append(can, can.ui.tabs, ["icon", "tabs", "head"]); can.ui._tabs = ui.tabs
@ -66,7 +65,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
can.onappend.style(can, html.FLEX, ui.head) can.onappend.style(can, html.FLEX, ui.head)
can.onappend.style(can, html.FLEX, ui.tabs) can.onappend.style(can, html.FLEX, ui.tabs)
can.onappend.style(can, html.FLEX, ui.icon) can.onappend.style(can, html.FLEX, ui.icon)
can.ui.online = can.page.Append(can, ui.head, ["online"])._target, can.onimport._online(can)
can.page.Append(can, ui.head, can.user.header(can).reverse()) can.page.Append(can, ui.head, can.user.header(can).reverse())
}, },
__tabPath: function(can, cache) { var target = can.ui.path; can.onappend.style(can, html.FLEX, can.ui.path) __tabPath: function(can, cache) { var target = can.ui.path; can.onappend.style(can, html.FLEX, can.ui.path)

View File

@ -4,7 +4,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
can.onmotion.hidden(can, can.ui.project) can.onmotion.hidden(can, can.ui.project)
can.onimport[can.Option("scale")||team.WEEK](can, msg), can.Status(mdb.COUNT, msg.Length()), can.ui.filter.placeholder = `search in ${ msg.Length() } items`, can.onimport.layout(can) can.onimport[can.Option("scale")||team.WEEK](can, msg), can.Status(mdb.COUNT, msg.Length()), can.ui.filter.placeholder = `search in ${ msg.Length() } items`, can.onimport.layout(can)
var item; if (can.isCmdMode() && ls.length > 0) { item = can.list[can.core.Keys(ls)] } else if (can.sup.task) { item = can.list[can.core.Keys(can.sup.task.space, can.sup.task.zone, can.sup.task.id)] } item && item.click() var item; if (can.isCmdMode() && ls.length > 0) { item = can.list[can.core.Keys(ls)] } else if (can.sup.task) { item = can.list[can.core.Keys(can.sup.task.space, can.sup.task.zone, can.sup.task.id)] } item && item.click()
can.onimport._online(can)
}, },
_content: function(can, msg, head, list, key, get, set) { var begin_time = can.base.Date(can.Option(team.BEGIN_TIME)); can.sup.task && (can.sup.task._target = null) _content: function(can, msg, head, list, key, get, set) { var begin_time = can.base.Date(can.Option(team.BEGIN_TIME)); can.sup.task && (can.sup.task._target = null)
var hash = {}; msg.Table(function(value, index) { var k = key(can.base.Date(value.begin_time)); hash[k] = (hash[k]||[]).concat([value]) }) var hash = {}; msg.Table(function(value, index) { var k = key(can.base.Date(value.begin_time)); hash[k] = (hash[k]||[]).concat([value]) })
@ -36,6 +35,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
task.extra && can.core.Item(can.base.Obj(task.extra), function(key, value) { task[key] = value }), delete(task.extra) task.extra && can.core.Item(can.base.Obj(task.extra), function(key, value) { task[key] = value }), delete(task.extra)
var table = can.page.Appends(can, can.ui.profile, [{view: [[chat.CONTENT, mdb.DETAIL], html.TABLE], list: [{th: [can.user.trans(can, mdb.KEY, "字段"), can.user.trans(can, mdb.VALUE, "属性")]}]}])._target var table = can.page.Appends(can, can.ui.profile, [{view: [[chat.CONTENT, mdb.DETAIL], html.TABLE], list: [{th: [can.user.trans(can, mdb.KEY, "字段"), can.user.trans(can, mdb.VALUE, "属性")]}]}])._target
can.core.Item(task, function(key, value) { key != "_target" && can.page.Append(can, table, [{ can.core.Item(task, function(key, value) { key != "_target" && can.page.Append(can, table, [{
className: key,
td: [can.user.trans(can, key, null, html.INPUT), key == web.SPACE && value != ""? can.page.Format(html.A, can.misc.MergeURL(can, {pod: value}), value): value], td: [can.user.trans(can, key, null, html.INPUT), key == web.SPACE && value != ""? can.page.Format(html.A, can.misc.MergeURL(can, {pod: value}), value): value],
onclick: function(event) { can.page.tagis(event.target, html.INPUT) && event.target.type == html.BUTTON && can.run(can.request(event, task), [ctx.ACTION, event.target.name]) }, onclick: function(event) { can.page.tagis(event.target, html.INPUT) && event.target.type == html.BUTTON && can.run(can.request(event, task), [ctx.ACTION, event.target.name]) },
ondblclick: function(event) { if ([web.SPACE, mdb.ZONE, mdb.ID].indexOf(key) > -1) { return } ondblclick: function(event) { if ([web.SPACE, mdb.ZONE, mdb.ID].indexOf(key) > -1) { return }

View File

@ -7,7 +7,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
} else { } else {
can.onappend.table(can, msg, null, target), can.onappend.board(can, msg, target), can.onmotion.story.auto(can, target) can.onappend.table(can, msg, null, target), can.onappend.board(can, msg, target), can.onmotion.story.auto(can, target)
} }
if (msg.Option("sess.online") == ice.TRUE) { can.onimport._online(can) }
}, },
card: function(can, msg, target) { target = target||can.ui.content||can._output card: function(can, msg, target) { target = target||can.ui.content||can._output
var list = msg.Table(function(value) { value.icon = value.icons||value.icon||value.image var list = msg.Table(function(value) { value.icon = value.icons||value.icon||value.image
@ -24,7 +23,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
}) })
can.onimport.layout = can.onimport.layout||function() { var height = can.onlayout.expand(can, target); can.sup.onexport.outputMargin = function() { return height } } can.onimport.layout = can.onimport.layout||function() { var height = can.onlayout.expand(can, target); can.sup.onexport.outputMargin = function() { return height } }
can.page.Append(can, target, list), can.onmotion.orderShow(can, target) can.page.Append(can, target, list), can.onmotion.orderShow(can, target)
can.onimport._online(can)
}, },
_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, {type: value.type, status: value.status, 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]), title: value[mdb.TEXT]||value.description}, function(event) { can.onimport.item(can, {type: value.type, status: value.status, 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]), title: value[mdb.TEXT]||value.description}, function(event) {
@ -228,24 +226,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
}, sub.onaction.close = function() { can.onmotion.hidden(can, target) }, can.base.isFunc(cb) && cb(sub) }, sub.onaction.close = function() { can.onmotion.hidden(can, target) }, can.base.isFunc(cb) && cb(sub)
}, target, field) }, target, field)
}, },
_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 state"])._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 state"], p, can._action)
}
}
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)}
}))
msg.Length() > 0 && can.page.Append(can, can.ui.online, [{text: msg.Length()+""}])
can.onmotion.orderShow(can, can.ui.online, "*", 10, 300)
}), can.onimport._online(can, 30000)
}, delay) },
}) })
Volcanos(chat.ONLAYOUT, { Volcanos(chat.ONLAYOUT, {
_init: function(can, height, width) { _init: function(can, height, width) {