1
0
forked from x/volcanos

opt web.route

This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-07-28 22:49:24 +08:00
parent 6556451c77
commit 98b5ba2c2b
13 changed files with 70 additions and 26 deletions

View File

@ -151,7 +151,9 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
}), meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg) }), meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg)
sub._legend && (sub._legend.onclick = function(event) { sub._legend && (sub._legend.onclick = function(event) {
can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([[ctx.ACTION].concat(can.core.Item(meta.feature._trans))]), function(event, button) { can.misc.Event(event, sub, function(msg) { can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([[ctx.ACTION].concat(can.core.Item(meta.feature._trans))]), function(event, button) { can.misc.Event(event, sub, function(msg) {
msg.RunAction(event, can.core.Value(sub, chat._OUTPUTS_CURRENT), [ctx.ACTION, button]) || msg.RunAction(event, sub, [ctx.ACTION, button]) || sub.runAction(event, button) msg.RunAction(event, can.core.Value(sub, chat._OUTPUTS_CURRENT), [ctx.ACTION, button]) || msg.RunAction(event, sub, [ctx.ACTION, button]) || sub.runAction(event, button, [], function(msg) {
can.onappend._output(sub, msg)
})
}) }) }) })
}) })
sub.isCmdMode() && can.onappend.style(sub, can.misc.Search(can, ctx.STYLE)), sub.isCmdMode() && sub.Conf(can.misc.Search(can)) sub.isCmdMode() && can.onappend.style(sub, can.misc.Search(can, ctx.STYLE)), sub.isCmdMode() && sub.Conf(can.misc.Search(can))
@ -464,7 +466,12 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
if (type == FLOW) { var h = calc(item, target.offsetHeight, height) if (type == FLOW) { var h = calc(item, target.offsetHeight, height)
if (can.base.isObject(meta) && meta.layout) { meta.layout(h, width) } if (can.base.isObject(meta) && meta.layout) { meta.layout(h, width) }
can.page.style(can, target, html.WIDTH, width), height -= h can.page.style(can, target, html.WIDTH, width), height -= h
} else { var w = calc(item, target.offsetWidth||target.style.width||_width/list.length, _width), h = height } else {
if (item == "project") {
var w = 230, h = height
} else {
var w = calc(item, target.offsetWidth||target.style.width||_width/list.length, _width), h = height
}
if (can.base.isObject(meta)) { meta.layout(h, w = _width/list.length) } if (can.base.isObject(meta)) { meta.layout(h, w = _width/list.length) }
can.page.style(can, target, html.HEIGHT, h, html.WIDTH, w), width -= w can.page.style(can, target, html.HEIGHT, h, html.WIDTH, w), width -= w
} }

View File

