From bd57313ac35f2c78b5915cee4a4acc3d56f5903e Mon Sep 17 00:00:00 2001 From: harveyshao Date: Mon, 25 Jul 2022 18:12:29 +0800 Subject: [PATCH] opt some --- frame.js | 3 ++- lib/misc.js | 5 +++++ page/index.css | 5 +++-- plugin/local/code/inner.js | 2 +- plugin/local/code/xterm.js | 6 +++--- plugin/local/wiki/feel.css | 2 ++ plugin/local/wiki/feel.js | 13 ++++++++----- proto.js | 1 + 8 files changed, 25 insertions(+), 12 deletions(-) diff --git a/frame.js b/frame.js index ae8c7e91..3fd6d9d8 100644 --- a/frame.js +++ b/frame.js @@ -103,7 +103,7 @@ Volcanos(chat.ONENGINE, {help: "搜索引擎", _init: function(can, meta, list, arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb) }), signal: shy("触发事件", function(can, name, msg) { msg = msg||can.request() - can.misc.Log(gdb.SIGNAL, name, name == chat.ONREMOTE? msg.Option("_msg"): msg) + can.misc.Log(gdb.SIGNAL, name, (msg._cmds||[]), name == chat.ONREMOTE? msg.Option("_msg"): msg) return can.core.List(can.onengine.listen.meta[name], function(cb) { can.core.CallFunc(cb, {event: msg._event, msg: msg}) }).length }), }) @@ -272,6 +272,7 @@ Volcanos(chat.ONAPPEND, {help: "渲染引擎", _init: function(can, meta, list, return can.Update(event, can.Input(cmds, silent), cb, silent) }, can._outputs && can._outputs.push(table), table.sup = can, table._msg = msg + table._index = can._index table.Mode(can.Mode()), table.Conf(table._args = can.base.ParseURL(table._display)) table._trans = can.base.Copy(table._trans||{}, can.core.Value(table, "onaction._trans")) if (table.onimport && can.base.isArray(table.onimport.list) && table.onimport.list.length > 0) { diff --git a/lib/misc.js b/lib/misc.js index 34449a53..e645d7ea 100644 --- a/lib/misc.js +++ b/lib/misc.js @@ -190,6 +190,11 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg return val && val.length > 0? val[1]: "" }), SearchOrConf: function(can, key, def) { return can.base.getValid(can.misc.Search(can, key), can.Conf(key), def) }, + SearchHash: function(can) { + if (can.isCmdMode() && can._index == can.misc.Search(can, "cmd")) { + return location.hash.slice(1) + } + }, Search: shy("请求参数", function(can, key, value) { var args = {} if (value == undefined && can.base.isString(key)) { var ls = location.pathname.split(ice.PS); if (ls[1] == chat.SHARE) { args[chat.SHARE] = ls[2] } diff --git a/page/index.css b/page/index.css index 08c87fd1..cd9cd88b 100644 --- a/page/index.css +++ b/page/index.css @@ -333,5 +333,6 @@ fieldset.plugin.location>div.action input[type=text] { width:40px; } -fieldset.xterm div.action>div.tabs:hover { background-color:black; } -fieldset.xterm div.action>div.tabs.select { background-color:black; } +fieldset.xterm>div.action>div.tabs:hover { background-color:black; } +fieldset.xterm>div.action>div.tabs.select { background-color:black; } +fieldset.xterm>div.output { background-color:black; } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 8bcb4df1..293c7387 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -573,7 +573,7 @@ Volcanos(chat.ONKEYMAP, {help: "导入数据", }, _engine: {}, }) Volcanos(chat.ONACTION, {help: "控件交互", list: ["搜索", "打开"], - _trans: {load: "加载", link: "链接", width: "宽度", height: "高度", website: "网页"}, + _trans: {source: "源码", module: "模块", dreams: "空间", load: "加载", link: "链接", width: "宽度", height: "高度", website: "网页"}, "搜索": function(event, can) { can.user.input(event, can, [mdb.NAME, [ctx.ACTION, nfs.TAGS, nfs.GREP, cli.MAKE]], function(data) { can.ui.search.Update({}, [ctx.ACTION, data.action, data.name]) diff --git a/plugin/local/code/xterm.js b/plugin/local/code/xterm.js index 0de6a0fc..f8bbfa65 100644 --- a/plugin/local/code/xterm.js +++ b/plugin/local/code/xterm.js @@ -8,7 +8,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar return can.onimport._connect(can, item) } - var hash = can.sup._hash||(location.hash||"#").slice(1)||true, list = msg.Table(function(value) { + var hash = can.sup._hash||can.misc.SearchHash(can)||true, list = msg.Table(function(value) { var item = can.onimport._item(can, value); value.hash == hash && (item.click(), hash = false) }); hash && can.onimport._create(can, [mdb.TYPE, "", mdb.NAME, "term"]) }, 500) }) @@ -88,7 +88,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar can.page.style(can, sub._output, html.MAX_WIDTH, can.ConfWidth()*3/4) }) }, - grow: function(can, msg, type) { var term = can.term[msg.Option(mdb.HASH)] + grow: function(can, msg, type) { var term = can.term[msg.Option(mdb.HASH)]; if (!term) { return } switch (type) { case "data": term.write(atob(msg.Option(mdb.TEXT))); break case "exit": can.onmotion.clear(can, term._target); break @@ -117,7 +117,7 @@ Volcanos(chat.ONACTION, {help: "操作数据", list: [mdb.CREATE, lex.SPLIT, mdb Volcanos(chat.ONDETAIL, {help: "操作数据", list: ["share", "plugin", "theme", "rename", "remove"], share: function(event, can, button, item) { var msg = can.request(event); msg.Option("args", "") can.onmotion.share(event, can, [{name: chat.TITLE, value: item.name}, {name: chat.TOPIC, values: [cli.WHITE, cli.BLACK]}], [ - mdb.NAME, "web.code.xterm", mdb.TEXT, JSON.stringify([can.sup._hash]), + mdb.NAME, can._index, mdb.TEXT, JSON.stringify([can.sup._hash]), ]) }, plugin: function(event, can, button, item) { diff --git a/plugin/local/wiki/feel.css b/plugin/local/wiki/feel.css index 5d02a550..e0024173 100644 --- a/plugin/local/wiki/feel.css +++ b/plugin/local/wiki/feel.css @@ -1,2 +1,4 @@ fieldset.feel div.output img { display:block; float:left; } fieldset.feel div.output video { display:block; float:left; } +fieldset.feel.float div.output img { display:block; float:none; margin:auto; } +fieldset.feel.float div.output video { display:block; float:none; margin:auto; } diff --git a/plugin/local/wiki/feel.js b/plugin/local/wiki/feel.js index 34ec707e..21967351 100644 --- a/plugin/local/wiki/feel.js +++ b/plugin/local/wiki/feel.js @@ -7,9 +7,9 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar can.onappend.table(can, can.path, null, can.ui.content) can.onappend._status(can, can.onexport.list) - can.Action(html.HEIGHT, msg.Option(html.HEIGHT)||msg._cmds[1]||"100") + can.Action(html.HEIGHT, msg.Option(html.HEIGHT)||msg._cmds[1]||ice.AUTO) can.Action(html.SPEED, msg.Option(html.SPEED)||msg._cmds[2]||"1") - can.Action(mdb.LIMIT, msg.Option(mdb.LIMIT)||msg._cmds[3]||"6") + can.Action(mdb.LIMIT, msg.Option(mdb.LIMIT)||msg._cmds[3]||"9") can.onmotion.hidden(can, can._action) can.begin = parseInt(can.begin||msg.Option(cli.BEGIN)||"0") @@ -33,13 +33,13 @@ Volcanos(chat.ONFIGURE, {help: "组件菜单", png: function(can, path, index) { return can.onfigure.image(can, path, index) }, jpg: function(can, path, index) { return can.onfigure.image(can, path, index) }, jpeg: function(can, path, index) { return can.onfigure.image(can, path, index) }, - image: function(can, path, index) { return {img: path, height: can.Action(html.HEIGHT), + image: function(can, path, index) { return {img: path, height: can.onexport.height(can), onmouseover: function(event) { can.Status(nfs.FILE, path) }, onclick: function(event) { can.ondetail._init(can, index) }, } }, video: function(can, path) { var auto = can.user.isMobile&&can.Action(mdb.LIMIT)!="1"? false: true, loop = true, total = 0; function cb(event) { } - return {type: html.VIDEO, style: {height: parseInt(can.Action(html.HEIGHT))}, className: "preview", + return {type: html.VIDEO, style: {height: can.onexport.height(can)}, className: "preview", data: {src: path, controls: "controls", autoplay: auto, loop: loop, playbackRate: parseFloat(can.Action(html.SPEED))}, oncontextmenu: cb, onplay: cb, onpause: cb, onended: cb, onmouseover: function(event) { can.Status(nfs.FILE, path) }, @@ -55,7 +55,7 @@ Volcanos(chat.ONFIGURE, {help: "组件菜单", mov: function(can, path) { return can.onfigure.video(can, path) }, }) Volcanos(chat.ONACTION, {help: "组件菜单", list: [ - [html.HEIGHT, 100, 200, 400, 600, 800], + [html.HEIGHT, 100, 200, 400, 600, 800, ice.AUTO], [html.SPEED, 0.1, 0.2, 0.5, 1, 2, 3, 5, 10], [mdb.LIMIT, 1, 3, 6, 9, 12, 15, 20, 30, 50], ], @@ -112,6 +112,9 @@ Volcanos(chat.ONDETAIL, {help: "组件菜单", list: ["关闭", "下载", "删 "复制链接": function(event, can) { can.user.copy(event, can, can.misc.MergeURL(can, {_path: can.onimport._file(can, can.list[can.order].path)}, true)) }, }) Volcanos(chat.ONEXPORT, {help: "导出数据", list: [cli.BEGIN, mdb.LIMIT, mdb.TOTAL, nfs.FILE, "position"], + height: function(can) { var height = can.Action(html.HEIGHT) + return parseInt(height == ice.AUTO? can.base.Min(can.ConfHeight()/4, 200): height) + }, position: function(can, index, total) { total = total || can.max return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+ice.PS+parseInt(total) }, diff --git a/proto.js b/proto.js index a3bac6ef..51cab926 100644 --- a/proto.js +++ b/proto.js @@ -172,6 +172,7 @@ var chat = { "/plugin/story/trend.js", "/plugin/local/code/inner.js", "/plugin/local/code/vimer.js", + "/plugin/local/code/xterm.js", "/plugin/local/wiki/draw/path.js", "/plugin/local/wiki/draw.js", "/plugin/local/wiki/word.js",