From 1b366f158e28f377b80b78427bcb8ab264ca0e10 Mon Sep 17 00:00:00 2001 From: harveyshao Date: Thu, 24 Nov 2022 23:37:08 +0800 Subject: [PATCH] opt mdb --- panel/action.js | 2 +- plugin/local/code/inner/syntax.js | 3 +++ plugin/state.js | 18 ++++++++++++------ proto.js | 7 +++++++ 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/panel/action.js b/panel/action.js index c829847d..e4914636 100644 --- a/panel/action.js +++ b/panel/action.js @@ -15,7 +15,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { can.onmotion.clear(can) _cmd: function(can, item, next) { can.base.Copy(item, {type: chat.PLUGIN, mode: chat.CMD, opts: can.misc.Search(can)}), can.onengine.signal(can, chat.ONACTION_CMD) can.onappend.plugin(can, item, function(sub, meta, skip) { can.onimport._run(can, sub, function(event, cmds, cb) { return can.runActionCommand(event, sub._index, cmds, cb||function(msg) { - sub.onimport._process(sub, msg) + sub.onimport._process(sub, msg) || sub.Update() }) }), can.user.title(meta.name), skip || next() }), can.onlayout._init(can) }, diff --git a/plugin/local/code/inner/syntax.js b/plugin/local/code/inner/syntax.js index fdccba08..a080bd3d 100644 --- a/plugin/local/code/inner/syntax.js +++ b/plugin/local/code/inner/syntax.js @@ -177,6 +177,7 @@ Volcanos(chat.ONSYNTAX, { }, regexp: { "[0-9]+": code.CONSTANT, + "[A-Z_0-9]+": code.CONSTANT, }, prefix: { "//": code.COMMENT, @@ -221,6 +222,8 @@ Volcanos(chat.ONSYNTAX, { "float32": code.DATATYPE, "float64": code.DATATYPE, "complex64": code.DATATYPE, "complex128": code.DATATYPE, "rune": code.DATATYPE, "string": code.DATATYPE, "byte": code.DATATYPE, "uintptr": code.DATATYPE, "bool": code.DATATYPE, "error": code.DATATYPE, "chan": code.DATATYPE, "map": code.DATATYPE, + "Any": code.DATATYPE, "Map": code.DATATYPE, "Maps": code.DATATYPE, + "Message": code.DATATYPE, "msg": code.FUNCTION, "m": code.FUNCTION, "ice": code.FUNCTION, "kit": code.FUNCTION, diff --git a/plugin/state.js b/plugin/state.js index b9a8cc24..8cb5a63e 100644 --- a/plugin/state.js +++ b/plugin/state.js @@ -1,6 +1,5 @@ Volcanos(chat.ONIMPORT, {_process: function(can, msg) { msg.OptionStatus() && can.onmotion.clear(can, can._status) && can.onappend._status(can, msg.OptionStatus()) - console.log("what", msg) return can.core.CallFunc([can.onimport, msg.OptionProcess()], {can: can, msg: msg}) }, _location: function(can, msg, _arg) { can.user.jumps(_arg); return true }, @@ -18,6 +17,10 @@ Volcanos(chat.ONIMPORT, {_process: function(can, msg) { }; return can.Update() }, _display: function(can, msg) { return can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)), true }, + _clear: function(can, msg) { + can.onmotion.clear(can) + return true + }, _inner: function(can, msg) { can.onappend.table(can, msg), can.onappend.board(can, msg), can.onmotion.story.auto(can) can.page.style(can, can._output, html.DISPLAY, html.BLOCK); return true @@ -72,9 +75,7 @@ Volcanos(chat.ONIMPORT, {_process: function(can, msg) { return can.page.style(can, div, html.MAX_HEIGHT, 400), can.page.Append(can, div, [{text: _arg}]), div.scrollBy(0, 10000), true }).length == 0) { can.onappend.board(can, _arg) } return true }, - _open: function(can, msg, _arg) { - console.log("what", _arg) - return can.user.open(_arg), true }, + _open: function(can, msg, _arg) { return can.user.open(_arg), true }, size: function(can, height, width, auto, mode) { if (auto) { @@ -97,7 +98,7 @@ Volcanos(chat.ONIMPORT, {_process: function(can, msg) { Volcanos(chat.ONACTION, {list: [ "刷新界面", "刷新数据", "切换浮动", "切换全屏", "共享工具", "远程控制", "打开链接", "生成链接", "生成脚本", "生成图片", [ "其它", "保存参数", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据", - "查看文档", "查看脚本", "查看源码", "查看配置", "删除配置", "删除工具", + "查看文档", "查看脚本", "查看源码", "查看配置", "清理配置", "导出配置", "导入配置", "删除配置", "删除工具", ], ], _engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input())) }, @@ -164,7 +165,12 @@ Volcanos(chat.ONACTION, {list: [ "查看脚本": function(event, can) { can.runAction(event, ctx.CONFIG, [nfs.SCRIPT]) }, "查看源码": function(event, can) { can.runAction(event, ctx.CONFIG, [nfs.SOURCE]) }, "查看配置": function(event, can) { can.runAction(event, ctx.CONFIG, [mdb.SELECT]) }, - "删除配置": function(event, can) { can.runAction(event, ctx.CONFIG, [mdb.REMOVE]) }, + "清理配置": function(event, can) { can.runActionInputs(event, [ctx.ACTION, mdb.PRUNES]) }, + "导出配置": function(event, can) { can.runAction(event, mdb.EXPORT) }, + "导入配置": function(event, can) { can.runAction(event, mdb.IMPORT) }, + "删除配置": function(event, can) { can.runAction(event, ctx.CONFIG, [mdb.REMOVE], function() { + can.user.toastProcess(can), can.onmotion.delay(can, function() { can.user.toastSuccess(can), can.Update() }, 1000) + }) }, "删除工具": function(event, can) { can.page.Remove(can, can._target) }, refresh: function(event, can) { diff --git a/proto.js b/proto.js index 0c90379a..716d58d7 100644 --- a/proto.js +++ b/proto.js @@ -298,6 +298,13 @@ var Volcanos = shy({iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {} return msg }, + runActionInputs: function(event, cmds, cb) { var msg = can.request(event), meta = can.Conf() + if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]}) + if (can.base.isFunc(meta.feature[cmds[1]])) { return meta.feature[cmds[1]](can, msg, cmds.slice(2)) } + return can.user.input(event, can, meta.feature[cmds[1]], function(args) { can.Update(can.request(event, {_handle: ice.TRUE}, can.Option()), cmds.slice(0, 2).concat(args)) }) + } + can.runAction(event, cmds[1], cmds.slice(2), cb, true) + }, runActionCommand: function(event, index, args, cb) { can.runAction(event, ice.RUN, can.misc.concat(can, [index], args), cb, true) }, runAction: function(event, action, args, cb, silent) { can.run(can.request(event, {_handle: ice.TRUE}, can.Option()), can.misc.concat(can, [ctx.ACTION].concat(action), args), cb, silent)