@ -12,7 +12,7 @@ body {
--svg-stroke-width:2; --svg-stroke-width:2;
--box-border:var(--plugin-border-color) solid 1px; --box-border:var(--plugin-border-color) solid 1px;
--box-shadow:var(--body-fg-color) 3px 3px 10px; --box-shadow:var(--body-fg-color) 2px 2px 8px;
} }
/* element */ /* element */
* { tab-size:4; box-sizing:border-box; padding:0; border:0; margin:0; } * { tab-size:4; box-sizing:border-box; padding:0; border:0; margin:0; }
@ -37,6 +37,11 @@ table.content.action td:last-child { position:sticky; right:2px; box-shadow: var
table.content col.time { width:180px; } table.content col.time { width:180px; }
// table.content col.option { cursor:pointer; } // table.content col.option { cursor:pointer; }
table.content col.action { width:180px; } table.content col.action { width:180px; }
body:not(.windows) table.content { font-family:monospace; }
body:not(.windows) div.code { font-family:monospace; }
body:not(.windows) div.tabs { font-family:monospace; }
body:not(.windows) div.path { font-family:monospace; }
body:not(.windows) div.carte { font-family:monospace; }
h1 { text-align:center; margin:20px 0; } h2 { margin:20px 0; } h3 { margin:20px 0; } h1 { text-align:center; margin:20px 0; } h2 { margin:20px 0; } h3 { margin:20px 0; }
hr, td.hr { border-bottom:var(--plugin-border-color) dashed 1px; margin:5px; } hr, td.hr { border-bottom:var(--plugin-border-color) dashed 1px; margin:5px; }
ol, ul { margin-left:40px; } ol, ul { margin-left:40px; }
@ -163,7 +168,8 @@ fieldset.cmd>div.action>div.button.icons>input { display:none; }
fieldset:not(.float)>form.option>div.text>span.value { display:none; } fieldset:not(.float)>form.option>div.text>span.value { display:none; }
fieldset.float>form.option>div.text>input { display:none; } fieldset.float>form.option>div.text>input { display:none; }
fieldset.float>form.option>div.text>span { display:none; } fieldset.float>form.option>div.text>span { display:none; }
fieldset.float>form.option>div.text>span.value { padding:7px; height:32px; max-width:200px; display:block; overflow:auto; } fieldset.float>form.option>div.text>span.value { white-space:pre; padding:7px; height:32px; max-width:200px; display:block; overflow:auto; }
// fieldset.float>form.option>div.text>span.value { padding:7px; height:32px; display:block; overflow:auto; }
fieldset.float div.text:hover>span.icon.delete { visibility:hidden; } fieldset.float div.text:hover>span.icon.delete { visibility:hidden; }
body.mobile:not(.landscape) fieldset.float>form.option>div.text>span.value { display:none; } body.mobile:not(.landscape) fieldset.float>form.option>div.text>span.value { display:none; }
body.windows form.option>div.icon { font-size:21px; } body.windows form.option>div.icon { font-size:21px; }
@ -240,8 +246,9 @@ body { background-color:var(--body-bg-color); color:var(--body-fg-color); }
legend { background-color:var(--legend-bg-color); border-radius:var(--input-radius); } legend { background-color:var(--legend-bg-color); border-radius:var(--input-radius); }
select { border-radius:var(--input-radius); } select { border-radius:var(--input-radius); }
input { background-color:var(--input-bg-color); color:var(--input-fg-color); border-radius:var(--input-radius); } input { background-color:var(--input-bg-color); color:var(--input-fg-color); border-radius:var(--input-radius); }
input[type=button]:hover { color:var(--hover-fg-color) } input[type=button]:hover { color:var(--hover-fg-color); background-color:var(--hover-bg-color); }
input:not([type=button]) { border-radius:0; } legend:hover { color:var(--hover-fg-color); background-color:var(--hover-bg-color); }
input:not([type=button]) { border-radius:0; border: var(--plugin-border-color) solid 1px; }
input:not([type=button]):hover { border:var(--input-border); } input:not([type=button]):hover { border:var(--input-border); }
input:not([type=button]):focus { border:var(--input-border); outline:none; } input:not([type=button]):focus { border:var(--input-border); outline:none; }
textarea { background-color:var(--input-bg-color); color:var(--input-fg-color); } textarea { background-color:var(--input-bg-color); color:var(--input-fg-color); }
@ -336,7 +343,7 @@ fieldset.xterm div.layout div.output { border-left:var(--box-border); border-top
fieldset.xterm div.layout div.output.select { border:var(--box-border)} fieldset.xterm div.layout div.output.select { border:var(--box-border)}
fieldset.plan div.output div.content>table.content { height:100%; width:100%; } fieldset.plan div.output div.content>table.content { height:100%; width:100%; }
fieldset.draw>form.option>div.item.pid>input { width:60px; } fieldset.draw>form.option>div.item.pid>input { width:60px; }
fieldset.draw div.output svg { margin-bottom:-4px; height:100%; width:100%; } // fieldset.draw div.output svg { margin-bottom:-4px; height:100%; width:100%; }
fieldset.draw.trend div.output svg { background-color:#1b5b738c; } fieldset.draw.trend div.output svg { background-color:#1b5b738c; }
fieldset.draw.spide div.output svg text { cursor:pointer; } fieldset.draw.spide div.output svg text { cursor:pointer; }
fieldset.draw.spide div.output svg path { stroke-width:1; } fieldset.draw.spide div.output svg path { stroke-width:1; }

View File

@ -64,7 +64,7 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func
}, },
_menu: ["addapp", "rename", "remove"], _menu: ["addapp", "rename", "remove"],
addapp: function(event, can, button, river) { can.ondetail.create(event, can, button, river) }, addapp: function(event, can, button, river) { can.ondetail.create(event, can, button, river) },
rename: function(event, can, button, river) { can.user.input(event, can, [mdb.NAME], function(args) { rename: function(event, can, button, river) { can.user.input(event, can, [mdb.NAME, mdb.ICON], function(args) {
can.runAction(event, mdb.MODIFY, [mdb.HASH, river].concat(args), function(msg) { can.page.Modify(can, can.ui.river_list[river], args[1]), can.user.toastSuccess(can) }) can.runAction(event, mdb.MODIFY, [mdb.HASH, river].concat(args), function(msg) { can.page.Modify(can, can.ui.river_list[river], args[1]), can.user.toastSuccess(can) })
}) }, }) },
remove: function(event, can, button, river) { can.runAction(event, mdb.REMOVE, [mdb.HASH, river], function(msg) { remove: function(event, can, button, river) { can.runAction(event, mdb.REMOVE, [mdb.HASH, river], function(msg) {
@ -99,7 +99,7 @@ Volcanos(chat.ONDETAIL, {
can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm), refresh: ice.TRUE})) can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm), refresh: ice.TRUE}))
}) })
}) }, }) },
rename: function(event, can, button, river, storm) { can.user.input(event, can, [mdb.NAME], function(args) { rename: function(event, can, button, river, storm) { can.user.input(event, can, [mdb.NAME, mdb.ICON], function(args) {
can.run(event, [river, storm, chat.STORM, ctx.ACTION, mdb.MODIFY].concat(args), function() { can.page.Modify(can, can.ui.storm_list[can.core.Keys(river, storm)], args[1]), can.user.toastSuccess(can) }) can.run(event, [river, storm, chat.STORM, ctx.ACTION, mdb.MODIFY].concat(args), function() { can.page.Modify(can, can.ui.storm_list[can.core.Keys(river, storm)], args[1]), can.user.toastSuccess(can) })
}) }, }) },
remove: function(event, can, button, river, storm) { can.run(event, [river, storm, chat.STORM, ctx.ACTION, mdb.REMOVE], function(msg) { can.misc.Search(can, {river: river, storm: ""}) }) }, remove: function(event, can, button, river, storm) { can.run(event, [river, storm, chat.STORM, ctx.ACTION, mdb.REMOVE], function(msg) { can.misc.Search(can, {river: river, storm: ""}) }) },

