From 77245fa0355c836dfa7640531952092ade198ecb Mon Sep 17 00:00:00 2001 From: shy Date: Mon, 30 Jun 2025 19:36:02 +0800 Subject: [PATCH] add some --- index.css | 18 +++++++++++++----- lib/base.js | 2 +- panel/action.js | 31 ++++++++++++++++++++++++------- panel/river.js | 19 +++++++++++++++++++ plugin/local/code/inner.js | 2 +- plugin/state.js | 15 ++++++++++++--- plugin/table.js | 22 +++++++++------------- 7 files changed, 79 insertions(+), 30 deletions(-) diff --git a/index.css b/index.css index d94265c4..cf960dd8 100644 --- a/index.css +++ b/index.css @@ -10,7 +10,8 @@ body { --hover-bg-color:#5066b961; --hover-fg-color:var(--notice-fg-color); --body-font-family:sans-serif; --code-font-family:monospace; --project-width:230px; --river-width:var(--project-width); - --float-height:640px; --float-width:1000px; --desktop-icon-size:80px; + --float-height:640px; --float-width:1000px; + --desktop-icon-size:80px; } body { --body-bg-color:var(--panel-bg-color); --body-fg-color:var(--plugin-fg-color); @@ -99,10 +100,12 @@ body.width2 { /* 640-960 手机横屏 平板竖屏 笔记本调试 */ body.width1 { /* 320-640 手机竖屏 */ --project-width:120px; --river-width:280px; --input-width:80px; --url-input-width:160px; --form-width:290px; --river-margin:0; --plugin-margin:0; --legend-margin:5px; --button-margin:5px; - --table-button:2; --card-button:3; + --table-button:2; + // --card-button:3; + --desktop-icon-size:60px; } body.en { --card-button:3; } -body.mobile { --project-width:240px; --footer-height:60px; --svg-font-size:13px; --qrcode-width:240px; } +body.mobile { --project-width:240px; --footer-height:64px; --svg-font-size:13px; --qrcode-width:240px; } body.mobile.dark { --body-bg-color:var(--output-bg-color); --action-output-bg-color:var(--output-bg-color); } body.mobile.light { --body-bg-color:var(--output-bg-color); --action-output-bg-color:var(--output-bg-color); } body.cmd.web.code.vimer { --code-line-height:24px; } @@ -584,7 +587,7 @@ span.keyword { color:var(--code-keyword); } span.function { color:var(--code-fun span.item.select { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } span.item:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } span.icon:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } -body:not(.mobile):not(.pad) div.item:not(.text):hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } +body:not(.mobile):not(.pad) div.item:not(.text):not(.space):hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } div.item.select:not(.button):not(:only-child) { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } body:not(.mobile) div.item.button.danger input:hover[type=button] { background-color:var(--danger-bg-color); color:var(--danger-fg-color); } body:not(.mobile) div.item.button.notice input:hover[type=button] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } @@ -621,6 +624,7 @@ fieldset.panel:not(.main):not(.auto) div.item.select { background-color:var(--pa fieldset.panel:not(.main):not(.auto) div.tabs:hover { background-color:var(--panel-hover-bg-color); color:var(--panel-hover-fg-color); } fieldset.panel:not(.main):not(.auto) div.tabs.select { background-color:var(--panel-hover-bg-color); color:var(--panel-hover-fg-color); } fieldset.panel:not(.main):not(.auto) input { background-color:var(--panel-input-bg-color); color:var(--panel-input-fg-color); } +fieldset.panel:not(.main):not(.auto) input[name=create] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } fieldset.panel:not(.main):not(.auto) input:hover { background-color:var(--panel-hover-bg-color); color:var(--panel-hover-fg-color); } fieldset.panel:not(.main):not(.auto) input::placeholder { background-color:var(--panel-input-bg-color); color:var(--disable-fg-color); } fieldset.panel.auto { background-color:var(--panel-bg-color); color:var(--panel-fg-color); } @@ -659,6 +663,7 @@ div.float { box-shadow:var(--float-box-shadow); } // div.float { box-shadow:var(--float-box-shadow); border:var(--plugin-border); } div.float:hover { box-shadow:var(--notice-box-shadow); } fieldset.plugin { box-shadow:var(--plugin-box-shadow); border-radius:var(--plugin-radius); } +body.mobile fieldset.plugin:only-child { border-radius:0; } // fieldset.story { box-shadow:var(--plugin-box-shadow); border-radius:var(--plugin-radius); } fieldset.float { box-shadow:var(--float-box-shadow); border:var(--plugin-border); border-radius:var(--plugin-radius); } fieldset.plugin:hover { box-shadow:var(--notice-box-shadow); } @@ -801,6 +806,7 @@ div.item.text>span.icon { font-size:var(--icon-font-size); padding:var(--input-p body:not(.mobile) div.item.text:hover>span.icon { visibility:visible; } div.item.button { position:relative; height:var(--action-height); } div.item.button.icons.state { margin-right:var(--input-margin); } +body.mobile div.action div.item.button.icons.open { display:none; } div.item.button.icons>i { font-size:20px; padding:var(--input-padding); } div.item.button>span.icon { font-size:var(--icon-font-size); padding:0 var(--input-padding); } div.item.button.select>span.icon { padding:var(--input-padding); visibility:hidden; position:absolute; right:0; } @@ -1020,6 +1026,8 @@ fieldset.web.mall.region>div.output>table.content td:nth-child(3) { text-align:r fieldset.web.mall.region>div.output>table.content td:nth-child(4) { text-align:right; } fieldset.web.mall.region>div.output>table.content td:nth-child(5) { text-align:right; } fieldset.web.mall.region>div.output>fieldset.web.mall.region.float>div.action { display:none; } +fieldset.web.team.portal>form.option { display:none; } + fieldset.feel.play.float>div.output { justify-content:center; } 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); } @@ -1084,7 +1092,7 @@ fieldset.Search>div.output>div.profile { border-left:none; width:unset; } fieldset.Search>div.output>div.content>table.content td { cursor:pointer; } fieldset.Action.tabs table.content { width:100%; } fieldset.Action:not(.cmd)>div.output>fieldset.plugin:not(.float):not(.full):not(.cmd) { padding:var(--plugin-padding); margin:var(--plugin-margin); } -fieldset.Action>div.output>fieldset.plugin:not(.float):not(.full):not(.cmd)>legend { float:none; } +// fieldset.Action>div.output>fieldset.plugin:not(.float):not(.full):not(.cmd)>legend { float:none; } fieldset.Action>div.output>fieldset.plugin:not(.float):not(.full):not(.cmd)>legend:not(:hover) { background-color:var(--plugin-bg-color); } fieldset.Action>div.output>fieldset.ssh.cloud.profile { box-shadow:none; background-color:transparent; } fieldset.Action>div.output>fieldset.ssh.cloud.profile:hover { box-shadow:none; } diff --git a/lib/base.js b/lib/base.js index c74dbc97..ae615bcf 100644 --- a/lib/base.js +++ b/lib/base.js @@ -170,7 +170,7 @@ Volcanos("base", { if (arg.length > 2) { for (var i = 1; i < arg.length; i++) { str = callee(str, arg[i]) } return str } if (str.indexOf(pre) == -1) { return str } return str.slice(pre.length) }, - trimSuffix: function(str, end, once) { while (str) { var index = str.lastIndexOf(end) + trimSuffix: function(str, end, once) { while (str && end) { var index = str.lastIndexOf(end) if (index == -1 || index+end.length != str.length) { break } str = str.slice(0, index) if (once) { break } } return str }, diff --git a/panel/action.js b/panel/action.js index 9367bc02..647aee4d 100644 --- a/panel/action.js +++ b/panel/action.js @@ -4,13 +4,12 @@ Volcanos(chat.ONIMPORT, { var _select; can.onmotion.clear(can), can.onaction.layout(can, list[3]) can.core.Next(msg.Table(), function(item, next, index) { item.type = chat.PLUGIN, item.mode = can.Mode(); if (item.deleted == ice.TRUE) { return next() } if (msg.Length() == 1) { item.height = can.ConfHeight()-can.Conf(html.MARGIN_Y), can.base.isIn(item.index, web.CHAT_MACOS_DESKTOP, web.CHAT_MESSAGE, web.WIKI_PORTAL) && (item.style = html.OUTPUT) } - can.base.isIn(item.index, ssh.CLOUD_PROFILE) && (item.style = html.OUTPUT) + // can.base.isIn(item.index, ssh.CLOUD_PROFILE) && (item.style = html.OUTPUT) if (list.length == 0) { can.user.info.nodetype == web.SERVER && item._command == web.DREAM && (list = [river, storm, item._command]) can.user.info.nodetype == web.WORKER && item._command == web.VIMER && (list = [river, storm, item._command]) } - can.onappend.plugin(can, item, function(sub, meta, skip) { - can.user.isMobile || sub.Conf(ice.AUTO, cli.DELAY) + can.onappend.plugin(can, item, function(sub, meta, skip) { can.user.isMobile || sub.Conf(ice.AUTO, cli.DELAY) if (msg.detail && can.base.isIn(meta.index, "can._notfound")) { sub.Conf(ctx.INDEX, msg.detail[index+3]) } sub.run = function(event, cmds, cb) { return can.run(can.request(event, {pod: meta.pod||meta.space}), (can.base.beginWith(meta.index, "can.")? [meta.index]: [river, storm, meta.id||meta.index]).concat(cmds), cb) } sub.onexport.output = function() { msg.Length() > 1 && can.onexport.isauto(can) && can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, ""), can.onaction.layout(can, list[3]) } @@ -27,7 +26,7 @@ Volcanos(chat.ONIMPORT, { can.user.mod.isPod && can.user.title(["后台", sub.ConfHelp(), can.user.info.titles].join(" ")) // can.onmotion.delay(can, function() { sub._header_tabs.scrollIntoViewIfNeeded() }) var layout = can.onexport.layout(can); layout == FREE || (can._output.scrollTop = sub._target.offsetTop-10) - can.isCmdMode() || can.misc.SearchHash(can, can.Conf(chat.RIVER), can.Conf(chat.STORM), sub.ConfIndex(), layout) + can.isCmdMode() || can.onexport.hash(can, can.Conf(chat.RIVER), can.Conf(chat.STORM), sub.ConfIndex(), layout) sub.Conf(ice.AUTO) == cli.DELAY && sub._output.innerHTML == "" && sub.Update(event) sub.onimport.size(sub, can.ConfHeight()-can.Conf(html.MARGIN_Y), can.ConfWidth()-can.Conf(html.MARGIN_X), can.onexport.isauto(can)) can.onengine.signal(can, "onindex", can.request(_init? {target: event.target, type: "click", isTrusted: true}: event, {index: sub.ConfIndex()})), _init = false @@ -73,7 +72,7 @@ Volcanos(chat.ONACTION, { if (msg.Length() == 1) { can.onaction._onaction_cmd(can) } can.onimport._init(can, msg) }) }, - onstorm_select: function(can, msg, river, storm) { can.misc.SearchHash(can, river, storm) + onstorm_select: function(can, msg, river, storm) { can.onexport.hash(can, river, storm) if (can.onmotion.cache(can, function(save, load) { save({plugins: can._plugins, current: can._current}), can._plugins = [] return load(can.core.Keys(can.Conf(chat.RIVER, river), can.Conf(chat.STORM, storm)), function(bak) { can._plugins = bak.plugins, can._current = bak.current }) }, can._output, can._action, can._header_tabs)) { @@ -107,7 +106,7 @@ Volcanos(chat.ONACTION, { portal: function(can) { can.user.opens(can.misc.MergePodCmd(can, {cmd: web.PORTAL})) }, desktop: function(can) { can.user.opens(can.misc.MergePodCmd(can, {cmd: web.DESKTOP})) }, layout: function(can, button, skip) { var before = can._layout||can.onlayout._storage(can); button = button||before||(can.user.isMobile? ALL: TABVIEW) - var list = can.misc.SearchHash(can); list.length > 2 && (list[3] = button); can.isCmdMode() || can.misc.SearchHash(can, list[0], list[1], list[2], list[3]) + var list = can.onexport.hash(can); list.length > 2 && (list[3] = button); can.isCmdMode() || can.onexport.hash(can, list[0], list[1], list[2], list[3]) can.page.ClassList.del(can, can._target, before), can._header_tabs && can.onmotion.hidden(can, can._header_tabs) button = (can.onlayout._storage(can, can._layout = button))||can.misc.SearchOrConf(can, html.LAYOUT), can.page.ClassList.add(can, can._target, button) can.onengine.signal(can, chat.ONLAYOUT, can.request({}, {layout: button, before: before})) @@ -136,12 +135,30 @@ Volcanos(chat.ONLAYOUT, { if (can.page.ClassList.has(can, sub._target, html.OUTPUT)) { return sub.onimport.size(sub, can.ConfHeight()-(can.user.isMobile? 2*html.PLUGIN_PADDING: can.Conf(html.MARGIN_Y)-([ALL, TABS].indexOf(can.onexport.layout(can)) > -1? html.ACTION_HEIGHT: 0)), can.ConfWidth()-can.Conf(html.MARGIN_X), can.onexport.isauto(can)) } - sub.onimport.size(sub, can.ConfHeight()-can.Conf(html.MARGIN_Y)-(can._plugins.length == 1 || button && button != ALL || sub.isCmdMode()? 0: html.ACTION_MARGIN), + sub.onimport.size(sub, can.ConfHeight()-(can.user.isMobile? 2*html.PLUGIN_PADDING: can.Conf(html.MARGIN_Y))-(can._plugins.length == 1 || button && button != ALL || sub.isCmdMode()? 0: html.ACTION_MARGIN), can.ConfWidth()-can.Conf(html.MARGIN_X), can._plugins.length > 1 && can.onexport.isauto(can)) && can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") }) }, _storage: function(can, value) { return can.user.isMobile? "all": (can.misc.sessionStorage(can, can.core.Keys(CAN_LAYOUT, location.pathname), value)||[])[0] }, }) Volcanos(chat.ONEXPORT, { + hash: function(can) { + var hash = can.core.List(arguments).slice(1).join(":") + if (can.user.isMobile) { + if (arguments.length == 1) { + hash = can.misc.sessionStorage(can, "action:hash") + if (hash) { + return hash[0].split(":") + } else { + return [] + } + } + var link = can.base.trimSuffix(location.href, location.hash) + can.user.agent.init(can, "", "", link+"#"+hash) + return can.misc.sessionStorage(can, "action:hash", hash) + } + if (arguments.length == 1) { return can.misc.SearchHash(can) } + return can.misc.SearchHash(can, hash.split(":")) + }, size: function(can, msg) { msg.Option(html.LEFT, can._output.offsetLeft), msg.Option(html.TOP, can._output.offsetTop) msg.Option(html.HEIGHT, can._output.offsetHeight||window.innerHeight), msg.Option(html.WIDTH, can._output.offsetWidth||window.innerWidth) diff --git a/panel/river.js b/panel/river.js index 48a2afbe..02f67a57 100644 --- a/panel/river.js +++ b/panel/river.js @@ -74,6 +74,7 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], }) }, action: function(event, can, river, storm) { + can.user.title([can.user.info.titles, can.ui.river_list[river].title, can.ui.storm_list[river+"."+storm].title].join(" ")) can._scrollTop = can._output.scrollTop can.page.Select(can, can._output, [html.DIV_LIST, html.DIV_ITEM], function(target) { can.page.ClassList.del(can, target, html.SELECT) }) can.onmotion.toggle(can, can.ui.sublist[river], true) @@ -126,6 +127,24 @@ Volcanos(chat.ONDETAIL, { ], function(args) { can.run({}, [river, chat.STORM, ctx.ACTION, mdb.CREATE].concat(args), function(msg) { can.misc.Search(can, {river: river, storm: msg.Result()}) }) }) }, }) Volcanos(chat.ONEXPORT, { + hash: function(can) { + var hash = can.core.List(arguments).slice(1).join(":") + if (can.user.isMobile) { + if (arguments.length == 1) { + hash = can.misc.sessionStorage(can, "action:hash") + if (hash) { + return hash[0].split(":") + } else { + return [] + } + } + var link = can.base.trimSuffix(location.href, location.hash) + can.user.agent.init(can, "", "", link+"#"+hash) + return can.misc.sessionStorage(can, "action:hash", hash) + } + if (arguments.length == 1) { return can.misc.SearchHash(can) } + return can.misc.SearchHash(can, hash) + }, width: function(can) { return can._target.offsetWidth }, storm: function(can, msg, arg) { can.core.Item(can._root.river, function(river, value) { can.core.Item(value.storm, function(storm, item) { if (arg[1] != "" && storm.indexOf(arg[1]) == -1 && item.name.indexOf(arg[1]) == -1) { return } msg.Push({ctx: ice.CAN, cmd: can._name, type: river, name: storm, text: shy("跳转", function(event) { can.onaction.action(event, can, river, storm) })}) diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 365972cb..8bffd5bf 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -263,7 +263,7 @@ Volcanos(chat.ONIMPORT, { }) }) }, layout: function(can) { - if (can.Conf(ctx.STYLE) == html.OUTPUT) { return can.page.style(can, can.ui.content, html.WIDTH, (can.Conf("__width")||can.ConfWidth())-(can.user.isMobile? 5: 2)) } + if (can.Conf(ctx.STYLE) == html.OUTPUT) { return can.page.style(can, can.ui.content, html.WIDTH, can.base.ParseSize((can.Conf("__width")||can.ConfWidth()+""))-(can.user.isMobile? 5: 5)) } if (can.isSimpleMode() && !can.page.tagis(can._fields, html.FIELDSET_FLOAT)) { can.page.style(can, can._output, html.MAX_HEIGHT, "") } if (can.isSimpleMode()) { can.ui.layout(can.ConfHeight(), can.ConfWidth()); return can.page.style(can, can.ui.content, html.WIDTH, can.ConfWidth()) } if (can.isCmdMode()) { can.page.style(can, can._output, html.HEIGHT, can.ConfHeight(can.page.height())) } diff --git a/plugin/state.js b/plugin/state.js index 67489e5f..0a9c1055 100644 --- a/plugin/state.js +++ b/plugin/state.js @@ -309,12 +309,21 @@ Volcanos(chat.ONACTION, { navigator.clipboard? navigator.clipboard.readText().then(add).catch(function(err) { can.misc.Log(err) }): can.user.input(event, can, [{type: html.TEXTAREA, name: mdb.TEXT}], function(list) { add(list[0]) }) }, - getLocation: function(event, can, button) { can.user.agent.getLocation(can, function(data) { - can.user.input(can.request(event, data), can, [mdb.TYPE, mdb.NAME, mdb.TEXT, aaa.LATITUDE, aaa.LONGITUDE], function(args) { - can.runAction(event, button, args, function() { can.Update() }) + getLocation: function(event, can, button) { can.user.agent.getLocation(can, function(res) { + can.user.input(can.request(event, res), can, [mdb.NAME, mdb.TEXT], function(data, args) { + can.runAction(can.request(event, data, res), button, args, function(msg) { + can.user.agent.openLocation(can, msg), can.Update() + }) }) }) }, openLocation: function(event, can) { can.user.agent.openLocation(can, can.request(event)) }, + openAddress: function(event, can, button) { can.user.agent.openAddress(can, function(res) { + can.runAction(can.request(event, res), button, [], function(msg) { + }) + }) }, + copyText: function(event, can, button) { var msg = can.request(event) + can.user.copy(event, can, msg.Option("text")) + }, scanQRCode0: function(event, can, button) { can.user.agent.scanQRCode(can) }, scanQRCode: function(event, can, button) { can.user.agent.scanQRCode(can, function(data) { can.sub.runAction(event, button, can.base.Simple(data)) }) diff --git a/plugin/table.js b/plugin/table.js index 0b3b649c..b5a81d30 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -2,7 +2,8 @@ Volcanos(chat.ONIMPORT, { _init: function(can, msg, target, cb) { if (can.Mode() == html.ZONE) { return can.onimport._vimer_zone(can, msg, target), cb && cb(msg) } if (msg.index && msg.meta && msg.list) { return cb && cb(msg), can.sup.onimport._field(can.sup, msg) } - can.page.ClassList.del(can, can._fields, html.FORM), can.page.ClassList.del(can, can._fields, html.OUTPUT) + // can.page.ClassList.del(can, can._fields, html.FORM), can.page.ClassList.del(can, can._fields, html.OUTPUT) + can.page.ClassList.del(can, can._fields, html.FORM) if (can.isCmdMode() && can.Conf(ctx.STYLE) == html.FORM) { can.page.ClassList.add(can, can._fields, html.FORM), can.onappend.style(can, html.OUTPUT) } var cbs = can.onimport[can.Conf(ctx.STYLE)||msg.Option(ctx.STYLE)]; if (can.base.isFunc(cbs)) { can.onappend.style(can, can._args[ctx.STYLE], target), can.core.CallFunc(cbs, {can: can, msg: msg, target: target}) @@ -32,7 +33,10 @@ Volcanos(chat.ONIMPORT, { }, icon: function(can, msg, target, cb) { msg.Table(function(value) { var icon = can.misc.Resource(can, value.icons||value.icon||can.page.drawText(can, value.name, 80), value.space||msg.Option(ice.MSG_USERPOD), msg.Option(ice.MSG_USERWEB)) - return can.page.Append(can, target, [{view: [[html.ITEM, value.status]], list: [{view: html.ICON, list: [{img: icon}]}, {view: [mdb.NAME, "", value.name]}], _init: function(target) { + return can.page.Append(can, target, [{view: [[html.ITEM, value.status, value.name]], list: [ + {view: html.ICON, list: [{img: icon}]}, + {view: [mdb.NAME, "", can.user.trans(can, value.name, can.base.trimPrefix(value.text||"", "ContextOS "))]}, + ], _init: function(target) { cb && cb(target, value) }, onclick: function(event) { can.sup.onexport.record(can.sup, value.name, mdb.NAME, value) }}])._target }) }, @@ -273,7 +277,7 @@ Volcanos(chat.ONIMPORT, { can.page.Append(can, sub._legend,[{text: [can.page.unicode.remove, "", mdb.REMOVE], onclick: function(event) { can.page.Remove(can, sub._target), can.page.Remove(can, sub._legend), can.onexport.tool(can), can.onkeymap.prevent(event) }}]), sub._legend._target = sub._target, sub._legend._meta = {index: meta.index} - status.appendChild(sub._legend), sub._legend.oncontextmenu = sub._legend.onclick, sub._legend.onclick = function(event) { can.misc.Event(event, can, function(msg) { + sub.Conf("_role") == "ok" && status.appendChild(sub._legend), sub._legend.oncontextmenu = sub._legend.onclick, sub._legend.onclick = function(event) { can.misc.Event(event, can, function(msg) { if (can.page.SelectOne(can, status, "legend.select", function(target) { can.onmotion.hidden(can, target._target), can.page.ClassList.del(can, target, html.SELECT); return target }) == sub._legend) { return } can.onmotion.select(can, status, html.LEGEND, sub._legend), can.onmotion.toggle(can, sub._target, true) @@ -308,11 +312,7 @@ Volcanos(chat.ONIMPORT, { if (plugin == sub._stacks_root) { var place_uid = can.Option(PLACE_UID) // var place_uid = can.Option(PLACE_UID) == can.misc.Search(can, PLACE_UID)? "": can.Option(PLACE_UID) if (sub._stacks_current.length == 1) { - if (can.misc.Search(can, PLACE_UID) == place_uid) { - can.misc.SearchHash(can, "") - } else { - plugin.sub.onexport.hash(plugin.sub, place_uid) - } + plugin.sub.onexport.hash(plugin.sub, place_uid) } else { plugin.sub.onexport.hash(plugin.sub, place_uid, can.ConfIndex(), can.Option(UID)) } @@ -322,11 +322,7 @@ Volcanos(chat.ONIMPORT, { ) } else { if (can.isCmdMode() && can.current) { var place_uid = can.current._uid - if (can.misc.Search(can, PLACE_UID) == place_uid) { - can.misc.SearchHash(can, "") - } else { - can.onexport.hash(can, place_uid) - } + can.onexport.hash(can, place_uid) } } var icons = ""; can.core.List([current.icons, can.ConfIcons(), plugin.ConfIcons()], function(p) {