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-15 15:58:54 +08:00
parent f1961220c0
commit 68f3c17005
11 changed files with 63 additions and 66 deletions

View File

@ -369,7 +369,7 @@ var html = {value: {
BODY: "body", FORM: "form", LABEL: "label", TITLE: "title", INNER: "inner", SPACE: "space", CLICK: "click", BODY: "body", FORM: "form", LABEL: "label", TITLE: "title", INNER: "inner", SPACE: "space", CLICK: "click",
SELECT: "select", INPUT: "input", TEXT: "text", FILE: "file", TEXTAREA: "textarea", BUTTON: "button", CHECKBOX: "checkbox", SELECT: "select", INPUT: "input", TEXT: "text", FILE: "file", TEXTAREA: "textarea", BUTTON: "button", CHECKBOX: "checkbox",
CANCEL: "cancel", SUBMIT: "submit", UPLOAD: "upload", USERNAME: "username", PASSWORD: "password", CANCEL: "cancel", SUBMIT: "submit", UPLOAD: "upload", USERNAME: "username", PASSWORD: "password",
CONFIRM: "confirm", CONFIRM: "confirm", CLOSE: "close", CLICK: "click", FOCUS: "focus", BLUR: "blur",
TABLE: "table", THEAD: "thead", TBODY: "tbody", TR: "tr", TH: "th", TD: "td", TABLE: "table", THEAD: "thead", TBODY: "tbody", TR: "tr", TH: "th", TD: "td",
HEADER: "header", NAV: "nav", MAIN: "main", ASIDE: "aside", FOOTER: "footer", HEADER: "header", NAV: "nav", MAIN: "main", ASIDE: "aside", FOOTER: "footer",
FAVICON: "favicon", FAVICON: "favicon",

View File

@ -184,7 +184,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
sub.onappend._output(sub, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display) sub.onappend._output(sub, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display)
}), meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg) }), meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg)
sub._legend && (sub._legend.onclick = function(event) { sub._legend && (sub._legend.onclick = function(event) {
can.onengine.signal(can, "onevent", can.request(event, {type: "legend"})) can.onengine.signal(can, "onevent", can.request(event, {_type: html.LEGEND, action: "legend"}))
can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([["操作"].concat(can.core.Item(meta.feature._trans))]), function(event, button) { can.misc.Event(event, sub, function(msg) { can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([["操作"].concat(can.core.Item(meta.feature._trans))]), function(event, button) { can.misc.Event(event, sub, function(msg) {
can.misc.Inputs(sub, msg, [ctx.ACTION, button], null, meta) || msg.RunAction(event, sub.sub, [ctx.ACTION, button]) || msg.RunAction(event, sub, [ctx.ACTION, button]) || sub.runAction(event, button, [], function(msg) { can.onappend._output(sub, msg) }) can.misc.Inputs(sub, msg, [ctx.ACTION, button], null, meta) || msg.RunAction(event, sub.sub, [ctx.ACTION, button]) || msg.RunAction(event, sub, [ctx.ACTION, button]) || sub.runAction(event, button, [], function(msg) { can.onappend._output(sub, msg) })
}) }) }) })
@ -207,7 +207,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
next: {name: mdb.NEXT, cb: function(event) { var sub = can.sub; sub.onaction && sub.onaction.next? sub.onaction.next(event, sub): can.onaction.next(event, can) }}, next: {name: mdb.NEXT, cb: function(event) { var sub = can.sub; sub.onaction && sub.onaction.next? sub.onaction.next(event, sub): can.onaction.next(event, can) }},
}[item.name||item||""]; if (!icon) { return } item.style = "icons" }[item.name||item||""]; if (!icon) { return } item.style = "icons"
can.page.Append(can, option, [{view: [[html.ITEM, html.ICON, icon.name, item.name], html.DIV, can.page.unicode[icon.name]], title: can.user.trans(can, item.name), onclick: function(event) { can.page.Append(can, option, [{view: [[html.ITEM, html.ICON, icon.name, item.name], html.DIV, can.page.unicode[icon.name]], title: can.user.trans(can, item.name), onclick: function(event) {
can.onengine.signal(can, "onevent", can.request(event, {type: "option"})) can.onengine.signal(can, "onevent", can.request(event, {_type: html.OPTION}))
if (icon.cb) { return icon.cb(event) } if (icon.cb) { return icon.cb(event) }
var msg = can.request(event), cmds = [ctx.ACTION, item.name]; msg.RunAction(event, can.sub, cmds) || msg.RunAction(event, can, cmds) || can.Update(event, cmds) var msg = can.request(event), cmds = [ctx.ACTION, item.name]; msg.RunAction(event, can.sub, cmds) || msg.RunAction(event, can, cmds) || can.Update(event, cmds)
}}]) }}])
@ -224,6 +224,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
if (item.type == html.TEXT) { can.page.Append(can, sub._target.parentNode, [{text: [sub._target.value, html.SPAN, mdb.VALUE]}]) } if (item.type == html.TEXT) { can.page.Append(can, sub._target.parentNode, [{text: [sub._target.value, html.SPAN, mdb.VALUE]}]) }
if (item.type == html.BUTTON && can.page.isIconInput(can, item.name)) { if (item.type == html.BUTTON && can.page.isIconInput(can, item.name)) {
can.onappend.icons(can, sub._target, item.name, item.onclick||function(event) { can.onappend.icons(can, sub._target, item.name, item.onclick||function(event) {
can.onengine.signal(can, "onevent", can.request(event, {_type: html.OPTION}))
can.Update(event, item.name == "refresh"? []: [ctx.ACTION, item.name].concat(can.page.SelectArgs(sub))) can.Update(event, item.name == "refresh"? []: [ctx.ACTION, item.name].concat(can.page.SelectArgs(sub)))
}) })
} }
@ -251,7 +252,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
}, },
_action: function(can, list, action, meta, hold, limit) { meta = meta||can.onaction||{}, action = action||can._action, hold || can.onmotion.clear(can, action) _action: function(can, list, action, meta, hold, limit) { meta = meta||can.onaction||{}, action = action||can._action, hold || can.onmotion.clear(can, action)
function run(event, button) { can.misc.Event(event, can, function(msg) { var _can = can._fields? can.sup: can; can.requestAction(event, button) function run(event, button) { can.misc.Event(event, can, function(msg) { var _can = can._fields? can.sup: can; can.requestAction(event, button)
action == can._action && can.onengine.signal(can, "onevent", can.request(event, {type: "action"})) action == can._action && can.onengine.signal(can, "onevent", can.request(event, {_type: html.ACTION}))
var cb = meta[button]||meta[chat._ENGINE]; cb? can.core.CallFunc(cb, {event: event, can: can, button: button}): var cb = meta[button]||meta[chat._ENGINE]; cb? can.core.CallFunc(cb, {event: event, can: can, button: button}):
can.run(event, can.base.isIn(button, mdb.LIST, web.REFRESH)? []: [ctx.ACTION, button].concat(_can.Input())) can.run(event, can.base.isIn(button, mdb.LIST, web.REFRESH)? []: [ctx.ACTION, button].concat(_can.Input()))
}) } }) }
@ -288,7 +289,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
}, function(key, value) { }, function(key, value) {
return (value || value === "") && {view: [[html.ITEM, html.BUTTON, key, mdb.ICONS, "state"]], list: [{icon: icon[key]}], return (value || value === "") && {view: [[html.ITEM, html.BUTTON, key, mdb.ICONS, "state"]], list: [{icon: icon[key]}],
title: key == "_space"? "": can.user.trans(can, key), onclick: function(event) { title: key == "_space"? "": can.user.trans(can, key), onclick: function(event) {
can.onengine.signal(can, "onevent", can.request(event, {type: "action", action: key})) can.onengine.signal(can, "onevent", can.request(event, {_type: html.ACTION, action: key}))
var cb = _can.onaction[value]; cb && _can.onaction[value](event, _can, value, _can.sub) var cb = _can.onaction[value]; cb && _can.onaction[value](event, _can, value, _can.sub)
}} }}
}).concat(can.Conf("_plugin_action")||[]) }).concat(can.Conf("_plugin_action")||[])
@ -383,7 +384,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
can.page.Append(can, status, [{view: [[html.ITEM, item.name]], list: [ can.page.Append(can, status, [{view: [[html.ITEM, item.name]], list: [
{text: [can.page.Color(can.user.trans(can, item.name, null, html.INPUT)), html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value == undefined? "": (item.value+"").trim())+"", html.SPAN, item.name]}, {text: [can.page.Color(can.user.trans(can, item.name, null, html.INPUT)), html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value == undefined? "": (item.value+"").trim())+"", html.SPAN, item.name]},
], onclick: function(event) { ], onclick: function(event) {
can.onengine.signal(can, "onevent", can.request(event, {type: "status"})) can.onengine.signal(can, "onevent", can.request(event, {_type: html.STATUS}))
if (item.onclick) { return item.onclick(event) } if (item.onclick) { return item.onclick(event) }
if (!can.misc.isDebug(can)) { return } if (!can.misc.isDebug(can)) { return }
if (can.base.isIn(item.name, mdb.TIME)) { if (can.base.isIn(item.name, mdb.TIME)) {
@ -580,7 +581,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
if (key == "secretKey" && value) { _value = value.slice(0, 4)+"****" } if (key == "secretKey" && value) { _value = value.slice(0, 4)+"****" }
if (key == aaa.PASSWORD && value) { _value = "********" } if (key == aaa.PASSWORD && value) { _value = "********" }
function onclick() { return false } function onclick() { return false }
if (key == "enable") { if (key == mdb.ENABLE) {
if (value == ice.TRUE) { if (value == ice.TRUE) {
_value = `<i class="${icon.disable}">` _value = `<i class="${icon.disable}">`
function onclick() { run(event, mdb.MODIFY, [key, ice.FALSE]); return true } function onclick() { run(event, mdb.MODIFY, [key, ice.FALSE]); return true }
@ -614,9 +615,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
}, onmouseover: function(event) { }, onmouseover: function(event) {
can.page.SelectChild(can, can._option, html.DIV_ITEM_TEXT, function(target) { can.page.ClassList.set(can, target, "will", can.page.ClassList.has(can, target, key)) }) can.page.SelectChild(can, can._option, html.DIV_ITEM_TEXT, function(target) { can.page.ClassList.set(can, target, "will", can.page.ClassList.has(can, target, key)) })
}, _init: function(target) { }, _init: function(target) {
if (can.Option(key) === "") { if (option.indexOf(key) > -1) { can.onappend.style(can, value, target.parentNode) }
can.onappend.style(can, value, target.parentNode)
}
if (key == mdb.TYPE) { can.onappend.style(can, value, target.parentNode) } if (key == mdb.TYPE) { can.onappend.style(can, value, target.parentNode) }
if (key == mdb.STATUS) { can.onappend.style(can, value, target.parentNode) } if (key == mdb.STATUS) { can.onappend.style(can, value, target.parentNode) }
if (key == mdb.ENABLE) { can.onappend.style(can, value == ice.TRUE? mdb.ENABLE: mdb.DISABLE, target.parentNode) } if (key == mdb.ENABLE) { can.onappend.style(can, value == ice.TRUE? mdb.ENABLE: mdb.DISABLE, target.parentNode) }
@ -627,10 +626,9 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
if (_icon && typeof _icon == code.STRING || target.name == mdb.DELETE) { return target } if (_icon && typeof _icon == code.STRING || target.name == mdb.DELETE) { return target }
}) })
can.core.List(list, function(target) { can.onappend.style(can, html.ICONS, target); can.core.List(list, function(target) { can.onappend.style(can, html.ICONS, target);
var _icon = (can.page.icons(can, target.name)||{}).icon; var _icon = (can.page.icons(can, target.name)||{}).icon; if (target.name == mdb.DELETE) { _icon = icon.trash }
if (target.name == mdb.DELETE) { _icon = icon.trash }
can.page.insertBefore(can, [{icon: _icon, title: can.user.trans(can, target.name), onclick: target.onclick||function(event) { can.page.insertBefore(can, [{icon: _icon, title: can.user.trans(can, target.name), onclick: target.onclick||function(event) {
can.onengine.signal(can, "onevent", can.request(event, {type: "button"})) can.onengine.signal(can, "onevent", can.request(event, {_type: html.BUTTON}))
can.Update(request(event)._event, [ctx.ACTION, target.name]), can.onkeymap.prevent(event) can.Update(request(event)._event, [ctx.ACTION, target.name]), can.onkeymap.prevent(event)
}}], target.nextSibling, target.parentNode) }}], target.nextSibling, target.parentNode)
}) })
@ -1048,7 +1046,8 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
} }
}).length == 0) }).length == 0)
}) }, }) },
tableFilter: function(can, target, value) { can.page.Select(can, target, html.TR, function(tr, index) { tableFilter: function(can, target, value) {
can.page.Select(can, target, html.TR, function(tr, index) {
index > 0 && can.page.ClassList.set(can, tr, html.HIDDEN, can.page.Select(can, tr, html.TD, function(td) { if (td.innerText.toLowerCase().indexOf(value.toLowerCase()) > -1) { return td } }) == 0) index > 0 && can.page.ClassList.set(can, tr, html.HIDDEN, can.page.Select(can, tr, html.TD, function(td) { if (td.innerText.toLowerCase().indexOf(value.toLowerCase()) > -1) { return td } }) == 0)
}) }, }) },
delayResize: function(can, target, key) { delayResize: function(can, target, key) {
@ -1086,12 +1085,12 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
}, target.click() }, target.click()
}, },
clear: function(can, target) { return can.page.Modify(can, target||can._output, ""), target }, clear: function(can, target) { return can.page.Modify(can, target||can._output, ""), target },
filter: function(can, value, target) { target = target||can._output filter: function(can, value, target) { target = target||can.ui.content||can._output
can.onmotion.delayOnce(can, function() { can.onmotion.delayOnce(can, function() {
var count = can.page.Select(can, can._output, html.TR, function(tr, index) { var count = can.page.Select(can, target, html.TR, function(tr, index) {
if (!can.page.ClassList.set(can, tr, html.HIDE, index > 0 && tr.innerText.indexOf(value) == -1)) { return tr } if (!can.page.ClassList.set(can, tr, html.HIDE, index > 0 && tr.innerText.indexOf(value) == -1)) { return tr }
}).length }).length
count += can.page.SelectChild(can, can.ui && can.ui.content? can.ui.content: can._output, html.DIV_ITEM, function(target) { count += can.page.SelectChild(can, target, html.DIV_ITEM, function(target) {
if (!can.page.ClassList.set(can, target, html.HIDE, target.innerText.indexOf(value) == -1)) { return target } if (!can.page.ClassList.set(can, target, html.HIDE, target.innerText.indexOf(value) == -1)) { return target }
}).length }).length
can.user.toast(can, "filter out "+count+" lines") can.user.toast(can, "filter out "+count+" lines")

View File

@ -160,6 +160,7 @@ ol, ul { margin-left:var(--title-margin); }
p { margin:var(--title-margin) 0; } p { margin:var(--title-margin) 0; }
kbd { padding:0 var(--input-padding); } kbd { padding:0 var(--input-padding); }
img.qrcode { width:var(--qrcode-width); } img.qrcode { width:var(--qrcode-width); }
body.mobile fieldset>div.status { display:none; }
/* output style */ /* output style */
div.title>div.status { line-height:20px; display:flex; } div.title>div.status { line-height:20px; display:flex; }
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 { font-size:var(--status-font-size); font-weight:normal; white-space:pre; padding:0 var(--input-padding); display:flex; float:left; }
@ -191,8 +192,6 @@ div.output>div.code>div.form { text-align:center; font-size:15px; padding:60px 1
div.output>div.code>div.form>input[type=button] { min-width:200px; } div.output>div.code>div.form>input[type=button] { min-width:200px; }
div.output>div.code>div.form>input[type=button][name=confirm] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); margin:var(--button-margin) 0; } div.output>div.code>div.form>input[type=button][name=confirm] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); margin:var(--button-margin) 0; }
body.en span[lang^=zh] { display:none; } body.zh span[lang^=en] { display:none; } body.en span[lang^=zh] { display:none; } body.zh span[lang^=en] { display:none; }
// fieldset.plugin.cmd { display:flex; flex-wrap:wrap; justify-content:space-between; }
fieldset.plugin.cmd:not(.output)>form.option { float:left; display:flex !important; } fieldset.plugin.cmd:not(.output)>form.option { float:left; display:flex !important; }
fieldset.plugin.cmd:not(.output)>div.action { float:left; display:flex !important; flex-grow:1; height:var(--action-height); overflow:auto; } fieldset.plugin.cmd:not(.output)>div.action { float:left; display:flex !important; flex-grow:1; height:var(--action-height); overflow:auto; }
fieldset.plugin.cmd:not(.output)>div.action div.tabs:last-child { margin-right:var(--button-margin); } fieldset.plugin.cmd:not(.output)>div.action div.tabs:last-child { margin-right:var(--button-margin); }
@ -209,14 +208,14 @@ div.project div.action div.item input:hover { border-right:var(--box-notice); }
div.project div.action div.item.icons input { display:none; } div.project div.action div.item.icons input { display:none; }
div.project div.action div.item.icons { background-color:var(--plugin-bg-color); padding:0; } div.project div.action div.item.icons { background-color:var(--plugin-bg-color); padding:0; }
div.project div.list { margin-left:var(--button-margin); clear:both; } div.project div.list { margin-left:var(--button-margin); clear:both; }
body.width6 fieldset.plugin>div.output>div.project div.list { margin-left:var(--legend-margin); }
div.project div.list { border-left:var(--disable-fg-color) dashed 1px; } div.project div.list { border-left:var(--disable-fg-color) dashed 1px; }
fieldset.inner>div.output>div.project div.list { border-left:none; }
div.project div.list fieldset { position:static; } div.project div.list fieldset { position:static; }
div.project div.item.select { border-right:var(--box-notice3); } div.project div.item.select { border-right:var(--box-notice3); }
fieldset.inner>div.output>div.project div.list { border-left:none; }
fieldset.vimer>div.output>div.project div.item.select { border-right:var(--box-border3); } fieldset.vimer>div.output>div.project div.item.select { border-right:var(--box-border3); }
fieldset.vimer.normal>div.output>div.project div.item.select { border-right:var(--box-notice3); } fieldset.vimer.normal>div.output>div.project div.item.select { border-right:var(--box-notice3); }
fieldset.vimer.insert>div.output>div.project div.item.select { border-right:var(--box-danger3); } fieldset.vimer.insert>div.output>div.project div.item.select { border-right:var(--box-danger3); }
body.width6 fieldset.plugin>div.output>div.project div.list { margin-left:var(--legend-margin); }
div.project div.item:not(.hide)>i:first-child { margin-right:var(--input-margin); } div.project div.item:not(.hide)>i:first-child { margin-right:var(--input-margin); }
div.project div.item:not(.hide) { div.project div.item:not(.hide) {
white-space:pre; line-height:24px; cursor:pointer; white-space:pre; line-height:24px; cursor:pointer;
@ -253,7 +252,6 @@ div.item.open>i.bi-chevron-down { rotate:-180deg; transition:all .3s; }
div.item.text.trans input:not([type=button]) { transition:all 1s; } div.item.text.trans input:not([type=button]) { transition:all 1s; }
div.item.text.trans input:not([type=button]):focus { width:var(--river-width); transition:all .5s; } div.item.text.trans input:not([type=button]):focus { width:var(--river-width); transition:all .5s; }
div.toggle { background-color:var(--hover-bg-color); color:var(--hover-fg-color); font-size:var(--action-height); padding-top:38px; height:120px; position:absolute; } div.toggle { background-color:var(--hover-bg-color); color:var(--hover-fg-color); font-size:var(--action-height); padding-top:38px; height:120px; position:absolute; }
// div.toggle:hover { background-color:var(--hover-bg-color); color:var(--panel-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.toggle.project { top:20%; left:0; border-top-right-radius:var(--plugin-radius); border-bottom-right-radius:var(--plugin-radius); }
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.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); } 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); }
@ -565,7 +563,6 @@ 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 { border-radius:var(--button-radius); }
fieldset>div.action div.item.button:last-child { margin-right:var(--button-margin); } fieldset>div.action div.item.button:last-child { margin-right:var(--button-margin); }
fieldset.input.date.float>div.action div.item.button:last-child { margin-right:0; } fieldset.input.date.float>div.action div.item.button:last-child { margin-right:0; }
// fieldset>div.action div.item.select:not(.button) { border-bottom:var(--box-notice3); }
fieldset>div.action div.item:not(.state) { box-shadow:var(--input-box-shadow); } fieldset>div.action div.item:not(.state) { box-shadow:var(--input-box-shadow); }
fieldset>div.action>div.tabs:not(.state).select { box-shadow:var(--legend-box-shadow); } fieldset>div.action>div.tabs:not(.state).select { box-shadow:var(--legend-box-shadow); }
fieldset>div.action>div.cmds:not(.state) { box-shadow:var(--legend-box-shadow); } fieldset>div.action>div.cmds:not(.state) { box-shadow:var(--legend-box-shadow); }
@ -582,8 +579,8 @@ table.content th.select { border:var(--box-notice); }
table.content.action td:last-child { box-shadow:var(--th-box-shadow); } table.content.action td:last-child { box-shadow:var(--th-box-shadow); }
table.content.detail tr.action td { box-shadow:var(--th-box-shadow); } table.content.detail tr.action td { box-shadow:var(--th-box-shadow); }
div.project:not(.toggle) { border-right:var(--box-border); overflow-x:hidden; } div.project:not(.toggle) { border-right:var(--box-border); overflow-x:hidden; }
div.profile:not(.toggle) { border-left:var(--box-border); } div.layout>div.profile:not(.toggle) { border-left:var(--box-border); }
div.display:not(.toggle) { border-top:var(--box-border); } div.layout>div.display:not(.toggle) { border-top:var(--box-border); }
body.mobile fieldset>legend { box-shadow:none; } body.mobile fieldset>legend { box-shadow:none; }
body.mobile fieldset.plugin>legend>span { display:block; float:right; } body.mobile fieldset.plugin>legend>span { display:block; float:right; }
body:not(.mobile) fieldset.plugin>div.action div.item:first-child { margin-left:var(--button-margin); } body:not(.mobile) fieldset.plugin>div.action div.item:first-child { margin-left:var(--button-margin); }
@ -594,7 +591,6 @@ body { font-family:var(--body-font-family); }
legend { font-family:var(--legend-font-family); font-style:italic; } legend { font-family:var(--legend-font-family); font-style:italic; }
input { font-family:var(--input-font-family); } input { font-family:var(--input-font-family); }
kbd { font-family:var(--code-font-family); line-height:var(--code-line-height); } kbd { font-family:var(--code-font-family); line-height:var(--code-line-height); }
// kbd:hover { background-color:var(--hover-bg-color); }
kbd:hover { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } kbd:hover { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
table.content { font-family:var(--table-font-family); } table.content { font-family:var(--table-font-family); }
table.content th { font-family:var(--input-font-family); font-style:italic; } table.content th { font-family:var(--input-font-family); font-style:italic; }
@ -627,13 +623,11 @@ fieldset>form.option>div.item.text.cmd>input { width:100%; }
fieldset>form.option>div.item.select>input { min-width:var(--button-width); } fieldset>form.option>div.item.select>input { min-width:var(--button-width); }
fieldset>form.option>div.item.textarea { height:var(--textarea-height); width:100%; } fieldset>form.option>div.item.textarea { height:var(--textarea-height); width:100%; }
fieldset>div.action div.item.filter input { padding-left:24px; } fieldset>div.action div.item.filter input { padding-left:24px; }
fieldset>div.action div.item.state.filter input { width:120px; transition:all 0.8s; } body:not(.mobile) fieldset>div.action div.item.state.filter input { width:120px; transition:all 0.8s; }
fieldset>div.action div.item.state.filter input:focus { width:240px; transition:all 0.5s; } fieldset>div.action div.item.state.filter input:focus { width:240px; transition:all 0.5s; }
fieldset>div.action div.item { height:var(--action-height); } fieldset>div.action div.item { height:var(--action-height); }
fieldset>div.action>div.tabs { font-style:italic; padding:var(--input-padding) var(--button-padding); height:var(--action-height); } fieldset>div.action>div.tabs { font-style:italic; padding:var(--input-padding) var(--button-padding); height:var(--action-height); }
fieldset>div.action>div.cmds { font-style:italic; padding:var(--input-padding) var(--button-padding); height:var(--action-height); fieldset>div.action>div.cmds { font-style:italic; padding:var(--input-padding) var(--button-padding); height:var(--action-height); min-width:60px; text-align:center; justify-content:center; align-items:center; }
min-width:60px; text-align:center; justify-content:center; align-items:center;
}
fieldset>div.output>div.code { font-size:var(--code-font-size); } fieldset>div.output>div.code { font-size:var(--code-font-size); }
fieldset>div.output { width:100%; } fieldset>div.status { width:100%; } fieldset>div.output { width:100%; } fieldset>div.status { width:100%; }
fieldset>div.status { font-family:var(--status-font-family); font-style:italic; font-size:var(--status-font-size); line-height:20px; max-height:var(--action-height); } fieldset>div.status { font-family:var(--status-font-family); font-style:italic; font-size:var(--status-font-size); line-height:20px; max-height:var(--action-height); }
@ -692,9 +686,9 @@ div.item.button.create { display:flex; align-items:flex-start; }
div.item.button.insert { display:flex; align-items:flex-start; } div.item.button.insert { display:flex; align-items:flex-start; }
div.item.button.refresh { display:flex; align-items:flex-start; } div.item.button.refresh { display:flex; align-items:flex-start; }
div.item.button.create>span.icon { font-size:28px; line-height:26px; height:var(--action-height); } div.item.button.create>span.icon { font-size:28px; line-height:26px; height:var(--action-height); }
body.windows div.item.button.create>span.icon { line-height:28px; }
div.item.button.insert>span.icon { font-size:28px; line-height:26px; height:var(--action-height); } div.item.button.insert>span.icon { font-size:28px; line-height:26px; height:var(--action-height); }
div.item.button.refresh>span.icon { font-size:28px; line-height:26px; height:var(--action-height); } div.item.button.refresh>span.icon { font-size:28px; line-height:26px; height:var(--action-height); }
body.windows div.item.button.create>span.icon { line-height:28px; }
body.windows div.item.button.refresh>span.icon { font-size:22px; line-height:30px; } body.windows div.item.button.refresh>span.icon { font-size:22px; line-height:30px; }
div.item.button._space.icons { flex-grow:1; min-width:var(--button-margin); } div.item.button._space.icons { flex-grow:1; min-width:var(--button-margin); }
div.item.button._space.icons:hover { background-color:unset; cursor:unset; } div.item.button._space.icons:hover { background-color:unset; cursor:unset; }
@ -828,10 +822,12 @@ body.print div.float { background-color:snow; }
body.print fieldset.draw div.output { background-color:lightgray; } body.print fieldset.draw div.output { background-color:lightgray; }
body.print fieldset.draw div.output div.content svg { background-color:lightgray; } body.print fieldset.draw div.output div.content svg { background-color:lightgray; }
/* misc */ /* misc */
body.mobile fieldset.float form.option div.item.text { display:none; } fieldset.desktop { border:0; }
fieldset.Action>div.output>fieldset.ssh.cloud.profile { box-shadow:none; background-color:transparent; } fieldset.Action>div.output>fieldset.ssh.cloud.profile { box-shadow:none; background-color:transparent; }
fieldset.Action>div.output>fieldset.ssh.cloud.profile:hover { box-shadow:none; } fieldset.Action>div.output>fieldset.ssh.cloud.profile:hover { box-shadow:none; }
fieldset.Action>div.output>fieldset.ssh.cloud.profile>div.output { background-color:transparent; } fieldset.Action>div.output>fieldset.ssh.cloud.profile>div.output { background-color:transparent; }
div.upload.float div.action>div.item.close input { display:none; }
body.mobile fieldset.float form.option div.item.text { display:none; }
body:not(.cmd) fieldset.Action>div.output>fieldset.plugin>legend { border-top:var(--box-notice3); border-top-left-radius:0; } body:not(.cmd) fieldset.Action>div.output>fieldset.plugin>legend { border-top:var(--box-notice3); border-top-left-radius:0; }
body:not(.cmd) fieldset.Action>div.output>fieldset.plugin>legend:not(:hover) { background-color:var(--output-bg-color); } body:not(.cmd) fieldset.Action>div.output>fieldset.plugin>legend:not(:hover) { background-color:var(--output-bg-color); }
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); }
@ -955,9 +951,6 @@ body.width6 fieldset.plugin.trans>form.option>div.item.text>input { width:var(--
body.width6 fieldset.story.xterm>form.option>div.item.hash input { width:var(--form-width); } body.width6 fieldset.story.xterm>form.option>div.item.hash input { width:var(--form-width); }
body.width6 fieldset.desktop>div.output>div.desktop>fieldset.web.chat.iframe>form.option>div.item.hash>input { width:var(--river-width); } body.width6 fieldset.desktop>div.output>div.desktop>fieldset.web.chat.iframe>form.option>div.item.hash>input { width:var(--river-width); }
body.width2 fieldset.desktop>div.output>div.desktop>fieldset>form.option>div.item:last-child { margin-right:0; } body.width2 fieldset.desktop>div.output>div.desktop>fieldset>form.option>div.item:last-child { margin-right:0; }
fieldset.desktop { border:0; }
// fieldset.desktop>div.action { color:var(--disable-fg-color); }
// fieldset.desktop>div.status { color:var(--disable-fg-color); }
body.mobile fieldset.word:not(.cmd)>form.option>div.item>input[name=path] { width:180px; } body.mobile fieldset.word:not(.cmd)>form.option>div.item>input[name=path] { width:180px; }
body.mobile fieldset.word fieldset.inner>form.option input[type=text] { display:none; } body.mobile fieldset.word fieldset.inner>form.option input[type=text] { display:none; }
body.mobile fieldset.vimer>form.option div.item.path input { width:var(--input-width); } body.mobile fieldset.vimer>form.option div.item.path input { width:var(--input-width); }

View File

@ -55,7 +55,9 @@ Volcanos("page", {
case html.INNER: data.innerHTML = item.inner; break case html.INNER: data.innerHTML = item.inner; break
default: can.base.isUndefined(item[key]) || (data[key] = item[key]) default: can.base.isUndefined(item[key]) || (data[key] = item[key])
} }) } })
if (item.view) { var list = can.core.List(item.view); if (can.base.isArray(list[0])) { list[0] = list[0].join(lex.SP) } if (item.view) { var list = can.core.List(item.view); if (can.base.isArray(list[0])) {
list[0] = can.base.replaceAll(can.core.List(list[0], function(v) { return v }).join(lex.SP), ".", " ")
}
list[0] && can.page.ClassList.add(can, data, list[0]), type = list[1]||type, data.innerHTML = list[2]||data.innerHTML||"", name = list[3]||name list[0] && can.page.ClassList.add(can, data, list[0]), type = list[1]||type, data.innerHTML = list[2]||data.innerHTML||"", name = list[3]||name
} else if (item.text) { var list = can.core.List(item.text); if (can.base.isArray(list[2])) { list[2] = list[2].join(lex.SP) } } else if (item.text) { var list = can.core.List(item.text); if (can.base.isArray(list[2])) { list[2] = list[2].join(lex.SP) }
data.innerHTML = list[0]||data.innerHTML||"", type = list[1]||item.type||html.SPAN, list[2] && can.page.ClassList.add(can, data, list[2]) data.innerHTML = list[0]||data.innerHTML||"", type = list[1]||item.type||html.SPAN, list[2] && can.page.ClassList.add(can, data, list[2])

View File

@ -90,7 +90,7 @@ Volcanos("user", {
meta.title = meta.title||can.core.Keys(can.ConfSpace(), can.ConfIndex())||can._name.split(nfs.PS).slice(-2).join(nfs.PS) meta.title = meta.title||can.core.Keys(can.ConfSpace(), can.ConfIndex())||can._name.split(nfs.PS).slice(-2).join(nfs.PS)
meta.hash && can.misc.isDebug(can) && (meta.title += " "+meta.hash.slice(0, 6)), meta.action = meta.action||[""] meta.hash && can.misc.isDebug(can) && (meta.title += " "+meta.hash.slice(0, 6)), meta.action = meta.action||[""]
var width = meta.width||(html.QRCODE_WIDTH+2*html.PLUGIN_PADDING+10); if (width < 0) { width = can.page.width() + width } var width = meta.width||(html.QRCODE_WIDTH+2*html.PLUGIN_PADDING+10); if (width < 0) { width = can.page.width() + width }
var ui = can.page.Append(can, meta.action.list || meta.action.length > 1 || !can._root || !can._root.Action || !can._root.Action._toast ? document.body: can._root.Action._toast, [{view: [[chat.TOAST, meta.style, chat.FLOAT]], style: {width: width}, list: [ var ui = can.page.Append(can, meta.action.list || meta.action.length > 1 || !can._root || !can._root.Action || !can._root.Action._toast ? document.body: can._root.Action._toast, [{view: [[chat.TOAST, can.Conf(ctx.INDEX)||can.ConfIndex(), meta.style, chat.FLOAT]], style: {width: width}, list: [
{view: [wiki.TITLE, "", meta.title||""], title: "点击复制", onclick: function(event) { can.user.copy(event, can, meta.title) }}, {view: [wiki.TITLE, "", meta.title||""], title: "点击复制", onclick: function(event) { can.user.copy(event, can, meta.title) }},
{view: [cli.CLOSE, "", can.page.unicode.close], title: "点击关闭", onclick: function() { action.close() }}, {view: [cli.CLOSE, "", can.page.unicode.close], title: "点击关闭", onclick: function() { action.close() }},
{view: "duration", title: "点击关闭", onclick: function() { action.close() }}, {view: "duration", title: "点击关闭", onclick: function() { action.close() }},
@ -107,7 +107,7 @@ Volcanos("user", {
}, },
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) }, 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) { close: function(event) {
event && event.isTrusted && can.onengine.signal(can, "onevent", can.request(event)) event && event.isTrusted && can.onengine.signal(can, "onevent", can.request(event, {_type: "close"}))
action.timer.stop = true, can.page.Remove(can, ui._target) }, action.timer.stop = true, can.page.Remove(can, ui._target) },
cancel: 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) },
timer: can.core.Timer({interval: 100, length: (meta.duration||1000)/100}, function(event, interval, index) { timer: can.core.Timer({interval: 100, length: (meta.duration||1000)/100}, function(event, interval, index) {
@ -150,13 +150,15 @@ Volcanos("user", {
meta = meta||can.ondetail||can.onaction||{}, list = can.base.getValid(list, meta.list, can.core.Item(meta)), trans = trans||meta._trans; if (!list || list.length == 0) { return } meta = meta||can.ondetail||can.onaction||{}, list = can.base.getValid(list, meta.list, can.core.Item(meta)), trans = trans||meta._trans; if (!list || list.length == 0) { return }
var _events = event._events||event var _events = event._events||event
function click(event, button, index) { can.misc.Event(event, can, function() { can.request(event, {action: button}), can.onkeymap.prevent(event), event._events = _events; function click(event, button, index) { can.misc.Event(event, can, function() { can.request(event, {action: button}), can.onkeymap.prevent(event), event._events = _events;
can.onengine.signal(can, "onevent", can.request(event)); can.onengine.signal(can, "onevent", can.request(event, {_type: html.ACTION}));
(can.base.isFunc(cb)? cb(event, button, meta, carte, index): (can.base.isFunc(cb)? cb(event, button, meta, carte, index):
meta[button]? can.core.CallFunc([meta, button], {event: event, can: can, msg: msg, button: button}): meta[button]? can.core.CallFunc([meta, button], {event: event, can: can, msg: msg, button: button}):
can.Update(event, [ctx.ACTION, button])) || can.onmotion.clearCarte(can) can.Update(event, [ctx.ACTION, button])) || can.onmotion.clearCarte(can)
}) } }) }
var isinput = can.page.tagis(event.target, html.INPUT) var isinput = can.page.tagis(event.target, html.INPUT)
var ui = can.page.Append(can, document.body, [{view: [[chat.CARTE, meta._style||msg.Option("_style")||can.base.replaceAll(can.ConfIndex()||"", nfs.PT, lex.SP)||"", chat.FLOAT]], list: can.core.List(list, function(item, index) { var ui = can.page.Append(can, document.body, [{view: [[chat.CARTE,
can.Conf(ctx.INDEX)||can.ConfIndex(), msg.Option(ctx.ACTION), meta._style||msg.Option("_style"),
chat.FLOAT]], list: can.core.List(list, function(item, index) {
if (typeof item == code.FUNCTION) { item = item(can); if (!item) { return } } if (typeof item == code.FUNCTION) { item = item(can); if (!item) { return } }
if (item === "") { return {type: html.HR} } if (item === "") { return {type: html.HR} }
if (item == web.FILTER) { return { if (item == web.FILTER) { return {
@ -195,7 +197,7 @@ Volcanos("user", {
input: function(event, can, form, cb, button) { if (!form || form.length == 0) { return cb() } input: function(event, can, form, cb, button) { if (!form || form.length == 0) { return cb() }
event = event||{}; var msg = can.request(event); event = event._event||event; var need = {} event = event||{}; var msg = can.request(event); event = event._event||event; var need = {}
var title = msg.Option(wiki.TITLE)||msg.Option(ctx.ACTION) var title = msg.Option(wiki.TITLE)||msg.Option(ctx.ACTION)
var ui = can.page.Append(can, document.body, [{view: [[html.INPUT].concat((can.ConfIndex()||"").split("."), msg.Option(ctx.ACTION), msg.Option(mdb.TYPE), [chat.FLOAT])], list: [ var ui = can.page.Append(can, document.body, [{view: [[html.INPUT, can.Conf(ctx.INDEX)||can.ConfIndex(), msg.Option(ctx.ACTION), msg.Option(mdb.TYPE), chat.FLOAT]], list: [
{view: html.OPTION, list: [{type: html.TABLE, list: can.core.List(form, function(item) { {view: html.OPTION, list: [{type: html.TABLE, list: can.core.List(form, function(item) {
item = can.base.isString(item)? {type: html.TEXT, name: item}: item.length > 0? {type: html.SELECT, name: item[0], values: item.slice(1)}: item item = can.base.isString(item)? {type: html.TEXT, name: item}: item.length > 0? {type: html.SELECT, name: item[0], values: item.slice(1)}: item
item.type = item.type||(item.values? html.SELECT: item.name == html.TEXT? html.TEXTAREA: html.TEXT), need[item.name] = item.need item.type = item.type||(item.values? html.SELECT: item.name == html.TEXT? html.TEXTAREA: html.TEXT), need[item.name] = item.need
@ -220,7 +222,6 @@ Volcanos("user", {
can.onengine.signal(can, "onremove", can.request(event, {query: can.page.getquery(can, ui._target)})) can.onengine.signal(can, "onremove", can.request(event, {query: can.page.getquery(can, ui._target)}))
can.page.Remove(can, ui._target) }, can.page.Remove(can, ui._target) },
submit: function(event, can, button) { var args = [], data = {}, err = false submit: function(event, can, button) { var args = [], data = {}, err = false
can.onengine.signal(can, "onevent", can.request(event))
var list = can.page.Select(can, ui.table, html.OPTION_ARGS, function(item) { var list = can.page.Select(can, ui.table, html.OPTION_ARGS, function(item) {
if (item.value == "" && need[item.name] == "must") { err = true, item.focus(), can.user.toast(can, item.name+" 是必选字段, 请重新输入") } if (item.value == "" && need[item.name] == "must") { err = true, item.focus(), can.user.toast(can, item.name+" 是必选字段, 请重新输入") }
return item.name && args.push(item.name, item.value||""), data[item.name] = item.value||"" return item.name && args.push(item.name, item.value||""), data[item.name] = item.value||""
@ -231,9 +232,8 @@ Volcanos("user", {
}, _target: ui._target, _engine: function(event, can, button) { action.submit(event, can, button) }, }, _target: ui._target, _engine: function(event, can, button) { action.submit(event, can, button) },
}); });
can.page.Select(can, action._target, "input", function(target) { can.page.Select(can, action._target, "input", function(target) {
target.onfocus = target.onfocus||function(event) { target.onfocus = target.onfocus||function(event) { can.onengine.signal(can, "onevent", can.request(event)) }
can.onengine.signal(can, "onevent", can.request(event)) var onclick = target.onclick; target.onclick = function(event) { can.onengine.signal(can, "onevent", can.request(event, {_type: target.name})), onclick && onclick(event) }
}
}) })
title && can.page.Select(can, action._target, "input[name=submit]", function(target) { target.value = can.user.trans(can, title) }) title && can.page.Select(can, action._target, "input[name=submit]", function(target) { target.value = can.user.trans(can, title) })
if (event && event.target) { can.onlayout.figure(event, can, ui._target) if (event && event.target) { can.onlayout.figure(event, can, ui._target)
@ -249,7 +249,7 @@ Volcanos("user", {
}) })
}, },
upload: function(event, can, cb, silent) { var begin = new Date() upload: function(event, can, cb, silent) { var begin = new Date()
var ui = can.page.Append(can, document.body, [{view: [[html.UPLOAD, chat.FLOAT]], list: [ var ui = can.page.Append(can, document.body, [{view: [[html.UPLOAD, can.Conf(ctx.INDEX)||can.ConfIndex(), chat.FLOAT]], list: [
html.ACTION, {view: html.OUTPUT, list: ["progress"]}, {view: html.STATUS, list: [html.SHOW, cli.COST, nfs.SIZE]}, html.ACTION, {view: html.OUTPUT, list: ["progress"]}, {view: html.STATUS, list: [html.SHOW, cli.COST, nfs.SIZE]},
]}]); can.onlayout.figure(event, can, ui._target) ]}]); can.onlayout.figure(event, can, ui._target)
var action = can.onappend._action(can, [{type: html.UPLOAD, onchange: function(event) { action.show(event, 0, event.target.files[0].size, 0) }}, {type: html.BUTTON, name: cli.CLOSE}], ui.action, { var action = can.onappend._action(can, [{type: html.UPLOAD, onchange: function(event) { action.show(event, 0, event.target.files[0].size, 0) }}, {type: html.BUTTON, name: cli.CLOSE}], ui.action, {

View File

@ -17,7 +17,15 @@ 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: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; } .picker {
box-shadow:var(--notice-bg-color) 0px 0px 20px 5px !important;
background-color:var(--notice-bg-color) !important; color:white !important;
position:relative; left:-5px; top: -5px; transition:all 0.5s;
}
.picker.danger {
box-shadow:var(--danger-bg-color) 0px 0px 20px 5px !important;
background-color:var(--danger-bg-color) !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

@ -39,9 +39,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can._wss = can.onda
}, },
_toast: function(can, msg, target) { can.ui.toast = can.page.Append(can, target, [{view: [[html.ITEM, chat.TOAST]], onclick: function(event) { can.onexport[NTIP](can) }}])._target }, _toast: function(can, msg, target) { can.ui.toast = can.page.Append(can, target, [{view: [[html.ITEM, chat.TOAST]], onclick: function(event) { can.onexport[NTIP](can) }}])._target },
_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) },
tutor: function(event, can, type, text) { tutor: function(event, can, type, text) { if (can.base.isIn(type, "keyup", "keydown")) { return }
!event._tutor && event.isTrusted && text && can.onimport._data(can, chat.TUTOR, {time: can.base.Time(), type: type, text: text}) !event._tutor && event.isTrusted && text && can.onimport._data(can, chat.TUTOR, {time: can.base.Time(), type: type, text: text}), event._tutor = true
event._tutor = true
}, },
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+"")+"" }) },
@ -70,7 +69,8 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
ontheme: function(event, can, theme) { can.onimport.tutor(event, can, chat.THEME, theme) }, ontheme: function(event, can, theme) { can.onimport.tutor(event, can, chat.THEME, theme) },
onevent: function(event, can, query) { var msg = can.request(event) onevent: function(event, can, query) { var msg = can.request(event)
can.onimport.tutor(event, can, msg.Option(mdb.TYPE)||event.type, query||can.page.getquery(can, event.currentTarget||event.target)) }, can.onimport.tutor(event, can, msg.Option("_type")||event.type, query||can.page.getquery(can, event.currentTarget||event.target))
},
onindex: function(event, can, index) { can.onimport.tutor(event, can, ctx.INDEX, index) }, onindex: function(event, can, index) { can.onimport.tutor(event, can, ctx.INDEX, index) },
onproject: function(event, can, query) { can.onimport.tutor(event, can, html.ITEM, query) }, onproject: function(event, can, query) { can.onimport.tutor(event, can, html.ITEM, query) },
onremove: function(event, can, query) { can.onimport.tutor(event, can, mdb.REMOVE, query) }, onremove: function(event, can, query) { can.onimport.tutor(event, can, mdb.REMOVE, query) },

View File

@ -63,9 +63,8 @@ Volcanos(chat.ONACTION, {_init: function(can) { can.onmotion.hidden(can) }, list
sub.onimport.size(sub, can.ConfHeight(), can.ConfWidth()-1, true) sub.onimport.size(sub, can.ConfHeight(), can.ConfWidth()-1, true)
}, can.ui.profile) } }, can.ui.profile) }
if (data.ctx == ice.NFS && data.cmd == nfs.PACK) { var ls = can.misc.SplitPath(can, data.text) if (data.ctx == ice.NFS && data.cmd == nfs.PACK) { var ls = can.misc.SplitPath(can, data.text)
can.runAction(event, ctx.RUN, [web.CODE_VIMER, ctx.ACTION, mdb.RENDER, data.type, ls[1], ls[0]], function(msg) { msg.Table(function(meta) { can.runAction(event, ctx.RUN, [web.CODE_VIMER, ctx.ACTION, mdb.RENDER, data.type, ls[1], ls[0]], function(msg) {
plugin(meta) msg.Table(function(meta) { plugin(meta) }), can.onappend.board(can, msg.Result(), can.ui.profile) })
}), can.onappend.board(can, msg.Result(), can.ui.profile) })
} else { } else {
plugin(meta) plugin(meta)
} }

View File

@ -48,10 +48,10 @@ fieldset.inner.cmd>div.output>div.layout>div.tabs>div { height:var(--code-tabs-h
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.icon>div.icon { font-size:26px; line-height:32px; padding:2px 5px; position:sticky; top:0; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.icon>div.icon { font-size:26px; line-height:32px; padding:2px 5px; position:sticky; top:0; }
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs { justify-content:flex-start; flex-grow:1; flex-wrap:wrap; overflow:auto; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs { justify-content:flex-start; flex-grow:1; flex-wrap:wrap; overflow:auto; }
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs:hover { background-color:unset; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs:hover { background-color:unset; }
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs>div.tabs { padding:var(--input-padding) var(--button-padding); height:var(--code-tabs-height); display:flex; align-items:center; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs>div.tabs { padding:var(--input-padding) var(--button-padding); margin-right:var(--button-margin); height:var(--code-tabs-height); display:flex; align-items:center; }
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head { flex-direction:row-reverse; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head { flex-direction:row-reverse; }
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div { white-space:pre; padding:0 var(--input-padding); height:var(--code-tabs-height); display:flex; align-items:center; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div { white-space:pre; padding:0 var(--input-padding); height:var(--code-tabs-height); display:flex; align-items:center; }
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.online { margin-left:0 !important; margin-right:0 !important; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.online { margin-left:0 !important; margin-right:0 !important; flex-direction: row-reverse; }
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.online img { height:24px; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.online img { height:24px; }
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar { padding:0; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar { padding:0; }
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar>img { height:32px; clip-path:circle(40%); } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar>img { height:32px; clip-path:circle(40%); }

View File

@ -10,7 +10,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
if (can.Mode() == ice.MSG_RESULT) { msg.result = msg.result||[can._output.innerHTML], can.Mode(chat.SIMPLE), can.sup.Mode(chat.SIMPLE) } if (can.Mode() == ice.MSG_RESULT) { msg.result = msg.result||[can._output.innerHTML], can.Mode(chat.SIMPLE), can.sup.Mode(chat.SIMPLE) }
can.core.List(paths.concat(can.core.Split(msg.Option(nfs.REPOS))), function(p) { can.core.List(paths.concat(can.core.Split(msg.Option(nfs.REPOS))), function(p) {
if (can.base.beginWith(p, nfs.USR_LOCAL_WORK, "C:/") || can.base.endWith(p, "-dict/") || can.base.isIn(p, if (can.base.beginWith(p, nfs.USR_LOCAL_WORK, "C:/") || can.base.endWith(p, "-dict/") || can.base.isIn(p,
// nfs.USR_INTSHELL,
nfs.USR_WEBSOCKET, nfs.USR_GO_QRCODE, nfs.USR_GO_GIT, nfs.USR_ICONS, nfs.USR_GEOAREA, nfs.USR_PROGRAM, nfs.USR_NODE_MODULES, nfs.USR_WEBSOCKET, nfs.USR_GO_QRCODE, nfs.USR_GO_GIT, nfs.USR_ICONS, nfs.USR_GEOAREA, nfs.USR_PROGRAM, nfs.USR_NODE_MODULES,
)) { return } )) { return }
if (p && paths.indexOf(p) == -1 && p[0] != nfs.PS) { paths.push(p) } if (p && paths.indexOf(p) == -1 && p[0] != nfs.PS) { paths.push(p) }
@ -127,7 +126,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
}}]) }}])
}, },
_tabIcon: function(can) { _tabIcon: function(can) {
// can.user.isWindows ||
can.page.Append(can, can.ui.path, can.core.Item({ can.page.Append(can, can.ui.path, can.core.Item({
"\u271A": shy({transform: "translate(0 2px)"}, function(event) { can.onaction.open(event, can, "open") }), "\u271A": shy({transform: "translate(0 2px)"}, function(event) { can.onaction.open(event, can, "open") }),
"\u2756": shy({}, function(event) { can.onaction.plug(event, can, "plug") }), "\u2756": shy({}, function(event) { can.onaction.plug(event, can, "plug") }),
@ -299,7 +297,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
can.page.style(can, can.ui.tabs.parentNode, html.WIDTH, can.ui.path.offsetWidth) can.page.style(can, can.ui.tabs.parentNode, html.WIDTH, can.ui.path.offsetWidth)
can.page.style(can, can.ui.display, html.WIDTH, can.ui.path.offsetWidth) can.page.style(can, can.ui.display, html.WIDTH, can.ui.path.offsetWidth)
can.page.style(can, can.ui.display.parentNode, html.WIDTH, can.ui.path.offsetWidth) can.page.style(can, can.ui.display.parentNode, html.WIDTH, can.ui.path.offsetWidth)
// can.ui.zone.source._layout(), can.ui.zone[can.Option(nfs.PATH)] && can.ui.zone[can.Option(nfs.PATH)]._layout()
} }
can.page.SelectChild(can, can.ui.project, html.DIV_ZONE, function(target, index, list) { can.page.SelectChild(can, can.ui.project, html.DIV_ZONE, function(target, index, list) {
can.page.SelectChild(can, target, html.DIV_ITEM, function(target) { can.page.SelectChild(can, target, html.DIV_ITEM, function(target) {
@ -517,8 +514,7 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { if (!msg) { return }
}) })
}, },
}) })
Volcanos(chat.ONACTION, { Volcanos(chat.ONACTION, {_trans: {show: "预览", exec: "执行"},
_trans: {show: "预览", exec: "展示"},
_getLine: function(can, line) { return can.page.Select(can, can.ui.content, "tr.line>td.line", function(td, index) { if (td.parentNode == line || index+1 == line) { return td.parentNode } })[0] }, _getLine: function(can, line) { return can.page.Select(can, can.ui.content, "tr.line>td.line", function(td, index) { if (td.parentNode == line || index+1 == line) { return td.parentNode } })[0] },
_getContent: function(can, line) { _getContent: function(can, line) {
can.ui.content = line.parentNode, can._msg = can.ui.content._msg, can.Option(nfs.PATH, can._msg.Option(nfs.PATH)), can.Option(nfs.FILE, can._msg.Option(nfs.FILE)) can.ui.content = line.parentNode, can._msg = can.ui.content._msg, can.Option(nfs.PATH, can._msg.Option(nfs.PATH)), can.Option(nfs.FILE, can._msg.Option(nfs.FILE))
@ -648,7 +644,6 @@ Volcanos(chat.ONACTION, {
}, },
}) })
Volcanos(chat.ONEXPORT, { Volcanos(chat.ONEXPORT, {
// list: [mdb.TIME, nfs.FILE, nfs.LINE, ice.BACK],
path: function(can) { return can.Option(nfs.PATH)+can.Option(nfs.FILE) }, path: function(can) { return can.Option(nfs.PATH)+can.Option(nfs.FILE) },
line: function(can, line) { return parseInt(can.core.Value(can.page.SelectOne(can, line, "td.line"), "innerText")) }, line: function(can, line) { return parseInt(can.core.Value(can.page.SelectOne(can, line, "td.line"), "innerText")) },
text: function(can, line) { return can.core.Value(can.page.SelectOne(can, line, "td.text"), "innerText") }, text: function(can, line) { return can.core.Value(can.page.SelectOne(can, line, "td.text"), "innerText") },

View File

@ -1,8 +1,9 @@
Volcanos(chat.ONIMPORT, { Volcanos(chat.ONIMPORT, {
list: ["value", "filter", "close:button"], list: [mdb.VALUE, "close:button"],
_init: function(can, msg) { _init: function(can, msg) { msg.Defer(function() { can.onappend.scroll(can, can._output) })
msg.Defer(function() { can.onappend.scroll(can, can._output) })
can.onappend.table(can, msg), can.onappend.board(can, msg), can.onmotion.highlight(can, can.Option(mdb.VALUE, msg.Option(mdb.VALUE))) can.onappend.table(can, msg), can.onappend.board(can, msg), can.onmotion.highlight(can, can.Option(mdb.VALUE, msg.Option(mdb.VALUE)))
can.page.Select(can, can._option, "input[name=filter]", function(target) { target.onkeyup = function(event) { can.onmotion.highlight(can, target.value) } }) can.page.Select(can, can._option, "input[name=value]", function(target) {
can.onmotion.hidden(can, target)
})
}, },
}) })