mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
add status.source
This commit is contained in:
parent
c558c8785b
commit
d6f6f88624
2
const.js
2
const.js
@ -257,7 +257,7 @@ var chat = {
|
|||||||
ONSTORM_SELECT: "onstorm_select", ONACTION_NOSTORM: "onaction_nostorm", ONACTION_NOTOOL: "onaction_notool", ONACTION_TOUCH: "onaction_touch", ONACTION_CMD: "onaction_cmd", ONACTION_REMOVE: "onaction_remove",
|
ONSTORM_SELECT: "onstorm_select", ONACTION_NOSTORM: "onaction_nostorm", ONACTION_NOTOOL: "onaction_notool", ONACTION_TOUCH: "onaction_touch", ONACTION_CMD: "onaction_cmd", ONACTION_REMOVE: "onaction_remove",
|
||||||
ONOPENSEARCH: "onopensearch", ONSEARCH_FOCUS: "onsearch_focus", ONCOMMAND_FOCUS: "oncommand_focus",
|
ONOPENSEARCH: "onopensearch", ONSEARCH_FOCUS: "onsearch_focus", ONCOMMAND_FOCUS: "oncommand_focus",
|
||||||
ONTHEMECHANGE: "onthemechange", ONLAYOUT: "onlayout", ONUNLOAD: "onunload", ONWEBPACK: "onwebpack",
|
ONTHEMECHANGE: "onthemechange", ONLAYOUT: "onlayout", ONUNLOAD: "onunload", ONWEBPACK: "onwebpack",
|
||||||
ONTOAST: "ontoast", ONDEBUG: "ondebug", ONSHARE: "onshare", ONPRINT: "onprint",
|
ONTOAST: "ontoast", ONSHARE: "onshare", ONPRINT: "onprint", ONDEBUGS: "ondebugs",
|
||||||
|
|
||||||
_INIT: "_init", _DELAY_INIT: "_delay_init",
|
_INIT: "_init", _DELAY_INIT: "_delay_init",
|
||||||
_TRANS: "_trans", _STYLE: "_style", _ENGINE: "_engine", _SEARCH: "_search", _NAMES: "_names", _TOAST: "_toast",
|
_TRANS: "_trans", _STYLE: "_style", _ENGINE: "_engine", _SEARCH: "_search", _NAMES: "_names", _TOAST: "_toast",
|
||||||
|
49
frame.js
49
frame.js
@ -272,33 +272,38 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
_status: function(can, list, status, msg) { status = status||can._status, can.onmotion.clear(can, status); var keys = {}
|
_status: function(can, list, status, msg) { status = status||can._status, can.onmotion.clear(can, status); var keys = {}
|
||||||
|
var fileline = can.base.trimPrefix((can.Conf("_fileline")||"").split("?")[0], "/require/")
|
||||||
can.core.List((can.base.Obj(list, can.core.Value(can, [chat.ONEXPORT, mdb.LIST]))||[]).concat(can.misc.Search(can, log.DEBUG)==ice.TRUE? [
|
can.core.List((can.base.Obj(list, can.core.Value(can, [chat.ONEXPORT, mdb.LIST]))||[]).concat(can.misc.Search(can, log.DEBUG)==ice.TRUE? [
|
||||||
{name: html.HEIGHT, value: can.ConfHeight()}, {name: html.WIDTH, value: can.ConfWidth()},
|
can.Conf("_fileline") && {name: nfs.SOURCE, value: fileline, onclick: function(event) { can.onkeymap.prevent(event)
|
||||||
]: []), function(item) { item = can.base.isString(item)? {name: item}: item
|
var ls = can.misc.SplitPath(can, fileline); if (event.metaKey) {
|
||||||
|
can.user.open(can.misc.MergePodCmd(can, {pod: can.ConfSpace(), cmd: web.CODE_VIMER, path: ls[0], file: ls[1]}))
|
||||||
|
} else {
|
||||||
|
can.onappend._float(can, web.CODE_VIMER, ls)
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{name: html.HEIGHT, value: can.ConfHeight(), onclick: function(event) { can.onappend._float(can, {index: "can.view", _target: can._fields||can._target}) }},
|
||||||
|
{name: html.WIDTH, value: can.ConfWidth(), onclick: function(event) { can.onappend._float(can, {index: "can.data", _target: can}) }},
|
||||||
|
]: []), function(item) { if (!item) { return } item = can.base.isString(item)? {name: item}: item
|
||||||
if (item && item.name == web.SPACE && item.value) { item.value = can.page.Format(html.A, can.misc.MergePodCmd(can, {pod: item.value}), item.value) }
|
if (item && item.name == web.SPACE && item.value) { item.value = can.page.Format(html.A, can.misc.MergePodCmd(can, {pod: item.value}), item.value) }
|
||||||
if (can.base.beginWith(item.value, nfs.PS, ice.HTTP)) { item.value = can.page.Format(html.A, item.value, item.value.split("?")[0]) }
|
if (can.base.beginWith(item.value, nfs.PS, ice.HTTP)) { item.value = can.page.Format(html.A, item.value, item.value.split("?")[0]) }
|
||||||
if (keys[item.name]) { return can.Status(item.name, item.value) } keys[item.name] = item
|
if (keys[item.name]) { return can.Status(item.name, item.value) } keys[item.name] = item
|
||||||
msg && item.name == cli.COST && (item.value = msg.Option(ice.MSG_COST)||item.value)
|
msg && item.name == cli.COST && (item.value = msg.Option(ice.MSG_COST)||item.value)
|
||||||
msg && item.name == nfs.SIZE && (item.value = can.base.Size(item.value||msg._xhr.responseText.length))
|
msg && item.name == "msg" && (item.value = can.base.Size(item.value||msg._xhr.responseText.length))
|
||||||
can.page.Append(can, status, [{view: html.ITEM, list: [
|
can.page.Append(can, status, [{view: html.ITEM, 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: item.onclick||function(event) {
|
||||||
if (item.name == mdb.COUNT) {
|
if (can.base.isIn(item.name, mdb.TIME)) {
|
||||||
can.onappend._float(can, {index: ctx.CONFIG}, [can.ConfIndex()])
|
|
||||||
} else if (can.base.isIn(item.name, mdb.TIME)) {
|
|
||||||
can.onappend._float(can, {index: "can.debug"}, ["log", can.ConfIndex()])
|
can.onappend._float(can, {index: "can.debug"}, ["log", can.ConfIndex()])
|
||||||
|
} else if (item.name == mdb.COUNT) {
|
||||||
|
can.onappend._float(can, {index: ctx.CONFIG}, [can.ConfIndex()])
|
||||||
} else if (can.base.isIn(item.name, cli.COST)) {
|
} else if (can.base.isIn(item.name, cli.COST)) {
|
||||||
can.onappend._float(can, {index: "can.toast"}, [can.ConfIndex()])
|
can.onappend._float(can, {index: "can.toast"}, [can.ConfIndex()])
|
||||||
} else if (can.base.isIn(item.name, nfs.SIZE)) {
|
} else if (can.base.isIn(item.name, "msg")) {
|
||||||
can.onappend._float(can, {title: "msg(报文)", index: ice.CAN_PLUGIN, display: "/plugin/story/json.js"}, [], function(sub) {
|
can.onappend._float(can, {title: "msg(报文)", index: ice.CAN_PLUGIN, display: "/plugin/story/json.js"}, [], function(sub) {
|
||||||
sub.run = function(event, cmds, cb) { var _msg = can.request(event); _msg.result = [JSON.stringify(msg)], cb(_msg) }
|
sub.run = function(event, cmds, cb) { var _msg = can.request(event); _msg.result = [JSON.stringify(msg)], cb(_msg) }
|
||||||
})
|
})
|
||||||
} else if (item.name == ice.LOG_TRACEID) {
|
} else if (item.name == ice.LOG_TRACEID) {
|
||||||
can.onappend._float(can, web.CODE_XTERM, ["sh", item.value, "grep "+item.value+" var/log/bench.log | grep -v grep | grep -v '"+item.value+" $'"])
|
can.onappend._float(can, web.CODE_XTERM, ["sh", item.value, "grep "+item.value+" var/log/bench.log | grep -v grep | grep -v '"+item.value+" $'"])
|
||||||
} else if (can.base.isIn(item.name, html.HEIGHT)) {
|
|
||||||
can.onappend._float(can, {index: "can.view", _target: can._fields||can._target})
|
|
||||||
} else if (can.base.isIn(item.name, html.WIDTH)) {
|
|
||||||
can.onappend._float(can, {index: "can.data", _target: can})
|
|
||||||
} else {
|
} else {
|
||||||
can.user.copy(event, can, item.value)
|
can.user.copy(event, can, item.value)
|
||||||
}
|
}
|
||||||
@ -426,22 +431,17 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
item._enter = function(event, value) { if (event.ctrlKey) { run(event, mdb.MODIFY, [key, value]) } }
|
item._enter = function(event, value) { if (event.ctrlKey) { run(event, mdb.MODIFY, [key, value]) } }
|
||||||
can.onmotion.modifys(can, event.target, function(event, value, old) { run(event, mdb.MODIFY, [key, value]) }, item)
|
can.onmotion.modifys(can, event.target, function(event, value, old) { run(event, mdb.MODIFY, [key, value]) }, item)
|
||||||
}, onmouseout: function() {
|
}, onmouseout: function() {
|
||||||
can.page.SelectChild(can, can._option, html.DIV_ITEM_TEXT, function(target) {
|
can.page.SelectChild(can, can._option, html.DIV_ITEM_TEXT, function(target) { can.page.ClassList.del(can, target, "will") })
|
||||||
can.page.ClassList.del(can, target, "will")
|
|
||||||
})
|
|
||||||
}, onmouseover: function(event) {
|
}, onmouseover: function(event) {
|
||||||
can.page.SelectChild(can, can._option, html.DIV_ITEM_TEXT, function(target) {
|
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.ClassList.set(can, target, "will", can.page.ClassList.has(can, target, key))
|
||||||
})
|
})
|
||||||
}, title: can.user.trans(can, can.Option(key) == undefined? key: "click to detail", null, html.INPUT), _init: function(target) {
|
}, title: can.user.trans(can, can.Option(key) == undefined? key: "click to detail", null, html.INPUT), _init: function(target) {
|
||||||
key == ctx.ACTION && can.onappend.mores(can, target, data, msg.IsDetail()? 10: html.TABLE_BUTTON)
|
key == ctx.ACTION && can.onappend.mores(can, target, data, msg.IsDetail()? 10: html.TABLE_BUTTON)
|
||||||
var list = can.page.Select(can, target, html.INPUT, function(target) {
|
var list = can.page.Select(can, target, html.INPUT, function(target) { var _icon = can.Conf("_icons."+target.name)||icon[target.name]; if (_icon) { return target } })
|
||||||
var _icon = can.Conf("feature._icons."+target.name)||icon[target.name]; if (_icon) { return target }
|
can.core.List(list, function(target) { can.onappend.style(can, "icons", target); var _icon = can.Conf("_icons."+target.name)||icon[target.name]
|
||||||
})
|
|
||||||
can.core.List(list, function(target) { can.onappend.style(can, "icons", target)
|
|
||||||
var _icon = can.Conf("feature._icons."+target.name)||icon[target.name]
|
|
||||||
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.Update(can.request(event, data), [ctx.ACTION, target.name]), can.onkeymap.prevent(event)
|
can.Update(can.request(event, data, {_toast: ice.PROCESS}), [ctx.ACTION, target.name]), can.onkeymap.prevent(event)
|
||||||
}}], target.nextSibling, target.parentNode)
|
}}], target.nextSibling, target.parentNode)
|
||||||
})
|
})
|
||||||
can.page.SelectOne(can, target, html.SPAN, function(span) { can.core.List(span.style, function(key) { target.style[key] = span.style[key] }) })
|
can.page.SelectOne(can, target, html.SPAN, function(span) { can.core.List(span.style, function(key) { target.style[key] = span.style[key] }) })
|
||||||
@ -579,12 +579,15 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
if (meta.inputs && meta.inputs.length > 0 || meta.meta) { can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, _cb, target, field); return res }
|
if (meta.inputs && meta.inputs.length > 0 || meta.meta) { can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, _cb, target, field); return res }
|
||||||
var value = can.onengine.plugin(can, meta.index); if (value) { can.onappend._plugin(can, value, meta, function(sub, meta, skip) {
|
var value = can.onengine.plugin(can, meta.index); if (value) { can.onappend._plugin(can, value, meta, function(sub, meta, skip) {
|
||||||
value.meta && value.meta._init && value.meta._init(sub, meta), _cb(sub, meta, skip) }, target, field); return res }
|
value.meta && value.meta._init && value.meta._init(sub, meta), _cb(sub, meta, skip) }, target, field); return res }
|
||||||
can.runAction(can.request({}, {_method: http.GET, pod: meta.space})._caller(), ctx.COMMAND, [meta.index], function(msg) { msg.Table(function(value) { can.onappend._plugin(can, value, meta, _cb, target, field) })}); return res
|
can.runAction(can.request({}, {_method: http.GET, pod: meta.space})._caller(), ctx.COMMAND, [meta.index], function(msg) {
|
||||||
|
if (msg.Length() == 0) { can.onappend._plugin(can, {index: "can._plugin", style: html.HIDE}, meta, _cb, target, field) }
|
||||||
|
msg.Table(function(value) { can.onappend._plugin(can, value, meta, _cb, target, field) })
|
||||||
|
}); return res
|
||||||
},
|
},
|
||||||
_plugin: function(can, value, meta, cb, target, field) { can.base.Copy(meta, value, true)
|
_plugin: function(can, value, meta, cb, target, field) { can.base.Copy(meta, value, true)
|
||||||
meta.type = meta.type||chat.STORY, meta.name = meta.name||value.meta&&value.meta.name||"", meta.help = meta.help||value.help||"", meta.height = meta.height||can.ConfHeight(), meta.width = meta.width||can.ConfWidth()
|
meta.type = meta.type||chat.STORY, meta.name = meta.name||value.meta&&value.meta.name||"", meta.help = meta.help||value.help||"", meta.height = meta.height||can.ConfHeight(), meta.width = meta.width||can.ConfWidth()
|
||||||
meta.inputs = can.base.getValid(meta.inputs, can.base.Obj(value.list))||[], meta.feature = can.base.getValid(meta.feature, can.base.Obj(value.meta))||{}
|
meta.inputs = can.base.getValid(meta.inputs, can.base.Obj(value.list))||[], meta.feature = can.base.getValid(meta.feature, can.base.Obj(value.meta))||{}
|
||||||
meta.args = can.base.getValid(can.base.Obj(meta.args), can.base.Obj(meta.arg), can.base.Obj(value.args), can.base.Obj(value.arg))||[]
|
meta.index = value.index||meta.index, meta.args = can.base.getValid(can.base.Obj(meta.args), can.base.Obj(meta.arg), can.base.Obj(value.args), can.base.Obj(value.arg))||[]
|
||||||
can.onappend._init(can, meta, [chat.PLUGIN_STATE_JS], function(sub, skip) {
|
can.onappend._init(can, meta, [chat.PLUGIN_STATE_JS], function(sub, skip) {
|
||||||
sub.run = function(event, cmds, cb) {
|
sub.run = function(event, cmds, cb) {
|
||||||
if (can.base.isFunc(value)) {
|
if (can.base.isFunc(value)) {
|
||||||
|
@ -105,7 +105,7 @@ table.content th.select[data-asc="0"] i.bi-sort-up { display:none; }
|
|||||||
table.content td { padding:var(--table-padding); }
|
table.content td { padding:var(--table-padding); }
|
||||||
table.content td input.icons { display:none; }
|
table.content td input.icons { display:none; }
|
||||||
table.content td i:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); cursor:pointer; }
|
table.content td i:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); cursor:pointer; }
|
||||||
table.content td i { padding:var(--input-padding); }
|
table.content td i { padding:var(--input-padding); font-size:20px; }
|
||||||
body:not(.mobile) fieldset.plugin:not(.plug):not(.float):not(.full):not(.cmd)>div.output>table.content td input.icons { display:unset; }
|
body:not(.mobile) fieldset.plugin:not(.plug):not(.float):not(.full):not(.cmd)>div.output>table.content td input.icons { display:unset; }
|
||||||
body:not(.mobile) fieldset.plugin:not(.plug):not(.float):not(.full):not(.cmd)>div.output>table.content td i { display:none; }
|
body:not(.mobile) fieldset.plugin:not(.plug):not(.float):not(.full):not(.cmd)>div.output>table.content td i { display:none; }
|
||||||
table.content.checkbox th:first-child { text-align:center; padding:var(--table-padding); position:sticky; left:2px; z-index:1; }
|
table.content.checkbox th:first-child { text-align:center; padding:var(--table-padding); position:sticky; left:2px; z-index:1; }
|
||||||
@ -128,7 +128,7 @@ iframe { height:var(--iframe-height); width:100%; }
|
|||||||
/* fieldset */
|
/* fieldset */
|
||||||
fieldset>legend { box-shadow:var(--box-shadow); }
|
fieldset>legend { box-shadow:var(--box-shadow); }
|
||||||
fieldset>form.option>div.item:not(.icon) { margin-right:var(--button-margin); box-shadow:var(--box-shadow); }
|
fieldset>form.option>div.item:not(.icon) { margin-right:var(--button-margin); box-shadow:var(--box-shadow); }
|
||||||
fieldset.story:not(.float)>form.option>div.item.icons:not(.icon) { margin-right:0; }
|
/* fieldset.story:not(.float)>form.option>div.item.icons:not(.icon) { margin-right:0; } */
|
||||||
fieldset>form.option>div.item.textarea { width:100%; height:var(--textarea-height); }
|
fieldset>form.option>div.item.textarea { width:100%; height:var(--textarea-height); }
|
||||||
fieldset>form.option>div.item.text.cmd { width:100%; }
|
fieldset>form.option>div.item.text.cmd { width:100%; }
|
||||||
fieldset>form.option>div.item.text.cmd>input { background-color:var(--code-bg-color); color:var(--code-fg-color); width:100%; }
|
fieldset>form.option>div.item.text.cmd>input { background-color:var(--code-bg-color); color:var(--code-fg-color); width:100%; }
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg) { var river = can.Conf(chat.RIVER), storm = can.Conf(chat.STORM), list = can.misc.SearchHash(can)
|
Volcanos(chat.ONIMPORT, {_init: function(can, msg) { var river = can.Conf(chat.RIVER), storm = can.Conf(chat.STORM), list = can.misc.SearchHash(can)
|
||||||
can.onmotion.clear(can), can.core.Next(msg.Table(), function(item, next) { item.type = chat.PLUGIN, item.mode = can.Mode(); if (item.deleted == ice.TRUE) { return next() }
|
can.onmotion.clear(can), can.core.Next(msg.Table(), function(item, next) { item.type = chat.PLUGIN, item.mode = can.Mode(); if (item.deleted == ice.TRUE) { return next() }
|
||||||
item.width = can.ConfWidth()-can.Conf(html.MARGIN_X); if (item.style == html.OUTPUT) { item.width = can.ConfWidth()-2*html.PLUGIN_MARGIN-2*html.PLUGIN_PADDING }
|
item.width = can.ConfWidth()-can.Conf(html.MARGIN_X); if (item.style == html.OUTPUT) { item.width = can.ConfWidth()-2*html.PLUGIN_MARGIN-2*html.PLUGIN_PADDING }
|
||||||
if (msg.Length() == 1) {
|
if (msg.Length() == 1) { item.height = can.ConfHeight()-(can.user.isMobile? 1: 1)*html.ACTION_HEIGHT-can.Conf(html.MARGIN_Y) }
|
||||||
item.height = can.ConfHeight()-(can.user.isMobile? 1: 1)*html.ACTION_HEIGHT-can.Conf(html.MARGIN_Y)
|
can.onappend.plugin(can, item, function(sub, meta, skip) {
|
||||||
}
|
can._plugins = (can._plugins||[]).concat([sub]), can.onimport._tabs(can, sub, meta), skip || next()
|
||||||
can.onappend.plugin(can, item, function(sub, meta, skip) { can._plugins = (can._plugins||[]).concat([sub]), can.onimport._tabs(can, sub, meta), skip || next()
|
|
||||||
sub.onaction._close = function() { can.onengine.signal(can, chat.ONACTION_REMOVE, can.request({river: river, storm: storm}, item)), can.page.Remove(can, sub._target) }
|
sub.onaction._close = function() { can.onengine.signal(can, chat.ONACTION_REMOVE, can.request({river: river, storm: storm}, item)), can.page.Remove(can, sub._target) }
|
||||||
sub.run = function(event, cmds, cb) { return can.run(can.request(event, {pod: meta.space||meta.pod}), [river, storm, meta.id||meta.index].concat(cmds), cb) }
|
sub.run = function(event, cmds, cb) { return can.run(can.request(event, {pod: meta.space||meta.pod}),
|
||||||
|
(can.base.beginWith(meta.index, "can.")? []: [river, storm, meta.id||meta.index]).concat(cmds), cb) }
|
||||||
sub.onexport.output = function() { can.page.style(can, sub._output, html.MAX_HEIGHT, "") }
|
sub.onexport.output = function() { can.page.style(can, sub._output, html.MAX_HEIGHT, "") }
|
||||||
})
|
})
|
||||||
}, function() { if (can.isCmdMode()) { return } can.user.mod.isCmd = false
|
}, function() { if (can.isCmdMode()) { return } can.user.mod.isCmd = false
|
||||||
|
@ -51,7 +51,7 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
|
|||||||
oncommand_focus: function(can) { can.page.Select(can, can._output, ["div.cmd", html.INPUT], function(target) { can.onmotion.focus(can, target) }) },
|
oncommand_focus: function(can) { can.page.Select(can, can._output, ["div.cmd", html.INPUT], function(target) { can.onmotion.focus(can, target) }) },
|
||||||
ondebugs: function(can, msg) { can.runAction(msg, msg.Option(ctx.ACTION), [msg.Option(ctx.INDEX)], function(_msg) { _msg.Table(function(item) {
|
ondebugs: function(can, msg) { can.runAction(msg, msg.Option(ctx.ACTION), [msg.Option(ctx.INDEX)], function(_msg) { _msg.Table(function(item) {
|
||||||
can.onappend._float(can, item, can.base.Obj(item.args, []), function(sub) {
|
can.onappend._float(can, item, can.base.Obj(item.args, []), function(sub) {
|
||||||
sub.run = function(event, cmds, cb) { can.run(can.request(event, {_method: http.POST, space: sub.Conf(web.SPACE)}), [ctx.ACTION, msg.Option(ctx.ACTION), ctx.RUN].concat(cmds), cb) }
|
sub.run = function(event, cmds, cb) { can.run(can.request(event, {_method: http.POST, pod: sub.ConfSpace()}), [ctx.ACTION, msg.Option(ctx.ACTION), ctx.RUN].concat(cmds), cb) }
|
||||||
})
|
})
|
||||||
}) }) },
|
}) }) },
|
||||||
})
|
})
|
||||||
@ -130,13 +130,8 @@ Volcanos(chat.ONPLUGIN, {
|
|||||||
can.onappend.style(can, "view")
|
can.onappend.style(can, "view")
|
||||||
}),
|
}),
|
||||||
console: shy("网页终端", {
|
console: shy("网页终端", {
|
||||||
prompt: function(can, msg, arg, meta) { msg.detail = []
|
prompt: function(can, msg, arg, meta) { msg.detail = [], msg._can.onimport.grow(msg._can, msg, "only", ["\r", can.base.Time(null, "[%H:%M:%S]"), "can$ "].join("")) },
|
||||||
msg._can.onimport.grow(msg._can, msg, "only", ["\r",
|
resize: function(can, msg, arg, meta) { msg.detail = [], meta.prompt(can, msg, arg, meta) },
|
||||||
can.base.Time(null, "[%H:%M:%S]"), "can$ "].join(""))
|
|
||||||
},
|
|
||||||
resize: function(can, msg, arg, meta) { msg.detail = []
|
|
||||||
meta.prompt(can, msg, arg, meta)
|
|
||||||
},
|
|
||||||
input: function(can, msg, arg, meta) { can = msg._can, msg.detail = [], can._list = can._list||[]
|
input: function(can, msg, arg, meta) { can = msg._can, msg.detail = [], can._list = can._list||[]
|
||||||
var text = atob(arg[0]); function grow(text) { can.onimport.grow(can, msg, "only", text) }
|
var text = atob(arg[0]); function grow(text) { can.onimport.grow(can, msg, "only", text) }
|
||||||
if (text == "\r") { var cmd = can._list.join("")
|
if (text == "\r") { var cmd = can._list.join("")
|
||||||
@ -154,7 +149,7 @@ Volcanos(chat.ONPLUGIN, {
|
|||||||
grow(text), can._list = (can._list||[]).concat(text)
|
grow(text), can._list = (can._list||[]).concat(text)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}, [ice.CMD], function(can, msg, arg) { msg._can.Option("cmd", "")
|
}, [ice.CMD], function(can, msg, arg) { msg._can.Option(ice.CMD, "")
|
||||||
msg.Display("/plugin/local/code/xterm.js")
|
msg.Display("/plugin/local/code/xterm.js")
|
||||||
}),
|
}),
|
||||||
runtime: shy("网页环境", [mdb.KEY], function(can, msg, arg) {
|
runtime: shy("网页环境", [mdb.KEY], function(can, msg, arg) {
|
||||||
|
@ -50,7 +50,7 @@ Volcanos(chat.ONIMPORT, {
|
|||||||
can.page.Append(can, div, [{text: arg}]), can._output.scrollTop = div.offsetTop, div.scrollBy(0, 10000), true
|
can.page.Append(can, div, [{text: arg}]), can._output.scrollTop = div.offsetTop, div.scrollBy(0, 10000), true
|
||||||
})) { can.onappend.board(can, arg) }
|
})) { can.onappend.board(can, arg) }
|
||||||
},
|
},
|
||||||
_open: function(can, msg, arg) { can.user.opens(arg), can.Update() },
|
_open: function(can, msg, arg) { can.user.opens(arg) },
|
||||||
_close: function(can, msg) { can.user.close() || history.back() },
|
_close: function(can, msg) { can.user.close() || history.back() },
|
||||||
change: function(event, can, name, value, cb, data) { return can.page.SelectArgs(can, can._option, "", function(input) { if (input.name != name || value == input.value) { return }
|
change: function(event, can, name, value, cb, data) { return can.page.SelectArgs(can, can._option, "", function(input) { if (input.name != name || value == input.value) { return }
|
||||||
can.page.Select(can, input.parentNode, "span.value", function(target) { target.innerText = value })
|
can.page.Select(can, input.parentNode, "span.value", function(target) { target.innerText = value })
|
||||||
@ -80,6 +80,7 @@ Volcanos(chat.ONIMPORT, {
|
|||||||
Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动", "切换全屏", "共享工具", "生成链接",
|
Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动", "切换全屏", "共享工具", "生成链接",
|
||||||
function(can) { if (!can.isCmdMode()) { return "打开链接" } }, function(can) { if (can.isCmdMode()) { return "打开首页" } },
|
function(can) { if (!can.isCmdMode()) { return "打开链接" } }, function(can) { if (can.isCmdMode()) { return "打开首页" } },
|
||||||
function(can) { if (can.ConfSpace() || can.isCmdMode() && can.misc.Search(can, ice.POD)) { return "打开空间" } },
|
function(can) { if (can.ConfSpace() || can.isCmdMode() && can.misc.Search(can, ice.POD)) { return "打开空间" } },
|
||||||
|
function(can) { if (can.misc.Search(can, log.MSG_DEBUG)) { return "查看源码" } },
|
||||||
["视图", "参数",
|
["视图", "参数",
|
||||||
function(can) { if (can._action.innerHTML) { return "操作" } },
|
function(can) { if (can._action.innerHTML) { return "操作" } },
|
||||||
function(can) { if (can._status.innerHTML) { return "状态" } },
|
function(can) { if (can._status.innerHTML) { return "状态" } },
|
||||||
@ -94,8 +95,7 @@ Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动",
|
|||||||
function(can) { if (can.Conf("_help")) { return "查看文档" } },
|
function(can) { if (can.Conf("_help")) { return "查看文档" } },
|
||||||
"查看脚本", "查看源码",
|
"查看脚本", "查看源码",
|
||||||
"查看通知", "查看视图", "查看数据", "会话存储", "本地存储",
|
"查看通知", "查看视图", "查看数据", "会话存储", "本地存储",
|
||||||
"查看报文", "查看配置", "查看日志",
|
"查看报文", "查看配置", "查看日志", "删除工具",
|
||||||
"删除工具",
|
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
_engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input())) },
|
_engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input())) },
|
||||||
@ -122,6 +122,8 @@ Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动",
|
|||||||
}) },
|
}) },
|
||||||
"远程控制": function(event, can) { can.onaction.keyboard(event, can) },
|
"远程控制": function(event, can) { can.onaction.keyboard(event, can) },
|
||||||
"共享工具": function(event, can) { var meta = can.Conf(); can.onmotion.share(can.request(event, {pod: can.ConfSpace()}), can, [], [mdb.NAME, meta.index, mdb.TEXT, JSON.stringify(can.Input())]) },
|
"共享工具": function(event, can) { var meta = can.Conf(); can.onmotion.share(can.request(event, {pod: can.ConfSpace()}), can, [], [mdb.NAME, meta.index, mdb.TEXT, JSON.stringify(can.Input())]) },
|
||||||
|
"打开首页": function(event, can) { can.user.open(location.origin) },
|
||||||
|
"打开空间": function(event, can) { can.user.open(can.misc.MergePodCmd(can, {pod: can.ConfSpace()||can.misc.Search(can, ice.POD)})) },
|
||||||
"打开链接": function(event, can) { can.user.open(can.onexport.link(can)) },
|
"打开链接": function(event, can) { can.user.open(can.onexport.link(can)) },
|
||||||
"生成链接": function(event, can) { can.onmotion.share(event, can, [], [web.LINK, can.user.copy(event, can, can.onexport.link(can))]) },
|
"生成链接": function(event, can) { can.onmotion.share(event, can, [], [web.LINK, can.user.copy(event, can, can.onexport.link(can))]) },
|
||||||
"生成脚本": function(event, can) { var args = can.Input().join(lex.SP), list = [
|
"生成脚本": function(event, can) { var args = can.Input().join(lex.SP), list = [
|
||||||
@ -156,12 +158,9 @@ Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动",
|
|||||||
}) },
|
}) },
|
||||||
"清空数据": function(event, can) { can.onmotion.clear(can, can._output) },
|
"清空数据": function(event, can) { can.onmotion.clear(can, can._output) },
|
||||||
|
|
||||||
"打开首页": function(event, can) { can.user.open(location.origin) },
|
"查看文档": function(event, can) { can.requests(event, {action: ice.HELP}), can.onengine.signal(can, chat.ONDEBUGS, can.requestPodCmd(event)) },
|
||||||
"打开空间": function(event, can) { can.user.open(can.misc.MergePodCmd(can, {pod: can.ConfSpace()||can.misc.Search(can, ice.POD)})) },
|
"查看脚本": function(event, can) { can.onappend._float(can, web.CODE_VIMER, can.misc.SplitPath(can, can.sub._path)) },
|
||||||
|
"查看源码": function(event, can) { can.requests(event, {action: nfs.SOURCE}), can.onengine.signal(can, chat.ONDEBUGS, can.requestPodCmd(event)) },
|
||||||
"查看文档": function(event, can) { can.requests(event, {action: ice.HELP}), can.onengine.signal(can, "ondebugs", can.requestPodCmd(event)) },
|
|
||||||
"查看脚本": function(event, can) { can.onappend._float(can, web.CODE_INNER, can.misc.SplitPath(can, can.sub._path)) },
|
|
||||||
"查看源码": function(event, can) { can.requests(event, {action: nfs.SOURCE}), can.onengine.signal(can, "ondebugs", can.requestPodCmd(event)) },
|
|
||||||
"查看通知": function(event, can) { can.onappend._float(can, {index: "can.toast"}, [can.ConfIndex()]) },
|
"查看通知": function(event, can) { can.onappend._float(can, {index: "can.toast"}, [can.ConfIndex()]) },
|
||||||
"查看视图": function(event, can) { can.onappend._float(can, {index: "can.view", _target: can._fields||can._target}) },
|
"查看视图": function(event, can) { can.onappend._float(can, {index: "can.view", _target: can._fields||can._target}) },
|
||||||
"查看数据": function(event, can) { can.onappend._float(can, {index: "can.data", _target: can}) },
|
"查看数据": function(event, can) { can.onappend._float(can, {index: "can.data", _target: can}) },
|
||||||
@ -172,7 +171,7 @@ Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动",
|
|||||||
sub.run = function(event, cmds, cb) { var _msg = can.request(event); _msg.result = [JSON.stringify(msg)], cb(_msg) }
|
sub.run = function(event, cmds, cb) { var _msg = can.request(event); _msg.result = [JSON.stringify(msg)], cb(_msg) }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
"查看配置": function(event, can) { can.requests(event, {action: ctx.CONFIG}), can.onengine.signal(can, "ondebugs", can.requestPodCmd(event)) },
|
"查看配置": function(event, can) { can.requests(event, {action: ctx.CONFIG}), can.onengine.signal(can, chat.ONDEBUGS, can.requestPodCmd(event)) },
|
||||||
"查看日志": function(event, can) { var logid = can.Status("log.id"); can.onappend._float(can, web.CODE_XTERM, ["sh", logid, "grep "+logid+" var/log/bench.log | grep -v grep | grep -v '"+logid+" $'"]) },
|
"查看日志": function(event, can) { var logid = can.Status("log.id"); can.onappend._float(can, web.CODE_XTERM, ["sh", logid, "grep "+logid+" var/log/bench.log | grep -v grep | grep -v '"+logid+" $'"]) },
|
||||||
"打包页面": function(event, can) { can.onengine.signal(can, "onwebpack", can.request(event)) },
|
"打包页面": function(event, can) { can.onengine.signal(can, "onwebpack", can.request(event)) },
|
||||||
"删除工具": function(event, can) { can.onaction._close(event, can) },
|
"删除工具": function(event, can) { can.onaction._close(event, can) },
|
||||||
|
2
proto.js
2
proto.js
@ -54,7 +54,7 @@ var Volcanos = shy({iceberg: "", volcano: "", frame: chat.FRAME_JS, _cache: {},
|
|||||||
requests: function(event) { var msg = can.request(event); function set(key, value) { msg.Option(key, value) }
|
requests: function(event) { var msg = can.request(event); function set(key, value) { msg.Option(key, value) }
|
||||||
can.core.List(arguments, function(item, index) { if (!item || index == 0) { return } can.core.Item(item, set) }); return msg
|
can.core.List(arguments, function(item, index) { if (!item || index == 0) { return } can.core.Item(item, set) }); return msg
|
||||||
},
|
},
|
||||||
requestPodCmd: function(event) { return can.request(event, {space: can.ConfSpace(), index: can.ConfIndex()}) },
|
requestPodCmd: function(event) { return can.request(event, {pod: can.ConfSpace(), index: can.ConfIndex()}) },
|
||||||
requestAction: function(event, button) { return can.request(event, {action: button, _toast: event.isTrusted? ice.PROCESS+" "+button: ""}) },
|
requestAction: function(event, button) { return can.request(event, {action: button, _toast: event.isTrusted? ice.PROCESS+" "+button: ""}) },
|
||||||
runActionInputs: function(event, cmds, cb) { var msg = can.request(event), meta = can.Conf()
|
runActionInputs: function(event, cmds, cb) { var msg = can.request(event), meta = can.Conf()
|
||||||
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]})
|
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user