From fbfac0fe6c0e82b20da31f39870ab5d963b190d2 Mon Sep 17 00:00:00 2001 From: harveyshao Date: Sun, 27 Mar 2022 15:32:09 +0800 Subject: [PATCH] opt action --- frame.js | 9 ++++++--- page/index.css | 7 ++++++- panel/action.js | 1 + plugin/local/code/inner.js | 5 ++++- plugin/local/team/plan.js | 2 +- plugin/local/wiki/word.js | 2 ++ plugin/table.js | 6 +++--- 7 files changed, 23 insertions(+), 9 deletions(-) diff --git a/frame.js b/frame.js index 5ced5e6d..bd72a17f 100644 --- a/frame.js +++ b/frame.js @@ -257,7 +257,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, !silent && can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)||meta.display||meta.feature.display) }) }, - _output: function(can, msg, display, output, action) { display = display||chat.PLUGIN_TABLE_JS, output = output||can._output + _output: function(can, msg, display, output, action, cb) { display = display||chat.PLUGIN_TABLE_JS, output = output||can._output Volcanos(display, {_follow: can.core.Keys(can._follow, display), _display: display, _target: output, _fields: can._target, _option: can._option, _action: can._action, _output: can._output, _status: can._status, _legend: can._legend, _inputs: {}, Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status, @@ -275,7 +275,8 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, can.core.CallFunc([table, chat.ONIMPORT, "_init"], {can: table, msg: msg, list: msg.result||msg.append||[], cb: function(msg) { action === false || table.onappend._action(table, msg.Option(ice.MSG_ACTION)||can.Conf(ice.MSG_ACTION), action) action === false || table.onappend._status(table, msg.Option(ice.MSG_STATUS)) - }, target: output}) + can.base.isFunc(cb) && cb(msg) + }, target: output||can._output}) }) }, _status: function(can, list, status) { status = status||can._status, can.onmotion.clear(can, status) @@ -361,8 +362,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, item.type == html.TEXT && can.onkeymap.input(event, can), can.onmotion.selectField(event, can) }, list: [input]}]).concat(br))[item.name] }, - table: function(can, msg, cb, target, sort) { + table: function(can, msg, cb, target, sort) { var isaction = false var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key, index, line, array) { + if (key == "action") { isaction = true } if (msg.append.length == 2 && msg.append[0] == mdb.KEY && msg.append[1] == mdb.VALUE) { if (key == mdb.VALUE) { key = line.key } line = {}, can.core.List(array, function(item) { line[item.key] = item.value }) @@ -399,6 +401,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, can.onmotion.modifys(can, event.target, function(event, value, old) { run([ctx.ACTION, mdb.MODIFY, key, value]) }, item) }} }); table && can.page.Modify(can, table, {className: chat.CONTENT}) + if (isaction) { can.page.ClassList.add(can, table, "action") } return sort && can.page.RangeTable(can, table, sort), table }, board: function(can, text, target) { text && text.Result && (text = text.Result()); if (!text) { return } diff --git a/page/index.css b/page/index.css index 127fad98..52ce2745 100644 --- a/page/index.css +++ b/page/index.css @@ -28,6 +28,11 @@ table.content tr { background-color:#04272f45; } table.content tr.show { background-color:red; } table.content th { background-color:#0fbd45; padding:2px 6px; } table.content td { padding:2px 6px; max-width:800px; } +table.content.action td:last-child, table.content.action th:last-child { +background-color:#7dc6d7eb; + position:sticky; + right:0; +} td>input[type=button][name=create] { background-color:blue; } td>input[type=button][name=remove] { background-color:red; } @@ -36,7 +41,7 @@ td>input[type=button][name=stop] { background-color:red; } div.tabs { background-color:#00000038; color:white; padding:5px; margin:0 1px; } div.code { background-color:#343a3445; color:white; padding:10px; border:solid 3px green; } -div.story[data-type=spark] { background-color:#2169a9a6; color:white; padding:4px 10px; border-left:solid 4px blue; margin:10px 0px; } +div.story[data-type=spark] { background-color:#2169a9a6; color:white; padding:4px 10px; border-left:solid 4px blue; margin:10px; } form.option>div.item { margin-right:3px; } form.option>div.item.select { background-color:#0000; } diff --git a/panel/action.js b/panel/action.js index d44ff816..012992bd 100644 --- a/panel/action.js +++ b/panel/action.js @@ -58,6 +58,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg) opts: can.misc.Search(can), }) can.onappend.plugin(can, item, function(sub, meta, skip) { + can.page.style(can, sub._output, html.MAX_WIDTH, window.innerWidth) can.user.title(meta.name), skip || next() }) }, diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index dd2d92be..d74c335d 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -170,7 +170,9 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target }) }) } else if (msg.Option(ice.MSG_DISPLAY) != "") { - can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY), target, false) + can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY), target, false, function(msg) { + can.onimport.layout(can) + }) } else { can.onappend.table(can, msg, null, target) can.onappend.board(can, msg, target) @@ -189,6 +191,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target can.page.styleWidth(can, can.ui.profile_output, can.profile_size[can.onexport.keys(can)]||(width-can.ui.project.offsetWidth)/2) can.page.styleWidth(can, can.ui.content, width-can.ui.project.offsetWidth-can.ui.profile.offsetWidth) + can.page.styleWidth(can, can.ui.display, width-can.ui.project.offsetWidth) if (!height) { return } can.page.style(can, can.ui.content, can.user.mod.isCmd? html.HEIGHT: html.MAX_HEIGHT, height) diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js index f4fc48b9..c5437940 100644 --- a/plugin/local/team/plan.js +++ b/plugin/local/team/plan.js @@ -3,7 +3,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.ui = can.onlayout.profile(can) can.onmotion.hidden(can, can._action) can.onimport[can.Option("scale")||"week"](can, msg) - can.page.Modify(can, can._output, {style: {"min-height": 452}}) + // can.page.Modify(can, can._output, {style: {"min-height": 452}}) can.page.Modify(can, can.ui.project, {style: {"max-height": can.ui.content.offsetHeight}}) can.page.Modify(can, can.ui.profile, {style: {"max-height": can.ui.content.offsetHeight}}) can.page.Modify(can, can.ui.profile, {style: {display: "block"}}) diff --git a/plugin/local/wiki/word.js b/plugin/local/wiki/word.js index f2957086..c540b88a 100644 --- a/plugin/local/wiki/word.js +++ b/plugin/local/wiki/word.js @@ -6,6 +6,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target can.page.Select(can, target, wiki.ITEM, function(item) { var data = item.dataset||{} can.core.CallFunc([can.onimport, data.type], [can, data, item]) can.page.Modify(can, item, {style: can.base.Obj(data.style)}) + can.page.style(can, item, html.MAX_WIDTH, can.ConfWidth()-(can.user.isWindows? 40: 30)) }) }, navmenu: function(can, data, target) { var nav = can.sup._navmenu @@ -105,6 +106,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target } sub.ConfHeight(can.ConfHeight()) sub.ConfWidth(item.width = (width||can.ConfWidth())-(can.user.isWindows? 40: 20)) + can.page.style(can, sub._output, html.MAX_WIDTH, sub.ConfWidth()) can.core.Value(item, "auto.cmd") && can.core.Timer300ms(function() { var msg = sub.request({}, can.core.Value(item, "opts")); msg.Option(ice.MSG_HANDLE, ice.TRUE) diff --git a/plugin/table.js b/plugin/table.js index 52983d1e..a065e9dc 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -1,7 +1,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, cb, target) { - can.onmotion.clear(can) - can.onappend.table(can, msg) - can.onappend.board(can, msg) + can.onmotion.clear(can, target) + can.onappend.table(can, msg, null, target) + can.onappend.board(can, msg, target) can.onmotion.story.auto(can) can.base.isFunc(cb) && cb(msg) },