diff --git a/frame.js b/frame.js index 63809ca4..0497b5ff 100644 --- a/frame.js +++ b/frame.js @@ -232,14 +232,15 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { if (item.type == html.BUTTON && can.page.isIconInput(can, item.name)) { can.onappend.icons(can, target, item.name) } }), item), "", action) }) - if (list.length == 0 && can.Conf("inputs").length == 0) { return meta } var _can = can._fields? can.sup: can - can.user.isMobile || can.isCmdMode() || can.base.beginWith(can.ConfIndex(), "can.", "web.chat.macos.") || can.page.tagis(can._fields||can._target, html.FIELDSET_PANEL, html.FIELDSET_PLUG) || action == can._action && can.page.Append(can, action, - can.core.Item({full: "切换全屏", qrcode: "生成链接", open: "打开链接"}, function(key, value) { - return {view: [[html.ITEM, html.BUTTON, key, "icons"]], list: [{icon: icon[key]}], title: can.user.trans(can, key), onclick: function(event) { - _can.onaction[value](event, _can, value, _can.sub) - }} - }) - ); return meta + var _can = can._fields? can.sup: can + list.length == 0 && can.Conf("inputs").length == 0 || can.isCmdMode() || can.base.beginWith(can.ConfIndex(), "can.", "web.chat.macos.") || + can.page.tagis(can._fields||can._target, html.FIELDSET_PANEL, html.FIELDSET_PLUG) || action == can._action && can.page.Append(can, action, + can.core.Item(can.user.isMobile? {open: "打开链接"}: {full: "切换全屏", qrcode: "生成链接", open: "打开链接"}, function(key, value) { + return {view: [[html.ITEM, html.BUTTON, key, "icons"]], list: [{icon: icon[key]}], title: can.user.trans(can, key), onclick: function(event) { + _can.onaction[value](event, _can, value, _can.sub) + }} + }) + ); return meta }, _output0: function(can, meta, event, cmds, cb, silent) { var msg = can.request(event); meta.feature = meta.feature||{} if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION) { if (msg.RunAction(event, can.sub, cmds)) { return } } @@ -659,17 +660,12 @@ Volcanos(chat.ONLAYOUT, {_init: function(can, target) { target = target||can._ro can.page.SelectChild(can, target, can.page.Keys(html.FIELDSET_HEAD, html.FIELDSET_FOOT), function(field) { height -= field.offsetHeight }) can.page.SelectChild(can, target, html.FIELDSET_LEFT, function(field) { can.user.isMobile || can.page.isDisplay(field) && (width -= field.offsetWidth) var h = height; can.page.SelectChild(can, field, html.DIV_ACTION, function(action) { - h -= action.offsetHeight - if (action.offsetHeight == 0 && html.RIVER_MARGIN > 0) { - h -= html.ACTION_HEIGHT - } + h -= action.offsetHeight; if (action.offsetHeight == 0 && html.RIVER_MARGIN > 0) { h -= html.ACTION_HEIGHT } }), can.user.isMobile || (h -= 2*html.RIVER_MARGIN-html.ACTION_HEIGHT) can.page.SelectChild(can, field, html.DIV_OUTPUT, function(output) { can.page.styleHeight(can, output, h) }) }) can.page.SelectChild(can, target, html.FIELDSET_MAIN, function(field) { - can.page.SelectChild(can, field, html.DIV_ACTION, function(action) { - height -= action.offsetHeight - }) + can.page.SelectChild(can, field, html.DIV_ACTION, function(action) { height -= action.offsetHeight }) if (can.user.isMobile && can.user.isLandscape()) { return } can.page.SelectChild(can, field, html.DIV_OUTPUT, function(output) { can.page.styleHeight(can, output, height) }) }), can.onengine.signal(can, chat.ONSIZE, can.request({}, {height: height, width: width})) @@ -702,7 +698,7 @@ Volcanos(chat.ONLAYOUT, {_init: function(can, target) { target = target||can._ro layout.top = top+height-target.offsetHeight } } - if (layout.left+target.offsetWidth > left+width) { layout.left = (right? rect.left: left+width)-target.offsetWidth-1 } + if (layout.left+target.offsetWidth > left+width-20) { layout.left = (right? rect.left: left+width)-target.offsetWidth-1 } can.page.style(can, target, html.MAX_HEIGHT, top+height-layout.top) }); can.onmotion.move(can, target, layout), can.onmotion.slideGrow(can, target) diff --git a/index.css b/index.css index e46bbcfc..9d633429 100644 --- a/index.css +++ b/index.css @@ -39,7 +39,7 @@ body { --code-font-size:14px; --code-line-height:24px; --code-tabs-height:48px; --svg-font-size:24px; --svg-stroke-width:1; --status-font-size:12px; - --river-width:var(--project-width); --project-width:230px; --input-width:120px; --button-width:60px; + --river-width:var(--project-width); --project-width:230px; --input-width:120px; --button-width:60px; --form-width:320px; --action-height:32px; --status-height:var(--action-height); --footer-height:var(--action-height); --header-height:48px; --desktop-height:684px; --float-height:480px; --plug-height:480px; --story-height:var(--float-height); --desktop-width:1200px; --float-width:1200px; --plug-width:1000px; @@ -57,33 +57,27 @@ input { font-family:var(--input-font-family); } body { font-family:var(--body-font-family); } body { background-color:var(--body-bg-color); color:var(--body-fg-color); } body.windows { --code-font-family:"Courier New"; } -body.mobile { --qrcode-height:284px; } +body.mobile { --qrcode-height:284px; --svg-font-size:13px; } body.cmd { background-color:var(--plugin-bg-color); } -// body.cmd { --plug-width:1200px; --plug-height:480px; } body.width1 { /* 320-640 手机竖屏 */ - --svg-font-size:13px; - --river-width:280px;; --project-width:120px; --input-width:80px; - --river-margin:0; - --plugin-margin:0; --button-margin:5px; + --river-width:280px; --project-width:120px; --input-width:80px; + --river-margin:0; --plugin-margin:0; --button-margin:5px; --footer-height:60px; - --action-button:2; --table-button:2; + --table-button:2; } body.width2 { /* 640-960 手机横屏 平板竖屏 笔记本调试 */ - --action-button:4; --table-button:3; + --table-button:3; } body.width3 { /* 960-1280 平板横屏 */ - --action-button:5; --table-button:3; + --table-button:3; } body.width4 { /* 1280-1600 笔记本 显示器调试 */ - --plugin-padding:10px; - --action-button:6; --table-button:4; + --table-button:4; } body.width5 { /* 1600-1920 */ - --plugin-padding:10px; - --action-button:6; --table-button:4; + --table-button:4; } body.width6 { /* 1920-2240 显示器 */ - --plugin-padding:10px; --river-width:280px; --input-width:180px; } /* element */ @@ -192,7 +186,7 @@ body>div.input { padding:var(--plugin-padding); z-index:100; } body>fieldset.input.float { padding:0; border-radius:0 !important; z-index:100; } body>fieldset.input.float table.content td { padding:var(--input-padding); } body>fieldset.input.float table.content th { padding:var(--input-padding); } -body>div.input>legend { font-style:italic; width:100%; justify-content:center; } +body>div.input>legend { margin-left:122px; } body>div.input td { padding:var(--table-padding); } body>div.input td:nth-child(2) { padding:var(--table-padding) 0; } body>div.input tr.img td:last-child>span { display:none; } @@ -218,7 +212,7 @@ body>div.input input[name=cancel] { border:var(--danger-bg-color) solid 1px; } body>div.input input[name=submit] { border:var(--notice-bg-color) solid 1px; } body>div.input input[name=submit]:hover { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } body>div.input input[name=cancel]:hover { background-color:var(--danger-bg-color); color:var(--danger-fg-color); } -body>div.input div.action { padding:0 var(--table-padding); width:100%; position:sticky; bottom:0; flex-direction:row-reverse; } +body>div.input div.action { padding:var(--table-padding); width:100%; position:sticky; bottom:0; flex-direction:row-reverse; } body>div.input div.action>div.item { margin-left:var(--button-margin); float:right; } body>div.input div.action>div.item>input[type=button] { width:112px; } body>div.input.login { box-shadow:unset; flex-direction:column; } @@ -306,7 +300,8 @@ fieldset.plugin>legend { font-style:italic; } fieldset.plugin>form.option>div.button.icons>input { display:none; } fieldset.plugin>div.action>div.button.icons>input { display:none; } fieldset.Action.tabview>div.output>fieldset.plugin>div.action>div.item.full { display:none; } -fieldset.Action:not(.tabview):not(.horizon):not(.grid) fieldset.plugin:not(.float):not(.full):not(.cmd)>form.option>div.icon { display:none; } +fieldset.Action:not(.tabview):not(.horizon):not(.grid) fieldset.plugin:not(.float):not(.full):not(.cmd)>form.option>div.icon.delete { display:none; } +body:not(.mobile) fieldset.Action:not(.tabview):not(.horizon):not(.grid) fieldset.plugin:not(.float):not(.full):not(.cmd)>form.option>div.icon { display:none; } fieldset.Action.tabview fieldset.plugin:not(.float):not(.full):not(.cmd)>form.option>div.icon.delete { display:none; } fieldset.Action.grid fieldset.plugin:not(.float):not(.full):not(.cmd)>form.option>div.icon.delete { display:none; } fieldset.Action.horizon fieldset.plugin:not(.float):not(.full):not(.cmd)>form.option>div.icon.delete { display:none; } @@ -390,23 +385,11 @@ div.profile:not(.toggle) { border-left:var(--box-border); width:50%; flex:0 0 50 div.display:not(.toggle) { border-top:var(--box-border); } /* output style */ body.mobile div.output.card { overflow-x:hidden; } -div.output.card { - /* display:flex; flex-wrap:wrap; */ -} -fieldset:not(.plug)>div.output.card>div.item { - height:180px; - min-width:320px; -} -/* fieldset.plug>div.output.card>div.item { */ -/* width:100%; */ -/* margin:0; */ -/* } */ div.output.card>div.item { - /* flex-grow:1; */ - position:relative; background-color:var(--plugin-bg-color); padding:var(--plugin-padding); margin:var(--plugin-padding); border:var(--box-border); border-radius:var(--plugin-radius); box-shadow:var(--box-shadow); - float:left; + height:180px; min-width:320px; + position:relative; float:left; } div.output.card>div.item.stop { color:var(--disable-fg-color); } div.output.card>div.item>div.title { font-size:var(--legend-font-size); font-weight:bold; padding-bottom:var(--input-padding); border-bottom:var(--box-border); display:flex; align-items:center; overflow:hidden; } @@ -473,7 +456,8 @@ 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); } table.content td.select { background-color:var(--td-hover-bg-color); } table.content.action tr:hover td:last-child { background-color:var(--th-bg-color); box-shadow:var(--box-shadow); } -table.content.detail td:first-child { text-align:center; min-width:80px; } +table.content.detail td:first-child { text-align:center; min-width:80px; padding:var(--table-padding) 0; } +table.content.detail td { text-align:center; min-width:80px; padding:var(--table-padding) 0; } table.content input { box-shadow:var(--box-shadow); } body.mobile table.content input { border:var(--box-border); box-shadow:var(--box-shadow); } h1:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } @@ -628,20 +612,13 @@ fieldset.draw.trends div.output svg { background-color:#1b5b738c; } fieldset.form>div.output>div.code { display:flex; flex-direction:column; justify-content:center; align-items:center; } fieldset.form>div.output>div.code>div.info { font-size:20px; padding:40px 20px; overflow:auto; white-space:break-spaces; } fieldset.form>div.output>div.code>input[type=button] { font-size:24px; border:var(--notice-bg-color) solid 1px; height:48px; width:240px; margin:20px; display:block; } -fieldset>div.output.form { padding:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; } +fieldset>div.output.form { padding:20px; display:flex; flex-direction:column; align-items:center; } fieldset>div.output.form>div.item { text-align:left; margin:10px; height:unset; } fieldset>div.output.form>div.item>div.item { height:unset; } fieldset>div.output.form>div.item>span { padding:var(--input-padding); } fieldset>div.output.form>div.item>span.need { color:red; } -fieldset>div.output.form>div.item>div.item>input { - width:var(--river-width); - height:38px; - font-size:20px; -} -fieldset>div.output.form>div.item>div.item>input[type=button] { - font-size:24px; height:48px; border:var(--notice-bg-color) solid 1px; - margin-top:20px; -} +fieldset>div.output.form>div.item>div.item>input { font-size:20px; height:38px; width:var(--form-width); } +fieldset>div.output.form>div.item>div.item>input[type=button] { font-size:20px; height:48px; border:var(--notice-bg-color) solid 1px; } fieldset.draw.spides div.output svg text { cursor:pointer; } fieldset.draw.spides div.output svg path { stroke-width:1; } fieldset.draw>div.output>div.layout>div.layout>div.profile { width:var(--project-width); flex:0 0 var(--project-width); } @@ -696,8 +673,7 @@ body>div.carte.header.avatar img { width:370px; } body>fieldset.story.web.chat.wx.agent { position:fixed; left:0; bottom:0; } body.zh fieldset.inner>div.output>div.project>div.zone>div.item { letter-spacing:10px; border-top:var(--box-border); } body.white fieldset.inner.cmd>div.output>div.layout>div.tabs div:not(.select):not(:hover) { background-color:transparent; } -/* body.mobile fieldset.inner>form.option input[name=file] { width:160px; } */ -body.mobile fieldset.word>form.option>div.item>input[name=path] { width:180px; } +body.mobile fieldset.word:not(.cmd)>form.option>div.item>input[name=path] { width:180px; } body.mobile fieldset.word fieldset.inner>form.option input[type=text] { display:none; } body.mobile fieldset.Action>div.output>fieldset.plugin:not(.output):not(.float):not(.full):not(.cmd):not(:first-child) { margin:20px 0; } body.windows fieldset.inner>div.output { overflow:hidden; } diff --git a/lib/user.js b/lib/user.js index f7c65c4d..77bee5f5 100644 --- a/lib/user.js +++ b/lib/user.js @@ -278,8 +278,8 @@ Volcanos("user", { can.page.Append(can, ui.display, [{text: ["或第三方授权: ", html.LABEL]}, {view: [["sso", html.FLEX]], list: _msg.Table(function(value) { return value.type == "oauth" && {view: [[html.ITEM, html.FLEX]], title: "点击跳转,授权登录", list: [{img: can.misc.Resource(can, value.icons)}, {text: value.name}], onclick: function() { can.user.jumps(value.link) }} }) }]) - can.page.style(can, ui._target, {left: (window.innerWidth-ui._target.offsetWidth)/2, top: - can.base.Min((window.innerHeight-ui._target.offsetHeight-html.HEADER_HEIGHT-html.ACTION_HEIGHT)/4, 0)+(window.innerHeight > 640? html.HEADER_HEIGHT: 0)}) + can.page.style(can, ui._target, {left: (can.page.width()-ui._target.offsetWidth)/2, top: can.page.height() < 640? (can.page.height()-ui._target.offsetHeight)/2: + (can.page.height()-ui._target.offsetHeight-html.HEADER_HEIGHT-html.ACTION_HEIGHT)/4+html.HEADER_HEIGHT}) cb && cb(); return true } else if (cmd == ice.MSG_SESSID) { if (!can.misc.CookieSessid(can, arg[0])) { can.user.info.sessid = arg[0] } check(), cb && cb(); return true } }) diff --git a/panel/action.js b/panel/action.js index 702193c4..94e92164 100644 --- a/panel/action.js +++ b/panel/action.js @@ -1,13 +1,11 @@ (function() { const ALL = "all", TABS = "tabs", TABVIEW = "tabview", VERTICAL = "vertical", HORIZON = "horizon", GRID = "grid", FREE = "free", FLOW = "flow", PAGE = "page", CAN_LAYOUT = "can.layout" -Volcanos(chat.ONIMPORT, {_init: function(can, msg) { var river = can.Conf(chat.RIVER), storm = can.Conf(chat.STORM), list = can.misc.SearchHash(can) +Volcanos(chat.ONIMPORT, {_init: function(can, msg) { var river = can.Conf(chat.RIVER), storm = can.Conf(chat.STORM), list = can.db.list can.onmotion.clear(can), can.core.Next(msg.Table(), function(item, next, index) { item.type = chat.PLUGIN, item.mode = can.Mode(); if (item.deleted == ice.TRUE) { return next() } item.width = can.ConfWidth()-can.Conf(html.MARGIN_X); if (item.style == html.OUTPUT) { item.width = can.ConfWidth()-2*html.PLUGIN_MARGIN-2*html.PLUGIN_PADDING } - if (msg.Length() == 1) { item.height = can.ConfHeight()-can.Conf(html.MARGIN_Y) - can.base.isIn(item.index, web.CHAT_MACOS_DESKTOP) && (item.style = html.OUTPUT) - } + if (msg.Length() == 1) { item.height = can.ConfHeight()-can.Conf(html.MARGIN_Y), can.base.isIn(item.index, web.CHAT_MACOS_DESKTOP) && (item.style = html.OUTPUT) } list.length == 0 && item.index == "web.dream" && (list = [river, storm, item.index]) can.onappend.plugin(can, item, function(sub, meta, skip) { if (meta.index == "can._notfound" && !can.misc.isDebug(can)) { return skip || next() } - sub.onexport.output = function() { can.onexport.isauto(can) && can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") } + sub.onexport.output = function() { msg.Length() > 1 && can.onexport.isauto(can) && can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") } sub.onaction._close = function() { can.onengine.signal(can, chat.ONACTION_REMOVE, can.request({river: river, storm: storm}, item)), can.page.Remove(can, sub._target) } sub.run = function(event, cmds, cb) { return can.run(can.request(event, {pod: meta.space||meta.pod}), (can.base.beginWith(meta.index, "can.")? [meta.index]: [river, storm, meta.id||meta.index]).concat(cmds), cb) } can.user.isChrome && (can.ondaemon._list[sub._daemon = can.core.Keys(river, storm, index)] = sub) @@ -33,13 +31,12 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { var river = can.Conf(chat.R can.onmotion.hidden(can, can._header_tabs = can.page.Append(can, target, [html.TABS])._target) }, }) -Volcanos(chat.ONACTION, {_init: function(can, target) { +Volcanos(chat.ONACTION, {_init: function(can, target) { can.db.list = can.misc.SearchHash(can) can.Conf(html.MARGIN_Y, 2*html.PLUGIN_PADDING+2*html.PLUGIN_MARGIN+html.ACTION_HEIGHT) can.Conf(html.MARGIN_X, 2*html.PLUGIN_PADDING+2*html.PLUGIN_MARGIN) can.core.List(["ontouchstart", "ontouchmove", "ontouchend"], function(item) { can.onengine.listen(can, item, function(event, msg) { can.onaction[item](event, can), can.onengine.signal(can, chat.ONACTION_TOUCH, msg) }, target) }) - // can.onaction.layout(can) }, onsize: function(can, msg, height, width) { can.Conf({height: can.base.Min(height, 240), width: width}) }, onlogin: function(can, msg) { @@ -65,7 +62,7 @@ Volcanos(chat.ONACTION, {_init: function(can, target) { if (msg.Length() == 1) { can.onaction._onaction_cmd(can) } can.onimport._init(can, msg) }) }, - onstorm_select: function(can, msg, river, storm) { + onstorm_select: function(can, msg, river, storm) { can.misc.SearchHash(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)) { @@ -102,8 +99,7 @@ Volcanos(chat.ONACTION, {_init: function(can, target) { 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})) - can._root.River && can._river_show === false && can.onmotion.hidden(can, can._root.River._target) - skip || can.onlayout._init(can) + can._root.River && can._river_show === false && can.onmotion.hidden(can, can._root.River._target), skip || can.onlayout._init(can) can.getActionSize(function(height, width) { var cb = can.onlayout[button]; can.base.isFunc(cb) && cb(can, height, width) || can.onlayout._plugin(can, button) }) }, _menus: [[html.LAYOUT, ALL, TABS, TABVIEW, VERTICAL, HORIZON, GRID, FREE, FLOW, PAGE], web.DREAM, web.DESKTOP, web.PORTAL], @@ -123,8 +119,11 @@ Volcanos(chat.ONLAYOUT, { flow: function(can, height, width) { can.ConfHeight(height-html.ACTION_MARGIN), can.ConfWidth(width) }, page: function(can) { can.page.styleHeight(can, can._output, ""), can.page.style(can, document.body, kit.Dict(html.OVERFLOW, "")) }, _plugin: function(can, button) { can.core.List(can._plugins, function(sub) { - sub.onimport.size(sub, can.ConfHeight()-can.Conf(html.MARGIN_Y)-(button && button != ALL || sub.isCmdMode() || can.page.ClassList.has(can, sub._target, html.OUTPUT)? 0: html.ACTION_MARGIN), - can.ConfWidth()-can.Conf(html.MARGIN_X), can.onexport.isauto(can)) && can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") + 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), + 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.misc.sessionStorage(can, can.core.Keys(CAN_LAYOUT, location.pathname), value)||[])[0] }, }) @@ -180,19 +179,6 @@ Volcanos(chat.ONKEYMAP, { f: function(event, can, target) { can.onengine.signal(can, chat.ONOPENSEARCH, can.request({}, {type: mdb.FOREACH})) }, }, normal: { - // j: function(event, can, target) { target.scrollBy(0, event.ctrlKey? 300: 30) }, - // k: function(event, can, target) { target.scrollBy(0, event.ctrlKey? -300: -30) }, - // r: function(event, can, target) { can.user.reload(true) }, - // t: function(event, can) { can.onkeymap.toggleLayout(can, TABVIEW) }, - // h: function(event, can) { can.onkeymap.toggleLayout(can, HORIZON) }, - // v: function(event, can) { can.onkeymap.toggleLayout(can, VERTICAL) }, - // g: function(event, can) { can.onkeymap.toggleLayout(can, GRID) }, - // f: function(event, can) { can.onkeymap.toggleLayout(can, FREE) }, - // b: function(event, can) { can.onkeymap.toggleTheme(can, cli.BLACK) }, - // w: function(event, can) { can.onkeymap.toggleTheme(can, cli.WHITE) }, - // l: function(event, can) { can.onkeymap.toggleTheme(can, html.LIGHT) }, - // d: function(event, can) { can.onkeymap.toggleTheme(can, html.DARK) }, - // c: function(event, can) { can.user.toimage(can, can.user.title(), can._target.parentNode, true) }, ":": function(event, can) { can.onengine.signal(can, chat.ONCOMMAND_FOCUS), can.onkeymap.prevent(event) }, " ": function(event, can) { can.onengine.signal(can, chat.ONSEARCH_FOCUS), can.onkeymap.prevent(event) }, Enter: function(event, can) { can.onengine.signal(can, chat.ONOPENSEARCH, can.request(event)) }, diff --git a/panel/header.css b/panel/header.css index 7813692a..5cea2eb1 100644 --- a/panel/header.css +++ b/panel/header.css @@ -26,12 +26,12 @@ fieldset.Header>div.output div.Action>div.tabs div.item { font-style:italic; } fieldset.Header>div.output div.Action>div.tabs div.item:only-child { display:none; } body:not(.mobile) fieldset.Header>div.output div.title:first-child { width:var(--river-width); } body:not(.mobile) fieldset.Header>div.output div.title img { margin-right:var(--button-margin); } -body:not(.mobile) fieldset.Header>div.output div.title:first-child { padding-left:var(--button-padding); width:unset; } +body:not(.mobile) fieldset.Header:not(.all):not(.tabs)>div.output div.title:first-child { padding-left:var(--button-padding); width:unset; } +body:not(.width6)>fieldset.Header:not(.all):not(.tabs)>div.output div.item.menu.search { padding-left:0 !important; margin-left:0; } body:not(.width6) fieldset.Header.tabview>div.output>div.Action>div.item.dream { display:none; } body:not(.width6) fieldset.Header.tabview>div.output>div.Action>div.item.desktop { display:none; } -body:not(.width6) fieldset.Header.tabview>div.output>div.Action>div.item.portal { display:none; } +body:not(.width6) fieldset.Header>div.output>div.Action>div.item.portal { display:none; } body:not(.width6) fieldset.Header>div.output>div.item.language { display:none; } -body:not(.width6)>fieldset.Header>div.output div.item.menu.search { padding-left:0 !important; margin-left:0; } body.width2>fieldset.Header>div.output div.item:not(.usernick):not(.avatar) { padding:13.5px 8px; } body.width3>fieldset.Header>div.output div.item:not(.usernick):not(.avatar) { padding:13.5px 8px; } body.width3>fieldset.Header>div.output>div.item.time { display:none; } diff --git a/panel/river.js b/panel/river.js index 9c795ff9..2fc50912 100644 --- a/panel/river.js +++ b/panel/river.js @@ -56,16 +56,8 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func can.onexport.scroll(can) }, refresh: function(event, can) { can.misc.Search(can, {river: can.Conf(chat.RIVER), storm: can.Conf(chat.STORM)}) }, - storm: function(event, can, river) { - can.onmotion.select(can, can._output, html.DIV_ITEM, can.ui.river_list[river]) - function _menu(list) { can.onlayout._init(can) - can.page.ClassList.set(can, can.ui.river_list[river], "open", can.page.isDisplay(list)) - can.user.isMobile && can.onmotion.delay(can, function() { var list = can.db.storm_list[river] - can.onmotion.hidden(can, can._root.Footer._target, list.length > 1) - var menu = can.setFooterMenu(list, function(event, button, list) { can.onaction.action(event, can, river, button) }) - can.page.SelectChild(can, menu, html.DIV_ITEM, function(target, index) { can.page.ClassList.set(can, target, html.SELECT, list[index].hash == can.Conf("storm")) }) - }, 300) - } + storm: function(event, can, river) { can.onmotion.select(can, can._output, html.DIV_ITEM, can.ui.river_list[river]) + function _menu(list) { can.onlayout._init(can), can.page.ClassList.set(can, can.ui.river_list[river], "open", can.page.isDisplay(list)) } var list = can.ui.sublist[river]; if (list) { return can.onmotion.toggle(can, list), _menu(list) } can.run({}, [river, chat.STORM], function(msg) { var next = can.ui.river_list[river].nextSibling if (msg.Length() == 0) { return can.user.isLocalFile? can.user.toastFailure(can, "miss data"): can.onengine.signal(can, chat.ONACTION_NOSTORM, can.request({}, {river: river})) } @@ -81,7 +73,11 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func can.page.Select(can, can._output, [html.DIV_LIST, html.DIV_ITEM], function(target) { can.page.ClassList.del(can, target, html.SELECT) }) can.onmotion.select(can, can.ui.sublist[river], html.DIV_ITEM, can.ui.storm_list[can.core.Keys(river, storm)]) can.onmotion.select(can, can._output, html.DIV_ITEM, can.ui.river_list[river]) - can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm)})) + var list = can.db.storm_list[river]; + can.user.isMobile && can.onmotion.hidden(can, can._root.Footer._target, list.length > 1) + can.user.isMobile && can.onmotion.delay(can, function() { var menu = can.setFooterMenu(list, function(event, button, list) { can.onaction.action(event, can, river, button) }) + can.page.SelectChild(can, menu, html.DIV_ITEM, function(target, index) { can.page.ClassList.set(can, target, html.SELECT, list[index].hash == can.Conf("storm")) }) + }), can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm)})) }, carte: function(event, can, list, river, storm) { can.onkeymap.prevent(event); if (can.core.Value(can._root, can.core.Keys(chat.RIVER, river))) { return } can.request(event, {river: river, storm: storm}); storm? can.user.carteRight(event, can, can.ondetail, list): can.user.carteRight(event, can, can.onaction, list) diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js index 10fa011e..4084ba44 100644 --- a/plugin/local/team/plan.js +++ b/plugin/local/team/plan.js @@ -1,4 +1,5 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can, target), can._display_heights = {}, can.list = {}; var ls = can.misc.SearchHash(can) + can.isCmdMode() || can.onmotion.hidden(can, can._action) can.ui = can.onappend.layout(can), can.onmotion.hidden(can, can.ui.profile), can.onmotion.hidden(can, can.ui.display), can.isCmdMode() || can.onmotion.hidden(can, can.ui.project) can.onimport[can.Option("scale")||team.WEEK](can, msg), can.Status(mdb.COUNT, msg.Length()), can.ui.filter.placeholder = `search in ${ msg.Length() } items`, can.onimport.layout(can) var item; if (can.isCmdMode() && ls.length > 0) { item = can.list[can.core.Keys(ls)] } else if (can.sup.task) { item = can.list[can.core.Keys(can.sup.task.space, can.sup.task.zone, can.sup.task.id)] } item && item.click() diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js index afbc2eb2..f6e2d29c 100644 --- a/plugin/local/wiki/draw.js +++ b/plugin/local/wiki/draw.js @@ -1,4 +1,5 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { + can.isCmdMode() || can.onmotion.hidden(can, can._action) can.OptionPath = function(value) { return can.Option(nfs.PATH, value) } can.OptionPid = function(value) { return can.Option(svg.PID, value) } can.ActionGo = function(value) { return can.Action(svg.GO, value) } diff --git a/plugin/local/wiki/word.js b/plugin/local/wiki/word.js index f274d334..17b4e7b6 100644 --- a/plugin/local/wiki/word.js +++ b/plugin/local/wiki/word.js @@ -91,7 +91,7 @@ Volcanos(chat.ONACTION, { ["布局", "开讲", "网格", "快闪"], "大纲", "首页", "上一页", ["菜单"].concat(can.core.List(list, function(page) { return page[0].innerHTML })), "下一页", "隐藏", "结束", - ], sub._action, can.ondetail), can.onkeymap._build(can) + ], sub._action, can.ondetail, false, 10), can.onkeymap._build(can) sub.page.style(sub, sub._target, "background", can._root._target.style.background) sub.page.style(sub, sub._output, html.HEIGHT, can.page.height()-2*html.ACTION_HEIGHT) sub.page.style(sub, sub._output, html.WIDTH, can.page.width()) diff --git a/plugin/story/trends.js b/plugin/story/trends.js index abd0bc2c..dbb0f130 100644 --- a/plugin/story/trends.js +++ b/plugin/story/trends.js @@ -1,6 +1,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireDraw(can, function() { can.base.isFunc(cb) && cb(msg) - can.Conf(html.VIEW) && can.Action(html.VIEW, can.Conf(html.VIEW)), can.onmotion.toggle(can, can._option, !can.user.isMobile || !can.isFullMode()) + can.Conf(html.VIEW) && can.Action(html.VIEW, can.Conf(html.VIEW)) + can.onmotion.toggle(can, can._option, !can.user.isMobile) + can.onmotion.toggle(can, can._action, !can.user.isMobile) can.db.data = msg.Table(), can.onimport.layout(can) }) }, @@ -24,7 +26,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { return {height: height, width: width, margin: margin, step: step} }, layout: function(can) { can.db.data && can.core.CallFunc(can.onaction[can.Action(html.VIEW)], [{}, can]) }, - // transform: function(can, target) { target.Value("transform", "scale(1, -1)") }, transform: function(can, target) { target.Value("transform", "translate(0, "+parseInt(can.ConfHeight())+") scale(1, -1)") }, }) Volcanos(chat.ONACTION, {list: [[html.VIEW, "趋势图", "柱状图", "折线图", "数据源"],