1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-03-03 17:17:36 +08:00
parent 7e4aaa6ffe
commit 0a487409dc
13 changed files with 46 additions and 28 deletions

View File

@ -144,6 +144,7 @@ var aaa = {
USERNICK: "usernick", USERNAME: "username", PASSWORD: "password", USERROLE: "userrole", USERZONE: "userzone", USERNICK: "usernick", USERNAME: "username", PASSWORD: "password", USERROLE: "userrole", USERZONE: "userzone",
VOID: "void", TECH: "tech", ROOT: "root", VOID: "void", TECH: "tech", ROOT: "root",
PUBLIC: "public", PRIVATE: "private",
} }
var lex = { var lex = {
SPLIT: "split", PARSE: "parse", SPLIT: "split", PARSE: "parse",
@ -220,6 +221,7 @@ var cli = {
QRCODE: "qrcode", COLOR: "color", BLACK: "black", WHITE: "white", BLUE: "blue", RED: "red", GRAY: "gray", CYAN: "cyan", GREEN: "green", PURPLE: "purple", YELLOW: "yellow", QRCODE: "qrcode", COLOR: "color", BLACK: "black", WHITE: "white", BLUE: "blue", RED: "red", GRAY: "gray", CYAN: "cyan", GREEN: "green", PURPLE: "purple", YELLOW: "yellow",
MAGENTA: "magenta", SILVER: "silver", ALICEBLUE: "aliceblue", TRANSPARENT: "transparent", MAGENTA: "magenta", SILVER: "silver", ALICEBLUE: "aliceblue", TRANSPARENT: "transparent",
LINUX: "linux", DARWIN: "darwin", WINDOWS: "windows", LINUX: "linux", DARWIN: "darwin", WINDOWS: "windows",
SH: "sh",
} }
var log = { var log = {
INFO: "info", WARN: "warn", ERROR: "error", DEBUG: "debug", TRACE: "trace", INFO: "info", WARN: "warn", ERROR: "error", DEBUG: "debug", TRACE: "trace",
@ -253,6 +255,8 @@ var chat = {
SHARE: "share", RIVER: "river", STORM: "storm", FIELD: "field", TOOL: "tool", SHARE: "share", RIVER: "river", STORM: "storm", FIELD: "field", TOOL: "tool",
STATE: "state", MENUS: "menus", SSO: "sso", LOCATION: "location", IFRAME: "iframe", DESKTOP: "desktop", STATE: "state", MENUS: "menus", SSO: "sso", LOCATION: "location", IFRAME: "iframe", DESKTOP: "desktop",
OUTPUT: "output", SIMPLE: "simple", FLOAT: "float", FULL: "full", CMD: "cmd", OUTPUT: "output", SIMPLE: "simple", FLOAT: "float", FULL: "full", CMD: "cmd",
MESSAGE: "message",
MATRIX: "matrix",
HEADER: "Header", ACTION: "Action", FOOTER: "Footer", HEADER: "Header", ACTION: "Action", FOOTER: "Footer",
libs: ["base.js", "core.js", "date.js", "misc.js", "page.js", "user.js"].map(function(p) { return "/lib/"+p }), libs: ["base.js", "core.js", "date.js", "misc.js", "page.js", "user.js"].map(function(p) { return "/lib/"+p }),
@ -328,6 +332,7 @@ var html = {value: {
CARD_BUTTON: 5, CARD_BUTTON: 5,
CARD_WIDTH: 320, CARD_HEIGHT: 160, CARD_WIDTH: 320, CARD_HEIGHT: 160,
PLUG_WIDTH: 800, PLUG_HEIGHT: 480, STORY_HEIGHT: 480, FLOAT_HEIGHT: 480, FLOAT_WIDTH: 1200, DESKTOP_WIDTH: 1200, DESKTOP_HEIGHT: 684, PLUG_WIDTH: 800, PLUG_HEIGHT: 480, STORY_HEIGHT: 480, FLOAT_HEIGHT: 480, FLOAT_WIDTH: 1200, DESKTOP_WIDTH: 1200, DESKTOP_HEIGHT: 684,
ORDER_SHOW_LIMIT: 30, ORDER_SHOW_DELAY: 150,
}, },
FIELDSET: "fieldset", LEGEND: "legend", OPTION: "option", ACTION: "action", OUTPUT: "output", STATUS: "status", FIELDSET: "fieldset", LEGEND: "legend", OPTION: "option", ACTION: "action", OUTPUT: "output", STATUS: "status",
OPTION_ARGS: "select.args,input.args,textarea.args", INPUT_ARGS: "input.args,textarea.args", INPUT_BUTTON: "input[type=button]", INPUT_FILE: "input[type=file]", OPTION_ARGS: "select.args,input.args,textarea.args", INPUT_ARGS: "input.args,textarea.args", INPUT_BUTTON: "input[type=button]", INPUT_FILE: "input[type=file]",

View File

@ -263,7 +263,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
full: !can.isCmdMode() && "切换全屏", full: !can.isCmdMode() && "切换全屏",
open: !can.isCmdMode() && "打开链接", open: !can.isCmdMode() && "打开链接",
// qrcode: !can.isCmdMode() && "生成链接", // qrcode: !can.isCmdMode() && "生成链接",
chat: can.user.isTechOrRoot(can) && "发送聊天", chat: can.user.isTechOrRoot(can) && can.ConfIndex() != chat.MESSAGE && "发送聊天",
// chat: can.misc.Search(can, ice.MSG_DEBUG) == ice.TRUE && "发送聊天", // chat: can.misc.Search(can, ice.MSG_DEBUG) == ice.TRUE && "发送聊天",
help: can.page.ClassList.has(can, can._fields||can._target, html.PLUGIN) && can.Conf("_help") && can.Conf("_help") != "" && "查看文档", help: can.page.ClassList.has(can, can._fields||can._target, html.PLUGIN) && can.Conf("_help") && can.Conf("_help") != "" && "查看文档",
// vimer: can.page.ClassList.has(can, can._fields||can._target, html.PLUGIN) && can.Conf("_fileline") && can.misc.Search(can, ice.MSG_DEBUG) == ice.TRUE && "查看源码", // vimer: can.page.ClassList.has(can, can._fields||can._target, html.PLUGIN) && can.Conf("_fileline") && can.misc.Search(can, ice.MSG_DEBUG) == ice.TRUE && "查看源码",
@ -1032,11 +1032,12 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
} }
} }
}, },
orderShow: function(can, target, key, limit, delay) { if (can.user.isMobile) { return } target = target||can._output, limit = limit||30, delay = delay||50 orderShow: function(can, target, key, limit, delay) { if (can.user.isMobile) { return } target = target||can._output
var list = can.page.SelectChild(can, target, key||html.DIV_ITEM, function(target) { can.page.style(can, target, html.VISIBILITY, html.HIDDEN); return target }) var list = can.page.SelectChild(can, target, key||html.DIV_ITEM, function(target) { can.page.style(can, target, html.VISIBILITY, html.HIDDEN); return target })
limit = limit||html.ORDER_SHOW_LIMIT, delay = delay||html.ORDER_SHOW_DELAY
can.core.Next(list, function(target, next, index) { can.core.Next(list, function(target, next, index) {
if (index < limit) { if (index < limit) {
can.page.style(can, target, html.VISIBILITY, ""), can.onmotion.delay(can, next, list.length > 3? delay: 0) can.page.style(can, target, html.VISIBILITY, ""), can.onmotion.delay(can, next, list.length > 3? delay/(index||1): 0)
} else { } else {
can.core.List(list, function(target) { can.page.style(can, target, html.VISIBILITY, "") }) can.core.List(list, function(target) { can.page.style(can, target, html.VISIBILITY, "") })
} }

View File

@ -54,15 +54,16 @@ body {
--header-height:48px; --footer-height:var(--action-height); --action-height:32px; --status-height:var(--action-height); --header-height:48px; --footer-height:var(--action-height); --action-height:32px; --status-height:var(--action-height);
--river-width:var(--project-width); --project-width:230px; --input-width:140px; --button-width:60px; --form-width:320px; --river-width:var(--project-width); --project-width:230px; --input-width:140px; --button-width:60px; --form-width:320px;
--url-input-width:320px; --textarea-height:96px; --url-input-width:320px; --textarea-height:96px;
--qrcode-width:360px; --qrcode-height:364px; --qrcode-width:360px; --qrcode-height:364px;
--iframe-height:420px; --iframe-height:420px;
--card-height:160px; --card-width:320px; --card-height:160px; --card-width:320px;
--story-height:480px; --story-height:480px;
--float-height:var(--story-height); --float-width:1200px; --float-height:var(--story-height); --float-width:1200px;
--plug-height:var(--story-height); --plug-width:var(--float-width); --plug-height:var(--story-height); --plug-width:var(--float-width);
--desktop-height:684px; --desktop-width:var(--float-width); --desktop-icon-size:80px; --desktop-height:684px; --desktop-width:var(--float-width); --desktop-icon-size:80px;
--action-button:10; --table-button:5; --card-button:5; --action-button:10; --table-button:5; --card-button:5;
--river-margin:80px; --action-margin:200px; --order-show-limit:30; --order-show-delay:150;
--river-margin:80px; --action-margin:200px;
--body-font-family:sans-serif; --body-font-family:sans-serif;
--legend-font-family:var(--body-font-family); --status-font-family:var(--body-font-family); --legend-font-family:var(--body-font-family); --status-font-family:var(--body-font-family);

View File

@ -222,6 +222,7 @@ Volcanos("misc", {
return args return args
}, },
SplitPath: function(can, path) { SplitPath: function(can, path) {
if (path.indexOf("http") == 0) { return [path] }
if (path.indexOf("/require/") == 0) { return [path] } if (path.indexOf("/require/") == 0) { return [path] }
if (path.indexOf("/plugin/") == 0) { return ["usr/volcanos/", path.split("?")[0]] } if (path.indexOf("/plugin/") == 0) { return ["usr/volcanos/", path.split("?")[0]] }
var ls = path.split(nfs.PS); if (ls.length == 1) { return [nfs.PWD, ls[0]] } var ls = path.split(nfs.PS); if (ls.length == 1) { return [nfs.PWD, ls[0]] }

View File

@ -21,7 +21,10 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can._wss = can.onda
// can.onexport._float(can, "cli", list[0], list.slice(1), function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+html.PLUGIN_MARGIN, html.RIGHT, "") }) }) // can.onexport._float(can, "cli", list[0], list.slice(1), function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+html.PLUGIN_MARGIN, html.RIGHT, "") }) })
can.onexport._float(can, "cli", {index: "can.console", display: "/plugin/local/code/xterm.js"}, list, function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+html.PLUGIN_MARGIN, html.RIGHT, "") }) }) can.onexport._float(can, "cli", {index: "can.console", display: "/plugin/local/code/xterm.js"}, list, function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+html.PLUGIN_MARGIN, html.RIGHT, "") }) })
} }
}}, "", target, [chat.TITLE]) }, }}, "", target, [chat.TITLE])
can.onappend.input(can, {type: html.BUTTON, name: code.XTERM, onclick: function(event) { can.onappend._float(can, code.XTERM, cli.SH) }}, "", can._output)
can.onappend.input(can, {type: html.BUTTON, name: chat.MESSAGE, onclick: function(event) { can.onappend._float(can, chat.MESSAGE) }}, "", can._output)
},
_storm: function(can, msg, target) { can.ui.storm = can.page.Append(can, can._output, [html.MENU])._target }, _storm: function(can, msg, target) { can.ui.storm = can.page.Append(can, can._output, [html.MENU])._target },
_state: function(can, msg, target) { can.user.isMobile || can.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), can.onexport.list).reverse(), function(item) { _state: function(can, msg, target) { can.user.isMobile || can.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), can.onexport.list).reverse(), function(item) {
can.page.Append(can, target, [{view: [[html.ITEM, chat.STATE]], list: [ can.page.Append(can, target, [{view: [[html.ITEM, chat.STATE]], list: [

View File

@ -139,6 +139,11 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
setnick: function(event, can) { can.user.input(event, can, [{name: aaa.USERNICK, value: can.Conf(aaa.USERNICK)}], function(list) { can.runAction(event, aaa.USERNICK, [list[0]], function(msg) { setnick: function(event, can) { can.user.input(event, can, [{name: aaa.USERNICK, value: can.Conf(aaa.USERNICK)}], function(list) { can.runAction(event, aaa.USERNICK, [list[0]], function(msg) {
can.page.Select(can, can._output, can.core.Keys(html.DIV, aaa.USERNICK), function(item) { can.page.Modify(can, item, can.Conf(aaa.USERNICK, list[0])) }), can.user.toastSuccess(can) can.page.Select(can, can._output, can.core.Keys(html.DIV, aaa.USERNICK), function(item) { can.page.Modify(can, item, can.Conf(aaa.USERNICK, list[0])) }), can.user.toastSuccess(can)
}) }) }, }) }) },
setavatar: function(event, can) { can.user.input(event, can, [{name: aaa.AVATAR, value: can.Conf(aaa.AVATAR), action: mdb.ICONS}], function(list) { can.runAction(event, aaa.AVATAR, [list[0]], function(msg) {
can.page.Select(can, can._output, can.core.Keys(html.DIV, aaa.AVATAR)+" "+html.IMG, function(item) { item.src = can.misc.Resource(can, list[0]) }), can.user.toastSuccess(can)
}) }) },
setbackground: function(event, can) { can.user.input(event, can, [{name: aaa.BACKGROUND, value: can.Conf(aaa.BACKGROUND), action: mdb.ICONS}], function(list) { can.runAction(event, aaa.BACKGROUND, [list[0]], function(msg) {
}) }) },
clear: function(event, can) { can.onimport.background(event, can, "") }, clear: function(event, can) { can.onimport.background(event, can, "") },
logout: function(event, can) { can.user.logout(can) }, logout: function(event, can) { can.user.logout(can) },
share: function(event, can, args) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE].concat(args||[])) }, share: function(event, can, args) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE].concat(args||[])) },
@ -149,12 +154,12 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
cli.QRCODE, "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", web.CLEAR, aaa.LOGOUT], [aaa.USER, "setnick", "setavatar", "setbackground", web.CLEAR, aaa.LOGOUT],
], ],
_trans: kit.Dict("shareuser", "共享用户", cli.QRCODE, "生成链接", _trans: kit.Dict("shareuser", "共享用户", cli.QRCODE, "生成链接",
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", "设置昵称", "setavatar", "设置头像", "setbackground", "设置背景", aaa.PASSWORD, "修改密码", web.CLEAR, "清除背景", aaa.LOGOUT, "退出登录",
"change language to zh-cn", "切换语言为中文", "change language to zh-cn", "切换语言为中文",
"change language to en-us", "切换语言为英文", "change language to en-us", "切换语言为英文",

View File

@ -56,7 +56,7 @@ fieldset.inner>div.output>div.layout>div.path>a { padding:var(--input-padding) v
fieldset.inner>div.output>div.layout>div.path>a:hover { background-color:var(--hover-bg-color); } fieldset.inner>div.output>div.layout>div.path>a:hover { background-color:var(--hover-bg-color); }
fieldset.inner>div.output>div.layout>div.path>span { padding:var(--input-padding); } fieldset.inner>div.output>div.layout>div.path>span { padding:var(--input-padding); }
fieldset.inner>div.output>div.layout>div.path>span:hover { background-color:var(--hover-bg-color); } fieldset.inner>div.output>div.layout>div.path>span:hover { background-color:var(--hover-bg-color); }
fieldset.inner>div.output>div.layout>div.path span.func { padding:var(--input-padding); flex-grow:1; text-align:center; } fieldset.inner>div.output>div.layout>div.path span.func { padding:var(--input-padding); }
fieldset.inner>div.output>div.layout>div.path span.mode { padding:var(--input-padding); } fieldset.inner>div.output>div.layout>div.path span.mode { padding:var(--input-padding); }
body.width2 fieldset.inner>div.output>div.layout>div.path span.mode { display:none; } body.width2 fieldset.inner>div.output>div.layout>div.path span.mode { display:none; }
/* body.width2 fieldset.inner>div.output>div.layout>div.path span.mode { display:none; } */ /* body.width2 fieldset.inner>div.output>div.layout>div.path span.mode { display:none; } */

View File

@ -72,8 +72,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
__tabPath: function(can, cache) { var target = can.ui.path; can.onappend.style(can, html.FLEX, can.ui.path) __tabPath: function(can, cache) { var target = can.ui.path; can.onappend.style(can, html.FLEX, can.ui.path)
can.onimport._tabPath(can, nfs.PS, nfs.PATH, can.base.Path(can.Option(nfs.PATH), can.Option(nfs.FILE)), function(p) { can.onimport._tabPath(can, nfs.PS, nfs.PATH, can.base.Path(can.Option(nfs.PATH), can.Option(nfs.FILE)), function(p) {
var ls = can.onexport.split(can, p); can.onimport.tabview(can, ls[0], ls[1]) var ls = can.onexport.split(can, p); can.onimport.tabview(can, ls[0], ls[1])
}, target), can.onimport._tabFunc(can, target, cache), can.onimport._tabMode(can) }, target), can.page.Append(can, target, [{view: [["item", "space"], html.SPAN]}])
can.page.Append(can, target, [{view: [["item", "space"], html.SPAN]}]) can.onimport._tabFunc(can, target, cache), can.page.Append(can, target, [{view: [["item", "space"], html.SPAN]}])
can.onimport._tabMode(can), can.page.Append(can, target, [{view: [["item", "space"], html.SPAN], style: {"flex-grow": "4"}}])
can.onimport._tabIcon(can) can.onimport._tabIcon(can)
target.ondblclick = function(event) { if (event.target != target) { return } target.ondblclick = function(event) { if (event.target != target) { return }
var show = can.onmotion.toggle(can, can.ui.tabs); can.onmotion.toggle(can, can.ui.project, show), can.onimport.layout(can) var show = can.onmotion.toggle(can, can.ui.tabs); can.onmotion.toggle(can, can.ui.project, show), can.onimport.layout(can)
@ -82,13 +83,12 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
}, },
_tabPath: function(can, ps, key, value, cb, target) { var args = value.split(mdb.FS); can.onmotion.clear(can, can.ui.path) _tabPath: function(can, ps, key, value, cb, target) { var args = value.split(mdb.FS); can.onmotion.clear(can, can.ui.path)
can.core.List(can.core.Split(args[0], ps), function(value, index, list) { can.core.List(can.core.Split(args[0], ps), function(value, index, list) {
can.page.Append(can, target, [{text: [value+(index<list.length-1? ps: ""), "", html.ITEM], onclick: function(event) { can.page.Append(can, target, [{text: [value+(index<list.length-1? " "+ps: ""), "", html.ITEM], onclick: function(event) {
can.onimport.tabPath(event, can, ps, key, ps == nfs.PT? list.slice(0, index).join(ps): (list.slice(0, index).join(ps)||nfs.PT)+ps, cb) can.onimport.tabPath(event, can, ps, key, ps == nfs.PT? list.slice(0, index).join(ps): (list.slice(0, index).join(ps)||nfs.PT)+ps, cb)
}}]) }}])
}); var index = args[0] }); var index = args[0]
can.core.List(args.slice(1), function(val) { can.page.Append(can, target, [{text: [val, "", html.ITEM], onclick: function(event) { can.core.List(args.slice(1), function(val) { can.page.Append(can, target, [{text: [val, "", html.ITEM], onclick: function(event) {
can.runAction(can.request(event, {index: index}), mdb.INPUTS, [ctx.ARGS], function(msg) { can.runAction(can.request(event, {index: index}), mdb.INPUTS, [ctx.ARGS], function(msg) {
debugger
can.user.carte(event, can, {}, msg[msg.append[0]], function(event, button) { can.onimport.tabview(can, "", [index, button].join(mdb.FS), ctx.INDEX) }) can.user.carte(event, can, {}, msg[msg.append[0]], function(event, button) { can.onimport.tabview(can, "", [index, button].join(mdb.FS), ctx.INDEX) })
}) })
}}]) }) }}]) })
@ -116,11 +116,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
}) })
can.onmotion.delay(can, function() { can.onmotion.delay(can, function() {
can.page.Select(can, carte._target, html.DIV_ITEM, function(target) { can.page.Select(can, carte._target, html.DIV_ITEM, function(target) {
if (can.base.beginWith(target.innerText, "- ")) { can.onappend.style(can, can.base.beginWith(target.innerText, "- ")? aaa.PRIVATE: aaa.PUBLIC, target)
can.onappend.style(can, "private", target)
} else {
can.onappend.style(can, "public", target)
}
}) })
}) })
}}]) }}])
@ -302,7 +298,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
var height = can.ui.project.offsetHeight - list.length*target.offsetHeight var height = can.ui.project.offsetHeight - list.length*target.offsetHeight
if (can.page.tagis(target.nextSibling, html.DIV_ACTION)) { height -= target.nextSibling.offsetHeight } if (can.page.tagis(target.nextSibling, html.DIV_ACTION)) { height -= target.nextSibling.offsetHeight }
can.page.SelectChild(can, target.parentNode, html.DIV_LIST, function(target) { can.page.SelectChild(can, target.parentNode, html.DIV_LIST, function(target) {
can.page.style(can, target, html.MAX_HEIGHT, height) if (can.ui.zone.source._target == target) {
can.page.style(can, target, html.HEIGHT, height)
}
}) })
}) })
}) })
@ -417,8 +415,9 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { if (!msg) { return }
} else { } else {
can.core.List(msg.Result().split(lex.NL), function(item) { can.onaction.appendLine(can, item) }) can.core.List(msg.Result().split(lex.NL), function(item) { can.onaction.appendLine(can, item) })
} }
can.onmotion.delay(can, function() { can.onappend.scroll(can, can.ui.content) })
can.onengine.signal(can, VIEW_CREATE, msg), can.base.isFunc(cb) && cb(msg._content = content._root? content._root: content) can.onengine.signal(can, VIEW_CREATE, msg), can.base.isFunc(cb) && cb(msg._content = content._root? content._root: content)
can.onmotion.delay(can, function() { can.onappend.scroll(can, can.ui.content) })
// can.onmotion.orderShow(can, can.ui.content, "tr")
} can.require([chat.PLUGIN_LOCAL+"code/inner/syntax.js"], function() { var parse = can.onexport.parse(can); can.Conf(chat.PLUG) && (can.onsyntax[parse] = can.Conf(chat.PLUG)) } can.require([chat.PLUGIN_LOCAL+"code/inner/syntax.js"], function() { var parse = can.onexport.parse(can); can.Conf(chat.PLUG) && (can.onsyntax[parse] = can.Conf(chat.PLUG))
var p = can.onsyntax[parse]; !p? can.runAction({}, mdb.PLUGIN, [parse, file, path], function(msg) { var p = can.onsyntax[parse]; !p? can.runAction({}, mdb.PLUGIN, [parse, file, path], function(msg) {
p = can.base.Obj(msg.Result()) p = can.base.Obj(msg.Result())

View File

@ -1,5 +1,6 @@
fieldset.vimer>div.output>div.layout>div.layout>div.layout div.content { border-left:var(--box-border); border-top:var(--box-border); } fieldset.vimer>div.output>div.layout>div.layout>div.layout div.content { border-left:var(--box-border); border-top:var(--box-border); }
fieldset.vimer>div.output>div.layout>div.layout input.current { background-color:transparent; color:transparent; padding-left:var(--input-padding); height:var(--code-line-height); position:absolute; } fieldset.vimer>div.output>div.layout>div.layout input.current { background-color:transparent; color:transparent; padding-left:var(--input-padding); height:var(--code-line-height); position:absolute; }
fieldset.vimer>div.output.plugin>div.layout>div.layout input.current { display:none; }
fieldset.vimer>div.output>div.layout>div.layout div.content div.complete { background-color:unset; padding-top:0; display:none; position:absolute; height:1px; overflow:visible; } fieldset.vimer>div.output>div.layout>div.layout div.content div.complete { background-color:unset; padding-top:0; display:none; position:absolute; height:1px; overflow:visible; }
fieldset.vimer>div.output>div.layout>div.layout div.content div.complete div.prefix { color:transparent; white-space:pre; float:left; } fieldset.vimer>div.output>div.layout>div.layout div.content div.complete div.prefix { color:transparent; white-space:pre; float:left; }
fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content thead { display:none; } fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content thead { display:none; }

View File

@ -61,9 +61,7 @@ Volcanos(chat.ONFIGURE, {
}) })
Volcanos(chat.ONACTION, {list: [ Volcanos(chat.ONACTION, {list: [
"创建", "编译", "源码", "文档", "创建", "编译", "源码", "文档",
"聊天", "计划", "聊天", "矩阵",
"矩阵",
"审批",
"后台", "桌面", "官网"], _trans: {show: "预览", exec: "展示"}, "后台", "桌面", "官网"], _trans: {show: "预览", exec: "展示"},
_run: function(event, can, button, args, cb) { can.runAction(event, button, args, cb||function(msg) { _run: function(event, can, button, args, cb) { can.runAction(event, button, args, cb||function(msg) {
if (msg.IsErr()) { return can.user.toastFailure(can, msg.Result()) } if (msg.IsErr()) { return can.user.toastFailure(can, msg.Result()) }

View File

@ -38,6 +38,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.ui = can.onappend.l
_target = target, can.onmotion.delay(can, function() { can.onaction.full({}, can) }) _target = target, can.onmotion.delay(can, function() { can.onaction.full({}, can) })
} }
}), _target && _target.click() }), _target && _target.click()
can.onmotion.orderShow(can, can.ui.project)
}, },
_file: function(can, path) { var p = location.href.indexOf(ice.HTTP) == 0? "": "http://localhost:9020" _file: function(can, path) { var p = location.href.indexOf(ice.HTTP) == 0? "": "http://localhost:9020"
return path.indexOf(ice.HTTP) == 0? path: p+can.base.Path(web.SHARE_LOCAL, can.db.dir_root||"", path) return path.indexOf(ice.HTTP) == 0? path: p+can.base.Path(web.SHARE_LOCAL, can.db.dir_root||"", path)
@ -49,6 +50,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.ui = can.onappend.l
page: function(can, list, begin, limit) { can.onmotion.clear(can, can.ui.display) page: function(can, list, begin, limit) { can.onmotion.clear(can, can.ui.display)
begin = parseInt(begin||can.db.begin), limit = parseInt(limit||can.Action(mdb.LIMIT)) begin = parseInt(begin||can.db.begin), limit = parseInt(limit||can.Action(mdb.LIMIT))
for (var i = begin; i < begin+limit; i++) { list && list[i] && can.onimport.file(can, list[i].path, list[i], i) } for (var i = begin; i < begin+limit; i++) { list && list[i] && can.onimport.file(can, list[i].path, list[i], i) }
can.onmotion.orderShow(can, can.ui.display, "*")
can.onappend._toggle(can, can.ui.display, function(event) { can.onaction.prev(event, can) }, function(event) { can.onaction.next(event, can) }) can.onappend._toggle(can, can.ui.display, function(event) { can.onaction.prev(event, can) }, function(event) { can.onaction.next(event, can) })
can.Status({begin: begin, limit: limit, total: list.length}) can.Status({begin: begin, limit: limit, total: list.length})
}, },

View File

@ -163,10 +163,11 @@ Volcanos(chat.ONACTION, {list: ["刷新数据",
"打开空间": function(event, can) { can.user.open(can.misc.MergePodCmd(can, {pod: can.ConfSpace()||can.misc.Search(can, ice.POD)})) }, "打开空间": function(event, can) { can.user.open(can.misc.MergePodCmd(can, {pod: can.ConfSpace()||can.misc.Search(can, ice.POD)})) },
"打开链接": function(event, can) { can.user.open(can.onexport.link(can)) }, "打开链接": function(event, can) { can.user.open(can.onexport.link(can)) },
"发送聊天": function(event, can) { "发送聊天": function(event, can) {
can.user.input(event, can, [{name: "message", display: "/require/usr/icebergs/core/chat/message.js", run: function(event, cmds, cb) { can.user.input(event, can, [{name: chat.MESSAGE, display: "/require/usr/icebergs/core/chat/message.js", run: function(event, cmds, cb) {
can._root.Header.run(can.request(event, {pod: can.ConfSpace()}), [ctx.ACTION, "message"].concat(cmds), function(msg) { cb(msg) }) can._root.Header.run(can.request(event, {pod: can.ConfSpace()}), [ctx.ACTION, chat.MESSAGE].concat(cmds), function(msg) { cb(msg) })
}}], function(list) { }}], function(list) {
can._root.Header.run(can.request(event, {pod: can.ConfSpace()}), [ctx.ACTION, "message", list[0], mdb.TYPE, "plug", ctx.INDEX, can.ConfIndex(), ctx.ARGS, JSON.stringify(can.Option())]) can._root.Header.run(can.request(event, {pod: can.ConfSpace()}), [ctx.ACTION, chat.MESSAGE, list[0], mdb.TYPE, "plug", ctx.INDEX, can.ConfIndex(), ctx.ARGS, JSON.stringify(can.Option())])
can.onappend._float(can, chat.MESSAGE)
}) })
}, },
"生成链接": function(event, can) { can.onmotion.share(event, can, [], [web.LINK, can.user.copy(event, can, can.onexport.link(can))]) }, "生成链接": function(event, can) { can.onmotion.share(event, can, [], [web.LINK, can.user.copy(event, can, can.onexport.link(can))]) },

View File

@ -243,6 +243,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
title: [[value.usernick, value.username].join(lex.SP), [value.agent, value.system, value.ip].join(lex.SP)].join(lex.NL)} title: [[value.usernick, value.username].join(lex.SP), [value.agent, value.system, value.ip].join(lex.SP)].join(lex.NL)}
})) }))
msg.Length() > 0 && can.page.Append(can, can.ui.online, [{text: msg.Length()+""}]) msg.Length() > 0 && can.page.Append(can, can.ui.online, [{text: msg.Length()+""}])
can.onmotion.orderShow(can, can.ui.online, "*", 10, 300)
}), can.onimport._online(can, 30000) }), can.onimport._online(can, 30000)
}, delay) }, }, delay) },
}) })