From 0b3ee1d4fa179f1a305f39118853e59fe2f1a532 Mon Sep 17 00:00:00 2001 From: shy Date: Thu, 9 May 2024 07:25:31 +0800 Subject: [PATCH] add some --- frame.js | 2 +- index.css | 18 +++++++++++------- lib/page.js | 4 +--- plugin/table.js | 28 ++++++++++++++-------------- 4 files changed, 27 insertions(+), 25 deletions(-) diff --git a/frame.js b/frame.js index da8304dc..5d507c9f 100644 --- a/frame.js +++ b/frame.js @@ -556,7 +556,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { function request(event) { delete(data.action); return can.request(event, data, can.Option()) } function run(event, cmd, arg) { can.misc.Event(event, can, function(msg) { can.run(request(event), [ctx.ACTION, cmd].concat(arg)) }) } function img(p) { return !msg.IsDetail()? can.page.Format(html.IMG, p, 48, 48): can.user.isMobile? can.page.Format(html.IMG, p, null, 320): can.page.Format(html.IMG, p, 320, null) } - if (key == mdb.NAME && value) { _value = can.user.trans(can, value, null, html.INPUT) } + // if (key == mdb.NAME && value) { _value = can.user.trans(can, value, null, html.INPUT) } if (key == mdb.ICON && value) { _value = img(can.misc.Resource(can, data[key], data[ice.POD]||data[web.SPACE])) } if (key == mdb.ICONS && value) { _value = img(can.misc.Resource(can, data[key])) } if (key == nfs.IMAGE && value) { _value = can.core.List(can.core.Split(data[key]), function(item) { return img(can.misc.ShareCache(can, item, data.space)) }).join("") } diff --git a/index.css b/index.css index b1f549a3..d5ba3de6 100644 --- a/index.css +++ b/index.css @@ -207,7 +207,7 @@ fieldset.vimer.insert>div.output>div.project div.item.select { border-right:var( div.project div.item:not(.hide) i:first-child { margin-right:var(--input-margin); } div.project div.item:not(.hide) { white-space:pre; line-height:24px; cursor:pointer; - padding:0 var(--button-margin); display:flex; align-items:center; + padding:0 var(--input-padding); display:flex; align-items:center; } div.project div.item img { height:var(--action-height); width:var(--action-height); } div.project div.item img { margin:0; } @@ -218,11 +218,13 @@ div.project div.item.search { padding:0; width:100%; } div.project div.item.search>input { padding:0 25px; width:100%; } div.project div.expand { margin-right:var(--input-margin); width:5px; float:left; transform: translate(1px, -1px) rotate(0deg); transition:all .5s; } div.project div.expand.open { transform: translate(4px, -1px) rotate(90deg); transition:all .3s; } -div.project div.item>div.name { padding:0 var(--input-padding); } div.project div.item { position:relative; } -div.project div.item>div.icon { hover:var(--hover-bg-color); position:absolute; right:0; } +div.project div.item>div.name { padding:0 var(--input-padding); } +div.project div.item>div.icon { position:absolute; right:var(--input-padding); } +div.project div.item>div.icon:hover { background-color:var(--hover-bg-color); } div.project div.item:not(:hover)>div.icon { display:none; } -div.project div.item>i:last-child { hover:var(--hover-bg-color); position:absolute; right:0; } +div.project div.item>i:last-child { position:absolute; right:var(--input-padding); } +div.project div.item>i:last-child:hover { background-color:var(--hover-bg-color); } div.project div.item:not(:hover)>i:last-child { display:none; } div.project div.zone>div.item { text-align:center; padding:var(--input-padding); display:flex; align-items:center; } div.project div.zone>div.item span:hover { background-color:var(--hover-bg-color); } @@ -356,7 +358,7 @@ body>div.input td:hover span.icons { visibility:visible; } body>div.input textarea { height:var(--textarea-height); width:var(--form-width) !important; } body>div.input select { width:var(--form-width) !important; } body>div.input input.select[type=button] { width:var(--form-width) !important; } -body>div.input input:not([type=button]) { width:var(--form-width) !important; } +body>div.input input:not([type=button]) { width:var(--form-width) !important; padding-left:24px; } body>div.input input[type=text] { width:var(--form-width) !important; padding-left:24px; } body>div.input input[name=cancel] { border:var(--box-danger); } body>div.input input[name=submit] { border:var(--box-notice); } @@ -479,6 +481,7 @@ fieldset.vimer.insert>legend { border-top:var(--box-danger3) !important; } fieldset.plugin.vimer>legend { margin-right:31px; } div.action div.tabs:hover { background-color:var(--hover-bg-color); } fieldset.story div.action div.tabs:not(.select) { display:none; } +body.mobile div.action div.tabs:not(.select) { display:none; } div.zone>div.item { background-color:var(--th-bg-color); } div.zone>div.list>div.zone>div.item { background-color:var(--th-bg-color); } div.tabs div { background-color:var(--plugin-bg-color); } @@ -748,7 +751,8 @@ div.story[data-type=spark] { cursor:copy; } body.mobile table.content { width:100%; } body.mobile div.output.card { overflow-x:hidden; } body.mobile div.output>div.project { position:absolute; left:0; top:0; z-index:2; } -body.mobile div.output>div.project { flex:0 0 320px; width:320px; } +body.mobile div.output>div.project { flex:0 0 240px; width:240px; } +body.mobile div.output>div.project div.item { height:var(--action-height); } body.mobile div.output>div.project { background-color:var(--plugin-bg-color); } body.mobile fieldset>div.output>div.code>img { max-width:390px; } body.mobile fieldset>div.output>div.code>div.form input[type=button] { width:100%; } @@ -833,7 +837,7 @@ fieldset.iframe.float>form.option>div.item.hash input { width:var(--form-width); fieldset.iframe>form.option>div.item.hash input { width:var(--form-width); } fieldset.inner.float>div.status { display:none; } fieldset.web.chat.color table.content { border-collapse:collapse; } -fieldset.user>form.option>div.item.username input { width:var(--form-width); } +fieldset.user>form.option>div.item.username input { width:var(--project-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; } diff --git a/lib/page.js b/lib/page.js index 0c3cdeb2..2f0582ed 100644 --- a/lib/page.js +++ b/lib/page.js @@ -188,9 +188,7 @@ Volcanos("page", { if (value == undefined) { return {view: [key, "col"]} } return {view: [[key, "option"], "col"]} } }) }, {type: html.THEAD}, {type: html.TBODY}]}]) can.page.Append(can, ui.thead, [{type: html.TR, data: {dataset: {index: -1}}, list: can.core.List(list, function(key) { - if (key[0] != "_") { - return {type: html.TH, list: [{text: can.user.trans(can, key, null, html.INPUT)}, {icon: "bi bi-sort-down-alt"}, {icon: "bi bi-sort-up"}]} - } + if (key[0] != "_") { return {type: html.TH, list: [{text: can.user.trans(can, key, null, html.INPUT)}, {icon: "bi bi-sort-down-alt"}, {icon: "bi bi-sort-up"}]} } }) }]) can.page.Append(can, ui.tbody, can.core.List(msg.Table(), function(item, index, array) { return {dataset: {index: index}, className: item[mdb.STATUS], td: can.core.List(list, function(key) { if (key[0] != "_") { return cb(can.page.Color(item[key]).trim(), key, index, item, array) } }) } diff --git a/plugin/table.js b/plugin/table.js index 9f24d458..8b68a798 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -119,20 +119,24 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onimport._menu(event, can, item, cbs) }} }, - item: function(can, item, cb, cbs, target) { - return can.page.Append(can, target||can.ui.project||can._output, [can.onimport._item(can, item, function(event) { - can.onmotion.select(can, target, html.DIV_ITEM, event.currentTarget) - cb(event, item, event.currentTarget._list && can.onmotion.toggle(can, event.currentTarget._list), event.currentTarget) + item: function(can, item, cb, cbs, _target) { + return can.page.Append(can, _target||can.ui.project||can._output, [can.onimport._item(can, item, function(event) { var target = event.currentTarget + can.onmotion.select(can, _target, html.DIV_ITEM, target), cb(event, item, target._list && can.onmotion.toggle(can, target._list), target) }, cbs)])._target }, + _itemselect: function(can, target) { + can.page.Select(can, can.ui.project, html.DIV_ITEM, function(target) { can.page.ClassList.del(can, target, html.SELECT) }) + for (var p = target; p; p = p.parentNode.previousElementSibling) { + can.page.ClassList.add(can, p, html.SELECT), can.onmotion.toggle(can, p.nextSibling, true) + } + }, itemlist: function(can, list, cb, cbs, target) { if (!list || list.length == 0) { return } if (!target) { return can.core.List(list, function(value) { can.onimport.item(can, value, cb, cbs) }) } if (!target._list) { target._list = can.page.insertBefore(can, [html.LIST], target.nextSibling, target.parentNode) } return can.page.Append(can, target._list, can.core.List(list, function(item) { return can.onimport._item(can, item, function(event) { var target = event.currentTarget - can.page.Select(can, can.ui.project, html.DIV_ITEM, function(target) { can.page.ClassList.del(can, target, html.SELECT) }) - for (var p = target; p; p = p.parentNode.previousElementSibling) { can.page.ClassList.add(can, p, html.SELECT) } - cb(event, item, event.currentTarget._list && can.onmotion.toggle(can, event.currentTarget._list), event.currentTarget) + if (target._list && target._list.childElementCount > 0 && target._list && can.onmotion.toggle(can, target._list) == false) { return } + can.onimport._itemselect(can, target), cb && cb(event, item, target._list && true, target) }, cbs) })), target._list }, @@ -141,7 +145,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { var last = array.slice(0, index).join(split), name = array.slice(0, index+1).join(split); if (node[name]) { return } last && node[last] && can.page.Select(can, node[last].previousSibling, "div.expand", function(target) { target.innerHTML == "" && (target.innerHTML = can.page.unicode.closes) }) var ui = can.page.Append(can, node[last], [{view: html.ITEM, list: [ - // {view: [[html.EXPAND, item.expand? cli.OPEN: ""], html.DIV, (index==array.length-1? "": can.page.unicode.closes)]}, {view: [[html.EXPAND], html.DIV, (index==array.length-1? "": can.page.unicode.closes)]}, {view: [mdb.NAME, html.DIV, value]}, item.action && {view: [mdb.ICON], list: [{icon: "bi bi-three-dots", onclick: function(event) { can.onimport._menu(event, can, item, cbs) }}]}, @@ -150,16 +153,13 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { item._init && item._init(target) }, onclick: function(event) { var target = event.currentTarget if (node[name].childElementCount > 0 && !can.page.ClassList.set(can, ui[html.EXPAND], cli.OPEN, !can.page.ClassList.neg(can, node[name], html.HIDE))) { return } - can.page.Select(can, node[""], html.DIV_ITEM, function(target) { can.page.ClassList.del(can, target, html.SELECT) }) - for (var p = target; p; p = p.parentNode.previousElementSibling) { - can.page.ClassList.add(can, p, html.SELECT), can.onmotion.toggle(can, p.nextSibling, true) - } node[key] && can.page.ClassList.add(can, node[key].previousSibling, html.SELECT) - can.onexport.hash(can, [key]), can.base.isFunc(cb) && cb(event, item, ui.item) + can.onexport.hash(can, [key]), can.onimport._itemselect(can, target), can.base.isFunc(cb) && cb(event, item, ui.item) + node[key] && can.page.ClassList.add(can, node[key].previousSibling, html.SELECT) if (node[name].childElementCount == 2) { can.onmotion.delay(can, function() { node[name].firstChild.click() }) } }, oncontextmenu: function(event) { can.onimport._menu(event, can, item, cbs) }}, {view: [[html.LIST, html.HIDE]]}]) - node[name] = ui.list, (item._select || can.db.hash && (can.db.hash[0]||"").indexOf(key) == 0) && can.onmotion.delay(can, function() { ui.item.click() }) + node[name] = ui.list, (item._select || can.db.hash && (can.db.hash[0]||"").indexOf(key) == 0) && can.onmotion.delayOnce(can, function() { ui.item.click() }) }) }); return node }, tabs: function(can, list, cb, cbs, action) { action = action||can._action; return can.page.Append(can, action, can.core.List(list, function(tabs) { if (typeof tabs == code.STRING) { tabs = {name: tabs} }