forked from x/volcanos
opt some
This commit is contained in:
parent
0055c7a5e3
commit
12b0be7eb0
10
frame.js
10
frame.js
@ -96,7 +96,7 @@ Volcanos(chat.ONDAEMON, {_init: function(can, name) { if (can.user.isLocalFile)
|
||||
},
|
||||
input: function(can, msg, sub, arg) { can.page.Select(can, sub._target, "input:focus", function(target) { target.value += arg[0] }) },
|
||||
grow: function(can, msg, sub, arg) {
|
||||
if (sub.sup && sub.sup.onimport._grow) { return sub.sup.onimport._grow(sub.sup, msg, can.page.Color(arg.join(""))) }
|
||||
if (sub.sup && sub.sup.onimport._grow) { return sub.sup.onimport._grow(sub.sup, msg, arg.join("")) }
|
||||
if (sub && sub.onimport._grow) { return sub.onimport._grow(sub, msg, can.page.Color(arg.join(""))) }
|
||||
},
|
||||
close: function(can, msg, sub) { can.user.close() },
|
||||
@ -258,11 +258,13 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key, index, line, array) {
|
||||
if (msg.append.length == 2 && msg.append[0] == mdb.KEY && msg.append[1] == mdb.VALUE) { if (key == mdb.VALUE) { key = line.key }
|
||||
line = {}, can.core.List(array, function(item) { line[item.key] = item.value })
|
||||
} function run(event, cmd, arg) { return can.run(can.request(event, line, can.Option()), [ctx.ACTION, cmd].concat(arg)) }
|
||||
} function run(event, cmd, arg) {
|
||||
return can.run(can.request(event, line, can.Option()), [ctx.ACTION, cmd].concat(arg))
|
||||
}
|
||||
return {text: [value, html.TD], onclick: function(event) { var target = event.target
|
||||
if (can.page.tagis(target, html.INPUT) && target.type == html.BUTTON) { can.request(event, {height: can.ConfHeight()-4-table.offsetHeight, width: can.ConfWidth()})
|
||||
meta && meta[target.name]? can.user.input(can.request(event, {action: target.name}), can, meta[target.name], function(args) { run(event, target.name, args) }): run(event, target.name)
|
||||
} else { can.sup.onimport.change(event, can.sup, key, event.target.innerText) || can.sup.onexport.record(can.sup, line) }
|
||||
} else { can.sup.onimport.change(event, can.sup, key, event.target.innerText) || can.sup.onexport.record(can.sup, value, key, line) }
|
||||
}, ondblclick: function(event) { if ([mdb.KEY, mdb.HASH, mdb.ID].indexOf(key) > -1) { return }
|
||||
var item = can.core.List(can.Conf([ctx.FEATURE, mdb.INSERT]), function(item) { if (item.name == key) { return item } })[0]||{name: key, value: value}
|
||||
item.run = function(event, cmds, cb) { can.run(can.request(event, line), cmds, cb, true) }
|
||||
@ -275,7 +277,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
},
|
||||
board: function(can, text, target) { text && text.Result && (text = text.Result()); if (!text) { return }
|
||||
var code = can.page.Append(can, target||can._output, [{text: [can.page.Color(text), html.DIV, html.CODE]}]).code
|
||||
can.page.Select(can, target, html.INPUT_BUTTON, function(target) {
|
||||
can.page.Select(can, code, html.INPUT_BUTTON, function(target) {
|
||||
target.onclick = function(event) { can.run(can.request(event, can.Option()), [ctx.ACTION, target.name]) }
|
||||
}); return code.scrollBy && code.scrollBy(0, 10000), code
|
||||
},
|
||||
|
@ -170,7 +170,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl
|
||||
if (sub._delay_init == true) { sub._delay_init = false, can.onmotion.delay(can, function() { sub._output.innerHTML == "" && sub.Update() }) }
|
||||
}
|
||||
}, sub._legend.onmouseenter = null
|
||||
sub.onexport.record = function(sub, line) { if (!line.file && !line.line) { return }
|
||||
sub.onexport.record = function(sub, value, key, line) { if (!line.file && !line.line) { return }
|
||||
can.onimport.tabview(can, line.path||can.Option(nfs.PATH), can.base.trimPrefix(line.file, nfs.PWD)||can.Option(nfs.FILE), parseInt(line.line))
|
||||
}, sub.onaction.close = sub.select = function() { return sub._legend.click(), sub }
|
||||
sub.onimport.size(sub, can.ConfHeight()/2, can.ConfWidth()-can.ui.project.offsetWidth, true), can.base.isFunc(cb) && cb(sub)
|
||||
|
@ -1,23 +1,20 @@
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.onmotion.clear(can)
|
||||
can.onlayout._init(can)
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.onmotion.clear(can), can.onlayout._init(can)
|
||||
can.requireModules(["xterm/css/xterm.css", "xterm", "xterm-addon-fit", "xterm-addon-web-links"], function() {
|
||||
var item = {hash: can.Option(mdb.HASH)}; msg.Table(function(value) { can.core.Value(item, value.key, value.value) })
|
||||
item.text && can.onmotion.delay(can, function() { can.onimport._input(can, item.text+ice.NL) })
|
||||
can.onimport._connect(can, item), can.onappend.tools(can, msg, function(sub) {
|
||||
sub._item_click = function(value, key) { can.onimport._input(can, value+ice.NL) }
|
||||
}), can.base.isFunc(cb) && cb(msg), can.onappend._status(can)
|
||||
sub.onexport.record = function(_, value, key, line) { can.onimport._input(can, value+ice.NL) }
|
||||
}), msg.Option(ice.MSG_TOOLKIT, ""), can.base.isFunc(cb) && cb(msg), can.onappend._status(can)
|
||||
})
|
||||
},
|
||||
_connect: function(can, item) { var term = new Terminal({tabStopWidth: 4, cursorBlink: true})
|
||||
var fitAddon = new FitAddon.FitAddon(); term.loadAddon(fitAddon), term._fit = fitAddon
|
||||
can.onmotion.delay(can, function() { fitAddon.fit() })
|
||||
term.loadAddon(new WebLinksAddon.WebLinksAddon())
|
||||
|
||||
term.onTitleChange(function(title) { can.sup.onimport.title(can, title) })
|
||||
term.onResize(function(size) { can.onimport._resize(can, size) })
|
||||
term.onData(function(data) { can.onimport._input(can, data) })
|
||||
term.onCursorMove(function() { can.onexport.term(can) })
|
||||
|
||||
can.sup.onimport.title(can, item.name)
|
||||
can._current = term, term._item = item
|
||||
term.open(can._output), term.focus()
|
||||
@ -29,7 +26,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.onmotion.clear(can)
|
||||
_input: function(can, data) { if (!can._current) { return }
|
||||
can.runAction(can.request({}, can._current._item), "input", [btoa(data)], function() {})
|
||||
},
|
||||
grow: function(can, msg) { can._current.write(msg.Option(mdb.TEXT)) },
|
||||
grow: function(can, msg, _arg) { can._current.write(_arg) },
|
||||
})
|
||||
Volcanos(chat.ONLAYOUT, {
|
||||
_init: function(can) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user