mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
opt aaa.apply
This commit is contained in:
parent
50959a3646
commit
790a0e7376
14
frame.js
14
frame.js
@ -370,7 +370,13 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
input: function(can, item, value, target, style) { if ([html.BR, html.HR].indexOf(item.type) > -1) { return can.page.Append(can, target, [item]) }
|
||||
var icon = [], _item = can.base.Copy({className: "", type: "", name: ""}, item), input = can.page.input(can, _item, value)
|
||||
if (item.type == html.SELECT) { can.core.List(input.list, function(item) { item.inner = can.user.trans(can, item.inner, item._trans, html.INPUT) }) }
|
||||
if (item.type == html.BUTTON && !input.value) { input.value = can.user.trans(can, item.name, item._trans) }
|
||||
if (item.type == html.BUTTON && !input.value) {
|
||||
if (item.name != item.value) {
|
||||
input.value = item.value
|
||||
} else {
|
||||
input.value = can.user.trans(can, item.name, item._trans)
|
||||
}
|
||||
}
|
||||
input.onclick = item.onclick
|
||||
if (item.type == html.TEXT) {
|
||||
input.placeholder = can.user.trans(can, input.placeholder||input.name, item._trans, html.INPUT)
|
||||
@ -653,7 +659,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
tabview: function(can, meta, list, target) { var ui = can.page.Append(can, target, [html.ACTION, html.OUTPUT])
|
||||
can.onappend.style(can, html.FLEX, ui.action)
|
||||
can.core.List(can.base.getValid(list, can.core.Item(meta)), function(name, index) {
|
||||
ui[name] = can.page.Append(can, ui.action, [{view: [html.TABS, html.DIV, name], onclick: function(event) {
|
||||
ui[name] = can.page.Append(can, ui.action, [{view: [html.TABS, html.DIV, can.user.trans(can, name)], onclick: function(event) {
|
||||
can.onmotion.select(can, ui.action, html.DIV_TABS, event.target)
|
||||
if (can.onmotion.cache(can, function() { return name }, ui.output)) { return } meta[name](ui.output)
|
||||
}, _init: function(target) { index == 0 && can.onmotion.delay(can, function() { target.click() }) }}])._target
|
||||
@ -702,8 +708,8 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
function _cb(sub, value, old) { if (value == old) { return } target.value = value, can.base.isFunc(cb) && cb(sub, value, old) }
|
||||
target.onkeydown = function() { if (event.key == code.ESCAPE && target._can) { return target._can.close(), target.blur() } else if (event.key == code.ENTER) { can.base.isFunc(cb) && cb(event, target.value) } }
|
||||
can.core.ItemCB(can.onfigure[input], function(key, on) { var last = target[key]||function() { }; target[key] = function(event) { can.misc.Event(event, can, function(msg) {
|
||||
function show(sub, cb) {
|
||||
can.base.isFunc(cb) && cb(sub, _cb), can.onlayout.figure(event, can, sub._target), can.onmotion.toggle(can, sub._target, true)
|
||||
function show(sub, cb) { can.base.isFunc(cb) && cb(sub, _cb)
|
||||
can.onlayout.figure(event, can, sub._target), can.onmotion.toggle(can, sub._target, true)
|
||||
sub.Status(html.HEIGHT, sub._output.offsetHeight), sub.Status(html.WIDTH, sub._output.offsetWidth)
|
||||
}
|
||||
can.core.CallFunc(on, {event: event, can: can, meta: meta, cb: _cb, target: target, sub: target._can, last: last, cbs: function(cb) {
|
||||
|
17
index.css
17
index.css
@ -75,7 +75,7 @@ body.width1 { /* 320-640 手机竖屏 */
|
||||
--river-width:280px; --project-width:120px; --input-width:80px;
|
||||
--river-margin:0; --plugin-margin:0; --button-margin:5px;
|
||||
--table-button:2;
|
||||
--form-width:280px;
|
||||
--form-width:320px;
|
||||
}
|
||||
body.width2 { /* 640-960 手机横屏 平板竖屏 笔记本调试 */
|
||||
--url-input-width:160px;
|
||||
@ -240,6 +240,13 @@ body>div.input { padding:var(--plugin-padding); z-index:100; }
|
||||
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 { margin:var(--button-margin); }
|
||||
body.mobile>div.input tr { display:flex; flex-direction:column; margin:var(--button-margin); }
|
||||
body.mobile>div.input td { padding:0 var(--button-padding); margin:var(--button-margin); }
|
||||
body.mobile>div.input td:nth-child(1) { color:var(--disable-fg-color); font-size:var(--status-font-size); padding-left:var(--button-padding); margin-bottom:0; }
|
||||
body.mobile>div.input td:nth-child(2) { display:none; }
|
||||
|
||||
body>div.input tr.img td:last-child>span { display:none; }
|
||||
body>div.input tr.img td:last-child>div.item { width:var(--river-width); flex-wrap:wrap; }
|
||||
body>div.input tr.img td:last-child>div.item>div { background-color:gray; margin:var(--input-margin); }
|
||||
@ -270,8 +277,10 @@ body>div.input div.action>div.item>input[type=button] { width:112px; }
|
||||
body>div.input.login { flex-direction:column; }
|
||||
body>div.input.login>div.action { border-bottom:var(--box-border); flex-direction:row; }
|
||||
body>div.input.login>div.action>div.tabs { padding:var(--button-padding); }
|
||||
body>div.input.login>div.action>div.tabs.select { color:unset; }
|
||||
body>div.input.login>div.output { text-align:center; min-height:var(--qrcode-height); min-width:var(--iframe-height); overflow:hidden; clear:both; }
|
||||
body>div.input.login>div.output>fieldset>div.output { background-color:transparent; }
|
||||
body>div.input.login>div.output>fieldset { box-shadow:unset; }
|
||||
body>div.input.login>div.display { padding-top:var(--button-padding); width:100%; flex-direction:column; }
|
||||
body>div.input.login>div.display>label { color:var(--disable-fg-color); font-style:italic; font-size:var(--status-font-size); }
|
||||
body>div.input.login>div.display>span.item { font-style:italic; word-break:break-all; border-left:var(--notice-bg-color) solid 5px; padding-left:var(--button-padding); margin:var(--button-margin) 0; }
|
||||
@ -360,11 +369,13 @@ div.item.button.notice input:hover[type=button] { background-color:var(--notice-
|
||||
div.item.button.danger input { border:var(--danger-bg-color) solid 1px; }
|
||||
div.item.button.notice input { border:var(--notice-bg-color) solid 1px; }
|
||||
div.action div.tabs:hover {
|
||||
background-color:var(--output-bg-color); color:var(--hover-fg-color);
|
||||
background-color:var(--hover-bg-color);
|
||||
/* color:var(--hover-fg-color); */
|
||||
border-top-left-radius:var(--button-margin); border-top-right-radius:var(--button-margin);
|
||||
}
|
||||
div.action div.tabs.select {
|
||||
background-color:var(--output-bg-color); color:var(--hover-fg-color);
|
||||
background-color:var(--output-bg-color);
|
||||
/* color:var(--hover-fg-color); */
|
||||
border-top-left-radius:var(--button-margin); border-top-right-radius:var(--button-margin); border-bottom:var(--hover-fg-color) solid 3px;
|
||||
}
|
||||
div.zone>div.item { background-color:var(--th-bg-color); }
|
||||
|
@ -418,7 +418,7 @@ Volcanos("page", {
|
||||
msg.OptionDefault(ice.MSG_THEME, can.getHeaderTheme())
|
||||
msg.OptionDefault(ice.MSG_BG, can.page.styleValue(can, "--plugin-bg-color", target))
|
||||
msg.OptionDefault(ice.MSG_FG, can.page.styleValue(can, "--plugin-fg-color", target))
|
||||
msg.OptionDefault(ice.MSG_LANGUAGE, can.user.info.language)
|
||||
can.user.info.language && msg.OptionDefault(ice.MSG_LANGUAGE, can.user.info.language)
|
||||
return msg
|
||||
},
|
||||
styleValue: function(can, key, target) { const styles = getComputedStyle(target||document.body); return styles.getPropertyValue(key) },
|
||||
|
18
lib/user.js
18
lib/user.js
@ -208,7 +208,9 @@ Volcanos("user", {
|
||||
can.core.CallFunc(cb, {event: can.request(event, {_handle: ice.TRUE})._event, button: button, data: data, list: list, args: args, input: action}) || action.cancel()
|
||||
}, _target: ui._target, _engine: function(event, can, button) { action.submit(event, can, button) },
|
||||
});
|
||||
if (event && event.target) { can.onlayout.figure(event, can, ui._target) } else {
|
||||
if (event && event.target) { can.onlayout.figure(event, can, ui._target)
|
||||
can.user.isMobile && can.page.style(can, ui._target, html.LEFT, (can.page.width()-ui._target.offsetWidth)/2, html.TOP, can.getHeaderHeight(can))
|
||||
} else {
|
||||
can.getActionSize(function(left, top, height) { can.page.style(can, ui._target, html.LEFT, left||0, html.TOP, (height/4||0)) })
|
||||
} can.onmotion.resize(can, ui._target), can.onmotion.delay(can, function() { action.focus() }, 300)
|
||||
return button === true && action.submit(event, can, html.SUBMIT), action
|
||||
@ -264,17 +266,23 @@ Volcanos("user", {
|
||||
} can.core.Timer(1000, function() { check() }), can.onimport.theme(can)
|
||||
}
|
||||
if (cmd == cli.PWD) { if (check()) { return } can.page.ClassList.add(can, document.body, aaa.LOGIN), can._wss_name = can.ondaemon._list[0] = arg[0]
|
||||
var _list = [], list = {}; _msg.Table(function(value) { if (value.order == "") {} else if (value.type == mdb.PLUGIN) { _list.push(value.name), list[value.name] = function(target) {
|
||||
var _list = [], list = {}; _msg.Table(function(value) { if (value.order == "") {} else if (value.type == mdb.PLUGIN) {
|
||||
can.user.trans(can, kit.Dict(value.name, value.help))
|
||||
_list.push(value.name), list[value.name] = function(target) {
|
||||
can.onappend.plugin(can, {space: value.space, index: value.index, args: can.core.Split(value.args), style: html.OUTPUT}, function(sub) {
|
||||
var run = sub.run; sub.run = function(event, cmds, cb) { var msg = can.request(event, {space: arg[0]}); can.page.exportValue(can, msg), run(event, cmds, cb) }
|
||||
sub.onexport.output = function() { can.page.style(can, sub._output, html.MAX_HEIGHT, ""), can.page.style(can, sub._output, html.MAX_WIDTH, "") }
|
||||
}, ui.output)
|
||||
} } else if (value.type == cli.QRCODE) { _list.push(value.name), list[value.name] = function(target) { can.page.Modify(can, target, arg[2]) } } })
|
||||
} } else if (value.type == cli.QRCODE) {
|
||||
can.user.trans(can, kit.Dict(value.name, value.help))
|
||||
_list.push(value.name), list[value.name] = function(target) { can.page.Modify(can, target, arg[2]) } } })
|
||||
var ui = can.onappend.tabview(can, list, _list, can.page.Append(can, document.body, [{view: "input login float flex"}])._target)
|
||||
if (window.parent != window && window.innerHeight < 480) { can.onmotion.hidden(can, ui.output) }
|
||||
var _cmd = "space login "+arg[0]; ui.display = can.page.Append(can, ui._target, [html.DISPLAY])._target, can.onappend.style(can, html.FLEX, ui.display)
|
||||
can.page.Appends(can, ui.display, [{text: ["或命令行授权: ", html.LABEL]}, {text: ["$ "+_cmd, "", html.ITEM], title: "点击复制,并后台执行此命令,即可登录", style: {cursor: "copy"}, onclick: function() { can.user.copy(event, can, _cmd) }}])
|
||||
can.page.Append(can, ui.display, [{text: ["或第三方授权: ", html.LABEL]}, {view: [["sso", html.FLEX]], list: _msg.Table(function(value) {
|
||||
can.page.Appends(can, ui.display, [{text: [
|
||||
can.user.trans(can, "or command login", "或命令行授权: "), html.LABEL]}, {text: ["$ "+_cmd, "", html.ITEM], title: "点击复制,并后台执行此命令,即可登录", style: {cursor: "copy"}, onclick: function() { can.user.copy(event, can, _cmd) }}])
|
||||
can.page.Append(can, ui.display, [{text: [
|
||||
can.user.trans(can, "or oauth login", "或第三方授权: "), 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(can.base.MergeURL(value.link, ice.BACK, location.href))
|
||||
}}
|
||||
|
@ -74,17 +74,21 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
|
||||
if (window.parent == window && can.misc.Search(can, ice.MSG_SESSID) && can.misc.CookieSessid(can, can.misc.Search(can, ice.MSG_SESSID)) && !can.user.isMailMaster) {
|
||||
return can.misc.Search(can, ice.MSG_SESSID, "")
|
||||
} can.user.info.sessid = can.misc.Search(can, ice.MSG_SESSID)
|
||||
function lang(msg, cb) { can.user.info.language = msg.SearchOrOption(aaa.LANGUAGE)
|
||||
function lang(msg, cb) { can.user.info.language = msg.SearchOrOption(aaa.LANGUAGE)||msg.Option(ice.MSG_LANGUAGE)
|
||||
can.user.info.language? can.require([can.misc.Resource(can, nfs.SRC_TEMPLATE+web.CHAT_HEADER+"/language/"+can.user.info.language+".js")], cb, function(can, name, sub) { can.base.Copy(can.user._trans, sub._trans) }): cb && cb()
|
||||
can.onmotion.delay(can, function() { can.onimport._language(can) })
|
||||
}
|
||||
function show(msg) { var p = can.misc.Search(can, "redirect_uri")
|
||||
if (p && location.pathname == web.BASIC_LOGIN) { return location.replace(can.base.MergeURL(p, ice.MSG_SESSID, can.misc.CookieSessid(can))) }
|
||||
var p = can.misc.Search(can, ice.BACK); if (p && location.pathname == web.CHAT_SSO) { return location.reload() }
|
||||
can.user.info.userrole = msg.Option(ice.MSG_USERROLE), can.user.info.repos = msg.Option(nfs.REPOS)
|
||||
can.user.info.nodetype = msg.Option(ice.MSG_NODETYPE)
|
||||
can.user.info.usernick = can.Conf(aaa.USERNICK)
|
||||
can.user.info.username = msg.Option(ice.MSG_USERNAME)
|
||||
can.user.info.usernick = can.Conf(aaa.USERNICK), can.user.info.email = msg.Option(aaa.EMAIL), can.user.info.avatar = msg.Option(aaa.AVATAR), can.user.info.background = msg.Option(aaa.BACKGROUND)
|
||||
can.user.info.userrole = msg.Option(ice.MSG_USERROLE)
|
||||
can.user.info.nodetype = msg.Option(ice.MSG_NODETYPE)
|
||||
can.user.info.repos = msg.Option(nfs.REPOS)
|
||||
can.user.info.email = msg.Option(aaa.EMAIL)
|
||||
can.user.info.avatar = msg.Option(aaa.AVATAR)
|
||||
can.user.info.background = msg.Option(aaa.BACKGROUND)
|
||||
lang(msg, function() { can.onmotion.clear(can), can.onimport._init(can, can.request(), can._output), can.onengine.signal(can, chat.ONLOGIN) })
|
||||
}
|
||||
can.run(can.request({}, {_method: http.GET}), [], function(msg) { lang(msg), can.page.requireModules(can, [msg.Option("icon.lib")])
|
||||
|
@ -107,7 +107,11 @@ Volcanos(chat.ONIMPORT, {
|
||||
can.page.SelectArgs(can, can._action, "", function(target) { target.value = his[i++]||"" }); break
|
||||
} can.Update(event) },
|
||||
})
|
||||
Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动", "切换全屏",
|
||||
Volcanos(chat.ONACTION, {list: [
|
||||
function(can) { if (!can.user.isMobile) { return "刷新数据" } },
|
||||
function(can) { if (!can.user.isMobile) { return "刷新界面" } },
|
||||
function(can) { if (!can.user.isMobile) { return "切换浮动" } },
|
||||
function(can) { if (!can.user.isMobile) { return "切换全屏" } },
|
||||
function(can) { if (can.isCmdMode()) { return "打开首页" } },
|
||||
function(can) { if (can.ConfSpace() || can.isCmdMode() && can.misc.Search(can, ice.POD)) { return "打开空间" } },
|
||||
function(can) { if (!can.isCmdMode()) { return "打开链接" } },
|
||||
|
Loading…
x
Reference in New Issue
Block a user