View File

@ -54,6 +54,7 @@ Volcanos(chat.ONACTION, {_init: function(can) { can.onmotion.hidden(can) }, list
if (data.type == ctx.INDEX) { meta = {index: data.text.split(mdb.FS)[0], args: data.text.split(mdb.FS).slice(1) } } if (data.type == ctx.INDEX) { meta = {index: data.text.split(mdb.FS)[0], args: data.text.split(mdb.FS).slice(1) } }
if (data.type == nfs.FILE) { meta = {index: web.CODE_VIMER, args: can.misc.SplitPath(can, data.text)} } if (data.type == nfs.FILE) { meta = {index: web.CODE_VIMER, args: can.misc.SplitPath(can, data.text)} }
if (data.type == nfs.SHY) { meta = {index: web.WIKI_WORD, args: data.text} } if (data.type == nfs.SHY) { meta = {index: web.WIKI_WORD, args: data.text} }
if (data.type == ice.CMD) { meta = {index: data.name, args: can.core.Split(data.text)} }
if (data.ctx == ice.NFS && data.cmd == nfs.PACK) { var ls = can.misc.SplitPath(can, data.text) if (data.ctx == ice.NFS && data.cmd == nfs.PACK) { var ls = can.misc.SplitPath(can, data.text)
can.runAction(event, cli.RUN, [web.CODE_VIMER, ctx.ACTION, mdb.RENDER, data.type, ls[1], ls[0]], function(msg) { msg.Table(function(meta) { can.runAction(event, cli.RUN, [web.CODE_VIMER, ctx.ACTION, mdb.RENDER, data.type, ls[1], ls[0]], function(msg) { msg.Table(function(meta) {
can.onappend.plugin(can, meta, function(sub) { can._plugins = (can._plugins||[]).concat(sub), sub.onimport.size(sub, can.ConfHeight(), can.ConfWidth()-1, true) }, can.ui.profile) can.onappend.plugin(can, meta, function(sub) { can._plugins = (can._plugins||[]).concat(sub), sub.onimport.size(sub, can.ConfHeight(), can.ConfWidth()-1, true) }, can.ui.profile)

View File

@ -19,7 +19,8 @@ fieldset.inner>div.output>div.project div.zone>div.item span.icon { font-size:20
fieldset.inner>div.output>div.project div.zone:hover>div.item span.icon { display:block; } fieldset.inner>div.output>div.project div.zone:hover>div.item span.icon { display:block; }
fieldset.inner>div.output>div.project>div.zone>div.item span.icon { font-size:22px; line-height:32px; } fieldset.inner>div.output>div.project>div.zone>div.item span.icon { font-size:22px; line-height:32px; }
fieldset.inner>div.output>div.project>div.zone div.action>div.item { padding-right:0; width:100%; } fieldset.inner>div.output>div.project>div.zone div.action>div.item { padding-right:0; width:100%; }
fieldset.inner>div.output>div.project>div.zone div.action>div.item>input { width:calc(100% - 5px); } fieldset.inner>div.output>div.project>div.zone div.action>div.item>input { width:calc(100% - 5px); border:var(--plugin-border-color) solid 1px; }
fieldset.inner>div.output>div.project>div.zone div.action>div.item>input:hover { border:var(--notice-fg-color) solid 1px; }
fieldset.inner>div.output>div.project>div.zone div.action>div.item>span.delete { top:3px; right:5px; } fieldset.inner>div.output>div.project>div.zone div.action>div.item>span.delete { top:3px; right:5px; }
fieldset.inner>div.output>div.project>div.zone fieldset.plug { position:static; } fieldset.inner>div.output>div.project>div.zone fieldset.plug { position:static; }
fieldset.inner>div.output>div.layout>div.tabs { font-size:14px; display:none; } fieldset.inner>div.output>div.layout>div.tabs { font-size:14px; display:none; }

View File

@ -194,7 +194,8 @@ Volcanos(chat.ONSYNTAX, {
} opts.stack = [ls[0]] } else if (indent == 4 && opts.stack[0] == "func") { } opts.stack = [ls[0]] } else if (indent == 4 && opts.stack[0] == "func") {
if (text.indexOf("MergeCommands(") > -1) { opts.block = "cmds" } else if (text.indexOf("}") == 0) { opts.block = "" } if (text.indexOf("MergeCommands(") > -1) { opts.block = "cmds" } else if (text.indexOf("}") == 0) { opts.block = "" }
} else if (indent == 8) { } else if (indent == 8) {
if (isKey()) { push(prefix(ls[0], opts.package)+ls[0]), opts.cmds = opts.package+nfs.PT+ls[0] } if (isKey()) { push(prefix(ls[0], opts.package)+ls[0]), opts.cmds = ls[0] }
// if (isKey()) { push(prefix(ls[0], opts.package)+ls[0]), opts.cmds = opts.package+nfs.PT+ls[0] }
} else if (indent == 12) { } else if (indent == 12) {
if (isKey()) { push("+ "+opts.cmds+lex.SP+ls[0]) } if (isKey()) { push("+ "+opts.cmds+lex.SP+ls[0]) }
} }

View File

@ -103,7 +103,11 @@ Volcanos(chat.ONACTION, {list: ["编译", "源码", "终端", "文档", "计划"
}) }, }) },
"编译": function(event, can) { can.onaction.compile(event, can, code.COMPILE) }, "编译": function(event, can) { can.onaction.compile(event, can, code.COMPILE) },
"源码": function(event, can) { can.onimport.tabview(can, "", web.CODE_GIT_STATUS, ctx.INDEX) }, "源码": function(event, can) { can.onimport.tabview(can, "", web.CODE_GIT_STATUS, ctx.INDEX) },
"终端": function(event, can) { can.onimport.tabview(can, "", [web.CODE_XTERM, "ish"].join(mdb.FS), ctx.INDEX) }, "终端": function(event, can) {
can.user.input(can.request(event, {action: "xterm"}), can, [mdb.TYPE], function(args) {
can.onimport.tabview(can, "", [web.CODE_XTERM, args[1]||"ish"].join(mdb.FS), ctx.INDEX)
})
},
"文档": function(event, can) { can.onimport.tabview(can, "", web.WIKI_WORD, ctx.INDEX) }, "文档": function(event, can) { can.onimport.tabview(can, "", web.WIKI_WORD, ctx.INDEX) },
"计划": function(event, can) { can.onimport.tabview(can, "", web.TEAM_PLAN, ctx.INDEX) }, "计划": function(event, can) { can.onimport.tabview(can, "", web.TEAM_PLAN, ctx.INDEX) },
"桌面": function(event, can) { can.onimport.tabview(can, "", "web.chat.macos.desktop", ctx.INDEX) }, "桌面": function(event, can) { can.onimport.tabview(can, "", "web.chat.macos.desktop", ctx.INDEX) },

View File

@ -40,11 +40,17 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
}]) }), can.onmotion.story.auto(can, can.ui.profile) }]) }), can.onmotion.story.auto(can, can.ui.profile)
}, },
_display: function(can, task) { can.onmotion.toggle(can, can.ui.display, true) _display: function(can, task) { can.onmotion.toggle(can, can.ui.display, true)
if (can.onmotion.cache(can, function() { return can.sup.task = task, can.Status(task), [task.space, task.zone, task.id].join(nfs.PT) }, can.ui.display)) { return } if (can.onmotion.cache(can, function(data, old) {
if (old) { data[old] = {_plugin_display: can._plugin_display} }
var key = [task.space, task.zone, task.id].join(nfs.PT)
var last = data[key]; if (last) { can._plugin_display = last._plugin_display }
return can.sup.task = task, can.Status(task), key
}, can.ui.display)) { return }
task[ctx.EXTRA_INDEX] && can.onappend.plugin(can, {space: task.space, index: task[ctx.EXTRA_INDEX], args: task[ctx.EXTRA_ARGS], height: can.ConfHeight()/2-2*html.ACTION_HEIGHT}, function(sub, meta) { task[ctx.EXTRA_INDEX] && can.onappend.plugin(can, {space: task.space, index: task[ctx.EXTRA_INDEX], args: task[ctx.EXTRA_ARGS], height: can.ConfHeight()/2-2*html.ACTION_HEIGHT}, function(sub, meta) {
sub.run = function(event, cmds, cb) { can.request(event, kit.Dict(team.TASK_POD, task.space, team.TASK_ZONE, task.zone, team.TASK_ID, task.id)) sub.run = function(event, cmds, cb) { can.request(event, kit.Dict(team.TASK_POD, task.space, team.TASK_ZONE, task.zone, team.TASK_ID, task.id))
can.page.style(can, sub._output, html.MAX_HEIGHT, ""), can.runAction(event, ice.RUN, [task[mdb.ZONE], task[mdb.ID]].concat(cmds), cb) can.page.style(can, sub._output, html.MAX_HEIGHT, ""), can.runAction(event, ice.RUN, [task[mdb.ZONE], task[mdb.ID]].concat(cmds), cb)
} }
can._plugin_display = sub
sub.onexport.output = function() { can.onmotion.delay(can, function() { sub.onexport.output = function() { can.onmotion.delay(can, function() {
sub.onimport.size(sub, can._display_heights[[task.zone, task.id].join(mdb.FS)] = can.base.Max(sub._target.offsetHeight, can.ConfHeight()/2), can.ConfWidth()-can.ui.project.offsetWidth) sub.onimport.size(sub, can._display_heights[[task.zone, task.id].join(mdb.FS)] = can.base.Max(sub._target.offsetHeight, can.ConfHeight()/2), can.ConfWidth()-can.ui.project.offsetWidth)
can.onimport.layout(can) can.onimport.layout(can)
@ -102,6 +108,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
layout: function(can) { layout: function(can) {
can.ui.layout(can.ConfHeight(), can.ConfWidth()) can.ui.layout(can.ConfHeight(), can.ConfWidth())
can.user.isMobile && can.page.style(can, can.ui.content, html.HEIGHT, "") can.user.isMobile && can.page.style(can, can.ui.content, html.HEIGHT, "")
var sub = can._plugin_display; sub && sub.onimport.size(sub, can.ConfHeight()/2, can.ConfWidth()-can.ui.project.offsetWidth, true)
return return
can.page.styleHeight(can, can._output, can.ConfHeight()), can.page.styleHeight(can, can.ui.project, can.ConfHeight()) can.page.styleHeight(can, can._output, can.ConfHeight()), can.page.styleHeight(can, can.ui.project, can.ConfHeight())
var height = can._display_heights[can.sup.task? [can.sup.task.zone, can.sup.task.id].join(mdb.FS): ""]||html.ACTION_HEIGHT var height = can._display_heights[can.sup.task? [can.sup.task.zone, can.sup.task.id].join(mdb.FS): ""]||html.ACTION_HEIGHT

View File

@ -1,13 +1,13 @@
Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can); var pid = can.misc.SearchHash(can)[0] Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can); var pid = can.misc.SearchHash(can)[0]
can.svg = null, can.group = null, can.temp = null, can.current = null, can.points = [], can._display_heights = {} can.svg = null, can.group = null, can.temp = null, can.current = null, can.points = [], can._display_heights = {}
if (can.Conf(ctx.INDEX) == web.WIKI_DRAW) { can.ui = can.onappend.layout(can) } else { can.ui = {content: can._output} } if (can.Conf(ctx.INDEX) == web.WIKI_DRAW) {
can.ui = can.onappend.layout(can); if (can.user.isMobile) { can.onmotion.hidden(can, can.ui.project), can.onmotion.hidden(can, can.ui.profile) }
} else { can.ui = {content: can._output} }
can.page.Modify(can, can.ui.content, msg.Results()||can.onexport.content(can)), can.onexport.title(can, can.Option(nfs.PATH)) can.page.Modify(can, can.ui.content, msg.Results()||can.onexport.content(can)), can.onexport.title(can, can.Option(nfs.PATH))
can.page.Select(can, can.ui.content, html.SVG, function(target) { can.svg = can.group = can.onimport._block(can, target), can.onimport._group(can, target) can.page.Select(can, can.ui.content, html.SVG, function(target) { can.svg = can.group = can.onimport._block(can, target), can.onimport._group(can, target)
can.page.Select(can, target, mdb.FOREACH, function(target) { can.onimport._block(can, target), can.page.tagis(target, svg.G) && target.Value(html.CLASS) && can.onimport._group(can, target) }) can.page.Select(can, target, mdb.FOREACH, function(target) { can.onimport._block(can, target), can.page.tagis(target, svg.G) && target.Value(html.CLASS) && can.onimport._group(can, target) })
can.ui.profile && can.core.ItemCB(can.onaction, function(key, cb) { target[key] = function(event) { can.misc.Event(event, can, function(msg) { cb(event, can) }) } }) can.ui.profile && can.core.ItemCB(can.onaction, function(key, cb) { target[key] = function(event) { can.misc.Event(event, can, function(msg) { cb(event, can) }) } })
}), can.ondetail._select(can, (can.isCmdMode()? pid: "")||can.Option(svg.PID)||can.svg.Value(svg.PID)), can.onkeymap._build(can) }), can.ondetail._select(can, (can.isCmdMode()? pid: "")||can.Option(svg.PID)||can.svg.Value(svg.PID)), can.onkeymap._build(can)
can.ui.profile && can.user.isMobile && can.onmotion.hidden(can, can.ui.profile)
can.user.isMobile && can.onmotion.hidden(can, can.ui.project)
}, },
_block: function(can, target) { _block: function(can, target) {
target.Value = function(key, value) { if (can.base.isUndefined(key)) { return } if (can.base.isObject(key)) { return can.core.Item(key, target.Value), key } target.Value = function(key, value) { if (can.base.isUndefined(key)) { return } if (can.base.isObject(key)) { return can.core.Item(key, target.Value), key }

View File

@ -1,9 +1,10 @@
fieldset.feel>div.output { display:flex; justify-content:center; } fieldset.feel>div.output { display:flex; justify-content:center; }
fieldset.feel>div.output div.project { flex:0 0 230px; } fieldset.feel>div.output>div.project { flex:0 0 230px; }
fieldset.feel>div.output div.project div.item.filter { position:sticky; top:0; } fieldset.feel>div.output>div.project div.item { white-space:pre; }
fieldset.feel>div.output div.project div.item.filter input { width:100%; } fieldset.feel>div.output>div.project div.item.filter { position:sticky; top:0; }
fieldset.feel>div.output div.project div.item { white-space:pre; } fieldset.feel>div.output>div.project div.item.filter input { width:100%; }
fieldset.feel>div.output div.content.float { padding:0; position:fixed; left:0; top:0; } fieldset.feel>div.output>div.layout { flex-grow:1; }
fieldset.feel>div.output div.content:not(.hide) { display:flex; justify-content:center; } fieldset.feel>div.output>div.layout>div.content.float { padding:0; position:fixed; left:0; top:0; }
fieldset.feel>div.output div.display:not(.hide) { display:flex; justify-content:center; flex-wrap:wrap; max-height:100%; } fieldset.feel>div.output>div.layout>div.content:not(.hide) { display:flex; justify-content:center; }
fieldset.feel>div.output>div.layout>div.display:not(.hide) { display:flex; justify-content:center; flex-wrap:wrap; max-height:100%; }
fieldset.feel>div.output img { margin-bottom:0; } fieldset.feel>div.output img { margin-bottom:0; }

View File

@ -5,7 +5,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.onmotion.clear(can)
can.base.endWith(item.path, nfs.PS)? can.onimport.item(can, item, function(event) { can.Option(nfs.PATH, item.path) && can.Update(event) }): can.list.push(item) can.base.endWith(item.path, nfs.PS)? can.onimport.item(can, item, function(event) { can.Option(nfs.PATH, item.path) && can.Update(event) }): can.list.push(item)
}) })
var rate = can.misc.localStorage(can, "web.wiki.feel:rate"); rate && can.Action("speed", rate) var rate = can.misc.localStorage(can, "web.wiki.feel:rate"); rate && can.Action("speed", rate)
can.core.List(can.list, function(item, index) { item.nick = (can.misc.localStorage(can, can.onexport.key(can, "p", can.onimport._file(can, item.path)))||"")+" "+item.name; var target = can.onimport.item(can, item, function(_event) { can.core.List(can.list, function(item, index) { var last = can.misc.localStorage(can, can.onexport.key(can, "p", can.onimport._file(can, item.path)))
item.nick = (last? last+" ": "")+item.name; var target = can.onimport.item(can, item, function(_event) {
var target = _event.target var target = _event.target
can.cb = function(event) { var next = _event.target.nextSibling can.cb = function(event) { var next = _event.target.nextSibling
can.misc.localStorage(can, can.onexport.key(can, "last"), item.path) can.misc.localStorage(can, can.onexport.key(can, "last"), item.path)

View File

@ -58,7 +58,8 @@ Volcanos(chat.ONIMPORT, {
_open: function(can, msg, arg) { return can.Update(), can.user.open(arg) }, _open: function(can, msg, arg) { return can.Update(), can.user.open(arg) },
_close: function(can, msg) { return can.user.close() || history.back() }, _close: function(can, msg) { return can.user.close() || history.back() },
size: function(can, height, width, auto, mode) { height -= can.onexport.actionHeight(can)+can.onexport.statusHeight(can) size: function(can, height, width, auto, mode) { height -= can.onexport.actionHeight(can)+can.onexport.statusHeight(can)
auto? can.page.style(can, can._output, html.HEIGHT, "", html.WIDTH, "", html.MAX_HEIGHT, height? can.ConfHeight(height): "", html.MAX_WIDTH, can.ConfWidth(width)): auto? (can.page.style(can, can._output, html.HEIGHT, "", html.WIDTH, "", html.MAX_HEIGHT, height? can.ConfHeight(height): "", html.MAX_WIDTH, can.ConfWidth(width)),
can.page.style(can, can._target, html.WIDTH, "")):
(can.page.style(can, can._output, html.HEIGHT, can.ConfHeight(height), html.WIDTH, can.ConfWidth(width), html.MAX_HEIGHT, "", html.MAX_WIDTH, ""), (can.page.style(can, can._output, html.HEIGHT, can.ConfHeight(height), html.WIDTH, can.ConfWidth(width), html.MAX_HEIGHT, "", html.MAX_WIDTH, ""),
can.page.style(can, can._target, html.WIDTH, can.ConfWidth(width))) can.page.style(can, can._target, html.WIDTH, can.ConfWidth(width)))
var sub = can.core.Value(can, chat._OUTPUTS_CURRENT); if (!sub) { return can.Mode(mode), auto } sub.ConfHeight(can.ConfHeight()), sub.ConfWidth(can.ConfWidth()) var sub = can.core.Value(can, chat._OUTPUTS_CURRENT); if (!sub) { return can.Mode(mode), auto } sub.ConfHeight(can.ConfHeight()), sub.ConfWidth(can.ConfWidth())
@ -71,9 +72,22 @@ Volcanos(chat.ONIMPORT, {
}) })
Volcanos(chat.ONACTION, {list: [ Volcanos(chat.ONACTION, {list: [
"刷新界面", "刷新数据", "切换浮动", "切换全屏", "远程控制", "共享工具", "打开链接", "生成链接", "生成脚本", "生成图片", "刷新界面", "刷新数据", "切换浮动", "切换全屏", "远程控制", "共享工具", "打开链接", "生成链接", "生成脚本", "生成图片",
["视图", "操作", "专注", "项目", "预览", "输出", "状态"],
["其它", "扩展参数", "保存参数", "清空参数", "复制数据", "下载数据", "清空数据", "删除工具"], ["其它", "扩展参数", "保存参数", "清空参数", "复制数据", "下载数据", "清空数据", "删除工具"],
["调试", "查看文档", "查看脚本", "查看源码", "查看配置", "查看日志", "打包页面"], ["调试", "查看文档", "查看脚本", "查看源码", "查看配置", "查看日志", "打包页面"],
], ],
"参数": function(event, can) { can.onmotion.toggle(can, can._option) },
"操作": function(event, can) { can.onmotion.toggle(can, can._action) },
"专注": function(event, can) { can.onaction._view(event, can, function(sub) { if (!sub.ui) { return }
sub.ui.project && can.onmotion.hidden(can, sub.ui.project)
sub.ui.profile && can.onmotion.hidden(can, sub.ui.profile)
sub.ui.display && can.onmotion.hidden(can, sub.ui.display)
}) },
"项目": function(event, can) { can.onaction._view(event, can, function(sub) { sub.ui && sub.ui.project && can.onmotion.toggle(can, sub.ui.project) }) },
"预览": function(event, can) { can.onaction._view(event, can, function(sub) { sub.ui && sub.ui.project && can.onmotion.toggle(can, sub.ui.profile) }) },
"输出": function(event, can) { can.onaction._view(event, can, function(sub) { sub.ui && sub.ui.project && can.onmotion.toggle(can, sub.ui.display) }) },
"状态": function(event, can) { can.onaction._view(event, can, function(sub) { can.onmotion.toggle(can, can._status) }) },
_view: function(event, can, cb) { var sub = can.core.Value(can, chat._OUTPUTS_CURRENT); cb(sub), sub.onimport.layout(sub) },
_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())) },
_switch: function(can, sub, mode, save, load) { _switch: function(can, sub, mode, save, load) {
if (can.page.ClassList.neg(can, can._target, mode)) { if (can.page.ClassList.neg(can, can._target, mode)) {

View File

@ -18,7 +18,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireDraw(ca
_color: function(can, tree) { return tree.meta.color || (tree.list == 0? cli.PURPLE: cli.YELLOW) }, _color: function(can, tree) { return tree.meta.color || (tree.list == 0? cli.PURPLE: cli.YELLOW) },
layout: function(can) { can.page.ClassList.has(can, can._fields, html.FLOAT) || can.page.style(can, can._output, html.MAX_HEIGHT, "") layout: function(can) { can.page.ClassList.has(can, can._fields, html.FLOAT) || can.page.style(can, can._output, html.MAX_HEIGHT, "")
can.svg && can.svg.Val(svg.FONT_SIZE, can.size = parseInt(can.Action(html.SIZE)||24)), can.margin = parseInt(can.Action(html.MARGIN)||10) can.svg && can.svg.Val(svg.FONT_SIZE, can.size = parseInt(can.Action(html.SIZE)||24)), can.margin = parseInt(can.Action(html.MARGIN)||10)
can._tree && can.core.CallFunc(can.onaction[can.Action(ice.VIEW)||"横向"], [event, can, can.Action(ice.VIEW)]) can._tree && can._tree[can.dir_root] && can.core.CallFunc(can.onaction[can.Action(ice.VIEW)||"横向"], [event, can, can.Action(ice.VIEW)])
}, },
}) })
Volcanos(chat.ONACTION, {list: [[ice.VIEW, "横向", "纵向"], [html.SIZE, 24, 32, 48], [html.MARGIN, 10, 30, 50]], Volcanos(chat.ONACTION, {list: [[ice.VIEW, "横向", "纵向"], [html.SIZE, 24, 32, 48], [html.MARGIN, 10, 30, 50]],