From b4fd3441638e5e21929cdad59a94a897dc22f218 Mon Sep 17 00:00:00 2001 From: harveyshao Date: Fri, 21 Oct 2022 22:17:02 +0800 Subject: [PATCH] opt some --- panel/action.js | 7 ++-- plugin/local/code/inner.css | 2 +- plugin/local/code/inner.js | 1 + plugin/local/code/inner/syntax.js | 1 + plugin/local/team/plan.js | 70 ++++++++++--------------------- plugin/local/wiki/word.css | 1 + plugin/story/pie.js | 14 +++---- plugin/story/trend.js | 13 +++--- 8 files changed, 40 insertions(+), 69 deletions(-) diff --git a/panel/action.js b/panel/action.js index be96946a..2d95ca15 100644 --- a/panel/action.js +++ b/panel/action.js @@ -12,8 +12,8 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) { meta.id && (sub._option.dataset = sub._option.dataset||{}, sub._option.dataset.id = meta.id) sub.Mode(can.Mode()), can.page.style(can, sub._output, html.MAX_WIDTH, can.ConfWidth()) - sub.run = function(event, cmds, cb) { - return can.run(sub.request(event, {width: sub.ConfWidth(), height: sub.ConfHeight()}), can.misc.concat(can, [river, storm, meta.id||meta.index], cmds), cb) + sub.run = function(event, cmds, cb) { (!cmds || cmds[0] != ctx.ACTION) && sub.request(event, {width: sub.ConfWidth(), height: sub.ConfHeight()}) + return can.run(event, can.misc.concat(can, [river, storm, meta.id||meta.index], cmds), cb) }, can._plugins = can.misc.concat(can, can._plugins, [sub]) var tabs = [{view: [html.TABS, html.DIV, meta.name], onclick: function(event) { @@ -37,7 +37,8 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) { }) }, _cmd: function(can, item, next) { can.onengine.signal(can, chat.ONACTION_CMD) can.onappend.plugin(can, can.base.Copy(item, {mode: "cmd", opts: can.misc.Search(can)}), function(sub, meta, skip) { - sub.run = function(event, cmds, cb) { can.runActionCommand(can.request(event, {width: can.ConfWidth(), height: can.ConfHeight()}), sub._index, cmds, cb) } + sub.run = function(event, cmds, cb) { (!cmds || cmds[0] != ctx.ACTION) && can.request(event, {width: can.ConfWidth(), height: can.ConfHeight()}) + can.runActionCommand(event, sub._index, cmds, cb) } can._plugins = can.misc.concat(can, can._plugins, [sub]) can.user.title(meta.name), skip || next() }) diff --git a/plugin/local/code/inner.css b/plugin/local/code/inner.css index cf689aea..fc062b8d 100644 --- a/plugin/local/code/inner.css +++ b/plugin/local/code/inner.css @@ -7,7 +7,7 @@ fieldset.inner>div.action>div.tabs { padding:5px; margin:0 1px; } fieldset.inner>div.action>div.tabs:hover { background-color:steelblue; } fieldset.inner>div.action>div.tabs.select { background-color:steelblue; } -fieldset.inner>div.output div.project { width:240px; } +// fieldset.inner>div.output div.project { width:240px; } fieldset.inner>div.output td.content { position:relative; } fieldset.inner>div.output div.content { color:white; font-size:16px; font-family:monospace; position:relative; } fieldset.inner>div.output div.content td.line { position:sticky; left:0; text-align:right; padding:0 6px; border-right:solid 2px red; } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index eb72bb8b..15f2848c 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -360,6 +360,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar can.onmotion.clear(can), can.page.ClassList.add(can, can._fields, code.INNER), can.onlayout.profile(can) can.onimport._profile(can, can.ui.profile), can.onimport._display(can, can.ui.display) if (msg.Result() == "" && can.Option(nfs.LINE) == "1") { return } + can.page.styleWidth(can, can.ui.project, 240) can.isCmdMode() && can.ConfHeight(can.ConfHeight()+2*html.ACTION_HEIGHT) if (msg.Option(nfs.FILE)) { diff --git a/plugin/local/code/inner/syntax.js b/plugin/local/code/inner/syntax.js index e21a1ecb..b15ccf31 100644 --- a/plugin/local/code/inner/syntax.js +++ b/plugin/local/code/inner/syntax.js @@ -283,6 +283,7 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮", "case": code.KEYWORD, "default": code.KEYWORD, "return": code.KEYWORD, + "debugger": code.KEYWORD, "can": code.KEYWORD, "sub": code.KEYWORD, diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js index b4269a8f..7109c8e8 100644 --- a/plugin/local/team/plan.js +++ b/plugin/local/team/plan.js @@ -1,6 +1,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can, target), can._display_heights = {} can.ui = can.onlayout.profile(can), can.onmotion.hidden(can, can.ui.project), can.onmotion.hidden(can, can.ui.profile) - can.onimport.layout(can), can.onimport[can.Option("scale")||"week"](can, msg), can.Status(mdb.COUNT, msg.Length()) + can.onimport.layout(can), can.onimport[can.Option("scale")||"week"](can, msg) }, _content: function(can, msg, head, list, key, get, set) { var begin_time = can.base.Date(can.Option("begin_time")) var hash = {}; msg.Table(function(value, index) { var k = key(can.base.Date(value.begin_time)); hash[k] = (hash[k]||[]).concat([value]) }) @@ -12,7 +12,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( return can.onimport._task(can, msg, get(begin_time, col, row, hash), set(begin_time, col, row)) })} }) }]); if (!can.sup.task) { return } - can.onmotion.delay(can, function() { var target = can.sup.task._target; target && target.click() }) + can.onmotion.delay(can, function() { var target = can.sup.task._target; target && target.click(), can.Status(mdb.COUNT, msg.Length()) }) }, _task: function(can, msg, list, time) { return {text: ["", html.TD], ondblclick: function(event) { can.onaction.insertTask(event, can, time+can.base.Time(null, "%y-%m-%d %H:%M:%S").slice(time.length)) }, @@ -23,7 +23,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( ondragstart: function(event) { var target = event.target; can.drop = function(event, td, time) { td.append(target) can.onaction.modifyTask(event, can, task, "begin_time", time+task.begin_time.slice(time.length), task.begin_time) } }, draggable: time != undefined, title: can.onexport.title(can, task), _init: function(target) { - var item = can.onimport.item(can, {nick: task.name+":"+task.text}, function() { can.onmotion.delay(can, function() { + var item = can.onimport.item(can, {nick: task.name+ice.DF+task.text}, function() { can.onmotion.delay(can, function() { can.onmotion.select(can, can.ui.content, html.TD, target.parentNode), can.onimport._profile(can, task) }) }, null, can.ui.project); task._target = target, target.onclick = function(event) { item.click() } can.sup.task = can.sup.task||task, can.sup.task.zone == task.zone && can.sup.task.id == task.id && (can.sup.task._target = target) @@ -47,17 +47,16 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( can.onaction.modifyTask(event, can, task, key, value) }, {name: key, action: key.indexOf(mdb.TIME) > 0? "date": "key", mode: "simple"}) }, - }]) }), can.onimport.layout(can), can.onimport._display(can, task) + }]) }), can.onimport.layout(can) + task["extra.index"] && can.onimport._display(can, task) }, - _display: function(can, task) { if (!task["extra.index"]) { return } + _display: function(can, task) { can.onmotion.toggle(can, can.ui.display, true) can.onappend.plugin(can, {type: "plug", index: task["extra.index"], args: task["extra.args"], height: can.ConfHeight()/2-2*html.ACTION_HEIGHT}, function(sub, meta) { - sub.run = function(event, cmds, cb) { - can.runAction(can.request(event, kit.Dict("task.pod", task.pod, "task.zone", task.zone, "task.id", task.id)), ice.RUN, [task[mdb.ZONE], task[mdb.ID]].concat(cmds), cb) + sub.run = function(event, cmds, cb) { can.request(event, kit.Dict("task.pod", task.pod, "task.zone", task.zone, "task.id", task.id)) + can.runAction(event, ice.RUN, [task[mdb.ZONE], task[mdb.ID]].concat(cmds), cb) }, can._plugins_display = (can._plugins_display||[]).concat([sub]) sub.onaction._output = function() { - can._display_heights[[task.zone, task.id].join(ice.FS)] = can.base.Max(sub._output.offsetHeight+html.ACTION_HEIGHT+sub.onexport.statusHeight(sub), can.ConfHeight()/2) - can.onmotion.toggle(can, can.ui.display, true) - can.onimport.layout(can) + can._display_heights[[task.zone, task.id].join(ice.FS)] = can.base.Max(sub._output.offsetHeight+html.ACTION_HEIGHT+sub.onexport.statusHeight(sub), can.ConfHeight()/2), can.onimport.layout(can) }, sub.onaction.close = function() { can.onmotion.toggle(can, can.ui.display), can.onimport.layout(can) } }, can.ui.display) }, @@ -113,7 +112,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( }, layout: function(can) { if (can.isCmdMode()) { can.page.styleHeight(can, can._output, can.ConfHeight()) - var height = can._display_heights[can.sup.task? [can.sup.task.zone, can.sup.task.id].join(ice.FS): ""]||html.ACTION_HEIGHT + var height = can._display_heights[can.sup.task? [can.sup.task.zone, can.sup.task.id].join(ice.FS): ""]||200 if (can.ui.display.innerHTML && can.ui.display.style.display != html.NONE) { can.page.style(can, can.ui.content, html.HEIGHT, can.ConfHeight()-height) } else { @@ -126,7 +125,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( can.ui.display.style.display != html.NONE && can.core.List(can._plugins_display, function(sub) { sub.onimport.size(sub, can.ConfHeight()-can.ui.content.offsetHeight-html.ACTION_HEIGHT-sub.onexport.statusHeight(sub), sub.ConfWidth(can.ConfWidth()-can.ui.project.offsetWidth), true) - }) + }) } }, [""]) Volcanos(chat.ONACTION, {list: [mdb.PREV, mdb.NEXT, mdb.INSERT, mdb.EXPORT, mdb.IMPORT, @@ -146,50 +145,25 @@ Volcanos(chat.ONACTION, {list: [mdb.PREV, mdb.NEXT, mdb.INSERT, mdb.EXPORT, mdb. can.runAction(event, mdb.INSERT, [mdb.ZONE, args[1], "begin_time", time].concat(args)) }) }, - modifyTask: function(event, can, task, key, value) { - can.runAction(can.request(event, task, can.Option()), mdb.MODIFY, [key, value], function() { can.Update() }) - }, + modifyTask: function(event, can, task, key, value) { can.runAction(can.request(event, task, can.Option()), mdb.MODIFY, [key, value], function() { can.Update() }) }, _filter: function(event, can, key, value) { var count = 0 if (value == "all") { - can.page.Select(can, can.ui.content, html.DIV_ITEM, function(item) { - can.page.ClassList.del(can, item, html.HIDE), count++ - }) + can.page.Select(can, can.ui.content, html.DIV_ITEM, function(item) { can.page.ClassList.del(can, item, html.HIDE), count++ }) } else { - can.page.Select(can, can.ui.content, html.DIV_ITEM, function(item) { - can.page.ClassList.add(can, item, html.HIDE) - }) - can.page.Select(can, can.ui.content, can.core.Keys(html.DIV, value), function(item) { - can.page.ClassList.del(can, item, html.HIDE), count++ - }) - } - can.Action(key, value), can.Status(mdb.COUNT, count) + can.page.Select(can, can.ui.content, html.DIV_ITEM, function(item) { can.page.ClassList.add(can, item, html.HIDE) }) + can.page.Select(can, can.ui.content, can.core.Keys(html.DIV, value), function(item) { can.page.ClassList.del(can, item, html.HIDE), count++ }) + } can.Action(key, value), can.Status(mdb.COUNT, count) }, status: function(event, can, key, value) { can.onaction._filter(event, can, key, value) }, - level: function(event, can, key, value) { can.onaction._filter(event, can, key, value) }, - score: function(event, can, key, value) { can.onaction._filter(event, can, key, value) }, - view: function(event, can, key, value) { can.Action(key, value) - can.onmotion.clear(can, can.ui.project), can.onmotion.clear(can, can.ui.content) - can.onimport[can.Option("scale")](can, can._msg) - }, + level: function(event, can, key, value) { value && can.onaction._filter(event, can, key, value) }, + score: function(event, can, key, value) { value && can.onaction._filter(event, can, key, value) }, + view: function(event, can, key, value) { can.Action(key, value), can.onmotion.clear(can, can.ui.project), can.onmotion.clear(can, can.ui.content), can.onimport[can.Option("scale")](can, can._msg) }, }) Volcanos(chat.ONEXPORT, {list: [mdb.COUNT, "begin_time", mdb.ZONE, mdb.ID, mdb.TYPE, mdb.NAME, mdb.TEXT], - span: function(can) { - switch (can.Option("scale")) { - case "day": return 24*3600*1000 - case "week": return 7*24*3600*1000 - case "month": return 30*24*3600*1000 - case "year": return 365*24*3600*1000 - case "long": return 365*24*3600*1000 - default: return 0 - } - }, - hash: function(can, task) { if (!can.isCmdMode()) { return } - location.hash = [task.zone, task.id].join(ice.FS) - }, - head: function(can, scale) { if (["year", "long"].indexOf(scale) > -1) { return } - return [scale].concat(can.user.info.language == "en"? ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]); - }, + span: function(can) { return {"day": 24*3600*1000, "week": 7*24*3600*1000, "month": 30*24*3600*1000, "year": 365*24*3600*1000, "long": 365*24*3600*1000}[can.Option("scale")]||0 }, + hash: function(can, task) { if (!can.isCmdMode()) { return } location.hash = [task.zone, task.id].join(ice.FS) }, + head: function(can, scale) { if (["year", "long"].indexOf(scale) > -1) { return } return [scale].concat(can.user.info.language == "en"? ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]); }, name: function(can, task) { return task.name }, text: function(can, task) { return task.name+": "+(task.text||"") }, level: function(can, task) { return "l-"+(task.level||3)+": "+(task.name||"") }, diff --git a/plugin/local/wiki/word.css b/plugin/local/wiki/word.css index 28010615..71620777 100644 --- a/plugin/local/wiki/word.css +++ b/plugin/local/wiki/word.css @@ -1,5 +1,6 @@ fieldset.word form.option input[name=path] { width:127px; } fieldset.word>form.option>div.item>input[name=path] { width:320px; } +body.webview fieldset.word>form.option>div.item>input[name=path] { width:160px; } fieldset.word>div.navmenu { background-color:inherit; overflow:auto; min-width:120px; clear:both; float:left; } fieldset.word>div.navmenu div.list { margin-left:20px; } diff --git a/plugin/story/pie.js b/plugin/story/pie.js index cc6b8e61..d8f19bd5 100644 --- a/plugin/story/pie.js +++ b/plugin/story/pie.js @@ -1,23 +1,19 @@ -Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) { - can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg) - +Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) { can.onmotion.clear(can) var color = [cli.RED, cli.YELLOW, cli.GREEN, cli.CYAN, cli.BLUE, cli.PURPLE] var color = ["#3300FF", "#2196F3", "#4CAF50", "#CDDC39", "#FFEB3B", "#9C27B0", "#795548", "#607D8B", "#CC33FF"] var height = msg.Option(html.HEIGHT)||can.ConfHeight() - can.page.ClassList.add(can, can._fields, "draw") - can.require(["/plugin/local/wiki/draw.js", "/plugin/local/wiki/draw/path.js"], function() { - can.onimport._show(can, msg), can.onappend._status(can, [].concat(msg.append, ["weight"])) + can.page.ClassList.add(can, can._fields, "draw"), can.onmotion.hidden(can, can._action) + can.require(["/plugin/local/wiki/draw.js", "/plugin/local/wiki/draw/path.js"], function() { can.onimport._show(can, msg) var margin = height/8, r = height/2-margin; can.svg.Val(html.WIDTH, 2*(r+margin)), can.svg.Val(html.HEIGHT, 2*(r+margin)) can.onimport._draw(can, msg, can.Conf(mdb.FIELD), color, r+margin, r+margin, r, margin, 0) can.page.style(can, can.ui.project, html.MAX_WIDTH, can.ConfWidth()-height) can.onmotion.clear(can, can.ui.project), can.onmotion.toggle(can, can.ui.project, true) can.onappend.table(can, msg, null, can.ui.project), can.page.Select(can, can.ui.project, html.TR, function(tr, index) { - can.page.Modify(can, tr, {onmouseenter: function(event) { - can.onimport._draw(can, msg, can.Conf(mdb.FIELD), color, r+margin, r+margin, r, margin, index-1) - }}) + can.page.Modify(can, tr, {onmouseenter: function(event) { can.onimport._draw(can, msg, can.Conf(mdb.FIELD), color, r+margin, r+margin, r, margin, index-1) }}) }) + can.base.isFunc(cb) && cb(msg), can.onappend._status(can, [].concat(msg.append, ["weight"])) }) }, _draw: function(can, msg, field, color, x, y, r, margin, which) { field = field||mdb.VALUE diff --git a/plugin/story/trend.js b/plugin/story/trend.js index 4d859681..0672e13d 100644 --- a/plugin/story/trend.js +++ b/plugin/story/trend.js @@ -1,12 +1,9 @@ -Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) { can.onmotion.clear(can) - can.data = msg.Table(), can.onimport._sum(can) - can.Action(html.HEIGHT, msg.Option(html.HEIGHT)||ice.AUTO) - can.Action(html.SPEED, parseInt(msg.Option(html.SPEED)||"100")) - can.page.ClassList.add(can, can._fields, "draw") +Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) { + can.onmotion.clear(can), can.page.ClassList.add(can, can._fields, "draw") can.require(["/plugin/local/wiki/draw.js", "/plugin/local/wiki/draw/path.js"], function() { - can.base.isFunc(cb) && cb(msg) - can.onimport.layout(can) - can.base.isFunc(cb) && cb(msg) + can.data = msg.Table(), can.onimport._sum(can) + can.base.isFunc(cb) && cb(msg), can.onimport.layout(can), can.base.isFunc(cb) && cb(msg) + can.data = msg.Table(), can.onimport._sum(can) }) }, _sum: function(can) {