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-05-22 23:07:10 +08:00
parent 78b615141c
commit 8542f11991
3 changed files with 19 additions and 27 deletions

View File

@ -145,6 +145,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
var action = can.page.SelectOne(can, field, html.DIV_ACTION)
var output = can.page.SelectOne(can, field, html.DIV_OUTPUT)
var status = can.page.SelectOne(can, field, html.DIV_STATUS)
meta.index && can.page.style(can, field, "visibility", "hidden")
var sub = Volcanos(meta.name, {_root: can._root||can, _follow: can.core.Keys(can._follow, meta.name), _target: field,
_legend: legend, _option: option, _action: action, _output: output, _status: status, _history: [], db: {hash: [""]}, ui: {},
Status: function(key, value) { if (can.base.isObject(key)) { return can.core.Item(key, sub.Status), key } try {
@ -237,7 +238,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
})
};
var auto; can.core.Next(can.core.Value(can, [chat.ONIMPORT, mdb.LIST])||meta.inputs, add, function() {
var p = can.misc.Search(can, ctx.ACTION)
var p = can.misc.Search(can, ctx.ACTION); auto || can.page.style(can, can._target, "visibility", "visible")
if (can.Conf("_ismain") && !can.Conf("_role") && can.misc.Search(can, log.DEBUG) != ice.TRUE) {
} else if (p && can.isCmdMode()) {
@ -304,9 +305,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
if (can.base.isFunc(cb) && !cb(msg)) { return } if (silent) { return }
if (_can == (msg._can._fields? msg._can.sup: msg._can)) { if (can.core.CallFunc([_can, chat.ONIMPORT, ice.MSG_PROCESS], {can: _can, msg: msg})) { return } }
if (cmds && cmds[0] == ctx.ACTION) { if (can.base.isIn(cmds[1], mdb.CREATE, mdb.INSERT, mdb.PRUNES, mdb.EXPORT, mdb.IMPORT, "exports", "imports", nfs.TRASH) || msg.Length() == 0 && !msg.Result()) {
if (can.base.isIn(cmds[1], ctx.COMMAND)) {
return
}
if (can.base.isIn(cmds[1], ctx.COMMAND)) { return }
return can._toast || can.user.toastSuccess(can, cmds[1], ice.SUCCESS), can.Update()
} }
can.onappend._output(can, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display)
@ -351,7 +350,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
can.onimport.size(can, can.ConfHeight(), can.ConfWidth(), can.Conf("_auto"), can.Mode())
can.isCmdMode() && can.page.style(can, can._output, html.HEIGHT, sub.ConfHeight())
can.onexport.output(sub, msg); if (can.Conf("_output")) { can.Conf("_output")(sub, msg) }
} msg.Defer(), can.base.isFunc(cb) && cb(msg)
} msg.Defer(), can.base.isFunc(cb) && cb(msg), can.page.style(can, can._target, "visibility", "visible")
}, target: output}), msg.Defer()
})
},
@ -731,7 +730,6 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
])
},
layout: function(can, list, type, target) { const FLOW = html.FLOW, FLEX = html.FLEX
can.page.Select(can, can._option, "div.item.menu", function(target) { can.page.style(can, target, "display", "unset") })
var count = 0, ui = {size: {profile: 0.5}}; list = list||[html.PROJECT, [[html.CONTENT, html.PROFILE], html.DISPLAY]], type = type||FLEX, target = target||can._output
function append(target, type, list) { can.page.ClassList.add(can, target, [html.LAYOUT, type]), can.core.List(list, function(item) {
if (can.base.isString(item)) {
@ -744,9 +742,8 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
can.onappend.plugin(can, item, function(sub) { can._plugins = (can._plugins||[]).concat([sub])
item.layout = function(height, width) { sub.onimport.size(sub, height, width, false) }
can.onmotion.select(can, sub._target.parentNode, html.FIELDSET, sub._target)
sub.onexport._output = function() { can.onimport.layout(can), can.onmotion.delay(can, function() { can.onmotion.toggle(can, target, true) }) }
// sub.onexport._output = function() { can.onimport.layout(can) }
}, target, ui[item._index] = can.onappend.field(can, item.type, item, target)._target)
can.base.isIn(item._command, web.PORTAL, web.DESKTOP, aaa.OFFER, aaa.APPLY, code.VIMER) && can.onmotion.hidden(can, target)
} else { can.page.Append(can, target, [item]) }
}
}); return list } ui.list = append(target, type, list)
@ -766,14 +763,17 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
can.page.style(can, target, html.HEIGHT, h); if (can.page.isDisplay(target)) { width -= w }
if (can.base.isObject(meta) && meta.layout) { meta.layout(h, w = _width/list.length) }
} else {
if (target.innerHTML == "") { return }
var h = calc(item, target.offsetHeight, height), w = meta.width||width
can.page.style(can, target, html.WIDTH, w); if (can.page.isDisplay(target)) { height -= h }
if (h > _height/2) { h = _height/2, can.page.style(can, target, html.HEIGHT, h) }
can.page.style(can, target, html.WIDTH); if (can.page.isDisplay(target)) { height -= h }
if (can.base.isObject(meta) && meta.layout) { meta.layout(h = _height/list.length, w) }
}
}), can.core.List(list, function(item) {
if (can.base.isArray(item)) { layout(type == FLEX? FLOW: FLEX, item, height, width) }
}) }
ui.project && can.page.Select(can, can._option, "div.item.menu", function(target) { can.page.style(can, target, "display", "unset") })
ui.project && (can.user.isMobile && can.onmotion.hidden(can, ui.project), ui.filter = can.onappend.filter(can, ui.project))
ui.display && can.onmotion.hidden(can, ui.display), ui.profile && can.onmotion.hidden(can, ui.profile)
can.onexport.session && can.onexport.session(can, "project.hide") == ice.TRUE && ui.project && can.onmotion.hidden(can, ui.project)
@ -793,10 +793,12 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
})
}
if (can.page.isDisplay(can.ui.display)) {
can.db.value._display_plugin && can.db.value._display_plugin.onimport.size(can.db.value._display_plugin, can.ui.display.offsetHeight-1, can.ui.display.offsetWidth, false)
// can.page.style(can, can.ui.display, html.MAX_HEIGHT, content_height)
can.db.value._display_plugin && can.db.value._display_plugin.onimport.size(can.db.value._display_plugin, content_height-1, can.ui.display.offsetWidth, false)
}
if (can.page.isDisplay(can.ui.profile)) {
can.db.value._profile_plugin && can.db.value._profile_plugin.onimport.size(can.db.value._profile_plugin, content_height, content_width, false)
// can.page.style(can, can.ui.profile, html.MAX_WIDTH, content_width)
can.db.value._profile_plugin && can.db.value._profile_plugin.onimport.size(can.db.value._profile_plugin, content_height, content_width-1, false)
}
can.db.value._content_plugin && can.db.value._content_plugin.onimport.size(can.db.value._content_plugin, content_height, content_width, false)
if (can.ui.toggle) { can.ui.toggle.layout(), can.page.style(can, can.ui.toggle.profile, "right", can.ui.profile.offsetWidth+"px") }

