From 3de3c9afa60828261f2819a32613c44d02508821 Mon Sep 17 00:00:00 2001 From: shylinux Date: Sat, 3 Jun 2023 10:17:02 +0800 Subject: [PATCH] add node --- frame.js | 24 ++++++++++++------------ panel/search.js | 8 +++++++- proto.js | 4 ++++ 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/frame.js b/frame.js index 8d8ba456..6f122228 100644 --- a/frame.js +++ b/frame.js @@ -416,19 +416,19 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { }, board: function(can, text, target) { text && text.Result && (text = text.Result()); if (!text) { return } var code = can.page.Append(can, target||can._output, [{text: [can.page.Color(text), html.DIV, html.CODE]}]).code - can.page.SelectChild(can, code, "iframe", function(target) { + if (text.indexOf(" 0) { - can.page.Select(can, target, html.FIELDSET, function(target) { var data = target.dataset - data.index && can.onappend.plugin(can, {index: data.index}, function(sub) { - can.page.Modify(can, sub._legend, data.index.split(nfs.PT).pop()) - }, can._output, target) - }) - } - can.page.Select(can, code, html.INPUT_BUTTON, function(target) { target.onclick = function(event) { can.misc.Event(event, can, function(msg) { - can.run(can.request(event, can.Option()), [ctx.ACTION, target.name]) - }) } }); return code.scrollBy && code.scrollBy(0, 10000), code + }) } else if (text.indexOf(" 0) { can.page.Select(can, code, html.SVG, function(target) { + can.page.style(can, target, {height: can.ConfHeight(), width: can.ConfWidth()}) + }) } else { can.page.Select(can, code, html.INPUT_BUTTON, function(target) { + target.onclick = function(event) { can.misc.Event(event, can, function(msg) { + can.run(can.request(event, can.Option()), [ctx.ACTION, target.name]) + }) } + }) } return code.scrollBy && code.scrollBy(0, 10000), code }, tools: function(can, msg, cb, target) { can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT), []), cb, target) }, layout: function(can, list, type, target) { const FLOW = html.FLOW, FLEX = html.FLEX diff --git a/panel/search.js b/panel/search.js index 10287cb2..e9566e91 100644 --- a/panel/search.js +++ b/panel/search.js @@ -52,7 +52,13 @@ Volcanos(chat.ONACTION, {_init: function(can) { can.onmotion.hidden(can) }, list if (data.type == ssh.SHELL) { meta = {index: web.CODE_XTERM, args: [data.text]} } 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.SHY) { meta = {index: web.WIKI_WORD, args: data.name} } + if (data.type == nfs.SHY) { meta = {index: web.WIKI_WORD, args: 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.onappend.plugin(can, meta, function(sub) { can._plugins = (can._plugins||[]).concat(sub), sub.onimport.size(sub, can.ConfHeight(), can.ConfWidth()-1, true), sub.Focus() }, can.ui.profile) + }), can.onappend.board(can, msg.Result(), can.ui.profile) }) + return + } can.onappend.plugin(can, meta, function(sub) { can._plugins = (can._plugins||[]).concat(sub), sub.onimport.size(sub, can.ConfHeight(), can.ConfWidth()-1, true), sub.Focus() }, can.ui.profile) }, }) diff --git a/proto.js b/proto.js index 89583cc4..015aa725 100644 --- a/proto.js +++ b/proto.js @@ -51,6 +51,8 @@ var ice = { LIB_MISC: "lib/misc.js", LIB_PAGE: "lib/page.js", REQUIRE: "require", + + NFS: "nfs", } var ctx = { @@ -128,6 +130,7 @@ var nfs = { _CSS: ".css", _JS: ".js", DF: ice.DF, PS: ice.PS, PT: ice.PT, PWD: "./", SRC: "src/", USR: "usr/", + PACK: "pack", IMAGE_PNG: "image/png", IMAGE_JPEG: "image/jpeg", @@ -138,6 +141,7 @@ var cli = { COLOR: "color", BLACK: "black", WHITE: "white", BLUE: "blue", RED: "red", GRAY: "gray", CYAN: "cyan", GREEN: "green", PURPLE: "purple", YELLOW: "yellow", MAGENTA: "magenta", SILVER: "silver", ALICEBLUE: "aliceblue", TRANSPARENT: "transparent", MAKE: "make", MAIN: "main", EXEC: "exec", DONE: "done", COST: "cost", FROM: "from", CLEAR: "clear", + RUN: "run", PLAY: "play", OPENS: "opens", LINUX: "linux", DARWIN: "darwin", WINDOWS: "windows",