forked from x/volcanos
opt inner.js
This commit is contained in:
parent
7fa7058f36
commit
04a094dbd8
78
frame.js
78
frame.js
@ -194,7 +194,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
can.core.ItemCB(input.onaction, function(key, cb) {
|
can.core.ItemCB(input.onaction, function(key, cb) {
|
||||||
input._target[key] = function(event) { cb(event, input) }
|
input._target[key] = function(event) { cb(event, input) }
|
||||||
}), skip? next(): can.core.CallFunc([input.onaction, "_init"], [input, item, [], next, input._target]);
|
}), skip? next(): can.core.CallFunc([input.onaction, "_init"], [input, item, [], next, input._target]);
|
||||||
|
can.core.ItemCB(item, function(key, cb) {
|
||||||
|
input._target[key] = function(event) { cb(event, input) }
|
||||||
|
});
|
||||||
(item.action||can.core.Value(meta, "feature.inputs")) && can.onappend.figure(input, item, input._target)
|
(item.action||can.core.Value(meta, "feature.inputs")) && can.onappend.figure(input, item, input._target)
|
||||||
})
|
})
|
||||||
}; can.core.Next(can.base.Obj(meta.inputs, can.core.Value(can, "onimport.list")).concat(meta.type == chat.FLOAT? [{type: html.BUTTON, name: cli.CLOSE}]: []), add)
|
}; can.core.Next(can.base.Obj(meta.inputs, can.core.Value(can, "onimport.list")).concat(meta.type == chat.FLOAT? [{type: html.BUTTON, name: cli.CLOSE}]: []), add)
|
||||||
@ -240,7 +242,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
},
|
},
|
||||||
_output: function(can, msg, display, output) { display = display||chat.PLUGIN_TABLE_JS, output = output||can._output
|
_output: function(can, msg, display, output) { display = display||chat.PLUGIN_TABLE_JS, output = output||can._output
|
||||||
Volcanos(display, {_follow: can.core.Keys(can._follow, display), _display: display, _target: output, _fields: can._target,
|
Volcanos(display, {_follow: can.core.Keys(can._follow, display), _display: display, _target: output, _fields: can._target,
|
||||||
_option: can._option, _action: can._action, _output: can._output, _status: can._status,
|
_option: can._option, _action: can._action, _output: can._output, _status: can._status, _legend: can._legend,
|
||||||
Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status,
|
Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status,
|
||||||
}, [display, chat.PLUGIN_TABLE_JS], function(table) { table.Conf(can.Conf())
|
}, [display, chat.PLUGIN_TABLE_JS], function(table) { table.Conf(can.Conf())
|
||||||
table.run = function(event, cmds, cb, silent) { var msg = can.request(event)
|
table.run = function(event, cmds, cb, silent) { var msg = can.request(event)
|
||||||
@ -274,14 +276,14 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
can.page.Modify(can, item, {draggable: true, _close: cbs,
|
can.page.Modify(can, item, {draggable: true, _close: cbs,
|
||||||
onmouseenter: function(event) {
|
onmouseenter: function(event) {
|
||||||
can.user.carte(event, can, kit.Dict(
|
can.user.carte(event, can, kit.Dict(
|
||||||
cli.CLOSE, function(event) { close(item) },
|
"close tab", function(event) { close(item) },
|
||||||
"close other", function(event) {
|
"close other", function(event) {
|
||||||
can.page.Select(can, action, chat.DIV_TABS, function(_item) {
|
can.page.Select(can, action, chat.DIV_TABS, function(_item) {
|
||||||
_item == item || close(_item)
|
_item == item || close(_item)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
"close all", function(event) { can.page.Select(can, action, chat.DIV_TABS, close) },
|
"close all", function(event) { can.page.Select(can, action, chat.DIV_TABS, close) },
|
||||||
), [cli.CLOSE, "close other", "close all"])
|
), ["close tab", "close other", "close all"])
|
||||||
},
|
},
|
||||||
ondragstart: function(event) { var target = event.target; target.click()
|
ondragstart: function(event) { var target = event.target; target.click()
|
||||||
action._drop = function(event, before) { action.insertBefore(target, before) }
|
action._drop = function(event, before) { action.insertBefore(target, before) }
|
||||||
@ -576,7 +578,7 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe
|
|||||||
})
|
})
|
||||||
Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, target) {
|
Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, target) {
|
||||||
},
|
},
|
||||||
focus: function(can, target) {
|
focus: function(can, target) { if (!target) { return }
|
||||||
target.setSelectionRange(0, -1), target.focus()
|
target.setSelectionRange(0, -1), target.focus()
|
||||||
},
|
},
|
||||||
clear: function(can, target) {
|
clear: function(can, target) {
|
||||||
@ -759,6 +761,71 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
|
|||||||
can.base.isFunc(cb) && cb()
|
can.base.isFunc(cb) && cb()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
selectTable: function(event, can, target, cb) {
|
||||||
|
if (event.ctrlKey) {
|
||||||
|
function select(order) {
|
||||||
|
var index = 0; return can.page.Select(can, can._output, html.TR, function(tr) {
|
||||||
|
if (can.page.ClassList.has(can, tr, html.HIDDEN)) { return }
|
||||||
|
if (!can.page.ClassList.set(can, tr, html.SELECT, order == index++)) { return tr}
|
||||||
|
can.base.isFunc(cb) && cb(tr)
|
||||||
|
can.Status("index", index-1)
|
||||||
|
return tr
|
||||||
|
}).length
|
||||||
|
}
|
||||||
|
switch (event.key) {
|
||||||
|
case "n":
|
||||||
|
var total = select(target._index)
|
||||||
|
select(target._index = ((target._index)+1) % total)
|
||||||
|
can.onkeypop.prevent(event)
|
||||||
|
break
|
||||||
|
case "p":
|
||||||
|
var total = select(target._index)
|
||||||
|
select(target._index = (target._index-1) < 0? total-1: (target._index-1))
|
||||||
|
can.onkeypop.prevent(event)
|
||||||
|
break
|
||||||
|
default: target._index = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectTableInput: function(event, can, target, cb) {
|
||||||
|
if (event.ctrlKey) {
|
||||||
|
function select(order) { if (order == 0) { target.value = target._value }
|
||||||
|
var index = 0; return can.page.Select(can, can._output, html.TR, function(tr) {
|
||||||
|
if (can.page.ClassList.has(can, tr, html.HIDDEN)) { return }
|
||||||
|
can.page.ClassList.del(can, tr, html.SELECT); if (order != index++) { return tr }
|
||||||
|
can.page.ClassList.add(can, tr, html.SELECT), can.page.Select(can, tr, html.TD, function(td, index) {
|
||||||
|
target._value = target._value||target.value, index == 0 && (target.value = td.innerText)
|
||||||
|
}); return tr
|
||||||
|
}).length
|
||||||
|
}
|
||||||
|
switch (event.key) {
|
||||||
|
case "n":
|
||||||
|
var total = select(target._index)
|
||||||
|
select(target._index = ((target._index)+1) % total)
|
||||||
|
break
|
||||||
|
case "p":
|
||||||
|
var total = select(target._index)
|
||||||
|
select(target._index = (target._index-1) < 0? total-1: (target._index-1))
|
||||||
|
break
|
||||||
|
default: target._index = 0, target._value = ""
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
target._index = 0, target._value = ""
|
||||||
|
can.page.Select(can, can._output, html.TR, function(tr, index) {
|
||||||
|
var has = false; can.page.Select(can, tr, html.TD, function(td) {
|
||||||
|
has = has || td.innerText.indexOf(target.value)>-1
|
||||||
|
}), can.page.ClassList.set(can, tr, html.HIDDEN, !has && index != 0)
|
||||||
|
})
|
||||||
|
|
||||||
|
var total = can.page.Select(can, can._output, html.TR, function(tr) {
|
||||||
|
if (!can.page.ClassList.has(can, tr, html.HIDDEN)) { return tr}
|
||||||
|
}).length-1
|
||||||
|
total == 0 && can.base.isFunc(cb) && cb()
|
||||||
|
can.Status(kit.Dict(mdb.TOTAL, total, mdb.INDEX, target._index))
|
||||||
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onkeypop", {help: "键盘交互", list: [], _focus: [], _init: function(can, target) {
|
Volcanos("onkeypop", {help: "键盘交互", list: [], _focus: [], _init: function(can, target) {
|
||||||
document.body.onkeydown = function(event) { var msg = can.request(event)
|
document.body.onkeydown = function(event) { var msg = can.request(event)
|
||||||
@ -766,6 +833,7 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _focus: [], _init: functio
|
|||||||
msg.Option("model", event.ctrlKey? "insert_ctrl": "insert")
|
msg.Option("model", event.ctrlKey? "insert_ctrl": "insert")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if (event.metaKey) { return }
|
||||||
if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
|
if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
|
||||||
can.onengine.signal(can, "onkeydown", msg)
|
can.onengine.signal(can, "onkeydown", msg)
|
||||||
if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
|
if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
|
||||||
|
@ -68,7 +68,6 @@ Volcanos("user", {help: "用户操作", agent: {
|
|||||||
"list": "查看", "back": "返回", "run": "执行", "done": "完成", "share": "共享",
|
"list": "查看", "back": "返回", "run": "执行", "done": "完成", "share": "共享",
|
||||||
"edit": "编辑", "save": "保存", "copy": "复制", "show": "显示", "hide": "隐藏",
|
"edit": "编辑", "save": "保存", "copy": "复制", "show": "显示", "hide": "隐藏",
|
||||||
"project": "项目", "profile": "详情", "actions": "参数",
|
"project": "项目", "profile": "详情", "actions": "参数",
|
||||||
"find": "查找", "grep": "搜索",
|
|
||||||
|
|
||||||
"open": "打开", "close": "关闭",
|
"open": "打开", "close": "关闭",
|
||||||
"start": "启动", "stop": "停止",
|
"start": "启动", "stop": "停止",
|
||||||
|
@ -18,28 +18,6 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {
|
|||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
_select: function(event, can, target) {
|
|
||||||
function select(order) { if (order == 0) { target.value = target._value }
|
|
||||||
var index = 0; return can.page.Select(can, can._output, html.TR, function(tr) {
|
|
||||||
if (can.page.ClassList.has(can, tr, html.HIDDEN)) { return }
|
|
||||||
can.page.ClassList.del(can, tr, html.SELECT); if (order != index++) { return tr }
|
|
||||||
can.page.ClassList.add(can, tr, html.SELECT), can.page.Select(can, tr, html.TD, function(td, index) {
|
|
||||||
target._value = target._value||target.value, index == 0 && (target.value = td.innerText)
|
|
||||||
}); return tr
|
|
||||||
}).length
|
|
||||||
}
|
|
||||||
switch (event.key) {
|
|
||||||
case "n":
|
|
||||||
var total = select(target._index)
|
|
||||||
select(target._index = ((target._index)+1) % total)
|
|
||||||
break
|
|
||||||
case "p":
|
|
||||||
var total = select(target._index)
|
|
||||||
select(target._index = (target._index-1) < 0? total-1: (target._index-1))
|
|
||||||
break
|
|
||||||
default: target._index = 0, target._value = ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onfocus: function(event, can, meta, cb, target) { if (target._figure) { return } target._figure = {}; cb(function(can, cbs) {
|
onfocus: function(event, can, meta, cb, target) { if (target._figure) { return } target._figure = {}; cb(function(can, cbs) {
|
||||||
target._figure = can.onlayout.figure(event, can, can._target, false, {top: can.page.offsetTop(target)+target.offsetHeight, left: can.page.offsetLeft(target)})
|
target._figure = can.onlayout.figure(event, can, can._target, false, {top: can.page.offsetTop(target)+target.offsetHeight, left: can.page.offsetLeft(target)})
|
||||||
can.onfigure.key._show(can, meta, cbs, target)
|
can.onfigure.key._show(can, meta, cbs, target)
|
||||||
@ -51,26 +29,13 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {
|
|||||||
}) },
|
}) },
|
||||||
onkeydown: function(event, can, meta, cb, target, last) {
|
onkeydown: function(event, can, meta, cb, target, last) {
|
||||||
if (target._figure) { if (!(can = target._can)) { return }
|
if (target._figure) { if (!(can = target._can)) { return }
|
||||||
if (event.ctrlKey) { can.onfigure.key._select(event, can, target) } else {
|
|
||||||
target._index = 0, target._value = ""
|
|
||||||
switch (event.key) { case lang.ENTER: can.close(); return }
|
switch (event.key) { case lang.ENTER: can.close(); return }
|
||||||
can.page.Select(can, can._output, html.TR, function(tr, index) {
|
can.onmotion.selectTableInput(event, can, target, function() {
|
||||||
var has = false; can.page.Select(can, tr, html.TD, function(td) {
|
|
||||||
has = has || td.innerText.indexOf(target.value)>-1
|
|
||||||
}), can.page.ClassList.set(can, tr, html.HIDDEN, !has && index != 0)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
var total = can.page.Select(can, can._output, html.TR, function(tr) {
|
|
||||||
if (!can.page.ClassList.has(can, tr, html.HIDDEN)) { return tr}
|
|
||||||
}).length-1
|
|
||||||
if (total == 0) {
|
|
||||||
can.run(event, [ctx.ACTION, mdb.INPUTS, meta.name, target.value], function(msg) {
|
can.run(event, [ctx.ACTION, mdb.INPUTS, meta.name, target.value], function(msg) {
|
||||||
can.onfigure.key._init(can, msg, target), can.Status(mdb.TOTAL, msg.Length())
|
can.onfigure.key._init(can, msg, target), can.Status(mdb.TOTAL, msg.Length())
|
||||||
target._msg = msg
|
target._msg = msg
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
can.Status(kit.Dict(mdb.TOTAL, total, mdb.INDEX, target._index))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.ctrlKey && ["n", "p"].indexOf(event.key) > -1) {
|
if (event.ctrlKey && ["n", "p"].indexOf(event.key) > -1) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target) {
|
Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||||
can.tabview = can.tabview||{}, can.tabview[can.Option(nfs.PATH)+ice.DF+can.Option(nfs.FILE)] = msg
|
can.tabview = can.tabview||{}, can.tabview[can.Option(nfs.PATH)+ice.DF+can.Option(nfs.FILE)] = msg
|
||||||
can.history = can.history||[], can.toolkit = {}, can.plugins = {}
|
can.history = can.history||[], can.toolkit = {}, can.extentions = {}
|
||||||
|
|
||||||
can.onmotion.clear(can), can.onlayout.profile(can)
|
can.onmotion.clear(can), can.onlayout.profile(can)
|
||||||
can.onimport._project(can, can.ui.project)
|
can.onimport._project(can, can.ui.project)
|
||||||
@ -48,17 +48,13 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
can.ui.toolkit = can.onappend.field(can, "toolkit", {}, can._output)
|
can.ui.toolkit = can.onappend.field(can, "toolkit", {}, can._output)
|
||||||
},
|
},
|
||||||
_session: function(can, msg) { can.onimport.sess(can, "", function() { can.onimport.sess(can, {
|
_session: function(can, msg) { can.onimport.sess(can, "", function() { can.onimport.sess(can, {
|
||||||
tool: can.core.Split(msg.OptionOrSearch("tool")).reverse(),
|
exts: can.core.Split(msg.OptionOrSearch("exts")).reverse(),
|
||||||
plug: can.core.Split(msg.OptionOrSearch("plug")).reverse(),
|
plug: can.core.Split(msg.OptionOrSearch("plug")).reverse(),
|
||||||
tabs: can.core.Split(msg.OptionOrSearch("tabs")),
|
tabs: can.core.Split(msg.OptionOrSearch("tabs")),
|
||||||
}) }) },
|
}) }) },
|
||||||
_keydown: function(can) {
|
_keydown: function(can) { can.onkeypop._build(can)
|
||||||
can.user.mod.isCmd && can.onengine.listen(can, chat.ONKEYDOWN, function(event) {
|
can.user.mod.isCmd && can.onengine.listen(can, chat.ONKEYDOWN, function(event) {
|
||||||
var cb = can.onaction[kit.Dict(
|
can._key_list = can.onkeypop._parse(event, can, "normal", can._key_list, can.ui.content)
|
||||||
"f", "打开", "t", "添加", "e", "扩展", "p", "插件",
|
|
||||||
"r", "执行", "v", "展示", "s", "保存",
|
|
||||||
lang.ESCAPE, "清屏",
|
|
||||||
)[event.key]]; can.base.isFunc(cb) && cb(event, can)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -72,7 +68,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
}, true)
|
}, true)
|
||||||
},
|
},
|
||||||
tabview: function(can, path, file, line, cb) { var key = path+ice.DF+file
|
tabview: function(can, path, file, line, cb) { var key = path+ice.DF+file
|
||||||
if (can.tabview[key]) {
|
if (can.tabview[key]) { can.user.mod.isCmd && can.user.title(file)
|
||||||
can._msg && can._msg.Option(nfs.LINE, can.Option(nfs.LINE)), can._msg = can.tabview[key]
|
can._msg && can._msg.Option(nfs.LINE, can.Option(nfs.LINE)), can._msg = can.tabview[key]
|
||||||
can.Option({path: path, file: file, line: line||can._msg.Option(nfs.LINE)||1})
|
can.Option({path: path, file: file, line: line||can._msg.Option(nfs.LINE)||1})
|
||||||
return can._msg.Option(can.Option()), can.onsyntax._init(can, can._msg, cb)
|
return can._msg.Option(can.Option()), can.onsyntax._init(can, can._msg, cb)
|
||||||
@ -92,7 +88,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
// can.onappend.table(can, msg, null, can.ui.profile_output)
|
// can.onappend.table(can, msg, null, can.ui.profile_output)
|
||||||
can.onappend.board(can, msg.Result(), can.ui.profile_output)
|
can.onappend.board(can, msg.Result(), can.ui.profile_output)
|
||||||
}
|
}
|
||||||
can.page.style(can, can.ui.profile_output, html.WIDTH, (can.Conf(html.WIDTH)-can.ui.project.offsetWidth)/2)
|
can.page.style(can, can.ui.profile_output, html.WIDTH, (can.ConfWidth()-can.ui.project.offsetWidth)/2)
|
||||||
can.onmotion.hidden(can, can.ui.profile, true), can.onimport.layout(can)
|
can.onmotion.hidden(can, can.ui.profile, true), can.onimport.layout(can)
|
||||||
},
|
},
|
||||||
display: function(can, msg) {
|
display: function(can, msg) {
|
||||||
@ -100,15 +96,16 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
// can.onappend.table(can, msg, null, can.ui.display_output)
|
// can.onappend.table(can, msg, null, can.ui.display_output)
|
||||||
can.onappend.board(can, msg.Result(), can.ui.display_output)
|
can.onappend.board(can, msg.Result(), can.ui.display_output)
|
||||||
}
|
}
|
||||||
can.page.style(can, can.ui.display_output, html.HEIGHT, 200)
|
can.page.style(can, can.ui.display_output, html.HEIGHT, can.ConfHeight()/4)
|
||||||
can.onmotion.hidden(can, can.ui.display, true), can.onimport.layout(can)
|
can.onmotion.hidden(can, can.ui.display, true), can.onimport.layout(can)
|
||||||
},
|
},
|
||||||
toolkit: function(can, meta, cb) {
|
toolkit: function(can, meta, cb) {
|
||||||
meta.opts = meta.opts||{repos: can.base.trimSuffix(can.base.trimPrefix(can.Option(nfs.PATH), "usr/"), ice.PS) }
|
meta.opts = meta.opts||{repos: can.base.trimSuffix(can.base.trimPrefix(can.Option(nfs.PATH), "usr/"), ice.PS) }
|
||||||
can.onimport.plugin(can, meta, can.ui.toolkit.output, function(sub) {
|
can.onimport.plugin(can, meta, can.ui.toolkit.output, function(sub) {
|
||||||
sub.Conf(html.HEIGHT, can.Conf(html.HEIGHT)-4*html.ACTION_HEIGHT, html.WIDTH, can.Conf(html.WIDTH))
|
sub.ConfHeight(can.ConfHeight()-4*html.ACTION_HEIGHT), sub.ConfWidth(can.ConfWidth())
|
||||||
sub.page.style(sub, sub._output, html.MAX_HEIGHT, sub.Conf(html.HEIGHT))
|
sub.page.style(sub, sub._output, html.MAX_HEIGHT, sub.ConfHeight())
|
||||||
sub.page.style(sub, sub._output, html.MAX_WIDTH, sub.Conf(html.WIDTH));
|
sub.page.style(sub, sub._output, html.MAX_WIDTH, sub.ConfWidth())
|
||||||
|
sub.select = function() { return sub._legend.click(), sub }
|
||||||
|
|
||||||
var status = can.user.mod.isCmd? can._status: can.ui.toolkit.status
|
var status = can.user.mod.isCmd? can._status: can.ui.toolkit.status
|
||||||
status.appendChild(sub._legend), sub._legend.onclick = function(event) {
|
status.appendChild(sub._legend), sub._legend.onclick = function(event) {
|
||||||
@ -119,7 +116,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
}
|
}
|
||||||
can.onmotion.select(can, status, html.DIV_LEGEND, event.target)
|
can.onmotion.select(can, status, html.DIV_LEGEND, event.target)
|
||||||
can.onmotion.select(can, can.ui.toolkit.output, html.FIELDSET, sub._target)
|
can.onmotion.select(can, can.ui.toolkit.output, html.FIELDSET, sub._target)
|
||||||
can.page.Select(can, sub._option, html.OPTION_ARGS)[0].focus()
|
can.onmotion.focus(can, can.page.Select(can, sub._option, html.OPTION_ARGS)[0])
|
||||||
}, can.base.isFunc(cb) && cb(sub)
|
}, can.base.isFunc(cb) && cb(sub)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -130,7 +127,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
}, can.base.isFunc(cb) && cb(sub)
|
}, can.base.isFunc(cb) && cb(sub)
|
||||||
}, target)
|
}, target)
|
||||||
},
|
},
|
||||||
layout: function(can) { var height = can.Conf(html.HEIGHT), width = can.Conf(html.WIDTH)
|
layout: function(can) { var height = can.ConfHeight(), width = can.ConfWidth()
|
||||||
can.page.style(can, can.ui.content, can.user.mod.isCmd? html.HEIGHT: html.MAX_HEIGHT, height)
|
can.page.style(can, can.ui.content, can.user.mod.isCmd? html.HEIGHT: html.MAX_HEIGHT, height)
|
||||||
if (can.ui.project.style.display != html.NONE) {
|
if (can.ui.project.style.display != html.NONE) {
|
||||||
can.page.style(can, can.ui.project, html.HEIGHT, can.ui.content.offsetHeight)
|
can.page.style(can, can.ui.project, html.HEIGHT, can.ui.content.offsetHeight)
|
||||||
@ -141,17 +138,15 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
can.page.style(can, can.ui.content, html.WIDTH, width-can.ui.project.offsetWidth-can.ui.profile.offsetWidth-25)
|
can.page.style(can, can.ui.content, html.WIDTH, width-can.ui.project.offsetWidth-can.ui.profile.offsetWidth-25)
|
||||||
can.page.style(can, can.ui.profile_output, html.HEIGHT, can.ui.content.offsetHeight-html.ACTION_HEIGHT)
|
can.page.style(can, can.ui.profile_output, html.HEIGHT, can.ui.content.offsetHeight-html.ACTION_HEIGHT)
|
||||||
},
|
},
|
||||||
plug: function(can, url, cb) {
|
exts: function(can, url, cb) {
|
||||||
can.require([url], function() {}, function(can, name, sub) { sub._init(can, can.base.ParseURL(sub._path), cb) })
|
can.require([url], function() {}, function(can, name, sub) { sub._init(can, can.base.ParseURL(sub._path), function(sub) {
|
||||||
|
can.extentions[url.split("?")[0]] = sub, can.base.isFunc(cb) && cb(sub)
|
||||||
|
}) })
|
||||||
},
|
},
|
||||||
sess: function(can, sess, cb) { sess = sess||can.base.Obj(localStorage.getItem("web.code.inner.sess"), {})
|
sess: function(can, sess, cb) { sess = sess||can.base.Obj(localStorage.getItem("web.code.inner.sess"), {})
|
||||||
can.core.Next(sess.tool, function(item, next) {
|
can.core.Next(sess.exts, function(item, next) { can.onimport.exts(can, item, next) }, function() {
|
||||||
can.onimport.toolkit(can, {index: item}, function(sub) { can.toolkit[item] = sub, next() })
|
can.core.Next(sess.plug, function(item, next) { can.onimport.toolkit(can, {index: item}, function(sub) { can.toolkit[item] = sub, next() }) }, function() {
|
||||||
}, function() {
|
can.core.Next(sess.tabs, function(item, next) { var ls = item.split(ice.DF); can.onimport.tabview(can, ls[0], ls[1], ls[2], next) }, cb)
|
||||||
can.core.Next(sess.plug, function(item, next) { can.onimport.plug(can, item, next) }, function() {
|
|
||||||
can.core.Next(sess.tabs, function(item, next) { var ls = item.split(ice.DF)
|
|
||||||
can.onimport.tabview(can, ls[0], ls[1], ls[2], next)
|
|
||||||
}, cb)
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -164,7 +159,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
can.parse = can.base.Ext(can.file), can.Status("模式", "normal")
|
can.parse = can.base.Ext(can.file), can.Status("模式", "normal")
|
||||||
can.onmotion.select(can, can._action, chat.DIV_TABS, msg._tab)
|
can.onmotion.select(can, can._action, chat.DIV_TABS, msg._tab)
|
||||||
msg.Option(ctx.INDEX) && can.core.Timer(100, function() {
|
msg.Option(ctx.INDEX) && can.core.Timer(100, function() {
|
||||||
var input = can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0]; input && input.focus()
|
can.onmotion.focus(can, can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0])
|
||||||
})
|
})
|
||||||
return can.file
|
return can.file
|
||||||
}, can.ui.content, can.ui.profile_output, can.ui.display_output)) {
|
}, can.ui.content, can.ui.profile_output, can.ui.display_output)) {
|
||||||
@ -174,7 +169,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
if (msg.Option(ctx.INDEX)) {
|
if (msg.Option(ctx.INDEX)) {
|
||||||
can.onimport.plugin(can, {index: msg.Option(ctx.INDEX)}, can.ui.content, function(sub) {
|
can.onimport.plugin(can, {index: msg.Option(ctx.INDEX)}, can.ui.content, function(sub) {
|
||||||
can.core.Timer(100, function() {
|
can.core.Timer(100, function() {
|
||||||
var input = can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0]; input && input.focus()
|
can.onmotion.focus(can, can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0])
|
||||||
}), can.base.isFunc(cb) && cb()
|
}), can.base.isFunc(cb) && cb()
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
@ -217,7 +212,36 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
return line
|
return line
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "控件交互", list: ["打开", "添加", "扩展", "插件", "保存"],
|
|
||||||
|
Volcanos("onkeypop", {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||||
|
},
|
||||||
|
_mode: {
|
||||||
|
normal: {
|
||||||
|
escape: function(event, can, target) { can.onaction["清屏"](event, can) },
|
||||||
|
g: function(event, can, target) { can.onaction["搜索"](event, can) },
|
||||||
|
f: function(event, can, target) { can.onaction["打开"](event, can) },
|
||||||
|
t: function(event, can, target) { can.onaction["添加"](event, can) },
|
||||||
|
p: function(event, can, target) { can.onaction["插件"](event, can) },
|
||||||
|
e: function(event, can, target) { can.onaction["扩展"](event, can) },
|
||||||
|
|
||||||
|
q: function(event, can, target) { can.onaction["全屏"](event, can) },
|
||||||
|
r: function(event, can, target) { can.onaction["执行"](event, can) },
|
||||||
|
v: function(event, can, target) { can.onaction["展示"](event, can) },
|
||||||
|
s: function(event, can, target) { can.onaction["保存"](event, can) },
|
||||||
|
|
||||||
|
j: function(event, can, target) { can.onaction.scrollLine(can, 1) },
|
||||||
|
k: function(event, can, target) { can.onaction.scrollLine(can, -1) },
|
||||||
|
J: function(event, can, target) { can.onaction.scrollLine(can, 20) },
|
||||||
|
K: function(event, can, target) { can.onaction.scrollLine(can, -20) },
|
||||||
|
},
|
||||||
|
}, _engine: {},
|
||||||
|
})
|
||||||
|
Volcanos("onaction", {help: "控件交互", list: ["搜索", "打开", "添加", "插件", "扩展", "保存"],
|
||||||
|
"搜索": function(event, can) {
|
||||||
|
can.user.input(event, can, [[ctx.ACTION, nfs.TAGS, nfs.GREP, cli.MAKE], mdb.NAME], function(event, button, data, list, args) {
|
||||||
|
can.ui.search.Update({}, [ctx.ACTION, data.action, data.name])
|
||||||
|
})
|
||||||
|
},
|
||||||
"打开": function(event, can) {
|
"打开": function(event, can) {
|
||||||
can.user.input(event, can, [nfs.FILE], function(event, button, data, list, args) {
|
can.user.input(event, can, [nfs.FILE], function(event, button, data, list, args) {
|
||||||
can.onimport.tabview(can, can.Option(nfs.PATH), data.file)
|
can.onimport.tabview(can, can.Option(nfs.PATH), data.file)
|
||||||
@ -228,19 +252,16 @@ Volcanos("onaction", {help: "控件交互", list: ["打开", "添加", "扩展",
|
|||||||
can.onimport.tabview(can, can.Option(nfs.PATH), data.index, ctx.INDEX)
|
can.onimport.tabview(can, can.Option(nfs.PATH), data.index, ctx.INDEX)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
"扩展": function(event, can) {
|
"插件": function(event, can) {
|
||||||
can.user.input(event, can, [ctx.INDEX], function(event, button, data, list, args) {
|
can.user.input(event, can, [ctx.INDEX], function(event, button, data, list, args) {
|
||||||
var sub = can.toolkit[data.index]; if (sub) { sub._legend.click(); return }
|
var sub = can.toolkit[data.index]; if (sub) { sub.select(); return }
|
||||||
can.onimport.toolkit(can, data, function(sub) { can.toolkit[data.index] = sub
|
can.onimport.toolkit(can, data, function(sub) { can.toolkit[data.index] = sub.select() })
|
||||||
sub._legend.click(), sub.page.Select(sub, sub._target, html.OPTION_ARGS)[0].focus()
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
"插件": function(event, can) {
|
"扩展": function(event, can) {
|
||||||
can.user.input(event, can, ["url"], function(event, button, data, list, args) {
|
can.user.input(event, can, ["url"], function(event, button, data, list, args) {
|
||||||
can.onimport.plug(can, data.url, function(sub) { can.plugins[data.url] = sub
|
var sub = can.extentions[data.url]; if (sub) { sub.select(); return }
|
||||||
sub._legend.click(), sub.page.Select(sub, sub._target, html.OPTION_ARGS)[0].focus()
|
can.onimport.exts(can, data.url, function(sub) { can.extentions[data.url] = sub.select() })
|
||||||
})
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
"保存": function(event, can) { can.onexport.sess(can), can.user.toastSuccess(can) },
|
"保存": function(event, can) { can.onexport.sess(can), can.user.toastSuccess(can) },
|
||||||
@ -264,16 +285,46 @@ Volcanos("onaction", {help: "控件交互", list: ["打开", "添加", "扩展",
|
|||||||
if (can.page.Select(can, can.ui.toolkit.status, "div.select", function(item) {
|
if (can.page.Select(can, can.ui.toolkit.status, "div.select", function(item) {
|
||||||
return item.click(), item
|
return item.click(), item
|
||||||
}).length > 0) { return }
|
}).length > 0) { return }
|
||||||
|
if (can.page.Select(can, can.ui.toolkit.output, "fieldset.select", function(item) {
|
||||||
|
return can.onmotion.hidden(can, item), item
|
||||||
|
}).length > 0) { return }
|
||||||
|
|
||||||
can.onmotion.hidden(can, can.ui.profile)
|
can.onmotion.hidden(can, can.ui.profile)
|
||||||
can.onmotion.hidden(can, can.ui.display)
|
can.onmotion.hidden(can, can.ui.display)
|
||||||
can.onimport.layout(can)
|
can.onimport.layout(can)
|
||||||
},
|
},
|
||||||
|
"全屏": function(event, can) {
|
||||||
|
if (can._action.style.display == html.NONE) {
|
||||||
|
can.onmotion.hidden(can, can._legend, true)
|
||||||
|
can.onmotion.hidden(can, can._option, true)
|
||||||
|
can.onmotion.hidden(can, can._action, true)
|
||||||
|
can.onmotion.hidden(can, can._status, true)
|
||||||
|
can.onmotion.hidden(can, can.ui.project, true)
|
||||||
|
can.ConfHeight(window.innerHeight-2*html.ACTION_HEIGHT)
|
||||||
|
can.onimport.layout(can)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
can.onaction["清屏"](event, can)
|
||||||
|
can.onaction["清屏"](event, can)
|
||||||
|
can.onaction["清屏"](event, can)
|
||||||
|
can.onaction["清屏"](event, can)
|
||||||
|
|
||||||
|
can.onmotion.hidden(can, can.ui.project)
|
||||||
|
can.onmotion.hidden(can, can._status)
|
||||||
|
can.onmotion.hidden(can, can._action)
|
||||||
|
can.onmotion.hidden(can, can._option)
|
||||||
|
can.onmotion.hidden(can, can._legend)
|
||||||
|
can.ConfHeight(window.innerHeight)
|
||||||
|
can.onimport.layout(can)
|
||||||
|
},
|
||||||
back: function(event, can) { can.history.pop(); var last = can.history.pop()
|
back: function(event, can) { can.history.pop(); var last = can.history.pop()
|
||||||
last && can.onimport.tabview(can, last.path, last.file, last.line)
|
last && can.onimport.tabview(can, last.path, last.file, last.line)
|
||||||
can.Status("跳转数", can.history.length)
|
can.Status("跳转数", can.history.length)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
scrollLine: function(can, count) { var size = 20
|
||||||
|
can.current.scroll(0, count*size)
|
||||||
|
},
|
||||||
appendLine: function(can, value) {
|
appendLine: function(can, value) {
|
||||||
var ui = can.page.Append(can, can.ui.content, [{type: html.TR, list: [
|
var ui = can.page.Append(can, can.ui.content, [{type: html.TR, list: [
|
||||||
{view: ["line unselectable", html.TD, ++can.max], onclick: function(event) {
|
{view: ["line unselectable", html.TD, ++can.max], onclick: function(event) {
|
||||||
@ -326,7 +377,7 @@ Volcanos("onaction", {help: "控件交互", list: ["打开", "添加", "扩展",
|
|||||||
can.current.scroll(0, pos-can.current.window()/2)
|
can.current.scroll(0, pos-can.current.window()/2)
|
||||||
}
|
}
|
||||||
|
|
||||||
var push = {path: can.Option(nfs.PATH), file: can.Option(nfs.FILE), line: can.Option(nfs.LINE)}
|
var push = {path: can.Option(nfs.PATH), file: can.Option(nfs.FILE), line: can.Option(nfs.LINE), text: can.current.text()}
|
||||||
can.base.Eq({path: push.path, file: push.file, line: push.line}, can.history[can.history.length-1]) || can.history.push(push)
|
can.base.Eq({path: push.path, file: push.file, line: push.line}, can.history[can.history.length-1]) || can.history.push(push)
|
||||||
can.Status("跳转数", can.history.length)
|
can.Status("跳转数", can.history.length)
|
||||||
})
|
})
|
||||||
@ -335,7 +386,7 @@ Volcanos("onaction", {help: "控件交互", list: ["打开", "添加", "扩展",
|
|||||||
// can.onkeymap && can.onkeymap.selectLine(can)
|
// can.onkeymap && can.onkeymap.selectLine(can)
|
||||||
},
|
},
|
||||||
searchLine: function(event, can, value) { if (!can.ui.search) { return }
|
searchLine: function(event, can, value) { if (!can.ui.search) { return }
|
||||||
can.ui.search.Update(event, [ctx.ACTION, nfs.FIND, value.trim()])
|
can.ui.search.Update(event, [ctx.ACTION, nfs.TAGS, value.trim()])
|
||||||
},
|
},
|
||||||
favorLine: function(can, value) {
|
favorLine: function(can, value) {
|
||||||
can.user.input(event, can, [{name: "zone", value: "hi"}, {name: "name", value: "hello"}], function(event, button, meta, list) {
|
can.user.input(event, can, [{name: "zone", value: "hi"}, {name: "name", value: "hello"}], function(event, button, meta, list) {
|
||||||
@ -349,12 +400,12 @@ Volcanos("onaction", {help: "控件交互", list: ["打开", "添加", "扩展",
|
|||||||
Volcanos("onexport", {help: "导出数据", list: ["文件数", "解析器", "文件名", "当前行", "跳转数", "标签数"],
|
Volcanos("onexport", {help: "导出数据", list: ["文件数", "解析器", "文件名", "当前行", "跳转数", "标签数"],
|
||||||
sess: function(can) {
|
sess: function(can) {
|
||||||
localStorage.setItem("web.code.inner.sess", JSON.stringify({
|
localStorage.setItem("web.code.inner.sess", JSON.stringify({
|
||||||
"tabs": can.onexport.tabs(can), "tool": can.onexport.tool(can), "plug": can.onexport.plug(can),
|
"tabs": can.onexport.tabs(can), "plug": can.onexport.plug(can), "exts": can.onexport.exts(can),
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
tabs: function(can) { return can.core.Item(can.tabview, function(key, msg) { return key+ice.DF+msg.Option(nfs.LINE) }) },
|
tabs: function(can) { return can.core.Item(can.tabview, function(key, msg) { return key+ice.DF+msg.Option(nfs.LINE) }) },
|
||||||
tool: function(can) { return can.core.Item(can.toolkit) },
|
plug: function(can) { return can.core.Item(can.toolkit) },
|
||||||
plug: function(can) { return can.core.Item(can.plugins) },
|
exts: function(can) { return can.core.Item(can.plugins) },
|
||||||
position: function(can, index, total) { total = total||can.max
|
position: function(can, index, total) { total = total||can.max
|
||||||
return (parseInt(index))+ice.PS+parseInt(total)+" = "+parseInt((index)*100/total)+"%"
|
return (parseInt(index))+ice.PS+parseInt(total)+" = "+parseInt((index)*100/total)+"%"
|
||||||
},
|
},
|
||||||
|
@ -1,23 +1,56 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", _init: function(can, args, cb) { var history = []
|
Volcanos("onimport", {help: "导入数据", _init: function(can, args, cb) { var history = []; const SEARCH = "can.code.inner.search"
|
||||||
function show(msg, word) { if (!msg) { return } history.push(msg); var sub = msg._can; sub.Option("word", word||msg._word)
|
function show(msg, word) { if (!msg) { return } history.push(msg); var sub = msg._can; sub.Option("word", word||msg._word)
|
||||||
sub.onmotion.clear(sub), sub.onappend.table(sub, msg, function(value, key, index, line) {
|
sub.onmotion.clear(sub), sub.onappend.table(sub, msg, function(value, key, index, line) {
|
||||||
return {text: ["", html.TD], list: [{text: [can.page.replace(can, value, ice.PWD, ""), html.DIV]}], onclick: function(event) {
|
return {text: ["", html.TD], list: [{text: [can.page.replace(can, value, ice.PWD, ""), html.DIV]}], onclick: function(event) {
|
||||||
line.line && can.onimport.tabview(can, can.Option(nfs.PATH), line.file.replace(ice.PWD, ""), parseInt(line.line))
|
line.line && can.onimport.tabview(can, can.Option(nfs.PATH), line.file.replace(ice.PWD, ""), parseInt(line.line))
|
||||||
}}
|
}}
|
||||||
}, sub._output), sub.onappend._status(sub, msg.Option(ice.MSG_STATUS)), can.Status("标签数", msg.Length())
|
}, sub._output), sub.onappend.board(sub, msg.Result()), sub.onappend._status(sub, msg.Option(ice.MSG_STATUS)), can.Status("标签数", msg.Length())
|
||||||
}
|
}
|
||||||
can.onengine.plugin(can, "can.code.inner.search", shy("搜索", {}, [
|
can.onengine.plugin(can, SEARCH, shy("搜索", {}, [
|
||||||
{type: html.TEXT, name: "word", value: cli.MAIN}, {type: html.BUTTON, name: nfs.FIND}, {type: html.BUTTON, name: "last"},
|
{type: html.TEXT, name: "word", value: cli.MAIN, onkeydown: function(event, can) {
|
||||||
], function(msg, cmds, cb) { can.misc.runAction(can, msg, cmds, cb, kit.Dict(
|
can.onmotion.selectTable(event, can.sup, event.target, function(tr) {
|
||||||
nfs.FIND, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text"))
|
can.page.Select(can, tr, html.TD, function(td, index) { index == 0 && td.click() })
|
||||||
|
tr.scrollIntoView(), can._output.scrollTop -= 60
|
||||||
|
})
|
||||||
|
if (event.key == lang.ENTER) { can.sup.Update(event, [ctx.ACTION, event.ctrlKey? nfs.GREP: nfs.TAGS, can.sup.Option("word")]) }
|
||||||
|
if (event.key == lang.ESCAPE) { event.target.blur() }
|
||||||
|
}},
|
||||||
|
{type: html.TEXT, name: "filter", value: "", onkeydown: function(event, can) {
|
||||||
|
can.onmotion.selectTableInput(event, can.sup, event.target)
|
||||||
|
if (event.key == lang.ENTER) { can.sup.Update(event, [ctx.ACTION, event.ctrlKey? nfs.GREP: nfs.TAGS, can.sup.Option("word")]) }
|
||||||
|
if (event.key == lang.ESCAPE) { event.target.blur() }
|
||||||
|
}},
|
||||||
|
{type: html.BUTTON, name: nfs.TAGS},
|
||||||
|
{type: html.BUTTON, name: nfs.GREP},
|
||||||
|
{type: html.BUTTON, name: cli.MAKE},
|
||||||
|
{type: html.BUTTON, name: "history"},
|
||||||
|
{type: html.BUTTON, name: "last", _trans: "返回"},
|
||||||
|
], function(msg, cmds, cb) { if (can.misc.runAction(can, msg, cmds, cb, kit.Dict(
|
||||||
|
"history", function(cmds) {
|
||||||
|
can.core.List(can.history, function(item) {
|
||||||
|
msg.Push(nfs.FILE, item.file)
|
||||||
|
msg.Push(nfs.LINE, item.line)
|
||||||
|
msg.Push(mdb.TEXT, item.text)
|
||||||
|
})
|
||||||
|
show(msg)
|
||||||
|
},
|
||||||
|
nfs.TAGS, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text"))
|
||||||
can.run(msg._event, [ctx.ACTION, mdb.SEARCH, can.parse, cmds[0], can.Option(nfs.PATH)], function(msg) { var sub = msg._can
|
can.run(msg._event, [ctx.ACTION, mdb.SEARCH, can.parse, cmds[0], can.Option(nfs.PATH)], function(msg) { var sub = msg._can
|
||||||
can.page.style(can, sub._output, html.MAX_HEIGHT, 200), show(msg, msg._word = cmds[0])
|
can.page.style(can, sub._output, html.MAX_HEIGHT, can.ConfHeight()/4), show(msg, msg._word = cmds[0])
|
||||||
can.page.ClassList.has(sub, sub._target, html.SELECT) || sub._legend.click()
|
can.page.ClassList.has(sub, sub._target, html.SELECT) || sub._legend.click()
|
||||||
|
can.onmotion.focus(can, msg._can._inputs["word"]._target)
|
||||||
|
}, true)
|
||||||
|
},
|
||||||
|
nfs.GREP, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text", nfs.PATH, can.Option(nfs.PATH)))
|
||||||
|
can.run(msg._event, [ctx.ACTION, nfs.GREP, cmds[0]], function(msg) { var sub = msg._can
|
||||||
|
can.page.style(can, sub._output, html.MAX_HEIGHT, can.ConfHeight()/4), show(msg, msg._word = cmds[0])
|
||||||
|
can.page.ClassList.has(sub, sub._target, html.SELECT) || sub._legend.click()
|
||||||
|
can.onmotion.focus(can, msg._can._inputs["word"]._target)
|
||||||
}, true)
|
}, true)
|
||||||
},
|
},
|
||||||
"last", function(cmds) { history.pop(), show(history.pop()) },
|
"last", function(cmds) { history.pop(), show(history.pop()) },
|
||||||
)) }))
|
))) { return } can.run(msg._event, cmds, function(msg) { show(msg) }, true) }))
|
||||||
can.onimport.toolkit(can, {index: "can.code.inner.search"}, function(sub) {
|
can.onimport.toolkit(can, {index: SEARCH}, function(sub) {
|
||||||
can.ui.search = sub, can.base.isFunc(cb) && cb(sub)
|
can.ui.search = sub, can.base.isFunc(cb) && cb(sub)
|
||||||
})
|
})
|
||||||
}})
|
}})
|
||||||
|
4
proto.js
4
proto.js
@ -64,6 +64,7 @@ var cli = {
|
|||||||
EXEC: "exec",
|
EXEC: "exec",
|
||||||
SHOW: "show",
|
SHOW: "show",
|
||||||
MAIN: "main",
|
MAIN: "main",
|
||||||
|
MAKE: "make",
|
||||||
|
|
||||||
RED: "red", GREEN: "green", BLUE: "blue",
|
RED: "red", GREEN: "green", BLUE: "blue",
|
||||||
YELLOW: "yellow", CYAN: "cyan", PURPLE: "purple", MAGENTA: "magenta",
|
YELLOW: "yellow", CYAN: "cyan", PURPLE: "purple", MAGENTA: "magenta",
|
||||||
@ -104,6 +105,7 @@ var nfs = {
|
|||||||
DIR_ROOT: "dir_root",
|
DIR_ROOT: "dir_root",
|
||||||
FIND: "find", GREP: "grep",
|
FIND: "find", GREP: "grep",
|
||||||
SAVE: "save", LOAD: "load",
|
SAVE: "save", LOAD: "load",
|
||||||
|
TAGS: "tags",
|
||||||
}
|
}
|
||||||
var tcp = {
|
var tcp = {
|
||||||
HOST: "host", PORT: "port",
|
HOST: "host", PORT: "port",
|
||||||
@ -333,6 +335,8 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
|
|||||||
getActionSize: function(cb) { return can.get("Action", "size", cb) },
|
getActionSize: function(cb) { return can.get("Action", "size", cb) },
|
||||||
search: function(event, cmds, cb) { return can.run && can.run(event, ["_search"].concat(cmds), cb, true) },
|
search: function(event, cmds, cb) { return can.run && can.run(event, ["_search"].concat(cmds), cb, true) },
|
||||||
|
|
||||||
|
ConfHeight: function(value) { return can.Conf(html.HEIGHT, value) },
|
||||||
|
ConfWidth: function(value) { return can.Conf(html.WIDTH, value) },
|
||||||
Conf: function(key, value) { var res = can._conf
|
Conf: function(key, value) { var res = can._conf
|
||||||
for (var i = 0; i < arguments.length; i += 2) {
|
for (var i = 0; i < arguments.length; i += 2) {
|
||||||
res = can.core.Value(can._conf, arguments[i], arguments[i+1])
|
res = can.core.Value(can._conf, arguments[i], arguments[i+1])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user