View File

@ -256,7 +256,6 @@ body.dark div.toggle:not(:hover) { color:silver; }
div.toggle:hover { color:var(--hover-fg-color); }
div.toggle.project { top:20%; left:0; border-top-right-radius:var(--plugin-radius); border-bottom-right-radius:var(--plugin-radius); }
div.output>div.layout { flex-grow:1; }
// div.output>div.layout>div.layout { flex-grow:1; }
div.output>div.layout>div.layout>div.content { flex-grow:1; }
div.content>div.toggle.profile { top:20%; right:0; border-top-left-radius:var(--plugin-radius); border-bottom-left-radius:var(--plugin-radius); }
div.content>div.toggle.display { left:20%; bottom:-52px; rotate:90deg; border-top-left-radius:var(--plugin-radius); border-bottom-left-radius:var(--plugin-radius); }
@ -947,7 +946,7 @@ fieldset.Search div.story[data-type=spark] { margin:0; }
fieldset.Search>div.output>div.profile { border-left:none; width:unset; }
fieldset.Search>div.output>div.content>table.content td { cursor:pointer; }
fieldset.Action.tabs table.content { width:100%; }
fieldset.Action>div.output>fieldset.plugin:not(.float):not(.full):not(.cmd) { padding:var(--plugin-padding); margin:var(--plugin-margin); }
fieldset.Action:not(.cmd)>div.output>fieldset.plugin:not(.float):not(.full):not(.cmd) { padding:var(--plugin-padding); margin:var(--plugin-margin); }
fieldset.Action>div.output>fieldset.plugin:not(.float):not(.full):not(.cmd)>legend { float:none; }
fieldset.Action>div.output>fieldset.plugin:not(.float):not(.full):not(.cmd)>legend:not(:hover) { background-color:var(--plugin-bg-color); }
fieldset.Action>div.output>fieldset.ssh.cloud.profile { box-shadow:none; background-color:transparent; }

