mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
add some
This commit is contained in:
parent
50302be95a
commit
f8635d242a
2
const.js
2
const.js
@ -368,7 +368,7 @@ var html = {value: {
|
||||
SVG: "svg", IMG: "img", IMAGE: "image", VIDEO: "video", AUDIO: "audio", CANVAS: "canvas", IFRAME: "iframe",
|
||||
WSS: "wss", WEBVIEW: "webview", CHROME: "chrome", WINDOWS: "windows", MOBILE: "mobile", LANDSCAPE: "landscape",
|
||||
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", MULTIPLE: "multiple",
|
||||
CANCEL: "cancel", SUBMIT: "submit", UPLOAD: "upload", USERNAME: "username", PASSWORD: "password",
|
||||
CONFIRM: "confirm", CLOSE: "close", CLICK: "click", FOCUS: "focus", BLUR: "blur",
|
||||
TABLE: "table", THEAD: "thead", TBODY: "tbody", TR: "tr", TH: "th", TD: "td",
|
||||
|
43
frame.js
43
frame.js
@ -336,15 +336,9 @@ Volcanos(chat.ONAPPEND, {
|
||||
if (sub.onimport && can.base.isArray(sub.onimport.list) && sub.onimport.list.length > 0) {
|
||||
can.onmotion.clear(can, can._option), can.onappend._option(can, {inputs: can.page.inputs(can, sub.onimport.list, html.TEXT) })
|
||||
} can.onmotion.toggle(can, can._action, true), delete(can._status._cache), delete(can._status._cache_key)
|
||||
// can.page.ClassList.del(can, sub._fields, html.FORM)
|
||||
// sub._output.className = html.OUTPUT
|
||||
// can.onappend.style(can, sub._args.style, can._output)
|
||||
// can.isCmdMode() && can.onappend.style(can, html.OUTPUT)
|
||||
// sub.isCmdMode() && sub.onexport.title(sub, sub.ConfIndex())
|
||||
can._output_old = can._output, can._output = sub._output = sub._target = output = can.page.insertBefore(can, [html.OUTPUT], can._status)
|
||||
can.page.style(can, can._output, "visibility", "hidden")
|
||||
can.page.style(can, can._output, "position", "fixed")
|
||||
if (sub.Mode() == ice.MSG_RESULT) { can._output.innerHTML = can._output_old.innerHTML }
|
||||
var output_old = can._output; sub._target = sub._output = can._output = output = can.page.insertBefore(can, [html.OUTPUT], can._status)
|
||||
can.page.style(can, can._output, "visibility", "hidden", "position", "fixed")
|
||||
if (sub.Mode() == ice.MSG_RESULT) { can._output.innerHTML = output_old.innerHTML }
|
||||
can.onexport._output(sub, msg)
|
||||
can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) {
|
||||
if (action !== false) { can.onkeymap._build(sub)
|
||||
@ -361,9 +355,8 @@ Volcanos(chat.ONAPPEND, {
|
||||
can.isCmdMode() && can.page.style(can, can._output, html.HEIGHT, sub.ConfHeight())
|
||||
can.onexport.output(sub, msg); if (can.Conf("_output")) { can.Conf("_output")(sub, msg) }
|
||||
} msg.Defer(), can.base.isFunc(cb) && cb(msg), can.page.style(can, can._target, "visibility", ""),
|
||||
can._output.scrollTop = can._output_old.scrollTop, can._output.scrollLeft = can._output_old.scrollLeft
|
||||
can.page.style(can, can._output, "visibility", ""), can.page.Remove(can, can._output_old)
|
||||
can.page.style(can, can._output, "position", "")
|
||||
can._output.scrollTop = output_old.scrollTop, can._output.scrollLeft = output_old.scrollLeft
|
||||
can.page.style(can, can._output, "visibility", "", "position", ""), can.page.Remove(can, output_old)
|
||||
}, target: output}), msg.Defer()
|
||||
})
|
||||
},
|
||||
@ -463,11 +456,17 @@ Volcanos(chat.ONAPPEND, {
|
||||
if (item.name == html.FILTER) { item.icon = item.icon||icon.search }
|
||||
item.icon = item.icon||can.Conf(["_icons", item.name])||icon[item.name]
|
||||
}
|
||||
if (item.type == html.MULTIPLE) {
|
||||
input.data.type = html.BUTTON, input.value = can.user.trans(can, item.name)
|
||||
}
|
||||
if (item.range) { input._init = function(target) { can.onappend.figure(can, item, target, function(sub, value, old) { target.value = value, can.core.CallFunc([can.onaction, item.name], [event, can, item.name]) }) } }
|
||||
var _style = can.page.buttonStyle(can, item.name)
|
||||
var _input = can.page.Append(can, target, [{view: [[html.ITEM].concat(style, [item.type, item.name, item._className, item.icon? "_icon": ""], _style)], list: [item.icon && {icon: item.icon}, input].concat(_icon), _init: function(target, _input) {
|
||||
if (item.type == html.SELECT) {
|
||||
_input.select.value = value||_item.value||_item.values[0]
|
||||
if (item.type == html.MULTIPLE) {
|
||||
can.onappend.multiple(can, item, _input.input)
|
||||
can.onappend.style(can, html.BUTTON, target)
|
||||
}
|
||||
if (item.type == html.SELECT) { _input.select.value = value||_item.value||_item.values[0]
|
||||
can.onappend.select(can, _input.select, _item)
|
||||
can.onappend.style(can, html.BUTTON, target)
|
||||
item._init && item._init(target)
|
||||
@ -539,6 +538,22 @@ Volcanos(chat.ONAPPEND, {
|
||||
})
|
||||
}, _init: function(target) { can.page.style(can, target, html.WIDTH, (select.offsetWidth||80)+30), can.onappend.style(can, html.HIDE, select) }}, {icon: mdb.SELECT}])
|
||||
},
|
||||
multiple: function(can, item, target) { target._select = {}, can.core.List(item.value||item.values, function(value) { target._select[value] = true })
|
||||
target.onclick = function(event) { var carte = can.user.carte(event, can, {}, item.values, function(event, button) {})
|
||||
can.page.Appends(can, carte._target, can.core.List(item.values, function(value) { var _target
|
||||
return {view: html.ITEM, list: [{type: "input", data: {type: "checkbox", checked: target._select[value]? "checked": ""}, onchange: function(event) {
|
||||
target._select[value] = event.target.checked
|
||||
can.core.CallFunc(can.onaction[item.name], [event, can, item.name, target._select])
|
||||
}, _init: function(target) {
|
||||
_target = target
|
||||
}}, {text: value}], onclick: function(event) {
|
||||
if (can.page.tagis(event.target, "input")) { return } can.onkeymap.prevent(event)
|
||||
_target.checked = target._select[value] = !target._select[value]
|
||||
can.core.CallFunc(can.onaction[item.name], [event, can, item.name, target._select])
|
||||
}}
|
||||
}))
|
||||
}
|
||||
},
|
||||
checkbox: function(can, table, msg) {
|
||||
can.page.Select(can, table, "tr>th:first-child,tr>td:first-child", function(target) {
|
||||
can.page.insertBefore(can, [{type: target.tagName, list: [{type: html.INPUT, data: {type: html.CHECKBOX}, onchange: function(event) {
|
||||
|
16
index.css
16
index.css
@ -199,7 +199,9 @@ fieldset.plugin.cmd:not(.output)>div.action div.tabs:last-child { margin-right:v
|
||||
fieldset.plugin.cmd:not(.output)>div.action div.tabs:first-child { margin-left:var(--button-margin); }
|
||||
fieldset.plugin.cmd:not(.output)>div.action div.tabs.select { padding-top:2px; }
|
||||
fieldset.plugin.cmd:not(.output)>div.action div.tabs>span.name { overflow:hidden; }
|
||||
fieldset.plugin.cmd:not(.output)>div.header { float:right; display:flex !important; flex-direction:row-reverse; }
|
||||
fieldset.plugin.cmd:not(.output)>div.header { float:right; display:flex; flex-direction:row-reverse; }
|
||||
body.width2 fieldset.plugin.cmd:not(.output)>div.header { display:none; }
|
||||
body.width1 fieldset.plugin.cmd:not(.output)>div.header { display:none; }
|
||||
fieldset.studio>div.output>div.layout>div.layout>div.content>fieldset.story>form.option>div.icon.delete { display:none; }
|
||||
fieldset.studio>div.output>div.layout>div.layout>div.content>fieldset.story>div.action>div.item.state.button.full.icons { display:none; }
|
||||
div.output>div.layout>div.layout { position:relative; }
|
||||
@ -345,7 +347,7 @@ div.toast.float div.action>div.item.notice input { border:var(--box-notice); }
|
||||
div.toast.float div.action>div.item.open input { border:var(--box-notice); }
|
||||
body>div.carte { border:0; padding:0; }
|
||||
body>div.carte input[name=filter] { margin:var(--input-margin); width:calc(100% - 10px); position:sticky; top:var(--input-margin); }
|
||||
body>div.carte div.item { white-space:pre; padding:var(--button-padding); }
|
||||
body>div.carte div.item { white-space:pre; padding:var(--button-padding); display:flex; align-items:center; }
|
||||
body>div.carte div.item i:first-child { margin-right:var(--button-margin); }
|
||||
body>div.carte div.item span.icon.next { line-height:22px; height:22px; float:right; }
|
||||
body>div.carte.select.float>div.item { text-align:center; }
|
||||
@ -524,6 +526,7 @@ fieldset>form.option>div.item.text.cmd>input { background-color:var(--code-bg-co
|
||||
fieldset>div.action div.item.cmds.select { background:var(--output-bg-color); border-top:var(--box-notice3); }
|
||||
fieldset.desktop fieldset>div.action div.item.cmds.select { border-top:unset; border-bottom:var(--box-notice3); }
|
||||
fieldset>div.action div.item.cmds:hover { background:var(--output-bg-color); }
|
||||
fieldset>div.action div.item.cmds img { display:none; }
|
||||
fieldset>div.output { background-color:var(--output-bg-color); }
|
||||
fieldset.panel:not(.main) { background-color:var(--panel-bg-color); color:var(--panel-fg-color); }
|
||||
fieldset.panel:not(.main)>div.output { background-color:var(--panel-output-bg-color); color:var(--panel-output-fg-color); }
|
||||
@ -740,13 +743,13 @@ body:not(.mobile) fieldset.Action:not(.tabview):not(.horizon):not(.grid) fieldse
|
||||
body:not(.mobile) fieldset.Action:not(.tabview):not(.horizon):not(.grid) fieldset.plugin:not(.float):not(.full):not(.cmd)>div.action>div.button.icons>i { display:none; }
|
||||
fieldset.panel>div.action>div.button.icons>span.icon { display:none; }
|
||||
fieldset.plugin.cmd>form.option>div.icon.delete { display:none; }
|
||||
fieldset.story>form.option>div.button.icons.list { margin-right:0; }
|
||||
fieldset.story>form.option>div.button.icons.back { margin-right:0; }
|
||||
fieldset.story>form.option>div.button.icons { display:none; }
|
||||
fieldset.story>form.option>div.button.icons.list { display:none; }
|
||||
fieldset.story>form.option>div.button.icons.back { display:none; }
|
||||
fieldset.story>form.option>div.button.icons input { display:none; }
|
||||
fieldset.story>div.action>div.button.icons>input { display:none; }
|
||||
fieldset.plug>form.option>div.button.icons { display:none; }
|
||||
fieldset.plug>form.option>div.button.icons.back { display:none; }
|
||||
fieldset.plug>form.option>div.button.icons.list { display:none; }
|
||||
fieldset.plug>form.option>div.button.icons input { display:none; }
|
||||
fieldset.plug>div.action>div.button.icons>input { display:none; }
|
||||
fieldset.plug>form.option>div.icon:first-child { margin-left:var(--input-margin); }
|
||||
body:not(.width6) fieldset.inner.float:not(.full)>form.option>div.text { display:none; }
|
||||
@ -793,6 +796,7 @@ div.story[data-type=spark] { cursor:copy; }
|
||||
/* mobile */
|
||||
body.mobile table.content { width:100%; }
|
||||
body.mobile fieldset.plugin>legend { box-shadow:none; }
|
||||
body.mobile:not(.landscape) fieldset.plugin.cmd:not(.output)>div.header { display:none !important; }
|
||||
body.mobile div.output.card { overflow-x:hidden; }
|
||||
body.mobile div.output>div.project { position:absolute; left:0; top:0; z-index:2; }
|
||||
body.mobile div.output>div.project { flex:0 0 240px; width:240px; }
|
||||
|
14
lib/base.js
14
lib/base.js
@ -58,19 +58,19 @@ Volcanos("base", {
|
||||
if (str.indexOf(ice.HTTP) == 0) { var res = this._parse(str, {type: web.LINK, name: "", text: str}); return res.name = res._origin.split("://").pop().split(nfs.PS)[0], res }
|
||||
try { res = JSON.parse(str), res.text = res.text||str, res.type = res.type||nfs.JSON } catch (e) { res = {type: mdb.TEXT, text: str} } return res
|
||||
},
|
||||
ParseSize: function(size) { size = size.toLowerCase().split(" ")[0]
|
||||
ParseSize: function(size) { size = (size||"").toLowerCase().split(" ")[0]
|
||||
if (size.endsWith("tb") || size.endsWith("t")) { return parseFloat(size) * this._unit.t }
|
||||
if (size.endsWith("gb") || size.endsWith("g") || size.endsWith("gib")) { return parseFloat(size) * this._unit.g }
|
||||
if (size.endsWith("mb") || size.endsWith("m") || size.endsWith("mib")) { return parseFloat(size) * this._unit.m }
|
||||
if (size.endsWith("kb") || size.endsWith("k")) { return parseFloat(size) * this._unit.k }
|
||||
return parseFloat(size)
|
||||
}, _unit: {k: 1024, m: 1024*1024, g: 1024*1024*1024, t: 1024*1024*1024*1024},
|
||||
Size: function(size) { size = parseInt(size); var n = 100, k = this._unit.k, m = this._unit.m, g = this._unit.g, t = this._unit.t
|
||||
if (size > t) { return parseInt(size/t) + nfs.PT + parseInt(size/g%k*n/k) + "T" }
|
||||
if (size > g) { return parseInt(size/g) + nfs.PT + parseInt(size/m%k*n/k) + "G" }
|
||||
if (size > m) { return parseInt(size/m) + nfs.PT + parseInt(size/k%k*n/k) + "M" }
|
||||
if (size > k) { return parseInt(size/k) + nfs.PT + parseInt(size%k*n/k) + "K" }
|
||||
return size + "B"
|
||||
Size: function(size) { var n = 100, k = this._unit.k, m = this._unit.m, g = this._unit.g, t = this._unit.t
|
||||
if (size > t) { return parseFloat(size/t).toFixed(2)+"T" }
|
||||
if (size > g) { return parseFloat(size/g).toFixed(2)+"G" }
|
||||
if (size > m) { return parseFloat(size/m).toFixed(2)+"M" }
|
||||
if (size > k) { return parseFloat(size/k).toFixed(2)+"K" }
|
||||
return size
|
||||
},
|
||||
Number: function(d, n) { var res = []
|
||||
while (d > 0) { res.push(d%10); d = parseInt(d/10); n-- } while (n > 0) { res.push("0"); n-- }
|
||||
|
@ -71,7 +71,10 @@ Volcanos(chat.ONIMPORT, {
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {_init: function(can) {},
|
||||
onsize: function(can) { can.ConfHeight(can._target.offsetHeight), can.ConfWidth(can._target.offsetWidth) },
|
||||
onsize: function(can) {
|
||||
can.ConfHeight(can._target.offsetHeight), can.ConfWidth(can._target.offsetWidth)
|
||||
can.onimport.theme(can)
|
||||
},
|
||||
onmain: function(can) {
|
||||
if (window.parent == window && can.misc.Search(can, ice.MSG_SESSID) && can.misc.CookieSessid(can, can.misc.Search(can, ice.MSG_SESSID)) && !can.user.isMailMaster) {
|
||||
return can.misc.Search(can, ice.MSG_SESSID, "")
|
||||
|
@ -33,7 +33,8 @@ fieldset.inner>div.output>div.layout>div.layout>div.profile h1 { border-bottom:v
|
||||
fieldset.inner>div.output>div.layout>div.layout>div.profile h2 { border-bottom:var(--box-border); margin:var(--title-margin) 0; }
|
||||
fieldset.inner>div.output>div.layout>div.layout>div.profile pre>code { padding-left:var(--table-padding); border-left:var(--box-notice3); display:block; }
|
||||
fieldset.inner>div.output>div.layout>div.layout>div.profile>div.code { white-space:unset; padding:var(--table-padding); }
|
||||
fieldset.inner>div.output>div.layout>div.layout>div.profile div.status>div { padding:var(--input-padding); float:left; }
|
||||
fieldset.inner>div.output>div.layout>div.layout>div.profile>div.status { background-color:var(--output-bg-color); height:var(--action-height); overflow:auto; position:sticky; bottom:0; }
|
||||
fieldset.inner>div.output>div.layout>div.layout>div.profile div.status>div { font-style:italic; font-size:var(--status-font-size); padding:var(--input-padding); float:left; }
|
||||
fieldset.inner>div.output>div.layout>div.layout>div.content div.tips { color:var(--disable-fg-color); font-style:italic; line-height:var(--code-line-height); position:absolute; top:0; right:10px; }
|
||||
fieldset.inner>div.output>div.layout>div.layout>fieldset.story { box-shadow:unset; }
|
||||
fieldset.inner.cmd>div.output>div.layout>div.tabs:not(.hide) { background-color:var(--plugin-bg-color); height:var(--code-tabs-height); display:flex; }
|
||||
|
@ -75,9 +75,9 @@ Volcanos(chat.ONIMPORT, {
|
||||
return meta._init && meta._init(target), target
|
||||
},
|
||||
layout: function(can) {
|
||||
can.ui.svg && can.page.style(can, can.ui.svg, html.MIN_HEIGHT, can.ConfHeight()-4, html.MIN_WIDTH, can.ConfWidth())
|
||||
can.ui.svg && can.page.style(can, can.ui.svg, html.MIN_HEIGHT, can.ConfHeight()-1, html.MIN_WIDTH, can.ConfWidth())
|
||||
can.ui.layout && can.ui.layout(can.ConfHeight(), can.ConfWidth(), 0, function(height, width) {
|
||||
can.page.style(can, can.ui.svg, html.MIN_HEIGHT, height-4, html.MIN_WIDTH, width)
|
||||
can.page.style(can, can.ui.svg, html.MIN_HEIGHT, height-1, html.MIN_WIDTH, width)
|
||||
})
|
||||
},
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user