mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
add some
This commit is contained in:
parent
f1961220c0
commit
68f3c17005
2
const.js
2
const.js
@ -369,7 +369,7 @@ var html = {value: {
|
||||
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",
|
||||
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",
|
||||
HEADER: "header", NAV: "nav", MAIN: "main", ASIDE: "aside", FOOTER: "footer",
|
||||
FAVICON: "favicon",
|
||||
|
31
frame.js
31
frame.js
@ -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)
|
||||
}), meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg)
|
||||
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.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) }},
|
||||
}[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.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) }
|
||||
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.BUTTON && can.page.isIconInput(can, item.name)) {
|
||||
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)))
|
||||
})
|
||||
}
|
||||
@ -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)
|
||||
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}):
|
||||
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) {
|
||||
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) {
|
||||
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)
|
||||
}}
|
||||
}).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: [
|
||||
{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) {
|
||||
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 (!can.misc.isDebug(can)) { return }
|
||||
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 == aaa.PASSWORD && value) { _value = "********" }
|
||||
function onclick() { return false }
|
||||
if (key == "enable") {
|
||||
if (key == mdb.ENABLE) {
|
||||
if (value == ice.TRUE) {
|
||||
_value = `<i class="${icon.disable}">`
|
||||
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) {
|
||||
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) {
|
||||
if (can.Option(key) === "") {
|
||||
can.onappend.style(can, value, target.parentNode)
|
||||
}
|
||||
if (option.indexOf(key) > -1) { 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.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 }
|
||||
})
|
||||
can.core.List(list, function(target) { can.onappend.style(can, html.ICONS, target);
|
||||
var _icon = (can.page.icons(can, target.name)||{}).icon;
|
||||
if (target.name == mdb.DELETE) { _icon = icon.trash }
|
||||
var _icon = (can.page.icons(can, target.name)||{}).icon; 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.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)
|
||||
}}], target.nextSibling, target.parentNode)
|
||||
})
|
||||
@ -1048,7 +1046,8 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
|
||||
}
|
||||
}).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)
|
||||
}) },
|
||||
delayResize: function(can, target, key) {
|
||||
@ -1086,12 +1085,12 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
|
||||
}, target.click()
|
||||
},
|
||||
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() {
|
||||
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 }
|
||||
}).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 }
|
||||
}).length
|
||||
can.user.toast(can, "filter out "+count+" lines")
|
||||
|
29
index.css
29
index.css
@ -160,6 +160,7 @@ ol, ul { margin-left:var(--title-margin); }
|
||||
p { margin:var(--title-margin) 0; }
|
||||
kbd { padding:0 var(--input-padding); }
|
||||
img.qrcode { width:var(--qrcode-width); }
|
||||
body.mobile fieldset>div.status { display:none; }
|
||||
/* output style */
|
||||
div.title>div.status { line-height:20px; display:flex; }
|
||||
div.title>div.status>div.item { font-size:var(--status-font-size); font-weight:normal; 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][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; }
|
||||
|
||||
// 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)>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); }
|
||||
@ -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 { background-color:var(--plugin-bg-color); padding:0; }
|
||||
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; }
|
||||
fieldset.inner>div.output>div.project div.list { border-left:none; }
|
||||
div.project div.list fieldset { position:static; }
|
||||
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.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); }
|
||||
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) {
|
||||
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]):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: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.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); }
|
||||
@ -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:last-child { margin-right:var(--button-margin); }
|
||||
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.tabs:not(.state).select { 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.detail tr.action td { box-shadow:var(--th-box-shadow); }
|
||||
div.project:not(.toggle) { border-right:var(--box-border); overflow-x:hidden; }
|
||||
div.profile:not(.toggle) { border-left:var(--box-border); }
|
||||
div.display:not(.toggle) { border-top:var(--box-border); }
|
||||
div.layout>div.profile:not(.toggle) { border-left:var(--box-border); }
|
||||
div.layout>div.display:not(.toggle) { border-top:var(--box-border); }
|
||||
body.mobile fieldset>legend { box-shadow:none; }
|
||||
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); }
|
||||
@ -594,7 +591,6 @@ body { font-family:var(--body-font-family); }
|
||||
legend { font-family:var(--legend-font-family); font-style:italic; }
|
||||
input { font-family:var(--input-font-family); }
|
||||
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); }
|
||||
table.content { font-family:var(--table-font-family); }
|
||||
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.textarea { height:var(--textarea-height); width:100%; }
|
||||
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 { 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);
|
||||
min-width:60px; text-align:center; justify-content:center; align-items:center;
|
||||
}
|
||||
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; }
|
||||
fieldset>div.output>div.code { font-size:var(--code-font-size); }
|
||||
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); }
|
||||
@ -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.refresh { display:flex; align-items:flex-start; }
|
||||
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.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; }
|
||||
div.item.button._space.icons { flex-grow:1; min-width:var(--button-margin); }
|
||||
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 div.content svg { background-color:lightgray; }
|
||||
/* 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:hover { box-shadow:none; }
|
||||
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: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); }
|
||||
@ -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.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; }
|
||||
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 fieldset.inner>form.option input[type=text] { display:none; }
|
||||
body.mobile fieldset.vimer>form.option div.item.path input { width:var(--input-width); }
|
||||
|
@ -55,7 +55,9 @@ Volcanos("page", {
|
||||
case html.INNER: data.innerHTML = item.inner; break
|
||||
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
|
||||
} 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])
|
||||
|
20
lib/user.js
20
lib/user.js
@ -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.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 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: [cli.CLOSE, "", can.page.unicode.close], 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) },
|
||||
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) },
|
||||
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) {
|
||||
@ -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 }
|
||||
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;
|
||||
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):
|
||||
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)
|
||||
}) }
|
||||
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 (item === "") { return {type: html.HR} }
|
||||
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() }
|
||||
event = event||{}; var msg = can.request(event); event = event._event||event; var need = {}
|
||||
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) {
|
||||
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
|
||||
@ -220,7 +222,6 @@ Volcanos("user", {
|
||||
can.onengine.signal(can, "onremove", can.request(event, {query: can.page.getquery(can, ui._target)}))
|
||||
can.page.Remove(can, ui._target) },
|
||||
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) {
|
||||
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||""
|
||||
@ -231,9 +232,8 @@ Volcanos("user", {
|
||||
}, _target: ui._target, _engine: function(event, can, button) { action.submit(event, can, button) },
|
||||
});
|
||||
can.page.Select(can, action._target, "input", function(target) {
|
||||
target.onfocus = target.onfocus||function(event) {
|
||||
can.onengine.signal(can, "onevent", can.request(event))
|
||||
}
|
||||
target.onfocus = target.onfocus||function(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) })
|
||||
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()
|
||||
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]},
|
||||
]}]); 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, {
|
||||
|
@ -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.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.keyword { color:#5cadd4; }
|
||||
div.item:not(.string):not(.number):not(.boolean)>span.value { color:var(--disable-fg-color); font-style:italic; }
|
||||
|
@ -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 },
|
||||
_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) {
|
||||
!event._tutor && event.isTrusted && text && can.onimport._data(can, chat.TUTOR, {time: can.base.Time(), type: type, text: text})
|
||||
event._tutor = true
|
||||
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 = true
|
||||
},
|
||||
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+"")+"" }) },
|
||||
@ -70,7 +69,8 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
|
||||
|
||||
ontheme: function(event, can, theme) { can.onimport.tutor(event, can, chat.THEME, theme) },
|
||||
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) },
|
||||
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) },
|
||||
|
@ -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)
|
||||
}, can.ui.profile) }
|
||||
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) {
|
||||
plugin(meta)
|
||||
}), can.onappend.board(can, msg.Result(), can.ui.profile) })
|
||||
can.runAction(event, ctx.RUN, [web.CODE_VIMER, ctx.ACTION, mdb.RENDER, data.type, ls[1], ls[0]], function(msg) {
|
||||
msg.Table(function(meta) { plugin(meta) }), can.onappend.board(can, msg.Result(), can.ui.profile) })
|
||||
} else {
|
||||
plugin(meta)
|
||||
}
|
||||
|
@ -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.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>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>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.avatar { padding:0; }
|
||||
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar>img { height:32px; clip-path:circle(40%); }
|
||||
|
@ -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) }
|
||||
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,
|
||||
// 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,
|
||||
)) { return }
|
||||
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) {
|
||||
// can.user.isWindows ||
|
||||
can.page.Append(can, can.ui.path, can.core.Item({
|
||||
"\u271A": shy({transform: "translate(0 2px)"}, function(event) { can.onaction.open(event, can, "open") }),
|
||||
"\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.display, 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, target, html.DIV_ITEM, function(target) {
|
||||
@ -517,8 +514,7 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { if (!msg) { return }
|
||||
})
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {
|
||||
_trans: {show: "预览", exec: "展示"},
|
||||
Volcanos(chat.ONACTION, {_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] },
|
||||
_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))
|
||||
@ -648,7 +644,6 @@ Volcanos(chat.ONACTION, {
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {
|
||||
// list: [mdb.TIME, nfs.FILE, nfs.LINE, ice.BACK],
|
||||
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")) },
|
||||
text: function(can, line) { return can.core.Value(can.page.SelectOne(can, line, "td.text"), "innerText") },
|
||||
|
@ -1,8 +1,9 @@
|
||||
Volcanos(chat.ONIMPORT, {
|
||||
list: ["value", "filter", "close:button"],
|
||||
_init: function(can, msg) {
|
||||
msg.Defer(function() { can.onappend.scroll(can, can._output) })
|
||||
list: [mdb.VALUE, "close:button"],
|
||||
_init: function(can, msg) { 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.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)
|
||||
})
|
||||
},
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user