1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00

opt aaa.apply

This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-02-06 15:07:51 +08:00
parent 50959a3646
commit 790a0e7376
6 changed files with 51 additions and 18 deletions

View File

@ -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]) } 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) 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.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 input.onclick = item.onclick
if (item.type == html.TEXT) { if (item.type == html.TEXT) {
input.placeholder = can.user.trans(can, input.placeholder||input.name, item._trans, html.INPUT) 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]) 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.onappend.style(can, html.FLEX, ui.action)
can.core.List(can.base.getValid(list, can.core.Item(meta)), function(name, index) { 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) 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) 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 }, _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) } 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) } } 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) { 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) { function show(sub, cb) { can.base.isFunc(cb) && cb(sub, _cb)
can.base.isFunc(cb) && cb(sub, _cb), can.onlayout.figure(event, can, sub._target), can.onmotion.toggle(can, sub._target, true) 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) 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) { can.core.CallFunc(on, {event: event, can: can, meta: meta, cb: _cb, target: target, sub: target._can, last: last, cbs: function(cb) {

View File

@ -75,7 +75,7 @@ body.width1 { /* 320-640 手机竖屏 */
--river-width:280px; --project-width:120px; --input-width:80px; --river-width:280px; --project-width:120px; --input-width:80px;
--river-margin:0; --plugin-margin:0; --button-margin:5px; --river-margin:0; --plugin-margin:0; --button-margin:5px;
--table-button:2; --table-button:2;
--form-width:280px; --form-width:320px;
} }
body.width2 { /* 640-960 手机横屏 平板竖屏 笔记本调试 */ body.width2 { /* 640-960 手机横屏 平板竖屏 笔记本调试 */
--url-input-width:160px; --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>legend { margin-left:122px; }
body>div.input td { padding:var(--table-padding); } body>div.input td { padding:var(--table-padding); }
body>div.input td:nth-child(2) { padding:var(--table-padding) 0; } 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>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 { 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); } 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 { flex-direction:column; }
body>div.input.login>div.action { border-bottom:var(--box-border); flex-direction:row; } 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 { 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 { 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>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 { 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>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; } 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.danger input { border:var(--danger-bg-color) solid 1px; }
div.item.button.notice input { border:var(--notice-bg-color) solid 1px; } div.item.button.notice input { border:var(--notice-bg-color) solid 1px; }
div.action div.tabs:hover { 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); border-top-left-radius:var(--button-margin); border-top-right-radius:var(--button-margin);
} }
div.action div.tabs.select { 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; 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); } div.zone>div.item { background-color:var(--th-bg-color); }

View File

@ -418,7 +418,7 @@ Volcanos("page", {
msg.OptionDefault(ice.MSG_THEME, can.getHeaderTheme()) msg.OptionDefault(ice.MSG_THEME, can.getHeaderTheme())
msg.OptionDefault(ice.MSG_BG, can.page.styleValue(can, "--plugin-bg-color", target)) 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_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 return msg
}, },
styleValue: function(can, key, target) { const styles = getComputedStyle(target||document.body); return styles.getPropertyValue(key) }, styleValue: function(can, key, target) { const styles = getComputedStyle(target||document.body); return styles.getPropertyValue(key) },

View File

@ -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() 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) }, }, _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.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) } can.onmotion.resize(can, ui._target), can.onmotion.delay(can, function() { action.focus() }, 300)
return button === true && action.submit(event, can, html.SUBMIT), action 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) } 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] 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) { 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) } 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, "") } sub.onexport.output = function() { can.page.style(can, sub._output, html.MAX_HEIGHT, ""), can.page.style(can, sub._output, html.MAX_WIDTH, "") }
}, ui.output) }, 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) 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) } 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) 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.Appends(can, ui.display, [{text: [
can.page.Append(can, ui.display, [{text: ["或第三方授权: ", html.LABEL]}, {view: [["sso", html.FLEX]], list: _msg.Table(function(value) { 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() { 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)) can.user.jumps(can.base.MergeURL(value.link, ice.BACK, location.href))
}} }}

View File

@ -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) { 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, "") return can.misc.Search(can, ice.MSG_SESSID, "")
} can.user.info.sessid = 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.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) }) can.onmotion.delay(can, function() { can.onimport._language(can) })
} }
function show(msg) { var p = can.misc.Search(can, "redirect_uri") 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))) } 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() } 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.usernick = can.Conf(aaa.USERNICK)
can.user.info.nodetype = msg.Option(ice.MSG_NODETYPE)
can.user.info.username = msg.Option(ice.MSG_USERNAME) 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) }) 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")]) can.run(can.request({}, {_method: http.GET}), [], function(msg) { lang(msg), can.page.requireModules(can, [msg.Option("icon.lib")])

View File

@ -107,7 +107,11 @@ Volcanos(chat.ONIMPORT, {
can.page.SelectArgs(can, can._action, "", function(target) { target.value = his[i++]||"" }); break can.page.SelectArgs(can, can._action, "", function(target) { target.value = his[i++]||"" }); break
} can.Update(event) }, } 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.isCmdMode()) { return "打开首页" } },
function(can) { if (can.ConfSpace() || can.isCmdMode() && can.misc.Search(can, ice.POD)) { return "打开空间" } }, function(can) { if (can.ConfSpace() || can.isCmdMode() && can.misc.Search(can, ice.POD)) { return "打开空间" } },
function(can) { if (!can.isCmdMode()) { return "打开链接" } }, function(can) { if (!can.isCmdMode()) { return "打开链接" } },