1
0
forked from x/volcanos
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-05-12 00:02:51 +08:00
parent 97239bcca5
commit 77b8d8c649
7 changed files with 27 additions and 22 deletions

View File

@ -30,6 +30,7 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) { can.requ
} can.onengine.signal(panel, chat.ONREMOTE, can.request({}, {_follow: panel._follow, _msg: msg, _cmds: cmds}))
var names = msg.Option(chat._NAMES)||panel._names||((can.Conf("iceberg")||Volcanos.meta.iceberg)+panel._name)
if (!can.misc.CookieSessid(can) && can.user.info.sessid) { msg.Option(ice.MSG_SESSID, can.user.info.sessid) }
msg.Option(ice.MSG_LANGUAGE, can.user.info.language||"")
if (msg.Option("log.trace") == ice.TRUE) { debugger }
can.misc.Run(event, can, {names: names, daemon: msg[ice.MSG_DAEMON]}, cmds, function(msg) { toast && toast.close(), toast = true
if (msg.Option("log.trace") == ice.TRUE) { debugger }
@ -382,7 +383,8 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
},
select: function(can, select, item) { var carte
return can.page.Append(can, select.parentNode, [{type: html.INPUT, data: {className: html.SELECT, type: html.BUTTON, name: item.name, value: item.value||item.values[0], title: item.name}, onclick: function(event) { var target = event.target
if (carte) { return carte.close(), carte = null } carte = can.user.carte(event, can, {}, item.values, function(event, button) { carte = null; if (target.value == button) { return }
if (carte) { return carte.close(), carte = null } carte = can.user.carte(event, can, {}, item.values, function(event, button) {
carte.close(), carte = null; if (target.value == button) { return }
target.value = button, select.value = button, select.onchange && select.onchange({target: select})
}); can.onappend.style(can, [html.SELECT, item.name], carte._target), can.page.style(can, carte._target, html.MIN_WIDTH, event.target.offsetWidth)
}, _init: function(target) { can.page.style(can, target, html.WIDTH, select.offsetWidth+10), can.onappend.style(can, html.HIDE, select) }}, {icon: mdb.SELECT}])
@ -676,7 +678,10 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
},
move: function(can, target, layout) { layout && can.page.style(can, target, layout), can.onmotion.resize(can, target, function() {}) },
resize: function(can, target, cb, top) { var begin, action
target.onclick = function() { can.onkeymap.prevent(event) }
target.onclick = function(event) {
if (can.page.tagis(event.target, html.INPUT)) { return }
can.onkeymap.prevent(event)
}
target.onmousedown = function(event) {
for (var _target = event.target; _target; _target = _target.parentNode) { if (_target == target) { break }
if (can.page.tagis(_target, html.INPUT, html.TEXTAREA, html.TR)) { return }
@ -687,7 +692,9 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
window._mousemove = target.onmousemove
}, target.onmouseup = function(event) { begin = null, delete(window._mousemove) }
target.onmousemove = function(event) {
if (begin) { can.onkeymap.prevent(event)
if (begin) {
can.onkeymap.prevent(event)
if (!window._mousemove) { return begin = null }
switch (action) {
case "left":
can.page.style(can, target, html.LEFT, can.base.Min(begin.left + event.x - begin.x, 0, window.innerWidth-target.offsetWidth))

View File

@ -15,15 +15,16 @@ table.content thead { position:sticky; top:2px; }
table.content th { padding:2px 5px; }
table.content td { padding:2px 5px; }
table.content.action th:last-child { position:sticky; right:2px; }
table.content.action td:last-child { max-width:200px; position:sticky; right:2px; }
table.content.action td:last-child { position:sticky; right:2px; }
// table.content.action td:last-child { max-width:200px; position:sticky; right:2px; }
h1 { text-align:center; margin:20px 0; } h2 { margin:20px 0; } h3 { margin:20px 0; } ul { padding-left:40px; margin:20px 0; }
hr, td.hr { border-bottom:gray dashed 1px; margin:5px; }
img { margin-bottom:-8px; }
/* fieldset */
fieldset>legend { margin-right:10px; }
fieldset>form.option>div.item { margin-right:10px; }
fieldset>form.option>div.item { margin-right:10px; height:32px; }
fieldset>form.option>div.item.select>input { min-width:80px; }
fieldset>div.action>div.item { margin-right:10px; }
fieldset>div.action>div.item { margin-right:10px; height:32px; }
fieldset.input>legend { display:none; }
fieldset.input.key div.action { display:none; }
fieldset.input.key div.status { display:block; position:sticky; bottom:0; }
@ -211,7 +212,7 @@ div.output.card>div.item.stop { color:gray; }
div.output.card>div.item { padding:10px; border:#e7e7e7 solid 1px; margin:10px; width:320px; float:left; }
div.output.card>div.item>div.title { font-size:1.2rem; font-weight:bold; padding:10px; border-bottom:solid 1px #e7e7e7; }
div.output.card>div.item>div.content { padding:10px; height:70px; }
div.output.card>div.item>div.action { text-align:right; width:100%; }
div.output.card>div.item>div.action { text-align:right; width:100%; display:flex; }
div.output.card>div.item>div.action>input { margin-right:5px; }
/* display */
fieldset.panel>legend { display:none; }

View File

@ -15,7 +15,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
}) },
_avatar: function(can, msg) { can.user.isExtension || can.user.isLocalFile || can.page.Modify(can, "div.state.avatar>img", {src: can.onexport.avatar(can)}) },
_background: function(can, msg) { if (can.user.isExtension || can.user.isLocalFile) { return }
window.parent == window? can.onlayout.background(can, can.onexport.background(can)): can.page.style(can, document.body, html.BACKGROUND_COLOR, "transparent")
can.onlayout.background(can, can.onexport.background(can))
// window.parent == window? can.onlayout.background(can, can.onexport.background(can)): can.page.style(can, document.body, html.BACKGROUND_COLOR, "transparent")
},
_search: function(can, msg, target) {
can._search = can.onappend.input(can, {type: html.TEXT, name: mdb.SEARCH, onkeydown: function(event) { can.onkeymap.input(event, can)

View File

@ -4,8 +4,7 @@ Volcanos(chat.ONFIGURE, {key: {
can._show(can, msg, cb, target, name)
}) },
_show: function(can, msg, cb, target, name) { if (msg.Length() == 0 || msg.Length() == 1 && msg.Append(name) == target.value && target.value != "") { return can.onmotion.hidden(can) }
if (can.base.isIn(msg.append[msg.append.length-1], ctx.ACTION, "cb")) { msg.append = msg.append.slice(0, -1) }
var list = {}
if (can.base.isIn(msg.append[msg.append.length-1], ctx.ACTION, "cb")) { msg.append = msg.append.slice(0, -1) } var list = {}
can.onmotion.clear(can), can.onappend.table(can, msg, function(value, key, index, item) { value = item[key]
if (msg.append.length == 1 && index < 100 && list[value]) { return } list[value] = true
return {text: [value, html.TD, value == ""? html.HR: ""], style: msg.append && msg.append.length == 1? kit.Dict(html.MIN_WIDTH, target.offsetWidth-16): {}, onclick: function(event) {

View File

@ -19,7 +19,7 @@ fieldset.inner>div.output>div.project div.zone>div.item span.icon { font-size:20
fieldset.inner>div.output>div.project div.zone:hover>div.item span.icon { display:block; }
fieldset.inner>div.output>div.project>div.zone>div.item span.icon { font-size:22px; line-height:32px; }
fieldset.inner>div.output>div.project>div.zone div.action>div.item { padding-right:0; width:100%; }
fieldset.inner>div.output>div.project>div.zone div.action>div.item>input { width:100%; }
fieldset.inner>div.output>div.project>div.zone div.action>div.item>input { width:calc(100% - 5px); }
fieldset.inner>div.output>div.project>div.zone div.action>div.item>span.delete { top:3px; right:5px; }
fieldset.inner>div.output>div.project>div.zone fieldset.plug { position:static; }
fieldset.inner>div.output>div.layout>div.tabs { font-family:monospace; font-size:14px; display:none; }

View File

@ -69,7 +69,7 @@ Volcanos(chat.ONFIGURE, {
} }
}) },
})
Volcanos(chat.ONACTION, {list: ["编译", "源码", "终端", "文档", "导图", "计划", "收藏", "桌面", "首页"],
Volcanos(chat.ONACTION, {list: ["编译", "源码", "终端", "文档", "计划", "桌面", "首页"],
_run: function(event, can, button, args, cb) { can.runAction(event, button, args, cb||function(msg) {
can.onimport.tabview(can, msg.Option(nfs.PATH), msg.Option(nfs.FILE)), can.user.toastSuccess(can, button)
can.ui.zone.source.refresh()
@ -109,11 +109,9 @@ Volcanos(chat.ONACTION, {list: ["编译", "源码", "终端", "文档", "导图"
}) },
"编译": function(event, can) { can.onaction.compile(event, can, code.COMPILE) },
"源码": function(event, can) { can.onimport.tabview(can, "", web.CODE_GIT_STATUS, ctx.INDEX) },
"终端": function(event, can) { can.onimport.tabview(can, "", web.CODE_XTERM, ctx.INDEX) },
"终端": function(event, can) { can.onimport.tabview(can, "", [web.CODE_XTERM, "sh"].join(mdb.FS), ctx.INDEX) },
"文档": function(event, can) { can.onimport.tabview(can, "", web.WIKI_WORD, ctx.INDEX) },
"导图": function(event, can) { can.onimport.tabview(can, "", web.WIKI_DRAW, ctx.INDEX) },
"计划": function(event, can) { can.onimport.tabview(can, "", web.TEAM_PLAN, ctx.INDEX) },
"收藏": function(event, can) { can.onimport.tabview(can, "", web.CHAT_FAVOR, ctx.INDEX) },
"桌面": function(event, can) { can.onimport.tabview(can, "", "web.chat.macos.desktop", ctx.INDEX) },
"首页": function(event, can) { can.onimport.tabview(can, "", location.origin+nfs.PS+(can.misc.Search(can, log.DEBUG) == ice.TRUE? "?debug=true": ""), web.SPACE) },
insertLine: function(can, value, before) { var line = can.onaction.appendLine(can, value); before && can.ui.content.insertBefore(line, can.onaction._getLine(can, before)); return can.onaction.rerankLine(can), can.onexport.line(can, line) },

View File

@ -39,7 +39,7 @@ var ice = {
PROCESS_FIELD: "_field",
MSG_PREFIX: "_prefix",
MSG_USERNAME: "user.name", MSG_USERNICK: "user.nick",
MSG_USERNAME: "user.name", MSG_USERNICK: "user.nick", MSG_LANGUAGE: "user.lang",
MSG_TITLE: "sess.title", MSG_THEME: "sess.theme", MSG_RIVER: "sess.river", MSG_STORM: "sess.storm", MSG_WIDTH: "sess.width", MSG_HEIGHT: "sess.height",
MSG_MODE: "sess.mode", MSG_DAEMON: "sess.daemon",
LOG_DISABLE: "log.disable",
@ -376,7 +376,7 @@ var Volcanos = shy({iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {}
})
try { if (typeof(window) == lang.OBJECT) { var meta = Volcanos.meta
meta.target = document.body, meta._height = window.innerHeight, meta._width = window.innerWidth
if (window._version && window.outerWidth-window.innerWidth < 100) { meta.version = window._version }
if (window._version && (window.parent.outerWidth-window.parent.innerWidth < 100)) { meta.version = window._version }
meta._load = function(url, cb) { var v = meta.version? meta.version+"&_tt="+(new Date()).getTime(): ""
switch (url.split(ice.QS)[0].split(nfs.PT).pop().toLowerCase()) {
case nfs.CSS: var item = document.createElement(mdb.LINK); item.href = url+v, item.rel = "stylesheet", item.onload = cb, document.head.appendChild(item); break
@ -384,13 +384,12 @@ try { if (typeof(window) == lang.OBJECT) { var meta = Volcanos.meta
}
}
meta._init = function(can) {
window.onkeydown = function(event) { if (event.key == lang.ESCAPE) { can.onkeymap.prevent(event) } }
window.onmousemove = function(event) { window._mousemove && (window._mousemove(event)) }
window.onmouseup = function(event) { delete(window._scroll) }
window.onmouseup = function(event) { delete(window._mousemove) }
window.ondblclick = function(event) { can.onkeymap.prevent(event) }
window.onerror = function(message, source, lineno, colno, error) {
meta.version? alert([message].concat(can.misc._stacks(0, error)).join(lex.NL)): can.misc.Error(message, lex.NL+[source, lineno, colno].join(ice.DF), error)
}, window.onbeforeunload = function() { can.Action._socket && can.Action._socket.close() }
window.onkeydown = function(event) { if (event.key == lang.ESCAPE && !can.page.tagis(event.target, html.INPUT)) { can.onkeymap.prevent(event) } }
window.onerror = function(message, source, lineno, colno, error) { meta.version? alert([message].concat(can.misc._stacks(0, error)).join(lex.NL)): can.misc.Error(message, lex.NL+[source, lineno, colno].join(ice.DF), error) }
window.onbeforeunload = function() { can.Action._socket && can.Action._socket.close() }
var last = can.page.width() < can.page.height(); window.onresize = function(event) { can.misc.Event(event, can, function(msg) {
if (can.user.isMobile && last === can.page.width() < can.page.height()) { return } last = can.page.width() < can.page.height()
can.onmotion.delayOnce(can, function() { can.onengine.signal(can, chat.ONRESIZE, can.request(event, kit.Dict(html.HEIGHT, window.innerHeight, html.WIDTH, window.innerWidth))) }, 100, can._delay_resize = can._delay_resize||[])