diff --git a/frame.js b/frame.js index 84520794..b403b3f2 100644 --- a/frame.js +++ b/frame.js @@ -29,6 +29,7 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) { can.requ if (sub._daemon) { msg.Option(ice.MSG_DAEMON, can.core.Keys(can.ondaemon._list[0], sub._daemon)) } } can.onengine.signal(panel, chat.ONREMOTE, can.request({}, {_follow: panel._follow, _msg: msg, _cmds: cmds})) var names = msg.Option(chat._NAMES)||panel._names||((can.Conf("iceberg")||Volcanos.meta.iceberg)+panel._name) + if (!can.misc.CookieSessid(can) && can.user.info.sessid) { msg.Option(ice.MSG_SESSID, can.user.info.sessid) } if (msg.Option("log.trace") == ice.TRUE) { debugger } can.misc.Run(event, can, {names: names, daemon: msg[ice.MSG_DAEMON]}, cmds, function(msg) { toast && toast.close(), toast = true if (msg.Option("log.trace") == ice.TRUE) { debugger } @@ -175,7 +176,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { msg.RunAction(event, can.core.Value(can, chat._OUTPUTS_CURRENT), cmds) || msg.RunAction(event, can, cmds) || can.Update(event, cmds) }}]) }) - can.core.List(args.slice(can.core.List(meta.inputs, function(item) { if (can.base.isIn(item.type, mdb.TEXT, mdb.SELECT)) { return item } }).length), function(item, index) { meta.inputs.push({type: mdb.TEXT, name: "args"+index, value: item}) }) + can.core.List(args.slice(can.core.List(meta.inputs, function(item) { if (can.base.isIn(item.type, html.TEXTAREA, html.TEXT, html.SELECT)) { return item } }).length), function(item, index) { meta.inputs.push({type: mdb.TEXT, name: "args"+index, value: item}) }) function add(item, next) { item = can.base.isString(item)? {type: html.TEXT, name: item}: item, item.type != html.BUTTON && index++ return Volcanos(item.name, {_root: can._root, _follow: can.core.Keys(can._follow, item.name), _target: can.onappend.input(can, item, args[index]||opts[item.name], option||can._option), _option: option||can._option, _action: can._action, _output: can._output, _status: can._status, diff --git a/lib/misc.js b/lib/misc.js index d098779a..5f65a105 100644 --- a/lib/misc.js +++ b/lib/misc.js @@ -68,9 +68,7 @@ Volcanos("misc", { }); return msg }, Event: function(event, can, cb) { for (var i = 3; i < arguments.length; i++) { can.request(event, arguments[i]) } cb(can.request(event)) }, Run: function(event, can, dataset, cmds, cb) { var msg = can.request(event), _can = msg._can; _can._fields && _can.sup && (_can = _can.sup) - var form = {cmds: cmds}; can.core.List(msg.option, function(key) { - !can.base.isIn(key, "log.caller") && msg[key] && (form[key] = msg[key]) - }) + var form = {cmds: cmds}; can.core.List(msg.option, function(key) { !can.base.isIn(key, "log.caller") && msg[key] && (form[key] = msg[key]) }) can.misc.POST(can, msg, can.base.MergeURL(dataset.names.toLowerCase(), ice.MSG_INDEX, _can._index), form, cb) }, POST: function(can, msg, url, form, cb) { var xhr = new XMLHttpRequest(), begin = new Date(); msg._xhr = xhr diff --git a/lib/user.js b/lib/user.js index e2383765..20a58b3b 100644 --- a/lib/user.js +++ b/lib/user.js @@ -230,7 +230,10 @@ Volcanos("user", { if (cmd == cli.PWD) { var _cmd = " space login "+arg[0]; return can.page.Modify(can, target, arg[2]), can.page.Append(can, target, [ {text: "
请授权: "+_cmd, title: "点击复制,并后台执行此命令,即可登录", style: {cursor: "copy"}, onclick: function() { can.user.copy(event, can, _cmd) }}, ]), can.onmotion.delay(can, function() { layout() }, 10) } - if (cmd == ice.MSG_SESSID) { return can.misc.CookieSessid(can, arg[0]), can.page.Remove(can, ui._target), can.base.isFunc(cb) && cb() } + if (cmd == ice.MSG_SESSID) { + if (!can.misc.CookieSessid(can, arg[0])) { can.user.info.sessid = arg[0] } + return can.page.Remove(can, ui._target), can.base.isFunc(cb) && cb() + } }) }, "密码登录": function(target) { var _ui = can.page.Append(can, target, [input(aaa.USERNAME), input(aaa.PASSWORD, aaa.PASSWORD), button(kit.Dict(aaa.LOGIN, function(event) { can.runAction(event, aaa.LOGIN, [_ui.username.value, _ui.password.value], function(msg) { diff --git a/panel/action.js b/panel/action.js index c4902459..f6e3f997 100644 --- a/panel/action.js +++ b/panel/action.js @@ -126,7 +126,7 @@ Volcanos(chat.ONEXPORT, { }) Volcanos(chat.ONENGINE, {_engine: function(event, sup, msg, can, cmds, cb) { var storm = can.core.Value(can._root, can.core.Keys(chat.RIVER, cmds[0], chat.STORM, cmds[1])); if (!storm || cmds.length != 2) { return false } - if (storm.index) { can.runAction(event, ctx.COMMAND, [].concat(storm.index), cb) } else { can.core.List(storm.list, function(value) { + if (storm.index) { can.runAction(event, ctx.COMMAND, [].concat(storm.index), cb) } else { can.core.List(storm.list, function(value) { can.base.isString(value) && (value = {index: value}) msg.Push(mdb.NAME, value.name||"").Push(mdb.HELP, value.help||"").Push(ctx.INPUTS, JSON.stringify(value.inputs)).Push(ctx.FEATURE, JSON.stringify(value.feature)) msg.Push(ctx.INDEX, value.index||"").Push(ctx.ARGS, value.args||"[]").Push(ctx.STYLE, value.style||"").Push(ctx.DISPLAY, value.display||"") }), can.base.isFunc(cb) && cb(msg) } return true diff --git a/plugin/local/code/inner.css b/plugin/local/code/inner.css index 4e30f0b4..f2e8088b 100644 --- a/plugin/local/code/inner.css +++ b/plugin/local/code/inner.css @@ -1,5 +1,6 @@ fieldset.inner>form.option input[name=path] { width:80px; } fieldset.inner>form.option input[name=file] { width:160px; } +fieldset.inner>div.output { overflow:hidden; } fieldset.inner>div.output div.content { position:relative; } fieldset.inner>div.output div.content td.text { height:20px; } fieldset.inner>div.output div.content td.text span.comment { color:darkgray; } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index f3a50888..8b506338 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -137,7 +137,12 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp } can.onimport.tabs(can, [{name: name, text: file, _menu: shy([ nfs.SAVE, nfs.TRASH, web.REFRESH, - ], function(event, button, meta) { can.onaction[button](event, can, button) })}], function(event, tabs) { + ], function(event, button, meta) { + if (button == "refresh") { + + } + can.onaction[button](event, can, button) + })}], function(event, tabs) { can._tab = msg._tab = tabs._target, show(skip), skip = true }, function(tabs) { can.onengine.signal(can, VIEW_REMOVE, msg), can.ui.zone.source.refresh() msg.__content || can.page.Remove(can, msg._content), msg._profile != can.ui._profile && can.page.Remove(can, msg._profile) @@ -303,6 +308,7 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { var key = can.onexport. var index = msg.Option(ctx.INDEX).split(mdb.FS), item = {type: chat.STORY, index: index[0], args: index.slice(1)} if (item.index == web.CODE_XTERM && item.args.length > 0) { item.style = html.OUTPUT } if (item.index == web.CHAT_MACOS_SESSION && item.args.length > 0) { item.style = html.OUTPUT } + if (item.index == web.CHAT_MACOS_DESKTOP) { item.style = html.OUTPUT } can.onimport.plug(can, item, function(sub) { sub.onimport.size(sub, can.ui.content.offsetHeight, can.ui.content.offsetWidth, true) sub.onimport._open = function(_, msg, arg) { var link = can.misc.ParseURL(can, arg); if (link.pod && arg.indexOf(location.origin) == 0) { can.onimport.tabview(can, "", link.pod, web.SPACE), sub.Update(); return } diff --git a/plugin/local/wiki/word.css b/plugin/local/wiki/word.css index 16408d4d..a6b3aaab 100644 --- a/plugin/local/wiki/word.css +++ b/plugin/local/wiki/word.css @@ -7,8 +7,8 @@ fieldset.word>div.navmenu div.item { font-size:1.4em; font-weight:bold; font-fam fieldset.word>div.navmenu>div.item { font-size:1.6em; } fieldset.word>div.output { padding:10px; } fieldset.word>div.output>p.story { margin:10px; } -fieldset.word>div.output>fieldset.story:not(:hover)>form.option { display:none; } -fieldset.word>div.output>fieldset.story:not(:hover)>div.action { display:none; } +// fieldset.word>div.output>fieldset.story:not(:hover)>form.option { display:none; } +// fieldset.word>div.output>fieldset.story:not(:hover)>div.action { display:none; } fieldset.word a { word-break:break-all; } fieldset.word img { word-break:break-all; } fieldset.word svg.story[data-index] text { cursor:pointer; } diff --git a/proto.js b/proto.js index 1b769a9f..6e9c7614 100644 --- a/proto.js +++ b/proto.js @@ -384,6 +384,7 @@ try { if (typeof(window) == lang.OBJECT) { var meta = Volcanos.meta } } meta._init = function(can) { + window.onkeydown = function(event) { if (event.key == lang.ESCAPE) { can.onkeymap.prevent(event) } } window.onmousemove = function(event) { window._mousemove && (window._mousemove(event)) } window.onmouseup = function(event) { delete(window._scroll) } window.ondblclick = function(event) { can.onkeymap.prevent(event) }