mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
add iframe
This commit is contained in:
parent
0139cd75aa
commit
85521f7dd1
15
frame.js
15
frame.js
@ -139,6 +139,7 @@ Volcanos(chat.ONDAEMON, {help: "推荐引擎", _init: function(can, name) { if (
|
||||
},
|
||||
grow: function(can, msg, sub, arg) { sub.onimport._grow(sub, msg, can.page.Color(arg.join(""))) },
|
||||
exit: function(can, msg, sub) { can.user.close() },
|
||||
close: function(can, msg, sub) { can.user.close() },
|
||||
})
|
||||
Volcanos(chat.ONAPPEND, {help: "渲染引擎", _init: function(can, meta, list, cb, target, field) {
|
||||
meta.name = (meta.name||"").split(ice.SP)[0].split(ice.PT).pop()
|
||||
@ -187,10 +188,11 @@ Volcanos(chat.ONAPPEND, {help: "渲染引擎", _init: function(can, meta, list,
|
||||
|
||||
can.page.Modify(can, sub._legend, kit.Dict(can.Conf("legend_event")||chat.ONMOUSEENTER, function(event) {
|
||||
can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([["所有"].concat(can.core.Item(meta.feature._trans))]), function(event, item, meta) {
|
||||
var cb = can.core.Value(sub, [chat._OUTPUTS_CURRENT, chat.ONACTION, item])
|
||||
if (can.base.isFunc(cb)) { return cb(event, can.core.Value(sub, chat._OUTPUTS_CURRENT), item) }
|
||||
var _sub = can.core.Value(sub, chat._OUTPUTS_CURRENT)
|
||||
var cb = can.core.Value(_sub, [chat.ONACTION, item])
|
||||
if (can.base.isFunc(cb)) { return cb(event, _sub, item) }
|
||||
var cb = meta[item]||meta[chat._ENGINE]
|
||||
if (can.base.isFunc(cb)) { return cb(event, sub, item) }
|
||||
if (can.base.isFunc(cb)) { return cb(event, sub, item, _sub) }
|
||||
})
|
||||
})), can.base.isFunc(cb) && cb(sub)
|
||||
}); return sub
|
||||
@ -274,7 +276,8 @@ Volcanos(chat.ONAPPEND, {help: "渲染引擎", _init: function(can, meta, list,
|
||||
var process = msg._can == can || msg._can == sub
|
||||
if (process && can.core.CallFunc([sub, chat.ONIMPORT, ice.MSG_PROCESS], {can: sub, msg: msg})) { return }
|
||||
if (process && can.core.CallFunc([can, chat.ONIMPORT, ice.MSG_PROCESS], {can: can, msg: msg})) { return }
|
||||
!silent && can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)||meta.display||meta.feature.display, can._output, can._action)
|
||||
if (cmds && cmds[0] == ctx.ACTION && msg.Result() == "" && msg.Length() == 0) { return can.Update() }
|
||||
!silent && can.onappend._output(can, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display, can._output, can._action)
|
||||
})
|
||||
},
|
||||
_output: function(can, msg, display, output, action, cb) { display = display||chat.PLUGIN_TABLE_JS, output = output||can._output
|
||||
@ -301,6 +304,10 @@ Volcanos(chat.ONAPPEND, {help: "渲染引擎", _init: function(can, meta, list,
|
||||
action === false || table.onappend._action(table, msg.Option(ice.MSG_ACTION)||can.Conf(ice.MSG_ACTION), action)
|
||||
action === false || table.onappend._status(table, msg.Option(ice.MSG_STATUS))
|
||||
// action === false || table.onimport.tool(table, can.base.Obj(msg.Option(ice.MSG_TOOLKIT)))
|
||||
|
||||
var mode= ["float", "full", "cmd"]; for (var i in mode) {
|
||||
if (can.page.ClassList.has(can, can._target, mode[i])) { table.onlayout[mode[i]](table); break }
|
||||
}
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
}, target: output||can._output})
|
||||
})
|
||||
|
@ -41,6 +41,10 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg
|
||||
})
|
||||
return len
|
||||
},
|
||||
TableDetail: function() { var item = {hash: can.Option(mdb.HASH)}
|
||||
msg.Table(function(value) { can.core.Value(item, value.key, value.value) })
|
||||
return item
|
||||
},
|
||||
Table: function(cb) {
|
||||
return can.core.List(msg.Length(), function(value, index, array) { var one = {}, res
|
||||
can.core.List(msg.append, function(key) { one[key] = (msg[key]&&msg[key][index]||"") })
|
||||
|
@ -304,7 +304,8 @@ Volcanos("user", {help: "用户操作", info: {}, agent: {
|
||||
_engine: function(event, can, button) { action.submit(event, can, button) },
|
||||
submit: function(event, can, button) { var data = {}, args = [], list = []
|
||||
list = can.page.Select(can, ui.table, html.OPTION_ARGS, function(item) {
|
||||
return item.name && item.value && args.push(item.name, item.value), data[item.name] = item.value
|
||||
// return item.name && item.value && 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||""
|
||||
})
|
||||
var msg = can.request(event, {_handle: ice.TRUE})
|
||||
!can.core.CallFunc(cb, {event: event, button: button, data: data, list: list, args: args}) && action.cancel()
|
||||
|
@ -58,6 +58,9 @@ fieldset.full { background-color:#073947f2; padding:0; margin:0; left:0; top:0;
|
||||
fieldset.story>legend { margin:10px 0; }
|
||||
fieldset.plug>legend { float:left; margin-right:5px; }
|
||||
fieldset.float>legend { float:left; margin-right:5px; }
|
||||
body.white fieldset.float>div.status { color:white; }
|
||||
fieldset.story.float>div.status { display:none; }
|
||||
fieldset.plugin.float>div.status { display:none; }
|
||||
fieldset.full>legend { float:left; margin:0; margin-right:5px; }
|
||||
fieldset.plugin>form.option input[type=button][name=close]{ display:none; }
|
||||
fieldset.word>div.output>fieldset.story>form.option input[type=button][name=close]{ display:none; }
|
||||
@ -70,6 +73,7 @@ fieldset.output div.toggle { display:none; }
|
||||
|
||||
fieldset.story>legend { float:left; margin:0px; margin-right:5px; }
|
||||
fieldset.story { margin-top:10px; }
|
||||
fieldset.story.full { margin-top:0px; }
|
||||
|
||||
fieldset.input.key { overflow:auto; }
|
||||
fieldset.input.key div.action { display:none; }
|
||||
|
@ -116,9 +116,8 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [cli.CLOSE, cli.CLEAR, cli.
|
||||
var cmd = line.cmd == ctx.COMMAND? can.core.Keys(line.type, line.name.split(ice.SP)[0]): can.core.Keys(line.ctx, line.cmd)
|
||||
can.onappend.plugin(can, {type: "story", index: cmd||msg.Option(mdb.INDEX), args: cmd == "web.wiki.word"? [line.name]: args}, function(sub, meta) {
|
||||
sub.run = function(event, cmds, cb) { can.runActionCommand(event, meta.index, cmds, cb) }
|
||||
can.page.style(can, sub._output, html.MAX_WIDTH, sub.ConfWidth(can.ConfWidth()))
|
||||
sub.ConfHeight(can.ConfHeight()-2*html.ACTION_HEIGHT-117)
|
||||
can.page.style(can, sub._output, html.MAX_HEIGHT, sub.ConfHeight())
|
||||
can.page.style(can, sub._output, html.MAX_HEIGHT, sub.ConfHeight(can.base.Min(320, can.ConfHeight()-2*html.ACTION_HEIGHT-html.ACTION_HEIGHT-can.ui.content.offsetHeight-can.ui.display.offsetHeight)-1))
|
||||
can.page.style(can, sub._output, html.MAX_WIDTH, sub.ConfWidth(can.ConfWidth()-1))
|
||||
sub.Focus()
|
||||
}, can.ui.profile)
|
||||
},
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONFIGURE, {help: "控件详情", keyboard: {
|
||||
Volcanos(chat.ONFIGURE, {help: "控件详情", key: {
|
||||
_init: function(event, can, cbs, target, name, value) {
|
||||
can.runAction(event, mdb.INPUTS, [name, value||target.value], function(msg) {
|
||||
can.onfigure.key._show(can, msg, cbs, target, name)
|
||||
|
11
plugin/local/chat/iframe.js
Normal file
11
plugin/local/chat/iframe.js
Normal file
@ -0,0 +1,11 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb) {
|
||||
can.current = msg.TableDetail(), can.onimport.layout(can), can.base.isFunc(cb) && cb(msg)
|
||||
},
|
||||
layout: function(can) { var item = can.current; can.onmotion.clear(can)
|
||||
can.page.Append(can, can._output, [{type: html.IFRAME, src: item.link, height: can.ConfHeight()-4, width: can.ConfWidth(), style: {border: 0}}])
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据",
|
||||
open: function(can) { can.user.open(can.current.link) },
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据"})
|
@ -45,6 +45,7 @@ fieldset>div.status legend.select { background-color:green; }
|
||||
fieldset>div.status legend:hover { background-color:green; }
|
||||
fieldset.inner>div.status { height:31px; overflow:auto; }
|
||||
fieldset.panel>div.status { display:none; overflow:auto; }
|
||||
fieldset.Search.panel>div.status { display:block; overflow:auto; }
|
||||
fieldset.inner.simple>legend { display:none; }
|
||||
fieldset.inner.simple>form.option { display:none; }
|
||||
fieldset.inner.simple>div.status { display:none; }
|
||||
|
@ -413,7 +413,6 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
can.ui._content = can.ui.content, can.ui._profile_output = can.ui.profile_output
|
||||
can.tabview = can.tabview||{}, can.history = can.history||[], can.toolkit = {}, can.extentions = {}
|
||||
can.profile_size = {}, can.display_size = {}
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
|
||||
switch (can.Mode()) {
|
||||
case "simple": can.onmotion.hidden(can, can.ui.project); break
|
||||
@ -438,7 +437,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
if (can.isCmdMode() && hash) { var args = can.core.Split(decodeURIComponent(hash).slice(1))
|
||||
can.onmotion.delay(can, function() { can.onimport.tabview(can, args[args.length-3]||can.Option(nfs.PATH), args[args.length-2]||can.Option(nfs.FILE), args[args.length-1]) })
|
||||
}
|
||||
})
|
||||
}), can.base.isFunc(cb) && cb(msg)
|
||||
},
|
||||
_toolkit: function(can, target) {
|
||||
can.ui.toolkit = can.onappend.field(can, "toolkit", {}, can._output)
|
||||
@ -462,7 +461,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
can.page.styleWidth(can, can.ui.display_output, width-can.ui.project.offsetWidth)
|
||||
|
||||
var displayHeight = can.display_size[can.onexport.keys(can)]
|
||||
can.page.style(can, can.ui.display_output, html.HEIGHT, displayHeight||200)
|
||||
can.page.style(can, can.ui.display_output, html.HEIGHT, displayHeight||"")
|
||||
|
||||
if (can.isCmdMode()) {
|
||||
if (can.ui.display.display != html.NONE) {
|
||||
|
@ -109,7 +109,7 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
||||
},
|
||||
},
|
||||
sh: {
|
||||
// render: {},
|
||||
render: {},
|
||||
split: {
|
||||
operator: "=",
|
||||
},
|
||||
@ -239,6 +239,19 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
||||
"=>": code.KEYWORD,
|
||||
},
|
||||
},
|
||||
py: {
|
||||
prefix: {
|
||||
"#!": code.COMMENT,
|
||||
"# ": code.COMMENT,
|
||||
},
|
||||
keyword: {
|
||||
"import": code.KEYWORD,
|
||||
"from": code.KEYWORD,
|
||||
"return": code.KEYWORD,
|
||||
|
||||
"print": code.FUNCTION,
|
||||
},
|
||||
},
|
||||
js: {
|
||||
render: {},
|
||||
split: {
|
||||
|
@ -1,8 +1,8 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
can.require(["inner.js"], function(can) { can.onimport.inner_init(can, msg, function() { can.undo = [], can.redo = []
|
||||
can.onengine.listen(can, "tabview.line.select", function(msg) { can.onaction._selectLine(msg._event, can) })
|
||||
// can.core.Item(can.onkeymap._mode.plugin, function(key, value) { can.onkeymap._mode.normal[key] = can.onkeymap._mode.normal[key]||value })
|
||||
can.onimport._input(can), can.onkeymap._build(can), can.onkeymap._plugin({}, can)
|
||||
can.onengine.listen(can, "tabview.line.select", function(msg) { can.onaction._selectLine(msg._event, can) })
|
||||
can.page.ClassList.add(can, can._fields, code.VIMER), can.base.isFunc(cb) && cb(msg)
|
||||
can.onengine.plugin(can, can.onplugin)
|
||||
}, target) }, function(can, name, sub) { name == chat.ONIMPORT && (can.onimport.inner_init = sub._init)
|
||||
@ -60,7 +60,7 @@ Volcanos(chat.ONFIGURE, {help: "索引导航",
|
||||
dream: function(can, target, zone) { var call = arguments.callee
|
||||
can.runAction({}, ice.RUN, [web.DREAM], function(msg) { msg.Table(function(item) { var color = item.status == cli.START? "": "gray"
|
||||
can.page.style(can, can.onimport.item(can, item, function(event) {
|
||||
can.onimport.tabview(can, can.Option(nfs.PATH), can.core.Keys(can.misc.Search(can, ice.POD), item.name), web.DREAM)
|
||||
can.onimport.tabview(can, can.Option(nfs.PATH), item.name, web.DREAM)
|
||||
}, function(event) {
|
||||
return shy({}, kit.Dict(cli.START, [cli.OPEN, cli.STOP], cli.STOP, [cli.START, nfs.TRASH])[item.status], function(event, button) {
|
||||
can.runAction(can.request({}, item), ice.RUN, [web.DREAM, ctx.ACTION, button], function(msg) {
|
||||
@ -298,7 +298,7 @@ Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
},
|
||||
dream: function(event, can, button) {
|
||||
can.onaction._runs(can.request(event, {name: can.base.trimSuffix(can.Option(nfs.FILE).split(ice.PS).pop(), ice.PT+can.base.Ext(can.Option(nfs.FILE)))}), can, button, function(msg) { can.ui.dream.refresh()
|
||||
can.onimport.tabview(can, can.Option(nfs.PATH), can.core.Keys(can.misc.Search(can, ice.POD), msg.Option(mdb.NAME)), web.DREAM)
|
||||
can.onimport.tabview(can, can.Option(nfs.PATH), msg.Option(mdb.NAME), web.DREAM)
|
||||
can.user.toastSuccess(can)
|
||||
})
|
||||
},
|
||||
@ -386,7 +386,7 @@ Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
filter()
|
||||
}
|
||||
},
|
||||
_selectLine: function(event, can) {
|
||||
_selectLine: function(event, can) { if (!can.current) { return }
|
||||
can.page.Select(can, can.current.line, "td.text", function(td) { var target = can.ui.current; target.value = td.innerText
|
||||
can.current.line.appendChild(target), can.page.style(can, target, html.LEFT, td.offsetLeft-1, html.WIDTH, can.ui.content.style.width)
|
||||
if (event && event.type) {
|
||||
|
@ -1,11 +1,10 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) { can.onmotion.clear(can)
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb) { can.onmotion.clear(can)
|
||||
can.requireModules(["xterm/css/xterm.css", "xterm", "xterm-addon-fit", "xterm-addon-web-links"], function() {
|
||||
var item = {hash: can.Option(mdb.HASH)}; msg.Table(function(value) { can.core.Value(item, value.key, value.value) })
|
||||
item.text && can.onmotion.delay(can, function() { can.onimport._input(can, item.text+ice.NL) })
|
||||
can.onimport.layout(can), can.onappend._status(can), can.onappend.tools(can, msg, function(sub) {
|
||||
can.onimport._connect(can, item), can.onappend.tools(can, msg, function(sub) {
|
||||
sub._item_click = function(value, key) { can.onimport._input(can, value+ice.NL) }
|
||||
}), can.isCmdMode() && can.Option(mdb.HASH) && can.Option(mdb.HASH) == can.misc.Search(can, mdb.HASH) && can.runAction({}, "full")
|
||||
can.onimport._connect(can, item)
|
||||
}), can.base.isFunc(cb) && cb(msg), can.onappend._status(can)
|
||||
})
|
||||
},
|
||||
_connect: function(can, item) { var term = new Terminal({tabStopWidth: 4, cursorBlink: true})
|
||||
@ -15,13 +14,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) { can.o
|
||||
|
||||
term.onTitleChange(function(title) { can.isCmdMode() && can.user.title(title) })
|
||||
term.onResize(function(size) { can.onimport._resize(can, size) })
|
||||
term.onData(function(data) {
|
||||
console.log(data)
|
||||
can.onimport._input(can, data)
|
||||
})
|
||||
term.onKey(function(data) {
|
||||
console.log(data)
|
||||
})
|
||||
term.onData(function(data) { can.onimport._input(can, data) })
|
||||
term.onCursorMove(function() { can.onexport.term(can) })
|
||||
|
||||
can._current = term, term._item = item
|
||||
@ -33,21 +26,20 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) { can.o
|
||||
_input: function(can, data) { if (!can._current) { return }
|
||||
can.runAction(can.request({}, can._current._item), "input", [btoa(data)], function() {})
|
||||
},
|
||||
layout: function(can) {
|
||||
if (can.isCmdMode()) { can._current && can.onimport._title(can, can._current._item.name)
|
||||
can.page.style(can, can._output, html.HEIGHT, can.ConfHeight()+10, html.WIDTH, can.ConfWidth()+20, html.MAX_WIDTH, "")
|
||||
} else {
|
||||
can.page.style(can, can._output, html.HEIGHT, can.ConfHeight(), html.WIDTH, can.ConfWidth(), html.MAX_WIDTH, "")
|
||||
}
|
||||
can.onmotion.delay(can, function() { can.page.style(can, can._output, html.HEIGHT, "", html.WIDTH, "") }, 500)
|
||||
can._current && can._current._fit.fit()
|
||||
},
|
||||
grow: function(can, msg) { can._current.write(msg.Option(mdb.TEXT)) },
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据",
|
||||
refresh: function(event, can, button) {
|
||||
can.onimport.layout(can), can._current.focus()
|
||||
Volcanos(chat.ONLAYOUT, {help: "界面布局",
|
||||
_init: function(can) {
|
||||
can.page.style(can, can._output, html.HEIGHT, can.ConfHeight()+10, html.WIDTH, can.ConfWidth()+20, html.MAX_WIDTH, "")
|
||||
can.onmotion.delay(can, function() { can.page.style(can, can._output, html.HEIGHT, "", html.WIDTH, "") }, 500)
|
||||
can._current && can._current._fit.fit(), can.onexport.term(can)
|
||||
},
|
||||
cmd: function(can) { can._current && can.onimport._title(can, can._current._item.name), can.ConfWidth(can.ConfWidth()-10)
|
||||
can.Option(mdb.HASH) && can.Option(mdb.HASH) == can.misc.Search(can, mdb.HASH)? can.sup.onaction.full({}, can.sup): can.onlayout._init(can)
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据",
|
||||
refresh: function(event, can, button) { can.onlayout._init(can), can._current.focus() },
|
||||
"波浪线": function(event, can, button) { can.onimport._input(can, "~"), can._current.focus() },
|
||||
"反引号": function(event, can, button) { can.onimport._input(can, "`"), can._current.focus() },
|
||||
})
|
||||
|
@ -96,33 +96,63 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _process: function(can, msg) {
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "交互操作", list: [
|
||||
"刷新数据", "切换全屏", "keyboard", "共享工具", "打开链接", "生成链接", "生成脚本", "生成图片", [
|
||||
"其它", "刷新页面", "保存参数", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据",
|
||||
"刷新页面", "刷新数据", "共享工具", "切换浮动", "切换全屏", "远程控制", "打开链接", "生成链接", "生成脚本", "生成图片", [
|
||||
"其它", "保存参数", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据",
|
||||
"查看文档", "查看脚本", "查看源码", "查看配置", "删除配置", "删除工具",
|
||||
],
|
||||
],
|
||||
_engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input([], true))) },
|
||||
|
||||
"刷新数据": function(event, can) { can.Update({}, can.Input([], true)) },
|
||||
"切换全屏": function(event, can) { var sub = can.core.Value(can, chat._OUTPUTS_CURRENT)
|
||||
if (can.page.ClassList.neg(can, can._target, "full")) {
|
||||
var height = window.innerHeight-(can._status.innerText? 2: 1)*html.ACTION_HEIGHT; can.user.isMobile && (height -= 2*html.ACTION_HEIGHT)
|
||||
can._mode_bak = can.Mode(), can._height_bak = sub.ConfHeight(), can._width_bak = sub.ConfWidth()
|
||||
sub.Mode("full"), can.Mode("full"), can.ConfHeight(height), can.ConfWidth(window.innerWidth)
|
||||
can.page.style(can, can._output, html.HEIGHT, sub.ConfHeight(height), html.MIN_WIDTH, sub.ConfWidth(window.innerWidth))
|
||||
_switch: function(can, sub, mode, save, load) {
|
||||
if (can.page.ClassList.neg(can, can._target, mode)) {
|
||||
can._mode_bak = can.Mode(), can._height_bak = can.ConfHeight()||"", can._width_bak = can.ConfWidth()||""
|
||||
can._output_bak = {}, can.core.List([html.HEIGHT, html.MAX_HEIGHT, html.WIDTH, html.MAX_WIDTH], function(key) {
|
||||
can._output_bak[key] = can._output.style[key]
|
||||
})
|
||||
save(), sub.ConfHeight(can.ConfHeight()), sub.ConfWidth(can.ConfWidth())
|
||||
can.page.style(can, can._output, html.HEIGHT, can.ConfHeight(), html.WIDTH, can.ConfWidth(), html.MAX_WIDTH, can.ConfWidth())
|
||||
sub.Mode(can.Mode(mode)), sub.onlayout[mode](sub)
|
||||
} else {
|
||||
can.Mode(can._mode_bak||""), can.ConfHeight(can._height_bak), can.ConfWidth(can._width_bak)
|
||||
sub.Mode(can._mode_bak||""), sub.ConfHeight(can._height_bak), sub.ConfWidth(can._width_bak)
|
||||
can.page.style(can, can._output, html.HEIGHT, "", html.MIN_WIDTH, "")
|
||||
can.page.style(can, can._output, can._output_bak)
|
||||
load(), sub.ConfHeight(can.ConfHeight()), sub.ConfWidth(can.ConfWidth())
|
||||
sub.Mode(can.Mode()), sub.onlayout._init(sub)
|
||||
}
|
||||
can.core.CallFunc([sub, chat.ONIMPORT, html.LAYOUT], {can: sub})
|
||||
},
|
||||
|
||||
"刷新页面": function(event, can, button, sub) {
|
||||
can.core.CallFunc([sub.onimport, "_init"], {can: sub, msg: sub._msg, cb: function(msg) { can.user.toastSuccess(can) }, target: can._output})
|
||||
},
|
||||
"刷新数据": function(event, can) {
|
||||
can.Update({}, can.Input([], true))
|
||||
},
|
||||
"共享工具": function(event, can) { var meta = can.Conf()
|
||||
can.onmotion.share(event, can, [{name: chat.TITLE, value: meta.name}, {name: chat.TOPIC, values: [cli.WHITE, cli.BLACK]}], [
|
||||
mdb.NAME, meta.index, mdb.TEXT, JSON.stringify(can.Input([], true)),
|
||||
])
|
||||
},
|
||||
"keyboard": function(event, can) {
|
||||
"切换浮动": function(event, can, button, sub) {
|
||||
can.onaction._switch(can, sub, "float", function() {
|
||||
can.onmotion.move(can, can._target, {left: window.innerWidth/2, top: window.innerHeight/2})
|
||||
can.ConfHeight(window.innerHeight/2), html.WIDTH, can.ConfWidth(window.innerWidth/2)
|
||||
}, function() {
|
||||
can.page.style(can, can._target, html.LEFT, "", html.TOP, "")
|
||||
})
|
||||
},
|
||||
"切换全屏": function(event, can, button, sub) {
|
||||
can.onaction._switch(can, sub, "full", function() {
|
||||
if (sub.isCmdMode()) {
|
||||
can.onmotion.hidden(can, can._legend), can.onmotion.hidden(can, can._option), can.onmotion.hidden(can, can._action), can.onmotion.hidden(can, can._status)
|
||||
can.ConfHeight(window.innerHeight), can.ConfWidth(window.innerWidth)
|
||||
} else {
|
||||
can.ConfHeight(window.innerHeight - (can._status.innerText? 2: 1)*html.ACTION_HEIGHT - (can.user.isMobile? 2*html.ACTION_HEIGHT: 0)), can.ConfWidth(window.innerWidth)
|
||||
}
|
||||
}, function() {
|
||||
if (sub.isCmdMode()) {
|
||||
can.onmotion.toggle(can, can._legend, true), can.onmotion.toggle(can, can._option, true), can.onmotion.toggle(can, can._action, true), can.onmotion.toggle(can, can._status, true)
|
||||
}
|
||||
})
|
||||
},
|
||||
"远程控制": function(event, can) {
|
||||
can.base.isUndefined(can._daemon) && can.ondaemon._list[0] && (can._daemon = can.ondaemon._list.push(can)-1)
|
||||
can.request(event, kit.Dict(ctx.INDEX, can._index, ice.MSG_DAEMON, can.core.Keys(can.ondaemon._list[0], can._daemon)))
|
||||
|
||||
@ -152,16 +182,15 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [
|
||||
},
|
||||
"生成图片": function(event, can) { can.onmotion.toimage(event, can, can._name) },
|
||||
|
||||
"刷新页面": function(event, can) { var sub = can.core.Value(can, chat._OUTPUTS_CURRENT)
|
||||
can.core.CallFunc([sub, chat.ONIMPORT, "_init"], {can: sub, msg: sub._msg, cb: function(msg) {}, target: can._output})
|
||||
},
|
||||
"保存参数": function(event, can) { can.search(event, ["River.ondetail.保存参数"]) },
|
||||
"清空参数": function(event, can) { can.page.SelectArgs(can, can._option, "", function(item) { return item.value = "" }) },
|
||||
"扩展参数": function(event, can) { can.onmotion.toggle(can, can._action) },
|
||||
"复制数据": function(event, can) { can.user.copy(event, can, can.onexport.table(can)||can.onexport.board(can)) },
|
||||
"下载数据": function(event, can) { var meta = can.Conf()
|
||||
"复制数据": function(event, can, button, sub) {
|
||||
can.user.copy(event, can, sub.onexport.table(sub)||sub.onexport.board(sub))
|
||||
},
|
||||
"下载数据": function(event, can, button, sub) { var meta = can.Conf()
|
||||
can.user.input(event, can, [{name: "filename", value: meta.name}], function(list) {
|
||||
can.user.downloads(can, can.onexport.table(can), list[0], nfs.CSV)||can.user.downloads(can, can.onexport.board(can), meta.name, nfs.TXT)
|
||||
can.user.downloads(can, sub.onexport.table(sub), list[0], nfs.CSV)||can.user.downloads(can, sub.onexport.board(sub), meta.name, nfs.TXT)
|
||||
})
|
||||
},
|
||||
"清空数据": function(event, can) { can.onmotion.clear(can, can._output) },
|
||||
@ -202,16 +231,8 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [
|
||||
})
|
||||
},
|
||||
|
||||
full: function(event, can) { var sub = can.core.Value(can, chat._OUTPUTS_CURRENT)
|
||||
if (can.isCmdMode()) {
|
||||
can.onmotion.hidden(can, can._legend), can.onmotion.hidden(can, can._option), can.onmotion.hidden(can, can._action), can.onmotion.hidden(can, can._status)
|
||||
can.ConfHeight(window.innerHeight), can.ConfWidth(window.innerWidth)
|
||||
sub.ConfHeight(window.innerHeight), sub.ConfWidth(window.innerWidth)
|
||||
sub.onimport.layout(sub)
|
||||
} else {
|
||||
can.onaction["切换全屏"](event, can)
|
||||
}
|
||||
},
|
||||
keyboard: function(event, can) { can.onaction["远程控制"](event, can, "远程控制", can.core.Value(can, chat._OUTPUTS_CURRENT)) },
|
||||
full: function(event, can) { can.onaction["切换全屏"](event, can, "切换全屏", can.core.Value(can, chat._OUTPUTS_CURRENT)) },
|
||||
refresh: function(event, can) { var sub = can.core.Value(can, chat._OUTPUTS_CURRENT)
|
||||
if (!sub) { return }
|
||||
sub.ConfHeight(can.ConfHeight()), sub.ConfWidth(can.ConfWidth()), sub.onimport.layout(sub)
|
||||
@ -256,12 +277,3 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [
|
||||
})
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据",
|
||||
table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return }
|
||||
var res = [msg.append && msg.append.join(ice.FS)]; msg.Table(function(line, index, array) {
|
||||
res.push(can.core.Item(line, function(key, value) { return value }).join(ice.FS))
|
||||
})
|
||||
return res.join(ice.NL)
|
||||
},
|
||||
board: function(can) { var msg = can._msg; return msg.Result() },
|
||||
})
|
||||
|
@ -1,5 +1,5 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg); if (msg.Length() == 0) { return }
|
||||
can.onmotion.clear(can); if (msg.Length() == 0) { return }
|
||||
|
||||
can.ConfDefault({root: "ice", field: msg.append[0], split: ice.PS})
|
||||
can.dir_root = msg.Option(nfs.DIR_ROOT)||can.Conf("root")
|
||||
@ -10,7 +10,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
can.margin = parseInt(can.Action("margin")||30)
|
||||
can.page.ClassList.add(can, can._fields, "draw")
|
||||
can.require(["/plugin/local/wiki/draw.js", "/plugin/local/wiki/draw/path.js"], function() {
|
||||
can.onimport.layout(can)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
},
|
||||
_tree: function(can, list, field, split) {
|
||||
|
@ -1,14 +1,12 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg); if (msg.Length() == 0) { return }
|
||||
if (msg.Option("branch")) { return can.onappend.table(can, msg) }
|
||||
|
||||
can.onmotion.clear(can)
|
||||
can.data = msg.Table(), can.onimport._sum(can)
|
||||
can.Action(html.HEIGHT, msg.Option(html.HEIGHT)||ice.AUTO)
|
||||
can.Action(html.SPEED, parseInt(msg.Option(html.SPEED)||"100"))
|
||||
|
||||
can.page.ClassList.add(can, can._fields, "draw")
|
||||
can.require(["/plugin/local/wiki/draw.js", "/plugin/local/wiki/draw/path.js"], function() {
|
||||
can.onimport.layout(can)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
},
|
||||
_sum: function(can) {
|
||||
|
@ -1,5 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
can.page.style(can, can._output, html.HEIGHT, "")
|
||||
can.user.isMobile && !can.user.isLandscape() && can.onmotion.hidden(can, can._action)
|
||||
var cbs = can.onimport[can.Conf(ctx.STYLE)]; if (can.base.isFunc(cbs)) {
|
||||
can.core.CallFunc(cbs, {can: can, msg: msg, target: target, list: msg.Table()})
|
||||
@ -7,6 +6,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
return cbs(can, msg, target)
|
||||
}
|
||||
|
||||
can.page.style(can, can._output, html.HEIGHT, "")
|
||||
can.onmotion.clear(can, target)
|
||||
can.onappend.table(can, msg, null, target)
|
||||
can.onappend.board(can, msg, target)
|
||||
@ -173,6 +173,21 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
})
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONLAYOUT, {help: "界面布局",
|
||||
_init: function(can) { can.core.CallFunc([can.onimport, html.LAYOUT], {can: can}) },
|
||||
float: function(can) { can.onlayout._init(can) },
|
||||
full: function(can) { can.onlayout._init(can) },
|
||||
cmd: function(can) { can.onlayout._init(can) },
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据",
|
||||
_trans: {"full": "全屏"},
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据",
|
||||
table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return }
|
||||
var res = [msg.append && msg.append.join(ice.FS)]; msg.Table(function(line, index, array) {
|
||||
res.push(can.core.Item(line, function(key, value) { return value }).join(ice.FS))
|
||||
})
|
||||
return res.join(ice.NL)
|
||||
},
|
||||
board: function(can) { var msg = can._msg; return msg.Result() },
|
||||
})
|
||||
|
2
proto.js
2
proto.js
@ -450,7 +450,7 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", pack:
|
||||
}
|
||||
_can_path = _can_name||_can_path
|
||||
|
||||
if (can._follow) { libs = libs.concat(meta.libs, meta.volcano) }
|
||||
if (can._follow) { libs = libs.concat(meta.volcano, meta.libs) }
|
||||
if (libs && libs.length > 0) { // 解析参数
|
||||
for (var i = 0; i < libs.length; i++) {
|
||||
if (libs[i] == undefined) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user