1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00

opt action.js

This commit is contained in:
harveyshao 2023-01-27 22:51:10 +08:00
parent 8cff6f4572
commit 775851f248
10 changed files with 46 additions and 71 deletions

View File

@ -118,13 +118,13 @@ div.action>div.tabs { padding:5px; height:31px; }
div.status>div.item { padding:5px; height:30px; }
div.status>div.item>label { font-size:0.6rem; }
/* display */
div.action { display:contents; } form.option.hide, div.action.hide { display:none; }
// form.option, div.action { display:contents; } form.option.hide, div.action.hide { display:none; }
// div.action { display:contents; } form.option.hide, div.action.hide { display:none; }
form.option, div.action { display:contents; } form.option.hide, div.action.hide { display:none; }
form.option>div.item>label, div.action>div.item>label, .hidden, .hide { display:none; }
form.option>div.cmd, form.option>div.textarea { width:100%; } textarea { resize:vertical; }
legend, form.option, form.option>div.item, div.action, div.action>div.item, div.action>div.tabs, div.status>div.item, div.layout.flex>* { float:left; }
div.action, div.output, div.status, div.project, div.display, div.profile, div.content, table.content, table.content td, div.code, div.plug, div.story, div.toast, div.carte, fieldset.input { overflow:auto; }
fieldset>div.output, fieldset>div.status, div.item.textarea, div.project div.item, div.content, div.code, div.story[data-type=spark] { clear:both; }
fieldset>div.output, fieldset>div.status, div.item.textarea, div.project div.item, div.content:not(.item), div.code, div.story[data-type=spark] { clear:both; }
fieldset>div.status>legend { margin-left:2px; margin-right:0; float:right; clear:none; }
fieldset.plugin:not(.output):not(.float):not(.full):not(.cmd) { padding:10px; margin:10px; }
fieldset.plugin:not(.float):not(.full):not(.cmd)>legend { float:none; }

View File