View File

@ -190,20 +190,11 @@ Volcanos(chat.ONIMPORT, {
})
}
},
display: function(can, msg) { var _msg = can.db.tabview[can.onexport.keys(can)]; _msg.Option(html.HEIGHT, msg.Option(html.HEIGHT)), border = 1
var height = can.onexport.size(can, _msg.Option(html.HEIGHT)||0.5, can.ui.project.offsetHeight||can.ConfHeight())+border, width = can.ConfWidth()-can.ui.project.offsetWidth
can.page.style(can, can.ui.display, html.MAX_HEIGHT, height, html.MAX_WIDTH, width), can.ui.display = _msg._display = can.ui._display
if (can.ui.display._plugin && can.base.isIn(msg.Append(ctx.INDEX), web.CODE_XTERM)) {
if (can.onexport.session(can, DISPLAY_ARGS+can.Option(nfs.PATH)+can.Option(nfs.FILE))) {
return can.onmotion.toggle(can, can.ui.display, true), can.onimport.layout(can)
}
}
can.onimport.process(can, msg, can.ui.display, height-border, width, function(sub) { can.ui.display._plugin = _msg._display = sub, can.page.style(can, sub._output, html.MAX_HEIGHT, "")
sub.onaction.close = function() { can.onexport.session(can, DISPLAY_ARGS+can.Option(nfs.PATH)+can.Option(nfs.FILE), ""), can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) }
sub.Conf(ctx.ARGS) && can.onexport.session(can, DISPLAY_ARGS+can.Option(nfs.PATH)+can.Option(nfs.FILE), JSON.stringify(sub.Conf(ctx.ARGS)))
if (sub._index == web.WIKI_WORD) { can.page.style(can, can.ui.display, html.HEIGHT, height+border, html.MAX_HEIGHT, height+border), can.onimport.layout(can); return }
var _height = can.base.Max(sub._target.offsetHeight+border, height); _msg.Option(html.HEIGHT, _height)
sub.onimport.size(sub, _height-border, width, true), can.onimport.layout(can)
display: function(can, msg) { var _msg = can.db.tabview[can.onexport.keys(can)], border = 1; can.ui.display = _msg._display = can.ui._display
var height = can.onexport.size(can, 0.5, can.ui.project.offsetHeight||can.ConfHeight()), width = can.ConfWidth()-can.ui.project.offsetWidth
can.onimport.process(can, msg, can.ui.display, height-border, width, function(sub) { can.ui.display._plugin = _msg._display = sub
sub.onaction.close = function() { can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) }
sub.onimport.size(sub, height-border, width, true), can.onimport.layout(can)
})
},
process: function(can, msg, target, height, width, cb) { can.onmotion.clear(can, target)