1
0
mirror of https://shylinux.com/x/volcanos synced 2025-07-01 12:04:43 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2025-06-30 19:36:02 +08:00
parent f0da4d2e79
commit 77245fa035
7 changed files with 79 additions and 30 deletions

View File

@ -10,7 +10,8 @@ body {
--hover-bg-color:#5066b961; --hover-fg-color:var(--notice-fg-color); --hover-bg-color:#5066b961; --hover-fg-color:var(--notice-fg-color);
--body-font-family:sans-serif; --code-font-family:monospace; --body-font-family:sans-serif; --code-font-family:monospace;
--project-width:230px; --river-width:var(--project-width); --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 {
--body-bg-color:var(--panel-bg-color); --body-fg-color:var(--plugin-fg-color); --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 手机竖屏 */ body.width1 { /* 320-640 手机竖屏 */
--project-width:120px; --river-width:280px; --input-width:80px; --url-input-width:160px; --form-width:290px; --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; --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.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.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.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; } 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.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.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); } 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); } 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.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); } 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: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) 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 { 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: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: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); } 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 { box-shadow:var(--float-box-shadow); border:var(--plugin-border); }
div.float:hover { box-shadow:var(--notice-box-shadow); } div.float:hover { box-shadow:var(--notice-box-shadow); }
fieldset.plugin { box-shadow:var(--plugin-box-shadow); border-radius:var(--plugin-radius); } 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.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.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); } 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; } body:not(.mobile) div.item.text:hover>span.icon { visibility:visible; }
div.item.button { position:relative; height:var(--action-height); } div.item.button { position:relative; height:var(--action-height); }
div.item.button.icons.state { margin-right:var(--input-margin); } 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.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>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; } 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(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>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.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.feel.play.float>div.output { justify-content:center; }
fieldset.user>form.option>div.item.username input { width:var(--project-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.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.Search>div.output>div.content>table.content td { cursor:pointer; }
fieldset.Action.tabs table.content { width:100%; } 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: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.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 { box-shadow:none; background-color:transparent; }
fieldset.Action>div.output>fieldset.ssh.cloud.profile:hover { box-shadow:none; } fieldset.Action>div.output>fieldset.ssh.cloud.profile:hover { box-shadow:none; }

View File

@ -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 (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) 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 (index == -1 || index+end.length != str.length) { break } str = str.slice(0, index)
if (once) { break } if (once) { break }
} return str }, } return str },

View File

@ -4,13 +4,12 @@ Volcanos(chat.ONIMPORT, {
var _select; can.onmotion.clear(can), can.onaction.layout(can, list[3]) 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() } 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) } 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) { if (list.length == 0) {
can.user.info.nodetype == web.SERVER && item._command == web.DREAM && (list = [river, storm, item._command]) 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.user.info.nodetype == web.WORKER && item._command == web.VIMER && (list = [river, storm, item._command])
} }
can.onappend.plugin(can, item, function(sub, meta, skip) { can.onappend.plugin(can, item, function(sub, meta, skip) { can.user.isMobile || sub.Conf(ice.AUTO, cli.DELAY)
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]) } 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.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]) } 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.user.mod.isPod && can.user.title(["后台", sub.ConfHelp(), can.user.info.titles].join(" "))
// can.onmotion.delay(can, function() { sub._header_tabs.scrollIntoViewIfNeeded() }) // can.onmotion.delay(can, function() { sub._header_tabs.scrollIntoViewIfNeeded() })
var layout = can.onexport.layout(can); layout == FREE || (can._output.scrollTop = sub._target.offsetTop-10) 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.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)) 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 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) 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 = [] 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 }) 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)) { }, 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})) }, 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})) }, 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) 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) 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) 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.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)) { 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)) 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, "") 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] }, _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, { 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) { size: function(can, msg) {
msg.Option(html.LEFT, can._output.offsetLeft), msg.Option(html.TOP, can._output.offsetTop) 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) msg.Option(html.HEIGHT, can._output.offsetHeight||window.innerHeight), msg.Option(html.WIDTH, can._output.offsetWidth||window.innerWidth)

View File

@ -74,6 +74,7 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH],
}) })
}, },
action: function(event, can, river, storm) { 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._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.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) 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()}) }) }) }, ], 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, { 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 }, 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 } 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) })}) msg.Push({ctx: ice.CAN, cmd: can._name, type: river, name: storm, text: shy("跳转", function(event) { can.onaction.action(event, can, river, storm) })})