@ -247,10 +247,7 @@ Volcanos("page", {ClassList: {
width: function() { return window.innerWidth },
ismodkey: function(event) { return [lang.META, lang.ALT, lang.CONTROL, lang.SHIFT].indexOf(event.key) > -1 },
isDisplay: function(target) { return target && target.style.display != html.NONE && target.className.indexOf(html.HIDE) == -1 },
unicode: {
menu: "\u2630", delete: "\u2715",
open: "\u25BE", close: "\u25B8", inner: "..",
},
unicode: {menu: "☰", back: "◀", refresh: "↻", reback: "▶", delete: "✕", lt: "", gt: "", open: "▾", close: "▸", inner: ".."},
AppendData: function(can, target, prefix, key, value, cb) { var open = can.page.unicode.open, close = can.page.unicode.close
function short(value, length) {
if (length == undefined) {

View File

@ -20,5 +20,5 @@ fieldset.Action.grid>div.output>fieldset.plugin { float:left; }
fieldset.Action.grid>div.output>fieldset.plugin>div.action { display:none; }
fieldset.Action.grid>div.output>fieldset.plugin>div.status { display:none; }
fieldset.Action.grid>div.output>fieldset.plugin>form.option input[type=text] { width:80px; }
fieldset.Action>div.project.toggle { font-size:32px; padding-top:50px; height:150px; position:fixed; top:30%; border-top-right-radius:20px; border-bottom-right-radius:20px; }
fieldset.Action>div.project.toggle { font-size:32px; cursor:pointer; padding-top:50px; height:150px; position:fixed; top:30%; border-top-right-radius:20px; border-bottom-right-radius:20px; }
fieldset.Action>div.project.toggle { background-color:#4a566e6e; }

View File

@ -32,10 +32,10 @@ Volcanos(chat.ONACTION, {_init: function(can, target) {
},
onsize: function(can, msg, height, width) { can.Conf({height: height-can.Conf(html.MARGIN_Y), width: width-can.Conf(html.MARGIN_X)}) },
onmain: function(can, msg) { can.onimport._share(can, can.misc.Search(can, web.SHARE)) },
onlogin: function(can, msg) { can.ondaemon._init(can), can.onimport._menu(can, msg), can.onkeymap._init(can)
can._root.River && can.onmotion.delay(can, function() { var gt = "", lt = "", river = can._root.River._target
onlogin: function(can, msg) { can.ondaemon._init(can), can.onimport._menu(can, msg)
can._root.River && can.onmotion.delay(can, function() { var gt = can.page.unicode.gt, lt = can.page.unicode.lt, river = can._root.River._target
var target = can.page.Append(can, can._target, [{view: [[html.TOGGLE, chat.PROJECT], html.DIV, can.page.isDisplay(river)? lt: gt], onclick: function(event) {
can.page.Modify(can, target, can.onmotion.toggle(can, river)? lt: gt), can.onaction.layout(can)
can.page.Modify(can, target, (can._river_show = can.onmotion.toggle(can, river))? lt: gt), can.onaction.layout(can)
}}])._target
}); if (!can.Conf(chat.TOOL) && !can.user.mod.isCmd) { return } can._names = location.pathname
can.Conf(chat.TOOL)? can.onappend.layout(can, can._output, FLOW, can.core.List(can.Conf(chat.TOOL), function(item, index, list) { item.type = chat.PLUGIN
@ -44,7 +44,7 @@ Volcanos(chat.ONACTION, {_init: function(can, target) {
if (msg.Length() == 1) { can.onengine.signal(can, chat.ONACTION_CMD) } can.onimport._init(can, msg)
})
},
onstorm_select: function(can, msg, river, storm) {
onstorm_select: function(can, msg, river, storm) { can.onkeymap._init(can)
if (can.onmotion.cache(can, function(cache, old) { var key = can.core.Keys(can.Conf(chat.RIVER, river), can.Conf(chat.STORM, storm))
return cache[old] = can._plugins, can._plugins = cache[key]||[], key
}, can._output, can._action, can._header_tabs)) { return can.onaction.layout(can) }
@ -58,15 +58,16 @@ Volcanos(chat.ONACTION, {_init: function(can, target) {
if (arg[0] == mdb.FOREACH || arg[0] == mdb.PLUGIN) { can.onexport.plugin(can, msg, arg, fields) }
if (arg[0] == mdb.FOREACH || arg[0] == ctx.COMMAND) { can.onexport.command(can, msg, arg, fields) }
},
onkeydown: function(can, msg, model) { if (can.onkeymap.selectCtrlN(msg._event, can, can._action, html.DIV_TABS)) { return }
onkeydown: function(can, msg, model) { if (can.isCmdMode()) { return }
if (can.onkeymap.selectCtrlN(msg._event, can, can._action, html.DIV_TABS)) { return }
can._keylist = can.onkeymap._parse(msg._event, can, model, can._keylist||[], can._output)
},
onresize: function(can, height, width) { can.onaction.layout(can), window.setsize && window.setsize(can.page.width(), can.page.height()) },
onprint: function(can, msg) { can.page.styleHeight(can, can._target, "") },
layout: function(can, button) { can._layout && can.page.ClassList.del(can, can._target, can._layout), can._header_tabs && can.onmotion.hidden(can, can._header_tabs)
button = (can._layout = button)||can.misc.SearchOrConf(can, html.LAYOUT)||ice.AUTO, button == ice.AUTO? (button = ""): can.page.ClassList.add(can, can._target, button)
can.onengine.signal(can, chat.ONLAYOUT, can.request({}, {"layout": button})), can.onlayout._init(can)
can.core.List(can._plugins, function(sub) { sub._delay_refresh = false, can.page.ClassList.set(can, sub._target, html.OUTPUT, ["tabview", "horizon", "vertical"].indexOf(button) > -1) })
button = (can._layout = button)||can.misc.Search(can, html.LAYOUT)||can.misc.localStorage(can, "can.layout")||can.Conf(html.LAYOUT)||ice.AUTO, button == ice.AUTO? (button = ""): can.page.ClassList.add(can, can._target, button)
can.onengine.signal(can, chat.ONLAYOUT, can.request({}, {"layout": button})), can._root.River && can._river_show === false && can.onmotion.hidden(can, can._root.River._target), can.onlayout._init(can)
can.core.List(can._plugins, function(sub) { sub._delay_refresh = false, can.page.ClassList.set(can, sub._target, html.OUTPUT, [TABVIEW, HORIZON, VERTICAL].indexOf(button) > -1) })
var cb = can.onlayout[button]; can.base.isFunc(cb) && cb(can) || can.onlayout._plugin(can, button)
},
_menus: [[html.LAYOUT, ice.AUTO, TABS, TABVIEW, HORIZON, VERTICAL, GRID, FREE, FLOW, PAGE]],
@ -89,8 +90,8 @@ Volcanos(chat.ONLAYOUT, {
},
horizon: function(can) { can.getActionSize(function(height, width) { can.ConfHeight(height), can.ConfWidth(width/2) }) },
vertical: function(can) { can.getActionSize(function(height, width) { can.ConfHeight(height/2), can.ConfWidth(width) }) },
grid: function(can) { can.getActionSize(function(height, width) { var m = 2, n = 2;
var h = height/n-4*html.PLUGIN_MARGIN-html.ACTION_HEIGHT, w = width/m-4*html.PLUGIN_MARGIN; can.ConfHeight(h), can.ConfWidth(w), can.onlayout._plugin(can, GRID)
grid: function(can) { can.getActionSize(function(height, width) { var m = can.user.isMobile? 1: 2, n = 2
var h = height/n-4*html.PLUGIN_MARGIN-html.ACTION_HEIGHT, w = width/m-can.Conf(html.MARGIN_X); can.ConfHeight(h), can.ConfWidth(w), can.onlayout._plugin(can, GRID)
}) },
free: function(can) { can.getActionSize(function(height, width) { can.ConfHeight(height-2*can.Conf(html.MARGIN_Y)), can.ConfWidth(width-can.Conf(html.MARGIN_Y)) })
can.onmotion.toggle(can, can._header_tabs, true), can.core.List(can._plugins, function(sub, index) { can.onmotion.move(can, sub._target, {left: 120*index, top: 80*index}) })
@ -134,12 +135,19 @@ Volcanos(chat.ONKEYMAP, {
t: function(event, can) { can.onaction.layout(can, can.Conf(chat.LAYOUT) == TABVIEW? ice.AUTO: TABVIEW, true) },
h: function(event, can) { can.onaction.layout(can, can.Conf(chat.LAYOUT) == HORIZON? ice.AUTO: HORIZON, true) },
v: function(event, can) { can.onaction.layout(can, can.Conf(chat.LAYOUT) == VERTICAL? ice.AUTO: VERTICAL, true) },
b: function(event, can) { can.search(event, ["Header.onaction.black"]) },
w: function(event, can) { can.search(event, ["Header.onaction.white"]) },
c: function(event, can) { can.user.toimage(can, can.user.title(), can._target.parentNode, true) },
":": function(event, can) { can.onengine.signal(can, chat.ONCOMMAND_FOCUS), can.onkeymap.prevent(event) },
" ": function(event, can) { can.onengine.signal(can, chat.ONSEARCH_FOCUS), can.onkeymap.prevent(event) },
Enter: function(event, can) { can.onengine.signal(can, chat.ONOPENSEARCH, can.request(event)) },
Escape: function(event, can) { can.onmotion.clearFloat(can) },
}}, _engine: {},
})
Volcanos(chat.ONPLUGIN, {_plugin: shy("默认插件", [mdb.NAME, ice.LIST, ice.BACK]),
layout: shy("界面布局", {_init: function(can) { can.Option(chat.LAYOUT, can.getAction(chat.LAYOUT)||ice.AUTO) }},
["layout:select=auto,tabs,tabview,horizon,vertical,flow,free,grid,page", ice.RUN], function(can, msg, arg) { can.onaction.layout(can, arg[0]) }),
layout: shy("界面布局", {_init: function(can) { can.Option(chat.LAYOUT, can.getAction(chat.LAYOUT)) }}, ["layout:select=auto,tabs,tabview,horizon,vertical,flow,free,grid,page", ice.RUN], function(can, msg, arg) {
can.misc.localStorage(can, "can.layout", arg[0] == ice.AUTO? "": arg[0]), can.onaction.layout(can, arg[0])
}),
"parse": shy("生成网页", {
"show": function(can, msg, arg) { var name = arg[1]||ice.CAN; can.isCmdMode() && can.user.title(name)
arg && arg[0] && Volcanos(name, {_follow: can.core.Keys(can._follow, name)}, [chat.PLUGIN_STORY+"parse.js"], function(sub) {
@ -150,8 +158,6 @@ Volcanos(chat.ONPLUGIN, {_plugin: shy("默认插件", [mdb.NAME, ice.LIST, ice.B
})
},
}, [mdb.TEXT, mdb.NAME, "show:button@auto", "clear:button"]),
"nfs.save": shy("保存文件", {
"save": function(can, msg, arg) { can.user.downloads(can, arg[1], arg[0]) }
}, ["file=hi.txt", "text:textarea='hello world'", "save:button"]),
"nfs.save": shy("保存文件", {"save": function(can, msg, arg) { can.user.downloads(can, arg[1], arg[0]) }}, ["file=hi.txt", "text:textarea='hello world'", "save:button"]),
})
})()

View File

@ -20,6 +20,7 @@ div.view span.string { color:#f29766; }
div.item:not(.string):not(.number):not(.boolean)>span.value { color:silver; font-style:italic; }
span.item:not(.string):not(.number):not(.boolean)>span.value { color:silver; font-style:italic; }
fieldset.debug span.path { color:silver; font-style:italic; }
fieldset.debug div.output table.content * { font-size:14px; }
body.dark fieldset.debug span.path { color:gray; }
body.dark fieldset.debug span.target { color:gray; }
body.dark div.item:not(.string):not(.number):not(.boolean)>span.value { color:gray; }

View File

@ -71,7 +71,7 @@ Volcanos(chat.ONACTION, {
"shareuser", "共享用户", "setnick", "设置昵称", aaa.PASSWORD, "修改密码", aaa.LANGUAGE, "语言地区", aaa.CHINESE, "中文", web.CLEAR, "清除背景", aaa.LOGOUT, "退出登录",
),
onsize: function(can) { can.onimport.theme(can), can.ConfHeight(can._target.offsetHeight), can.ConfWidth(can._target.offsetWidth) },
onmain: function(can) { can.onimport.theme(can), can.onkeymap._init(can)
onmain: function(can) { can.onimport.theme(can)
can.run({}, [], function(msg) { if (!can.Conf(aaa.USERNICK, msg.Option(aaa.USERNICK)||msg.Option(ice.MSG_USERNICK)||msg.Option(ice.MSG_USERNAME))) {
return msg.Option(chat.SSO)? can.user.jumps(msg.Option(chat.SSO)): can.user.login(can, function() { can.onengine.signal(can, chat.ONMAIN, msg) }, msg.Option(aaa.LOGIN))
} can.user.info.usernick = can.Conf(aaa.USERNICK), can.user.info.language = can.misc.Search(can, aaa.LANGUAGE)||msg.Option(aaa.LANGUAGE)
@ -85,7 +85,6 @@ Volcanos(chat.ONACTION, {
onaction_cmd: function(can) { can.onappend.style(can, html.HIDE) },
onsearch_focus: function(can) { can._search && can._search.focus() },
onshare: function(can, msg, args) { can.user.share(can, msg, [ctx.ACTION, chat.SHARE].concat(args||[])) },
onkeydown: function(can, msg, model) { can._keylist = can.onkeymap._parse(msg._event, can, model, can._keylist||[], can._output) },
onwebpack: function(can, msg) { can.user.input(msg._event, can, [{name: mdb.NAME, value: can.user.title()}], function(data) {
can.core.Item(Volcanos.meta.pack, function(key, msg) { can.core.List(["_event", "_can", "_xhr", ice.MSG_SESSID, ""], function(key) { delete(msg[key]) }) })
can.runAction(can.request({}, {args: "name,river,storm,theme,layout", _toast: "打包中...",
@ -125,39 +124,17 @@ Volcanos(chat.ONEXPORT, {height: function(can) { return can._target.offsetHeight
background: function(can) { return can.user.info.background == "void"? "": can.user.info.background },
avatar: function(can) { return can.user.info.avatar == "void"? "": can.user.info.avatar },
})
Volcanos(chat.ONKEYMAP, {_init: function(can, target) { can.onkeymap._build(can) },
_mode: { normal: {
b: function(event, can) { can.search(event, ["Header.onaction.black"]) },
w: function(event, can) { can.search(event, ["Header.onaction.white"]) },
p: function(event, can) { can.search(event, ["Header.onaction.print"]) },
c: function(event, can) { can.user.toimage(can, can.user.title(), can._target.parentNode, true) },
":": function(event, can) { can.onengine.signal(can, chat.ONCOMMAND_FOCUS), can.onkeymap.prevent(event) },
" ": function(event, can) { can.onengine.signal(can, chat.ONSEARCH_FOCUS), can.onkeymap.prevent(event) },
Enter: function(event, can) { can.onengine.signal(can, chat.ONOPENSEARCH, can.request(event)) },
Escape: function(event, can) { can.onmotion.clearFloat(can) },
}, }, _engine: {},
})
Volcanos(chat.ONPLUGIN, {
title: shy("应用标题", [chat.TITLE], function(can, msg, arg) {
msg.Echo(can.user.title(arg[0]))
title: shy("应用标题", [chat.TITLE], function(can, msg, arg) { msg.Echo(can.user.title(arg[0])) }),
theme: shy("界面主题", {_init: function(can) { can.Option(chat.THEME, can.getHeader(chat.THEME)) }}, ["theme:select=auto,dark,light,white,black,print", ice.RUN], function(can, msg, arg) {
if (arg[0] == "auto") { arg[0] = "", can._theme = "" } can.misc.localStorage(can, "can.theme", arg[0]), can.onimport.theme(can, arg[0])
}),
theme: shy("界面主题", {
_init: function(can) { can.Option(chat.THEME, can.getHeader(chat.THEME)) },
}, ["theme:select=auto,dark,light,white,black,print", ice.RUN], function(can, msg, arg) {
if (arg[0] == "auto") { arg[0] = "", can._theme = "" }
if (arg.length > 0) { can.misc.localStorage(can, "can.theme", arg[0]) }
msg.Echo(can.onimport.theme(can, arg[0]))
}),
location: shy("请求地址", {
copy: function(can) { can.user.copy(msg._event, can, location.href) },
}, [mdb.LINK, ice.LIST, ice.COPY], function(can, msg, cb) {
location: shy("请求地址", {copy: function(can) { can.user.copy(msg._event, can, location.href) }}, [mdb.LINK, ice.LIST, ice.COPY], function(can, msg, cb) {
can.runAction(can.request({}, kit.Dict(mdb.LINK, location.href)), web.SHARE, [], function(res) {
msg.Echo(res.Append(mdb.TEXT)).Status(kit.Dict(mdb.LINK, res.Append(mdb.NAME))), can.base.isFunc(cb) && cb(msg)
})
}),
cookie: shy("请求参数", [mdb.NAME, mdb.VALUE, ice.LIST, ice.BACK], function(can, msg, arg) {
arg.length > 1 && can.misc.Cookie(can, arg[0], arg[1])
cookie: shy("请求参数", [mdb.NAME, mdb.VALUE, ice.LIST, ice.BACK], function(can, msg, arg) { arg.length > 1 && can.misc.Cookie(can, arg[0], arg[1])
can.core.Item(can.misc.Cookie(can), function(key, value) { if (!key || !value || arg[0] && key != arg[0]) { return }
msg.Push(mdb.NAME, key), msg.Push(mdb.VALUE, value)
}), msg.StatusTimeCount()
@ -168,14 +145,8 @@ Volcanos(chat.ONPLUGIN, {
background: shy("背景图片", [mdb.LINK], function(can, sub, cb) {
can.page.Append(can, sub._output, [{img: can.user.info.background, style: kit.Dict(html.MAX_HEIGHT, sub.ConfHeight(), html.MAX_WIDTH, sub.ConfWidth())}])
}),
language: shy("语言地区", {
_init: function(can) { can.Option(aaa.LANGUAGE, can.user.info.language||"zh") },
}, ["language:select=auto,zh,en", ice.RUN], function(can, msg, arg) {
if (arg[0] == "auto") { arg[0] = "" }
if (arg.length > 0) { can.misc.localStorage(can, "can.language", arg[0]) }
can.runAction(event, aaa.LANGUAGE, [arg[0]], function(msg) { can.user.reload() })
language: shy("语言地区", {_init: function(can) { can.Option(aaa.LANGUAGE, can.user.info.language) }}, ["language:select=auto,zh,en", ice.RUN], function(can, msg, arg) {
if (arg[0] == ice.AUTO) { arg[0] = "" } can.misc.localStorage(can, "can.language", arg[0]), can.runAction(event, aaa.LANGUAGE, [arg[0]], function(msg) { can.user.reload() })
}),
logout: shy("退出登录", kit.Dict(
aaa.LOGOUT, shy("退出", function(can) { can.user.logout(can._root.Header, true) })
), [aaa.LOGOUT]),
logout: shy("退出登录", kit.Dict(aaa.LOGOUT, shy("退出", function(can) { can.user.logout(can._root.Header, true) })), [aaa.LOGOUT]),
})

View File

@ -29,16 +29,14 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.REFRESH], _init: function(can) {
onsize: function(can) { can.ConfHeight(can._target.offsetHeight), can.ConfWidth(can._target.offsetWidth) },
onlogin: function(can, msg) { can.run({}, [], function(msg) { if (msg.Option(ice.MSG_RIVER) == "_share") { return }
can.onmotion.clear(can), can.onimport._main(can, msg), can.onimport._init(can, msg), can.onimport._menu(can, msg)
can.user.isMobile ||can.user.isExtension || can.user.mod.isPod || can.onmotion.toggle(can, can._target, true)
can.user.isMobile || can.user.isExtension || can.onmotion.toggle(can, can._target, true)
}) },
onaction_touch: function(can, msg) { can.user.isMobile && can.onmotion.hidden(can) },
onaction_notool: function(can, msg, river, storm) { can.ondetail["添加工具"](msg._event, can, "添加工具", river, storm) },
onsearch: function(can, msg, arg) { if (arg[0] == mdb.FOREACH || arg[0] == chat.STORM) { can.onexport.storm(can, msg, arg) } },
onresize: function(can, msg) { can.user.isMobile && can.onmotion.hidden(can, can._target) },
onprint: function(can, msg) { can.page.styleHeight(can, can._target, "") },
onlayout: function(can, layout) {
can.onmotion.toggle(can, can._target, !layout || layout == "tabs")
},
onlayout: function(can, layout) { can.user.isMobile || can.onmotion.toggle(can, can._target, !layout || layout == "tabs") },
create: function(event, can) { can.user.input(event, can, [{name: mdb.TYPE, values: [aaa.TECH, aaa.VOID], _trans: "类型"}, {name: mdb.NAME, value: "hi", _trans: "群名"}, {name: mdb.TEXT, value: "hello", _trans: "简介"}], function(args) {
can.runAction(event, mdb.CREATE, args, function(msg) { can.misc.Search(can, {river: msg.Result()}) })

View File

@ -39,15 +39,15 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl
}) },
_tabs: function(can) { if (!can.isCmdMode()) { return can.ui.tabs = can._action }
can.core.List([{name: can.page.unicode.menu, onclick: function() { can.user.carte(event, can, can.onaction, can.onaction.list) }},
{name: "\u25C0", style: {"font-size": "14px", "margin-top": "3px"}, onclick: function(event) {
{name: can.page.unicode.back, style: {"font-size": "14px", "margin-top": "3px"}, onclick: function(event) {
var list = {}; can.user.carte(event, can, {_style: "history"}, can.core.List(can.db.history, function(item) {
var value = [item.path, item.file, item.line, ice.TB+(item.text&&item.text.length>30? item.text.slice(0, 30)+"...": item.text||"")].join(ice.DF); if (!list[value]) { list[value] = item; return value }
}).reverse(), function(event, button, meta, carte) { carte.close()
var ls = button.split(ice.DF); can.onimport.tabview(can, ls[0], ls[1], ls[2])
})
}},
{name: "\u21BB", style: {"font-size": "24px", "margin-top": "0px"}, onclick: function() { location.reload() }},
{name: "\u25B6", style: {"font-size": "14px", "margin-top": "3px"}, onclick: function() {
{name: can.page.unicode.refresh, style: {"font-size": "24px", "margin-top": "0px"}, onclick: function() { location.reload() }},
{name: can.page.unicode.reback, style: {"font-size": "14px", "margin-top": "3px"}, onclick: function() {
var list = {}; can.user.carte(event, can, {_style: "tabview"}, can.core.Item(can.db.tabview), function(event, button, meta, carte) { carte.close()
var ls = button.split(ice.DF); can.onimport.tabview(can, ls[0], ls[1])
})
@ -291,6 +291,7 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) {
sub.onaction.close = function() { can.onaction.back(can), msg._tab._close() }
sub.onexport.title = function(_, title) { can.page.Modify(can, msg._tab, title) }
sub.onexport.record = function(_, value, key, line) { line.path && can.onimport.tabview(can, line.path, line.file, line.line); return true }
sub.onexport.output = function() { can.onimport.layout(can) }
msg._plugin = sub, can.base.isFunc(cb) && cb(msg._content = sub._target), sub.Focus()
}, can.ui._content.parentNode)
},

View File

@ -19,7 +19,7 @@ fieldset.word ul.story[data-type=endmenu] { clear:both; }
fieldset.word p.story[data-name=inner] { background-color:#4b6c8a7a; padding:4px 10px; border-left:solid 4px blue; margin:10px 0px; }
fieldset.word p.story[data-name=inner]:hover { background-color:#c10c8a; cursor:copy; }
fieldset.word table.content { display:block; max-height:400px; }
fieldset.word>div.output>fieldset.story:not(.full) { margin:10px; }
fieldset.word>div.output>fieldset.story:not(.float):not(.full) { margin:10px; }
// fieldset.word>div.output>fieldset.story { margin:10px; background-color:#58a4d37d; }
fieldset.word fieldset.story.full { margin:0; }
fieldset.word fieldset.story.float { margin:0; }

View File

@ -212,7 +212,8 @@ Volcanos(chat.ONEXPORT, {
actionHeight: function(can) {
return (!can.page.isDisplay(can._option) && !can.page.isDisplay(can._action)) ||
(can._option.innerHTML == "" && can._action.innerHTML == "") ||
(can._target.offsetHeight > 0 && can._option.offsetHeight == 0 && can._option.offsetHeight == 0)? 0: html.ACTION_HEIGHT
can.page.ClassList.has(can, can._target, html.OUTPUT)
? 0: html.ACTION_HEIGHT
},
statusHeight: function(can) {
return !can.page.isDisplay(can._status) || can._status.innerHTML == "" || (can._target.offsetHeight > 0 && can._status.offsetHeight == 0)? 0: html.ACTION_HEIGHT },