1
0
forked from x/volcanos
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-01-09 20:01:58 +08:00
parent bf84c5cc93
commit e9a63583a4
6 changed files with 21 additions and 14 deletions

View File

@ -228,7 +228,7 @@ 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) } if (item.type == html.BUTTON && can.page.isIconInput(can, item.name)) { can.onappend.icons(can, target, item.name) }
}), item), "", action) }), item), "", action)
}) })
// if (list.length == 0) { return meta } if (list.length == 0 && can.Conf("inputs").length == 0) { return meta }
var _can = can._fields? can.sup: can var _can = can._fields? can.sup: can
can.user.isMobile || can.isCmdMode() || can.base.beginWith(can.ConfIndex(), "can.") || can.page.tagis(can._fields||can._target, html.FIELDSET_PANEL, html.FIELDSET_PLUG) || action == can._action && can.page.Append(can, action, can.user.isMobile || can.isCmdMode() || can.base.beginWith(can.ConfIndex(), "can.") || 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: "切换全屏", open: "打开链接"}, function(key, value) { can.core.Item({full: "切换全屏", open: "打开链接"}, function(key, value) {

View File

@ -210,9 +210,10 @@ Volcanos("misc", {
var _location = location; if (can.user.isExtension) { var _location = new URL(Volcanos.meta.iceberg) } var _location = location; if (can.user.isExtension) { var _location = new URL(Volcanos.meta.iceberg) }
return can.base.MergeURL(_location.origin+(args.length > 0? nfs.PS+args.join(nfs.PS): path)+(clear? "": _location.search), obj)+(hash? "#"+hash: "") return can.base.MergeURL(_location.origin+(args.length > 0? nfs.PS+args.join(nfs.PS): path)+(clear? "": _location.search), obj)+(hash? "#"+hash: "")
}, },
ParseURL: function(can, url) { url = url||location.href; var args = can.base.ParseURL(url), _location = new URL(url) ParseURL: function(can, url) { url = url||location.href; var args = can.base.ParseURL(url)
delete(args.link), delete(args.origin), delete(args._origin) delete(args.link), delete(args.origin), delete(args._origin)
var ls = can.core.Split(_location.pathname, nfs.PS); var raw = new RegExp("(https?://[^/]+)([^?#]*)([^#]*)(.*)").exec(url)
var ls = can.core.Split(raw[2], nfs.PS);
if (ls[0] == chat.SHARE) { args[chat.SHARE] = ls[1] } if (ls[0] == chat.SHARE) { args[chat.SHARE] = ls[1] }
if (ls[0] == "s") { args[ice.POD] = ls[1]; if (ls[2] == "c") { args[ice.CMD] = ls[3] } } if (ls[0] == "s") { args[ice.POD] = ls[1]; if (ls[2] == "c") { args[ice.CMD] = ls[3] } }
if (ls[0] == "c") { args[ice.CMD] = ls[1] } if (ls[0] == "c") { args[ice.CMD] = ls[1] }
@ -231,6 +232,7 @@ Volcanos("misc", {
if (dir.indexOf(nfs.SRC) == 0 || dir.indexOf(nfs.USR) == 0) { dir = "/require/"+dir } if (dir.indexOf(nfs.SRC) == 0 || dir.indexOf(nfs.USR) == 0) { dir = "/require/"+dir }
return dir+file+(ext? nfs.PT+ext: "") return dir+file+(ext? nfs.PT+ext: "")
}, },
isDebug: function(can) { return can.misc.Search(can, log.DEBUG) == ice.TRUE },
Search: function(can, key, value) { var args = this.ParseURL(can, location.href) Search: function(can, key, value) { var args = this.ParseURL(can, location.href)
if (can.base.isUndefined(key)) { return args } else if (can.base.isObject(key)) { if (can.base.isUndefined(key)) { return args } else if (can.base.isObject(key)) {
can.core.Item(key, function(k, v) { v === ""? delete(args[k]): (args[k] = v) }) can.core.Item(key, function(k, v) { v === ""? delete(args[k]): (args[k] = v) })

View File

@ -4,7 +4,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width()) can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width())
can.Conf(NKEY, can.core.Item(can.misc.localStorage(can)).length) can.Conf(NKEY, can.core.Item(can.misc.localStorage(can)).length)
can.onimport._title(can, msg, target), can.onimport._command(can, msg, target), can.onimport._storm(can, msg, target) can.onimport._title(can, msg, target), can.onimport._command(can, msg, target), can.onimport._storm(can, msg, target)
can.onimport._state(can, msg, target), can.onimport._toast(can, msg, target) can.misc.isDebug(can) && can.onimport._state(can, msg, target), can.onimport._toast(can, msg, target)
can._wss = can.ondaemon._init(can) can._wss = can.ondaemon._init(can)
}, },
_title: function(can, msg, target) { can.user.isMobile || can.core.List(can.Conf(chat.TITLE)||msg.result, function(item) { _title: function(can, msg, target) { can.user.isMobile || can.core.List(can.Conf(chat.TITLE)||msg.result, function(item) {
@ -70,7 +70,6 @@ Volcanos(chat.ONEXPORT, {list: [NTIP, NLOG, NCMD, NKEY, html.WIDTH, html.HEIGHT,
nkey: function(can) { can.onexport._float(can, NKEY, "can.localStorage") }, nkey: function(can) { can.onexport._float(can, NKEY, "can.localStorage") },
version: function(can) { can.onexport._float(can, NKEY, "can.runtime") }, version: function(can) { can.onexport._float(can, NKEY, "can.runtime") },
_float: function(can, name, index, args, cb) { can.ui[name]? can.ui[name].onaction.close(): can.onappend._float(can, index, args||[], function(sub) { can.ui[name] = sub _float: function(can, name, index, args, cb) { can.ui[name]? can.ui[name].onaction.close(): can.onappend._float(can, index, args||[], function(sub) { can.ui[name] = sub
// can.page.style(can, sub._target, {left: html.RIVER_WIDTH, top: "", right: 0, bottom: html.ACTION_HEIGHT}), can.base.isFunc(cb) && cb(sub)
can.page.style(can, sub._target, {top: "", right: 0, bottom: html.ACTION_HEIGHT}), can.base.isFunc(cb) && cb(sub) can.page.style(can, sub._target, {top: "", right: 0, bottom: html.ACTION_HEIGHT}), can.base.isFunc(cb) && cb(sub)
can.onmotion.delay(can, function() { sub.onaction.close = function() { can.page.Remove(can, sub._target), delete(can.ui[name]) } }) can.onmotion.delay(can, function() { sub.onaction.close = function() { can.page.Remove(can, sub._target), delete(can.ui[name]) } })
}) }, }) },

View File

@ -83,16 +83,15 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
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")])
can.ui.diy = can.base.Obj(msg.Option("diy"))||{}, can.__theme = can.onimport._theme(can, can.onexport.theme(can)), can.onimport.theme(can) can.ui.diy = can.base.Obj(msg.Option("diy"))||{}, can.__theme = can.onimport._theme(can, can.onexport.theme(can)), can.onimport.theme(can)
can.page.theme(function(theme) { can.onengine.signal(can, chat.ONTHEMECHANGE, can.request(event, {theme: can.__theme = can.ui.diy&&can.ui.diy[theme]||theme})) }) can.page.theme(function(theme) { can.onengine.signal(can, chat.ONTHEMECHANGE, can.request(event, {theme: can.__theme = can.ui.diy&&can.ui.diy[theme]||theme})) })
can.onaction._menus[2] = [aaa.LANGUAGE, ice.AUTO].concat(can.core.List(msg["language.list"], function(item) { return can.base.trimSuffix(item, nfs._JS) })) can.onaction._menus[3] = [aaa.LANGUAGE, ice.AUTO].concat(can.core.List(msg["language.list"], function(item) { return can.base.trimSuffix(item, nfs._JS) }))
can.onaction._menus[1] = [chat.THEME, ice.AUTO].concat(can.core.List(msg["theme.list"], function(item) { return can.base.trimSuffix(item, nfs._CSS) })) can.onaction._menus[2] = [chat.THEME, ice.AUTO].concat(can.core.List(msg["theme.list"], function(item) { return can.base.trimSuffix(item, nfs._CSS) }))
can.require(can.core.List(msg["theme.list"], function(item) { return nfs.SRC_TEMPLATE+web.CHAT_HEADER+"/theme/"+item }), function() { can.require(can.core.List(msg["theme.list"], function(item) { return nfs.SRC_TEMPLATE+web.CHAT_HEADER+"/theme/"+item }), function() {
if (can.base.beginWith(location.pathname, nfs.WIKI_PORTAL, web.CHAT_CMD+web.WIKI_PORTAL, web.CHAT_CMD+web.CHAT_OAUTH_CLIENT)) { return show(msg) } if (can.base.beginWith(location.pathname, nfs.WIKI_PORTAL, web.CHAT_CMD+web.WIKI_PORTAL, web.CHAT_CMD+web.CHAT_OAUTH_CLIENT)) { return show(msg) }
if (location.pathname == nfs.PS && can.base.beginWith(msg.Option(ice.MAIN)||"", nfs.WIKI_PORTAL, web.CHAT_CMD+web.WIKI_PORTAL)) { return show(msg) } if (location.pathname == nfs.PS && can.base.beginWith(msg.Option(ice.MAIN)||"", nfs.WIKI_PORTAL, web.CHAT_CMD+web.WIKI_PORTAL)) { return show(msg) }
msg.Option(mdb.PLUGIN) && can.onappend.plugin(can, {index: msg.Option(mdb.PLUGIN)}, function(sub) { can.onmotion.hidden(can, sub._target) }, document.body) msg.Option(mdb.PLUGIN) && can.onappend.plugin(can, {index: msg.Option(mdb.PLUGIN)}, function(sub) { can.onmotion.hidden(can, sub._target) }, document.body)
msg.Option(nfs.SCRIPT) && can.require(can.base.Obj(msg.Option(nfs.SCRIPT)), function(can) { can.onaction.source(can, msg) }) msg.Option(nfs.SCRIPT) && can.require(can.base.Obj(msg.Option(nfs.SCRIPT)), function(can) { can.onaction.source(can, msg) })
var tool = can._root.Action._conf.tool
if (tool && tool[0]._role == ice.OK && tool[0].index != web.CHAT_GRANT || can.misc.Search(can, web.SHARE)) { return show(msg) }
if (!can.Conf(aaa.USERNICK, (msg.Option(aaa.USERNICK)||msg.Option(ice.MSG_USERNICK)||msg.Option(ice.MSG_USERNAME)).slice(0, 8))) { if (!can.Conf(aaa.USERNICK, (msg.Option(aaa.USERNICK)||msg.Option(ice.MSG_USERNICK)||msg.Option(ice.MSG_USERNAME)).slice(0, 8))) {
var tool = can._root.Action._conf.tool; if (tool && tool[0]._role == ice.OK && tool[0].index != web.CHAT_GRANT || can.misc.Search(can, web.SHARE)) { return show(msg) }
return can.user.login(can, function() { can.onengine.signal(can, chat.ONMAIN, msg) }, msg) return can.user.login(can, function() { can.onengine.signal(can, chat.ONMAIN, msg) }, msg)
} show(msg) } show(msg)
}) })
@ -139,12 +138,12 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
carte: function(event, can, list, cb, trans) { return can.user.carte(event, can, can.onaction, list, cb, null, trans) }, carte: function(event, can, list, cb, trans) { return can.user.carte(event, can, can.onaction, list, cb, null, trans) },
_params: [log.DEBUG, chat.TITLE], _params: [log.DEBUG, chat.TITLE],
_menus: ["shareuser", [chat.THEME], [aaa.LANGUAGE], _menus: ["shareuser", cli.QRCODE, [chat.THEME], [aaa.LANGUAGE],
[nfs.SAVE, aaa.EMAIL, web.TOIMAGE, code.WEBPACK], [nfs.SAVE, aaa.EMAIL, web.TOIMAGE, code.WEBPACK],
[aaa.USER, "setnick", web.CLEAR, aaa.LOGOUT], [aaa.USER, "setnick", web.CLEAR, aaa.LOGOUT],
], ],
_trans: kit.Dict( _trans: kit.Dict("shareuser", "共享用户", cli.QRCODE, "生成链接",
"shareuser", "共享用户", chat.THEME, "界面主题", aaa.LANGUAGE, "语言地区", chat.THEME, "界面主题", aaa.LANGUAGE, "语言地区",
nfs.SAVE, "保存网页", aaa.EMAIL, "发送邮件", web.TOIMAGE, "生成图片", code.WEBPACK, "打包页面", nfs.SAVE, "保存网页", aaa.EMAIL, "发送邮件", web.TOIMAGE, "生成图片", code.WEBPACK, "打包页面",
aaa.USER, "用户信息", "setnick", "设置昵称", aaa.PASSWORD, "修改密码", web.CLEAR, "清除背景", aaa.LOGOUT, "退出登录", aaa.USER, "用户信息", "setnick", "设置昵称", aaa.PASSWORD, "修改密码", web.CLEAR, "清除背景", aaa.LOGOUT, "退出登录",

View File

@ -93,6 +93,10 @@ Volcanos(chat.ONACTION, {
can.onAction(event, can, input.name, {order: order, name: input.name}) can.onAction(event, can, input.name, {order: order, name: input.name})
} else { } else {
can.run(event, [field.id||field.index, ctx.ACTION, input.name], function(msg) { can.run(event, [field.id||field.index, ctx.ACTION, input.name], function(msg) {
switch (msg.Option(ice.MSG_PROCESS)) {
case "_location":
can.user.parse(can, msg.Option("_arg"))
}
can.onaction._refresh(event, can, order) can.onaction._refresh(event, can, order)
}) })
} return } return

View File

@ -59,10 +59,13 @@ Volcanos("user", {
if (cb && cb(data)) { return } if (cb && cb(data)) { return }
if (data.type == web.LINK && data._origin) { delete(data.type), delete(data.name), delete(data.text) if (data.type == web.LINK && data._origin) { delete(data.type), delete(data.name), delete(data.text)
var ls = new RegExp("(https?://[^/]+)([^?#]*)([^#]*)(.*)").exec(data._origin); delete(data._origin) var ls = new RegExp("(https?://[^/]+)([^?#]*)([^#]*)(.*)").exec(data._origin); delete(data._origin)
data.serve = ls[1]; if (ls[2].indexOf("/pages/") == 0) { data.pages = ls[2] } if (ls[1] != "https://servicewechat.com") { data.serve = ls[1] }
if (ls[2].indexOf("/pages/") == 0) { data.pages = ls[2] }
} }
can.misc.Info("app parse", data) can.misc.Info("app parse", data)
if (data.cmd||data.index||data.share) { if (data.cmd == "web.chat.portal") {
can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_RIVER, data))
} if (data.cmd||data.index||data.share) {
can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_ACTION, data)) can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_ACTION, data))
} else if (data.pod||data.space||data.serve) { } else if (data.pod||data.space||data.serve) {
can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_RIVER, data)) can.user.jumps(can.base.MergeURL(data.pages||chat.PAGES_RIVER, data))