View File

@ -263,7 +263,7 @@ Volcanos(chat.ONIMPORT, {
}) })
}) }, }) },
layout: function(can) { 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.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.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())) } if (can.isCmdMode()) { can.page.style(can, can._output, html.HEIGHT, can.ConfHeight(can.page.height())) }

View File

@ -309,12 +309,21 @@ Volcanos(chat.ONACTION, {
navigator.clipboard? navigator.clipboard.readText().then(add).catch(function(err) { can.misc.Log(err) }): 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]) }) 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) { getLocation: function(event, can, button) { can.user.agent.getLocation(can, function(res) {
can.user.input(can.request(event, data), can, [mdb.TYPE, mdb.NAME, mdb.TEXT, aaa.LATITUDE, aaa.LONGITUDE], function(args) { can.user.input(can.request(event, res), can, [mdb.NAME, mdb.TEXT], function(data, args) {
can.runAction(event, button, args, function() { can.Update() }) 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)) }, 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) }, scanQRCode0: function(event, can, button) { can.user.agent.scanQRCode(can) },
scanQRCode: function(event, can, button) { scanQRCode: function(event, can, button) {
can.user.agent.scanQRCode(can, function(data) { can.sub.runAction(event, button, can.base.Simple(data)) }) can.user.agent.scanQRCode(can, function(data) { can.sub.runAction(event, button, can.base.Simple(data)) })

View File

@ -2,7 +2,8 @@ Volcanos(chat.ONIMPORT, {
_init: function(can, msg, target, cb) { _init: function(can, msg, target, cb) {
if (can.Mode() == html.ZONE) { return can.onimport._vimer_zone(can, msg, target), cb && cb(msg) } 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) } 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) } 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)) { 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}) 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) { 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)) 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) cb && cb(target, value)
}, onclick: function(event) { can.sup.onexport.record(can.sup, value.name, mdb.NAME, value) }}])._target }, 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.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) 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} }}]), 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) { 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.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) 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) 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) // var place_uid = can.Option(PLACE_UID) == can.misc.Search(can, PLACE_UID)? "": can.Option(PLACE_UID)
if (sub._stacks_current.length == 1) { if (sub._stacks_current.length == 1) {
if (can.misc.Search(can, PLACE_UID) == place_uid) { plugin.sub.onexport.hash(plugin.sub, place_uid)
can.misc.SearchHash(can, "")
} else {
plugin.sub.onexport.hash(plugin.sub, place_uid)
}
} else { } else {
plugin.sub.onexport.hash(plugin.sub, place_uid, can.ConfIndex(), can.Option(UID)) plugin.sub.onexport.hash(plugin.sub, place_uid, can.ConfIndex(), can.Option(UID))
} }
@ -322,11 +322,7 @@ Volcanos(chat.ONIMPORT, {
) )
} else { } else {
if (can.isCmdMode() && can.current) { var place_uid = can.current._uid if (can.isCmdMode() && can.current) { var place_uid = can.current._uid
if (can.misc.Search(can, PLACE_UID) == place_uid) { can.onexport.hash(can, place_uid)
can.misc.SearchHash(can, "")
} else {
can.onexport.hash(can, place_uid)
}
} }
} }
var icons = ""; can.core.List([current.icons, can.ConfIcons(), plugin.ConfIcons()], function(p) { var icons = ""; can.core.List([current.icons, can.ConfIcons(), plugin.ConfIcons()], function(p) {