From a23ab727538caa3bd46b80f5d13019e23273df2b Mon Sep 17 00:00:00 2001 From: shy Date: Fri, 2 Aug 2024 18:41:48 +0800 Subject: [PATCH] add some --- frame.js | 5 ++++- index.css | 8 ++++---- lib/user.js | 10 ++++++++-- plugin/input/key.js | 4 ++-- plugin/state.js | 2 +- plugin/table.js | 8 +++++--- 6 files changed, 24 insertions(+), 13 deletions(-) diff --git a/frame.js b/frame.js index 61be66c9..4d3e42d8 100644 --- a/frame.js +++ b/frame.js @@ -318,7 +318,8 @@ Volcanos(chat.ONAPPEND, { if (_can == (msg._can._fields? msg._can.sup: msg._can)) { if (can.core.CallFunc([_can, chat.ONIMPORT, ice.MSG_PROCESS], {can: _can, msg: msg})) { return } } if (cmds && cmds[0] == ctx.ACTION) { if (can.base.isIn(cmds[1], mdb.CREATE, mdb.INSERT, mdb.PRUNES, mdb.EXPORT, mdb.IMPORT, "exports", "imports", nfs.TRASH) || msg.Length() == 0 && !msg.Result()) { if (can.base.isIn(cmds[1], ctx.COMMAND)) { return } - return can._toast || can.user.toastSuccess(can, can.user.trans(can, cmds[1]), ice.SUCCESS), can.Update() + // return can._toast || can.user.toastSuccess(can, can.user.trans(can, cmds[1]), ice.SUCCESS), can.Update() + return can.__toast || can.user.toastSuccess(can, can.user.trans(can, cmds[1]), ice.SUCCESS), can.Update() } } can.onappend._output(can, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display) }) @@ -629,6 +630,7 @@ Volcanos(chat.ONAPPEND, { if (key == mdb.ICON && value) { _value = can.base.contains(value, ".ico", ".png", ".jpg")? 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 == aaa.AVATAR && value) { _value = img(can.misc.Resource(can, data[key])) } + if (key == "user_avatar" && 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("") } // if (key == web.SPACE && value) { _value = can.page.Format(html.A, can.misc.MergePodCmd(can, {pod: value}), value) } // if (key == mdb.NAME && value) { _value = can.user.trans(can, value, null, html.INPUT) } @@ -680,6 +682,7 @@ Volcanos(chat.ONAPPEND, { }, onmouseover: function(event) { can.page.SelectChild(can, can._option, html.DIV_ITEM_TEXT, function(target) { can.page.ClassList.set(can, target, "will", can.page.ClassList.has(can, target, key)) }) }, _init: function(target) { + if (msg.IsDetail() && key != "key") { can.onappend.style(can, key, target.parentNode) } if (option.indexOf(key) > -1) { can.onappend.style(can, "k-"+value, target.parentNode) } if (key == mdb.TYPE) { can.onappend.style(can, value, target.parentNode) } if (key == mdb.STATUS) { can.onappend.style(can, value, target.parentNode) } diff --git a/index.css b/index.css index ffe55371..f74c857b 100644 --- a/index.css +++ b/index.css @@ -417,7 +417,7 @@ body>div.input td span.icons { margin-left:-20px; visibility:hidden; } body>div.input td label { font-family:var(--code-font-family); } body>div.input td:hover span.icon { visibility:visible; } body>div.input td:hover span.icons { visibility:visible; } -body>div.input textarea { height:var(--textarea-height); width:var(--form-width) !important; } +body:not(.mobile)>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; padding-left:24px; } @@ -505,12 +505,12 @@ input.select[type=button]:hover { border:var(--box-notice); } input.select[type=button]:focus { border:var(--box-notice); } input.select[type=button] { border:var(--input-border); padding:0 var(--button-padding); } input[type=button] { border:var(--input-border); border-radius:var(--button-radius); } -input[type=button]:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } +body:not(.mobile) input[type=button]:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } input[type=button].danger:hover { color:var(--danger-fg-color); } input[type=button].notice:hover { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } input[type=button].danger { color:var(--danger-bg-color) !important; } input[type=button].notice { border:var(--box-notice); } -table.content tr:hover { background-color:var(--tr-hover-bg-color); } +body:not(.mobile) 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.notice { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } @@ -519,7 +519,7 @@ table.content tr.offline { color:var(--disable-fg-color); } table.content tr.invalid { color:var(--disable-fg-color); } table.content tr.expired { color:var(--disable-fg-color); } table.content th { background-color:var(--th-bg-color); color:var(--th-fg-color); } -table.content td:hover { background-color:var(--td-hover-bg-color); color:var(--hover-fg-color); } +body:not(.mobile) table.content td:hover { background-color:var(--td-hover-bg-color); color:var(--hover-fg-color); } table.content td.select { background-color:var(--td-hover-bg-color); color:var(--hover-fg-color); } table.content td i:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } table.content td.action { background-color:var(--th-bg-color); color:var(--th-fg-color); } diff --git a/lib/user.js b/lib/user.js index cc7974cc..cebacc09 100644 --- a/lib/user.js +++ b/lib/user.js @@ -16,8 +16,9 @@ Volcanos("user", { connectWifi: function(can, ssid, password, cb, cbs) {}, getClipboard: function(can, cb) {}, enableDebug: function(can) {}, - init: function(can, content) { + init: function(can, content, icons) { can.user.agent.cmd = can, can.user.agent._init_content = content + can.user.agent._init_icons = icons }, _init_content: [], }, info: {}, isIPad: false, @@ -65,6 +66,7 @@ Volcanos("user", { can.user.info.userrole && name.push(can.user.info.userrole) can.user.language(can) && name.push(can.core.Split(can.user.language(can), "-_.")[0]) can.user.mod.isCmd && name.push(chat.CMD), can.user.mod.cmd && name.push(can.user.mod.cmd.replaceAll(".", " ")) + can.user.isWeiXin && name.push("weixin") if (window.innerWidth <= 1080) { can.user.isIPad = true } can.user.isIPad && name.push("pad") && can.user.isLandscape() && name.push(html.LANDSCAPE) can.user.isMobile && name.push(html.MOBILE) && can.user.isLandscape() && name.push(html.LANDSCAPE) @@ -74,7 +76,11 @@ Volcanos("user", { title: function(text) { if (window.webview) { return title(text) } return text && (document.title = text), document.title }, language: function(can) { return (can.misc.SearchOrConf(can, aaa.LANGUAGE)||can.user.info.language||"") }, isEnglish: function(can) { return can.base.isIn(can.core.Split(can.user.language(can).toLowerCase()||"en", "_-.")[0], "en", "en-us") }, - transValue: function(can, value, key) { return can.user.trans(can, value[key], null, "value."+key) }, + transValue: function(can, value, key) { + if (value.Append) { return can.user.trans(can, value.Append(key), null, "value."+key) } + if (value.Option) { return can.user.trans(can, value.Option(key), null, "value."+key) } + return can.user.trans(can, value[key], null, "value."+key) + }, trans: function(can, text, list, zone) { if (can.base.isNumber(text)) { return text+"" } if (can.user.isEnglish(can)) { return text } if (can.base.isObject(text)) { return can.core.Item(text, function(k, v) { can.core.Value(can._trans, can.core.Keys(zone, k), v) }) } if (can.base.isFunc(text)) { text = text.name||"" } if (list && can.base.isString(list)) { return list } diff --git a/plugin/input/key.js b/plugin/input/key.js index ca93e8a7..5ff8dac2 100644 --- a/plugin/input/key.js +++ b/plugin/input/key.js @@ -57,8 +57,8 @@ Volcanos(chat.ONFIGURE, {key: { meta._force && mod.onclick(event, can, meta, target, cbs) if (target._selectonly) { can.onmotion.delay(can, function() { target.blur() }) } }, - onclick: function(event, can, meta, target, cbs) { - can.onengine.signal(can, "onevent", can.request(event)); + onclick: function(event, can, meta, target, cbs) { can.onengine.signal(can, "onevent", can.request(event)); + if (target._selectonly) { can.onmotion.delay(can, function() { target.blur() }) } (target.value == "" || meta._force || target._selectonly) && cbs(function(sub, cb) { if (sub.Status(mdb.TOTAL) > 0) { return } sub.sup = can._fields? can.sup: can meta.msg && meta.msg.Length() > 0? sub._show(sub, meta.msg, cb, target, meta.name): sub._load(event, sub, cb, target, meta.name, target.value) diff --git a/plugin/state.js b/plugin/state.js index 389b7f17..06eaa442 100644 --- a/plugin/state.js +++ b/plugin/state.js @@ -358,7 +358,7 @@ Volcanos(chat.ONEXPORT, { }, title: function(can, title) { if (!can.isCmdMode()) { return } var list = []; function push(p) { p && list.indexOf(p) == -1 && list.push(p) } - if (!can.base.isIn(can.ConfIndex(), web.PORTAL, code.VIMER, wiki.FEEL)) { push(can.user.trans(can, can.ConfIndex().split(".").pop(), can.ConfHelp())) } + if (arguments.length == 2 && !can.base.isIn(can.ConfIndex(), web.PORTAL, code.VIMER, wiki.FEEL)) { push(can.user.trans(can, can.ConfIndex().split(".").pop(), can.ConfHelp())) } can.core.List(arguments, function(title, index) { index > 0 && push(title) }) can.user.isMobile || push(can.user.info.titles||can.ConfSpace()||can.misc.Search(can, ice.POD)) can.user.title(list.join(" ")) diff --git a/plugin/table.js b/plugin/table.js index df70b0ba..46cd19b4 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -15,6 +15,7 @@ Volcanos(chat.ONIMPORT, { } cb && cb(msg) }, itemcard: function(can, value, list, cb) { + cb = cb|| function(event) { can.Option("uid", value.uid), can.Update() } return {view: [[html.ITEM_CARD, value._uid? "uid-"+value._uid: ""].concat(value._style||[])], list: [ {view: html.ACTION, _init: function(target) { if (!value.action) { return } target.innerHTML = value.action can.page.Select(can, target, html.INPUT_BUTTON, function(target) { @@ -25,7 +26,7 @@ Volcanos(chat.ONIMPORT, { }) }}, {view: html.OUTPUT, list: [ - {img: can.misc.ResourceIcons(can, value.icons)}, {view: html.INFO, list: list}, + {img: can.misc.ResourceIcons(can, value.icons||value.avatar||value.user_avatar)}, {view: html.INFO, list: list}, ], _init: function(target) { if (!value.action) { return } can.onmotion.slideAction(can, target) }}, @@ -359,11 +360,12 @@ Volcanos(chat.ONINPUTS, { _nameicon: function(event, can, msg, target, name, title) { name = name||mdb.NAME can.page.Appends(can, can._output, msg.Table(function(value) { var _title = can.user.trans(can.sup, value[title]||value[name]||value[mdb.NAME], null, "value."+name) - return {view: html.ITEM, list: [{img: can.misc.Resource(can, value.icons||"usr/icons/icebergs.png")}, + var icons = can.sup.Conf("_trans.value."+name+".icons."+value[name])||can.sup.Conf("_trans.value."+name+".icons."+value[title])||value.icons||"usr/icons/icebergs.png" + return {view: html.ITEM, list: [{img: can.misc.Resource(can, icons), }, {view: html.CONTAINER, list: [{view: [html.TITLE, "", _title]}, can.onappend.label(can, value, kit.Dict("version", icon.version, "time", icon.compile, name, icon.data)), ]}, - ], onclick: function(event) { can.showIcons(value[name]||value[mdb.NAME], value.icons||"usr/icons/icebergs.png", _title) }} + ], onclick: function(event) { can.showIcons(value[name]||value[mdb.NAME], icons, _title) }} })) }, dream: function(event, can, msg, target, name) { can.sup.sub.oninputs._nameicon(event, can, msg, target, name) },