From aa139537a9161382fe9be7759afee0467ef16fff Mon Sep 17 00:00:00 2001 From: shy Date: Tue, 13 Feb 2024 15:48:22 +0800 Subject: [PATCH] add matrix --- const.js | 2 ++ frame.js | 27 ++++++++++++++++++--------- index.css | 4 ++-- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/const.js b/const.js index f1499c67..56f86d14 100644 --- a/const.js +++ b/const.js @@ -190,6 +190,8 @@ var nfs = { USR_ICONS: "usr/icons/", USR_GEOAREA: "usr/geoarea/", USR_PROGRAM: "usr/program/", USR_INTSHELL: "usr/intshell/", USR_VOLCANOS: "usr/volcanos/", USR_LEARNING: "usr/learning/", USR_NODE_MODULES: "usr/node_modules/", + USR_ICONS_ICEBERGS: "usr/icons/icebergs.jpg", + USR_ICONS_VOLCANOS: "usr/icons/volcanos.jpg", REQUIRE: "/require/", REQUIRE_MODULES: "/require/modules/", SHARE_CACHE: "/share/cache/", SHARE_LOCAL: "/share/local/", diff --git a/frame.js b/frame.js index e3c8dc23..605df928 100644 --- a/frame.js +++ b/frame.js @@ -441,15 +441,6 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { }) }, _init: function(target) { can.page.style(can, target, html.WIDTH, (select.offsetWidth||80)+30), can.onappend.style(can, html.HIDE, select) }}, {icon: mdb.SELECT}]) }, - label: function(can, value, icons) { - return {view: html.STATUS, list: can.core.Item(icons||{version: "bi bi-tags", - time: can.base.isIn(can.ConfIndex(), web.DREAM, web.STORE)? "bi bi-tools": "bi bi-clock-history", - }, function(name, icon) { var text = value[name] - if (name == nfs.VERSION) { text = value.version.split("-").slice(0, 2).join("-") } - if (name == mdb.TIME) { text = can.base.TimeTrim(value[name]) } - return value[name] && {view: [[html.ITEM]], list: [{icon: icon}, {text: text}]} - })} - }, checkbox: function(can, table, msg) { can.page.Select(can, table, "tr>th:first-child,tr>td:first-child", function(target) { can.page.insertBefore(can, [{type: target.tagName, list: [{type: html.INPUT, data: {type: html.CHECKBOX}, onchange: function(event) { @@ -464,6 +455,24 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { can.page.insertBefore(can, [{type: target.tagName, className: html.CHECKBOX}], target) }) }, + buttons: function(can, value) { + return {view: html.ACTION, inner: value.action, _init: function(target) { + can.page.Select(can, target, html.INPUT, function(target) { if (!icon[target.name]) { return } + can.page.insertBefore(can, [{icon: icon[target.name], onclick: function(event) { + can.Update(can.request(event, value), [ctx.ACTION, target.name]) + }}], target), can.onappend.style(can, mdb.ICONS, target) + }) + }} + }, + label: function(can, value, icons) { + return {view: html.STATUS, list: can.core.Item(icons||{version: "bi bi-tags", + time: can.base.isIn(can.ConfIndex(), web.DREAM, web.STORE)? "bi bi-tools": "bi bi-clock-history", + }, function(name, icon) { var text = value[name] + if (name == nfs.VERSION) { text = value.version.split("-").slice(0, 2).join("-") } + if (name == mdb.TIME) { text = can.base.TimeTrim(value[name]) } + return value[name] && {view: [[html.ITEM]], list: [{icon: icon}, {text: text}]} + })} + }, table: function(can, msg, cb, target, keys) { if (!msg || msg.Length() == 0) { return } var meta = can.base.Obj(msg.Option(mdb.META)) if (can.user.isMobile) { can.base.toLast(msg.append, mdb.TIME) } can.base.toLast(msg.append, web.LINK), can.base.toLast(msg.append, ctx.ACTION) if (msg.append && msg.append[msg.append.length-1] == ctx.ACTION && can.core.List(msg[ctx.ACTION], function(item) { if (item) { return item } }).length == 0) { msg.append.pop() } diff --git a/index.css b/index.css index 89ad41de..a4143b58 100644 --- a/index.css +++ b/index.css @@ -340,8 +340,8 @@ input[type=button].danger:hover { background-color:var(--danger-bg-color); color input[type=button].notice:hover { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } input[type=button].danger { border:var(--danger-bg-color) solid 1px; } input[type=button].notice { border:var(--notice-bg-color) solid 1px; } -table.content tr:hover { background-color:var(--tr-hover-bg-color); color:var(--hover-fg-color); } -table.content tr.select { background-color:var(--tr-hover-bg-color); color:var(--hover-fg-color); } +table.content tr:hover { background-color:var(--tr-hover-bg-color); } +table.content tr.select { background-color:var(--tr-hover-bg-color); } table.content tr.danger { background-color:var(--danger-bg-color); color:var(--danger-fg-color); } table.content tr.disable { color:var(--disable-fg-color); } table.content tr.offline { color:var(--disable-fg-color); }