diff --git a/frame.js b/frame.js index 065b960d..5c443c2f 100644 --- a/frame.js +++ b/frame.js @@ -569,9 +569,6 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { if (key == ctx.ACTION && msg.IsDetail()) { can.onappend.style(can, ctx.ACTION, target.parentNode) } - if (can.base.isIn(key, mdb.TYPE, mdb.STATUS)) { - can.onappend.style(can, value, can.page.parentNode(can, target, html.TABLE)) - } key == ctx.ACTION && can.onappend.mores(can, target, data, msg.IsDetail()? 10: html.TABLE_BUTTON) var list = can.page.Select(can, target, html.INPUT, function(target) { var _icon = can.Conf("_icons."+target.name)||icon[target.name]; if (_icon && typeof _icon == code.STRING || target.name == mdb.DELETE) { return target } @@ -587,6 +584,10 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { }} }); table && can.onappend.style(can, chat.CONTENT, table), table && msg.IsDetail() && can.onappend.style(can, mdb.DETAIL, table) msg.append && msg.append[msg.append.length-1] == ctx.ACTION && can.onappend.style(can, ctx.ACTION, table) + if (table && msg.IsDetail()) { + can.onappend.style(can, msg.Append(mdb.TYPE), table) + can.onappend.style(can, msg.Append(mdb.STATUS), table) + } if (msg.Option(ice.TABLE_CHECKBOX) == ice.TRUE && !msg.IsDetail()) { can.onappend.checkbox(can, table, msg), can.onappend.style(can, html.CHECKBOX, table) } // (can.isCmdMode() || table.offsetWidth > can.ConfWidth() / 2) && can.onappend.style(can, "full", table) diff --git a/index.css b/index.css index db6cc3b7..7b1766fc 100644 --- a/index.css +++ b/index.css @@ -114,6 +114,7 @@ table.content td i { padding:var(--input-padding); } table.content.detail td:first-child { text-align:center; } table.content.detail td:first-child { background-color:var(--plugin-bg-color); position:sticky; left:0; } table.content.detail td i { display:none; } +table.content.detail td { white-space:break-spaces; } table.content.detail tr.action { background-color:var(--plugin-bg-color); position:sticky; bottom:0; } table.content.detail tr.action td { box-shadow:var(--box-shadow); } table.content.detail tr.action input.icons { display:none; } @@ -749,6 +750,7 @@ fieldset.Action:not(.horizon):not(.grid)>fieldset.plugin>form.option>div.item.te fieldset.inner.float>div.status { display:none; } fieldset.user>form.option>div.item.username input { width:var(--form-width); } fieldset.offer>div.output>table.content tr.invite { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } +fieldset.apply>div.output>table.content.detail.apply tr.action td.action { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } fieldset.inner>div.output>div.project div.item.modify { background-color:#00800036; } fieldset.vimer>div.output>div.project div.item.modify { background-color:#00800036; } fieldset.vimer>div.output>div.project>div.zone.space div.item.stop { color:var(--disable-fg-color); } diff --git a/lib/misc.js b/lib/misc.js index 930097c3..1d4321c5 100644 --- a/lib/misc.js +++ b/lib/misc.js @@ -32,6 +32,15 @@ Volcanos("misc", { }, Append: function(key, val) { if (key == undefined) { return msg.append || [] } if (can.base.isObject(key)) { return can.core.Item(key, msg.Append) } + if (msg.IsDetail()) { + for (var i = 0; i < msg.key.length; i++) { + if (msg.key[i] == key) { + if (val != undefined) { msg.value[i] = val } + return msg.value[i] + } + } + return + } if (val == undefined) { return can.base.isIn(key, msg.append) && msg[key] && msg[key][0] || "" } return msg.append = can.base.AddUniq(msg.append, key), msg[key] = can.core.List(arguments).slice(1), val }, diff --git a/plugin/local/team/plan.css b/plugin/local/team/plan.css index 6e32e59d..20c1e450 100644 --- a/plugin/local/team/plan.css +++ b/plugin/local/team/plan.css @@ -13,7 +13,8 @@ fieldset.plan>div.output>div.layout>div.layout>div.content>table.content td div. fieldset.plan>div.output>div.layout>div.layout>div.content>table.content td div.process { background-color:#00800070; } fieldset.plan>div.output>div.layout>div.layout>div.content>table.content td div.cancel { background-color:#ff000070; text-decoration:line-through; } fieldset.plan>div.output>div.layout>div.layout>div.content>table.content td div.finish { background-color:#8080809c; } -fieldset.plan>div.output>div.layout>div.layout>div.content>table.content tr:first-child { height:30px; position:sticky; top:2px; z-index:2; } -fieldset.plan>div.output>div.layout>div.layout>div.content>table.content th:first-child { width:40px; position:sticky; left:2px; z-index:2; } +fieldset.plan>div.output>div.layout>div.layout>div.content>table.content tr:first-child { height:30px; position:sticky; top:2px; z-index:1; } +fieldset.plan>div.output>div.layout>div.layout>div.content>table.content thead tr:first-child { z-index:2; } +fieldset.plan>div.output>div.layout>div.layout>div.content>table.content th:first-child { width:40px; position:sticky; left:2px; } fieldset.plan>div.output>div.layout>div.layout>div.profile>table.content tr:first-child { height:30px; position:sticky; top:2px; } fieldset.plan.story>form.option>div.item.scale { display:none; } diff --git a/plugin/state.js b/plugin/state.js index f06864c0..1b009c46 100644 --- a/plugin/state.js +++ b/plugin/state.js @@ -14,13 +14,15 @@ Volcanos(chat.ONIMPORT, { _cookie: function(can, msg) { can.misc.Cookie(can, msg._arg[0], msg._arg[1]), can.Update() }, _session: function(can, msg) { can.misc.sessionStorage(can, msg._arg[0], msg._arg[1]), can.Update() }, _field: function(can, msg, cb) { var height = can.base.Max(html.STORY_HEIGHT, can.ConfHeight()-2*html.ACTION_HEIGHT), width = can.ConfWidth() - msg.Table(function(item) { can.onappend._plugin(can, item, {index: item.index, args: can.base.Obj(item.args||item.arg, []), height: height, width: width}, function(sub) { - sub.run = function(event, cmds, cb) { var index = msg.Option(ice.MSG_INDEX); can.run(can.request(event, {pod: item.space}), (msg[ice.MSG_PREFIX]? msg[ice.MSG_PREFIX]: index? [ctx.RUN, index]: []).concat(cmds), cb, true) } - if (item.style != html.FLOAT && can.base.isIn(sub.ConfIndex(), wiki.PORTAL, chat.IFRAME, chat.DESKTOP, wiki.WORD, code.VIMER,)) { height = can.base.Max(can.onexport.outputHeight(can), can.ConfHeight(), 480) } - can.page.ClassList.has(can, sub._target, html.FLOAT)? can.onmotion.float(sub): sub.onimport.size(sub, height, width, true), cb && cb(sub) - if (item.style == html.FLOAT) { return } can.onmotion.delay(can, function() { can.onmotion.scrollIntoView(can, sub._target) }, 300) - if (can.base.isIn(sub.ConfIndex(), wiki.WORD)) { sub.onexport.output = function() { can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") } } - }) }) + msg.Table(function(item) { if (can.page.tagis(can._target, html.FIELDSET_STORY) || can._msg.IsDetail()) { item.style = item.style||html.FLOAT } + can.onappend._plugin(can, item, {index: item.index, args: can.base.Obj(item.args||item.arg, []), height: height, width: width}, function(sub) { + sub.run = function(event, cmds, cb) { var index = msg.Option(ice.MSG_INDEX); can.run(can.request(event, {pod: item.space}), (msg[ice.MSG_PREFIX]? msg[ice.MSG_PREFIX]: index? [ctx.RUN, index]: []).concat(cmds), cb, true) } + if (item.style != html.FLOAT && can.base.isIn(sub.ConfIndex(), wiki.PORTAL, chat.IFRAME, chat.DESKTOP, wiki.WORD, code.VIMER,)) { height = can.base.Max(can.onexport.outputHeight(can), can.ConfHeight(), 480) } + can.page.ClassList.has(can, sub._target, html.FLOAT)? can.onmotion.float(sub): sub.onimport.size(sub, height, width, true), cb && cb(sub) + if (item.style == html.FLOAT) { return } can.onmotion.delay(can, function() { can.onmotion.scrollIntoView(can, sub._target) }, 300) + if (can.base.isIn(sub.ConfIndex(), wiki.WORD)) { sub.onexport.output = function() { can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") } } + }) + }) }, _float: function(can, msg) { can.onimport._field(can, msg, function(sub) { can.onmotion.float(sub) }) }, _hold: function(can, msg, arg) { can.user.toast(can, arg||ice.SUCCESS) }, diff --git a/plugin/table.js b/plugin/table.js index 4c02e89f..bde48a01 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -50,7 +50,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { zone: function(can, list, target) { return can.page.Append(can, target, can.core.List(list, function(zone) { can.base.isString(zone) && (zone = {name: zone}); if (!zone) { return } zone._layout = function() { var height = target.offsetHeight, count = 0 - // debugger can.page.SelectChild(can, target, "", function(target) { can.page.SelectChild(can, target, html.DIV_ITEM, function(target) { height -= target.offsetHeight }) can.page.SelectChild(can, target, html.DIV_ACTION, function(target) { height -= target.offsetHeight })