mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt inner.js
This commit is contained in:
parent
1c939babd1
commit
f5774929c4
41
frame.js
41
frame.js
@ -35,8 +35,16 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta,
|
|||||||
}, mod)
|
}, mod)
|
||||||
},
|
},
|
||||||
_engine: function(event, can, msg, panel, cmds, cb) { return false },
|
_engine: function(event, can, msg, panel, cmds, cb) { return false },
|
||||||
|
_plugin: function(event, can, msg, panel, cmds, cb) {
|
||||||
|
if (cmds[0] == ctx.ACTION && cmds[1] == ice.RUN && can.onengine.plugin.meta[cmds[2]]) {
|
||||||
|
can.core.CallFunc(can.onengine.plugin.meta[cmds[2]], {msg: msg, cmds: cmds.slice(3), cb: cb})
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
},
|
||||||
_remote: function(event, can, msg, panel, cmds, cb) {
|
_remote: function(event, can, msg, panel, cmds, cb) {
|
||||||
if (panel.onengine._engine(event, can, msg, panel, cmds, cb)) { return }
|
if (panel.onengine._engine(event, can, msg, panel, cmds, cb)) { return }
|
||||||
|
if (panel.onengine._plugin(event, can, msg, panel, cmds, cb)) { return }
|
||||||
can.onengine.signal(can, chat.ONREMOTE, can.request({}, {_follow: panel._follow, _msg: msg, _cmds: cmds}))
|
can.onengine.signal(can, chat.ONREMOTE, can.request({}, {_follow: panel._follow, _msg: msg, _cmds: cmds}))
|
||||||
|
|
||||||
var key = can.core.Keys(panel._name, cmds.join(ice.FS))
|
var key = can.core.Keys(panel._name, cmds.join(ice.FS))
|
||||||
@ -250,6 +258,35 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
tabs: function(can, list, cb, cbs, action) { action = action||can._action
|
||||||
|
return can.page.Append(can, action, can.core.List(list, function(meta) {
|
||||||
|
return {text: [meta.name, html.DIV, chat.TABS], title: meta.text, onclick: function(event) {
|
||||||
|
can.base.isFunc(cb) && cb(event, meta)
|
||||||
|
}, _init: function(item) { const OVER = "over"
|
||||||
|
function close(item) { var next = item.nextSibling || item.previousSibling
|
||||||
|
item._close(item) || can.page.Remove(can, item), next && next.click()
|
||||||
|
}
|
||||||
|
can.page.Modify(can, item, {draggable: true, _close: cbs,
|
||||||
|
oncontextmenu: function(event) {
|
||||||
|
can.user.carte(event, can, kit.Dict(
|
||||||
|
cli.CLOSE, function(event) { close(item) },
|
||||||
|
"close other", function(event) {
|
||||||
|
can.page.Select(can, action, chat.DIV_TABS, function(_item) {
|
||||||
|
_item == item || close(_item)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
"close all", function(event) { can.page.Select(can, action, chat.DIV_TABS, close) },
|
||||||
|
), [cli.CLOSE, "close other", "close all"])
|
||||||
|
},
|
||||||
|
ondragstart: function(event) { var target = event.target; target.click()
|
||||||
|
action._drop = function(event, before) { action.insertBefore(target, before) }
|
||||||
|
},
|
||||||
|
ondragover: function(event) { event.preventDefault(), action._drop(event, event.target) },
|
||||||
|
ondrop: function(event) { event.preventDefault(), action._drop(event, event.target) },
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
})).first
|
||||||
|
},
|
||||||
list: function(can, root, cb, target) { target = target||can._output
|
list: function(can, root, cb, target) { target = target||can._output
|
||||||
can.core.List(root.list, function(item) {
|
can.core.List(root.list, function(item) {
|
||||||
var ui = can.page.Append(can, target, [{view: [html.ITEM, html.DIV, item.meta.name], onclick: function(event) {
|
var ui = can.page.Append(can, target, [{view: [html.ITEM, html.DIV, item.meta.name], onclick: function(event) {
|
||||||
@ -306,7 +343,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
if (key == "extra.cmd") {
|
if (key == "extra.cmd") {
|
||||||
can.onappend.plugin(can, {ctx: line["extra.ctx"], cmd: line["extra.cmd"], arg: line["extra.arg"]}, function(sub) {
|
can.onappend.plugin(can, {ctx: line["extra.ctx"], cmd: line["extra.cmd"], arg: line["extra.arg"]}, function(sub) {
|
||||||
sub.run = function(event, cmds, cb) { var msg = can.request(event, line, can.Option())
|
sub.run = function(event, cmds, cb) { var msg = can.request(event, line, can.Option())
|
||||||
can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, can.core.Keys(line["extra.ctx"], line["extra.cmd"])], cmds), cb, true)
|
can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, can.core.Keys(line["extra.ctx"], line["extra.cmd"])], cmds), cb, true)
|
||||||
}
|
}
|
||||||
}, target)
|
}, target)
|
||||||
}
|
}
|
||||||
@ -353,7 +390,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
meta.type = meta.type||chat.PLUGIN
|
meta.type = meta.type||chat.PLUGIN
|
||||||
|
|
||||||
can.onappend._init(can, meta, [chat.PLUGIN_STATE_JS], function(sub, skip) {
|
can.onappend._init(can, meta, [chat.PLUGIN_STATE_JS], function(sub, skip) {
|
||||||
sub.run = function(event, cmds, cb) { can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, meta.index], cmds), cb) }
|
sub.run = function(event, cmds, cb) { can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, meta.index], cmds), cb) }
|
||||||
can.base.isFunc(cb) && cb(sub, meta, skip)
|
can.base.isFunc(cb) && cb(sub, meta, skip)
|
||||||
}, target||can._output)
|
}, target||can._output)
|
||||||
},
|
},
|
||||||
|
11
lib/misc.js
11
lib/misc.js
@ -2,7 +2,7 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg
|
|||||||
var proto = {_event: event, _can: can,
|
var proto = {_event: event, _can: can,
|
||||||
RunAction: function(event, sub, cmds) { var msg = can.request(event)
|
RunAction: function(event, sub, cmds) { var msg = can.request(event)
|
||||||
if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
|
if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
|
||||||
if (cmds && cmds[0] == ctx.ACTION && sub && sub.onaction[cmds[1]]) {
|
if (cmds && cmds[0] == ctx.ACTION && sub && can.base.isFunc(sub.onaction[cmds[1]])) {
|
||||||
return msg.Option(ice.MSG_HANDLE, ice.TRUE), can.core.CallFunc(sub.onaction[cmds[1]], {event: event, can: sub, msg: msg, button: cmds[1], cmd: cmds[1]}), true
|
return msg.Option(ice.MSG_HANDLE, ice.TRUE), can.core.CallFunc(sub.onaction[cmds[1]], {event: event, can: sub, msg: msg, button: cmds[1], cmd: cmds[1]}), true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
@ -227,7 +227,14 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg
|
|||||||
return can.base.MergeURL(location.origin+path+(clear?"":location.search), objs)
|
return can.base.MergeURL(location.origin+path+(clear?"":location.search), objs)
|
||||||
}),
|
}),
|
||||||
|
|
||||||
concat: function(to, from) { to = to||[], from = from||[]
|
runAction: function(can, msg, cmds, cb, list) {
|
||||||
|
if (cmds[0] == ctx.ACTION && list[cmds[1]]) { return list[cmds[1]](cmds.slice(2)) }
|
||||||
|
if (list[cmds[0]]) { return list[cmds[0]](cmds.slice(1)) }
|
||||||
|
},
|
||||||
|
concat: function(can, to, from) { to = to||[], from = from||[]
|
||||||
|
if (from[0] == ctx.ACTION && from[1] == ice.RUN && can.onengine.plugin.meta[from[2]]) {
|
||||||
|
return from
|
||||||
|
}
|
||||||
if (from[0] == "_search") { return from }
|
if (from[0] == "_search") { return from }
|
||||||
return to.concat(from)
|
return to.concat(from)
|
||||||
},
|
},
|
||||||
|
@ -290,6 +290,7 @@ fieldset>div.action>div.tabs:hover {
|
|||||||
}
|
}
|
||||||
fieldset>div.action>div.tabs.over {
|
fieldset>div.action>div.tabs.over {
|
||||||
background-color:blue;
|
background-color:blue;
|
||||||
|
color:blue;
|
||||||
}
|
}
|
||||||
fieldset>div.action>div.tabs.select {
|
fieldset>div.action>div.tabs.select {
|
||||||
border-bottom:solid 2px red;
|
border-bottom:solid 2px red;
|
||||||
|
@ -15,8 +15,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
|||||||
},
|
},
|
||||||
_plugin: function(can, river, storm, sub, meta) { sub._target._meta = meta
|
_plugin: function(can, river, storm, sub, meta) { sub._target._meta = meta
|
||||||
sub.run = function(event, cmds, cb) { var msg = sub.request(event)
|
sub.run = function(event, cmds, cb) { var msg = sub.request(event)
|
||||||
return can.run(event, can.misc.concat([river, storm, meta.id||meta.index], cmds), cb)
|
return can.run(event, can.misc.concat(can, [river, storm, meta.id||meta.index], cmds), cb)
|
||||||
}, can._plugins = can.misc.concat(can._plugins, [sub])
|
}, can._plugins = can.misc.concat(can, can._plugins, [sub])
|
||||||
|
|
||||||
meta.id && (sub._option.dataset = sub._option.dataset||{}, sub._option.dataset.id = meta.id)
|
meta.id && (sub._option.dataset = sub._option.dataset||{}, sub._option.dataset.id = meta.id)
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, cb, t
|
|||||||
can.get("Action", "size", function(msg, top, left, width, height) {
|
can.get("Action", "size", function(msg, top, left, width, height) {
|
||||||
can.onappend.plugin(can, {index: cmds[0], args: cmds.slice(1), height: height-100, width: width}, function(sub) {
|
can.onappend.plugin(can, {index: cmds[0], args: cmds.slice(1), height: height-100, width: width}, function(sub) {
|
||||||
sub.run = function(event, cmd, cb) {
|
sub.run = function(event, cmd, cb) {
|
||||||
can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, cmds[0]], cmd), cb)
|
can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, cmds[0]], cmd), cb)
|
||||||
}
|
}
|
||||||
|
|
||||||
can.page.Modify(can, sub._target, {style: {top: top+100, left: left}})
|
can.page.Modify(can, sub._target, {style: {top: top+100, left: left}})
|
||||||
|
@ -102,7 +102,7 @@ Volcanos("onaction", {help: "交互操作", list: [cli.CLEAR, cli.CLOSE, cli.DON
|
|||||||
})
|
})
|
||||||
|
|
||||||
sub.run = function(event, cmds, cb) { var msg = can.request(event, line)
|
sub.run = function(event, cmds, cb) { var msg = can.request(event, line)
|
||||||
can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, meta.index], cmds), cb, true)
|
can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, meta.index], cmds), cb, true)
|
||||||
}
|
}
|
||||||
}, can.ui.profile)
|
}, can.ui.profile)
|
||||||
},
|
},
|
||||||
|
@ -69,7 +69,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
}, size), ["/plugin/state.js"], function(sub) {
|
}, size), ["/plugin/state.js"], function(sub) {
|
||||||
can.page.Modify(can, sub._output, {style: size})
|
can.page.Modify(can, sub._output, {style: size})
|
||||||
sub.run = function(event, cmds, cb) {
|
sub.run = function(event, cmds, cb) {
|
||||||
can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, meta.index], cmds), cb, true)
|
can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, meta.index], cmds), cb, true)
|
||||||
}
|
}
|
||||||
}, target, field)
|
}, target, field)
|
||||||
}, true)
|
}, true)
|
||||||
|
@ -16,7 +16,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
if (can.onaction[cmds[1]]) { return can.onaction[cmds[1]](can, from, to, event, cmds, cb) }
|
if (can.onaction[cmds[1]]) { return can.onaction[cmds[1]](can, from, to, event, cmds, cb) }
|
||||||
|
|
||||||
var msg = sub.request(event, {_pod: can.Option(from)})
|
var msg = sub.request(event, {_pod: can.Option(from)})
|
||||||
can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, index], cmds), cb, true)
|
can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, index], cmds), cb, true)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -64,6 +64,28 @@ fieldset.inner>div.output div.content td.text span.string {
|
|||||||
color:magenta;
|
color:magenta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fieldset.inner>div.output>fieldset.toolkit>div.status>div.legend {
|
||||||
|
float:left; padding:4px; cursor:pointer;
|
||||||
|
}
|
||||||
|
fieldset.inner>div.output>fieldset.toolkit>div.status>div.legend.select {
|
||||||
|
background:green;
|
||||||
|
}
|
||||||
|
fieldset.inner>div.output>fieldset.toolkit>div.status>div.legend:hover {
|
||||||
|
background:green;
|
||||||
|
}
|
||||||
|
fieldset.inner>div.output>fieldset.toolkit>div.output>fieldset {
|
||||||
|
display:none; margin:0;padding:0;
|
||||||
|
}
|
||||||
|
fieldset.inner>div.output>fieldset.toolkit>div.output>fieldset>legend {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
fieldset.inner>div.output>fieldset.toolkit>div.output>fieldset>div.output {
|
||||||
|
height:260px;
|
||||||
|
}
|
||||||
|
fieldset.inner>div.output>fieldset.toolkit>div.output>fieldset.select {
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
|
||||||
fieldset.inner>div.output div.search {
|
fieldset.inner>div.output div.search {
|
||||||
padding:6px; border:solid 1px red;
|
padding:6px; border:solid 1px red;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
|
@ -9,14 +9,18 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
can.tabview = can.tabview||{}, can.tabview[can.Option(nfs.PATH)+can.Option(nfs.FILE)] = msg
|
can.tabview = can.tabview||{}, can.tabview[can.Option(nfs.PATH)+can.Option(nfs.FILE)] = msg
|
||||||
can.history = can.history||[]
|
can.history = can.history||[]
|
||||||
|
|
||||||
can.onimport.tabview(can, msg.Option(nfs.PATH), msg.Option(nfs.FILE), msg.Option(nfs.LINE)||1)
|
can.onimport.tabview(can, msg.Option(nfs.PATH), msg.Option(nfs.FILE), msg.Option(nfs.LINE)||1, function() {
|
||||||
can.onimport.project(can, msg.Option(nfs.PATH))
|
can.onimport.project(can, msg.Option(nfs.PATH))
|
||||||
can.base.isFunc(cb) && cb(msg)
|
can.base.isFunc(cb) && cb(msg)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
_content: function(can, target) { var height = can.Conf(html.HEIGHT)
|
_content: function(can, target) { var height = can.Conf(html.HEIGHT)
|
||||||
|
can.user.mod.isCmd && can.page.style(can, can._output, html.HEIGHT, can.Conf(html.HEIGHT))
|
||||||
can.page.style(can, can.ui.project, html.MAX_HEIGHT, height)
|
can.page.style(can, can.ui.project, html.MAX_HEIGHT, height)
|
||||||
can.page.style(can, can.ui.content, html.MAX_HEIGHT, height)
|
can.page.style(can, can.ui.content, html.MAX_HEIGHT, height)
|
||||||
can.page.style(can, can.ui.display, html.DISPLAY, html.NONE)
|
can.page.style(can, can.ui.display, html.DISPLAY, html.NONE)
|
||||||
|
can.ui.toolkit = can.onappend.field(can, chat.STORY, {}, can._output)
|
||||||
|
can.page.ClassList.add(can, can.ui.toolkit.fieldset, "toolkit")
|
||||||
},
|
},
|
||||||
_output: function(can, target) {
|
_output: function(can, target) {
|
||||||
var ui = can.page.Append(can, can.ui.display, [{view: html.ACTION}, {view: html.OUTPUT}]); can.ui.output = ui.output
|
var ui = can.page.Append(can, can.ui.display, [{view: html.ACTION}, {view: html.OUTPUT}]); can.ui.output = ui.output
|
||||||
@ -28,36 +32,74 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
))
|
))
|
||||||
},
|
},
|
||||||
_favor: function(can, target) {
|
_favor: function(can, target) {
|
||||||
can.onappend.plugin(can, {type: chat.STORY, index: "web.code.favor"}, function(sub) {
|
can.onimport.toolkit(can, {index: "web.code.git.spide", args: ["icebergs"]})
|
||||||
|
can.onimport.toolkit(can, {index: "web.code.git.total", args: ["icebergs"]})
|
||||||
|
can.onimport.toolkit(can, {index: "web.code.favor"}, function(sub) {
|
||||||
sub.run = function(event, cmds, cb) { var msg = can.request(event)
|
sub.run = function(event, cmds, cb) { var msg = can.request(event)
|
||||||
if (cmds && cmds[0] == ctx.ACTION) { switch (cmds[1]) {
|
if (cmds && cmds[0] == ctx.ACTION) { switch (cmds[1]) {
|
||||||
case code.INNER: can.onimport.tabview(can, msg.Option(nfs.PATH), msg.Option(nfs.FILE), msg.Option(nfs.LINE)); return
|
case code.INNER: can.onimport.tabview(can, msg.Option(nfs.PATH), msg.Option(nfs.FILE), msg.Option(nfs.LINE)); return
|
||||||
} }
|
} }
|
||||||
|
can.run(event, can.misc.concat(can, [ctx.ACTION, code.FAVOR], cmds), function(msg) { var sub = msg._can;
|
||||||
|
sub.onmotion.clear(sub), sub.onappend.table(sub, msg, function(value, key, index, line) {
|
||||||
|
if (msg.append.length == 2 && msg.append[0] == mdb.KEY && msg.append[1] == mdb.VALUE) {
|
||||||
|
if (key == mdb.VALUE) { key = line.key }
|
||||||
|
}
|
||||||
|
if (key != ctx.ACTION) {
|
||||||
|
value = sub.base.replaceAll(value, "<", "<", ">", ">", "./", "")
|
||||||
|
}
|
||||||
|
return {text: ["", html.TD], list: [{text: [value, html.DIV]}], onclick: function(event) {
|
||||||
|
if ([mdb.ZONE, mdb.ID].indexOf(key) > -1) {
|
||||||
|
return sub.onaction.change(event, sub, key, value)
|
||||||
|
}
|
||||||
|
|
||||||
can.run(event, can.misc.concat([ctx.ACTION, code.FAVOR], cmds), function(msg) {
|
line.line && can.onimport.tabview(can, can.Option(nfs.PATH), line.file.replace("./", ""), parseInt(line.line), function() {
|
||||||
can.base.isFunc(cb) && cb(msg), can.core.Timer(10, function() {
|
can.onaction.selectLine(can, line.line)
|
||||||
can.onappend._action(sub, [cli.CLOSE], sub._action, kit.Dict(
|
})
|
||||||
cli.CLOSE, function(event) { can.onmotion.hidden(sub, sub._target) },
|
}}
|
||||||
))
|
}, sub._output), sub.onappend._status(sub, msg.Option(ice.MSG_STATUS)), can.Status("标签数", msg.Length())
|
||||||
})
|
|
||||||
}, true)
|
}, true)
|
||||||
}, can.ui.favor = sub, can.onmotion.hidden(sub, sub._target)
|
}
|
||||||
}, target)
|
})
|
||||||
},
|
},
|
||||||
_search: function(can, target) {
|
_search: function(can, target) {
|
||||||
var ui = can.page.Append(can, target, [
|
can.onengine.plugin(can, "code.inner.search", shy("搜索", {}, [
|
||||||
{view: mdb.SEARCH, style: {display: html.NONE}, list: [
|
{type: "text", name: "word", value: "main"},
|
||||||
{view: chat.ACTION, list: [
|
{type: "button", name: "find"},
|
||||||
{input: ["word", function(event) {
|
{type: "button", name: "back"},
|
||||||
event.key == lang.ENTER && can.onaction.searchLine(event, can, ui.word.value)
|
], function(msg, cmds, cb) { can.misc.runAction(can, msg, cmds, cb, {
|
||||||
}], value: cli.MAIN, onfocus: function(event) { event.target.setSelectionRange(0, -1) }},
|
"find": function(cmds) { msg.Option(ice.MSG_HANDLE, ice.TRUE), msg.Option(ice.MSG_FIELDS, "file,line,text")
|
||||||
{button: ["find", function(event) { can.onaction.searchLine(event, can, ui.word.value) }]},
|
can.run(msg._event, [ctx.ACTION, mdb.SEARCH, can.parse, cmds[0], can.Option(nfs.PATH)], function(msg) {
|
||||||
{button: [cli.BACK, function(event) { can.onaction[cli.BACK](event, can) }]},
|
var sub = msg._can; sub.onappend.table(sub, msg, function(value, key, index, line) {
|
||||||
{button: [cli.CLOSE, function(event) { can.onaction["搜索"](event, can) }]},
|
value = can.base.replaceAll(value, "<", "<", ">", ">", "./", "")
|
||||||
]},
|
return {text: ["", html.TD], list: [{text: [value, html.DIV]}], onclick: function(event) {
|
||||||
{view: "tags", style: kit.Dict(html.MAX_HEIGHT, 160)},
|
line.line && can.onimport.tabview(can, can.Option(nfs.PATH), line.file.replace("./", ""), parseInt(line.line), function() {
|
||||||
]},
|
can.onaction.selectLine(can, line.line)
|
||||||
]); can.base.Copy(can.ui, ui, mdb.SEARCH, "word", "tags")
|
})
|
||||||
|
}}
|
||||||
|
}, sub._output), sub.Status("标签数", msg.Length())
|
||||||
|
}, true)
|
||||||
|
},
|
||||||
|
}) }))
|
||||||
|
can.onimport.toolkit(can, {index: "can.code.inner.search"})
|
||||||
|
},
|
||||||
|
toolkit: function(can, meta, cb) {
|
||||||
|
can.onappend.plugin(can, meta, function(sub) {
|
||||||
|
sub.run = function(event, cmds, cb, silent) {
|
||||||
|
can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, meta.index], cmds), cb, true)
|
||||||
|
}
|
||||||
|
sub.page.style(sub, sub._output, html.MAX_WIDTH, can.Conf(html.WIDTH))
|
||||||
|
can.ui.toolkit.status.appendChild(sub._legend)
|
||||||
|
sub._legend.onclick = function(event) {
|
||||||
|
if (can.page.ClassList.has(can, sub._target, html.SELECT)) {
|
||||||
|
can.page.ClassList.del(can, sub._target, html.SELECT)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
can.onmotion.select(can, can.ui.toolkit.output, html.FIELDSET, sub._target)
|
||||||
|
can.onmotion.select(can, can.ui.toolkit.status, html.DIV_LEGEND, event.target)
|
||||||
|
}
|
||||||
|
sub._legend.ondblclick = sub._legend.onmouseenter, sub._legend.onmouseenter = function() {}
|
||||||
|
can.base.isFunc(cb) && cb(sub)
|
||||||
|
}, can.ui.toolkit.output)
|
||||||
},
|
},
|
||||||
|
|
||||||
project: function(can, path) { can.Option({path: path})
|
project: function(can, path) { can.Option({path: path})
|
||||||
@ -80,14 +122,11 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
|
|
||||||
can.run({}, [path, file], function(msg) { can.tabview[path+file] = msg
|
can.run({}, [path, file], function(msg) { can.tabview[path+file] = msg
|
||||||
msg.Option({path: path, file: file, line: line||1})
|
msg.Option({path: path, file: file, line: line||1})
|
||||||
|
msg._tab = can.onappend.tabs(can, [{name: file.split(ice.PS).pop(), text: file}], function(event, meta) {
|
||||||
msg._tab = can.page.Append(can, can._action, [
|
can.onimport.tabview(can, path, file, "", cb)
|
||||||
{text: [file.split(ice.PS).pop(), html.DIV, chat.TABS], title: file, onclick: function(event) {
|
}, function(item) {
|
||||||
can.onimport.tabview(can, path, file, "", cb)
|
delete(can.tabview[path+file])
|
||||||
}, _init: function(item) { can.core.Timer(10, function() { item.click() })
|
}), can.core.Timer(10, function() { msg._tab.click() })
|
||||||
can.onaction.EnableDrop(can, can._action, chat.DIV_TABS, item)
|
|
||||||
}}
|
|
||||||
]).last
|
|
||||||
}, true)
|
}, true)
|
||||||
},
|
},
|
||||||
}, [""])
|
}, [""])
|
||||||
@ -102,7 +141,6 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
return can.onaction.selectLine(can, parseInt(msg.Option(nfs.LINE)))
|
return can.onaction.selectLine(can, parseInt(msg.Option(nfs.LINE)))
|
||||||
}
|
}
|
||||||
|
|
||||||
can.current = {}
|
|
||||||
function init(p) { can.max = 0, can.core.List(can.ls = msg.Result().split(ice.NL), function(item) {
|
function init(p) { can.max = 0, can.core.List(can.ls = msg.Result().split(ice.NL), function(item) {
|
||||||
can.onaction.appendLine(can, item)
|
can.onaction.appendLine(can, item)
|
||||||
}), can.onaction.selectLine(can, msg.Option(nfs.LINE)||1) }
|
}), can.onaction.selectLine(can, msg.Option(nfs.LINE)||1) }
|
||||||
@ -141,15 +179,14 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
return p.line? p.line(can, line): line
|
return p.line? p.line(can, line): line
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "控件交互", list: ["项目", "收藏"],
|
Volcanos("onaction", {help: "控件交互", list: ["项目", "工具"],
|
||||||
back: function(event, can) {
|
back: function(event, can) {
|
||||||
var last = can.history.pop(); last = can.history.pop()
|
var last = can.history.pop(); 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)
|
||||||
},
|
},
|
||||||
"项目": function(event, can) { can.onmotion.toggle(can, can.ui.project) },
|
"项目": function(event, can) { can.onmotion.toggle(can, can.ui.project) },
|
||||||
"收藏": function(event, can) { can.onmotion.toggle(can, can.ui.favor._target) },
|
"工具": function(event, can) { can.onmotion.toggle(can, can.ui.toolkit.fieldset) },
|
||||||
"搜索": function(event, can) { can.onmotion.toggle(can, can.ui.search) },
|
|
||||||
exec: function(event, can) { var msg = can.request(event, {_toast: "运行中..."})
|
exec: function(event, can) { var msg = can.request(event, {_toast: "运行中..."})
|
||||||
can.run(event, [ctx.ACTION, mdb.ENGINE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
|
can.run(event, [ctx.ACTION, mdb.ENGINE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
|
||||||
can.onappend.table(can, msg, null, can.ui.output||can.ui.display)
|
can.onappend.table(can, msg, null, can.ui.output||can.ui.display)
|
||||||
@ -284,21 +321,6 @@ Volcanos("onaction", {help: "控件交互", list: ["项目", "收藏"],
|
|||||||
], function(msg) { can.user.toastSuccess(can) }, true)
|
], function(msg) { can.user.toastSuccess(can) }, true)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
EnableDrop: function(can, parent, search, target) {
|
|
||||||
return can.page.Modify(can, target, { draggable: true,
|
|
||||||
ondragstart: function(event) { var target = event.target; can.drop = function(event, tab) {
|
|
||||||
parent.insertBefore(target, tab), can.page.Select(can, parent, search, function(item) {
|
|
||||||
can.page.ClassList.del(can, item, "over")
|
|
||||||
})
|
|
||||||
} },
|
|
||||||
ondragover: function(event) { event.preventDefault()
|
|
||||||
can.page.Select(can, parent, search, function(item) {
|
|
||||||
can.page.ClassList.del(can, item, "over")
|
|
||||||
}), can.page.ClassList.add(can, event.target, "over")
|
|
||||||
},
|
|
||||||
ondrop: function(event) { event.preventDefault(), can.drop(event, event.target) },
|
|
||||||
})
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: ["文件数", "解析器", "文件名", "当前行", "跳转数", "标签数"],
|
Volcanos("onexport", {help: "导出数据", list: ["文件数", "解析器", "文件名", "当前行", "跳转数", "标签数"],
|
||||||
position: function(can, index, total) { total = total || can.max
|
position: function(can, index, total) { total = total || can.max
|
||||||
|
@ -4,7 +4,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.onappend.plugin(can, {index: "web.code.vimer", style: "full"}, function(sub) {
|
can.onappend.plugin(can, {index: "web.code.vimer", style: "full"}, function(sub) {
|
||||||
sub.run = function(event, cmds, cb) { var res = can.request(event)
|
sub.run = function(event, cmds, cb) { var res = can.request(event)
|
||||||
if (cmds[1] == "plugin") {
|
if (cmds[1] == "plugin") {
|
||||||
can.run(event, can.misc.concat(["action", "vimer"], cmds), cb, true)
|
can.run(event, can.misc.concat(can, ["action", "vimer"], cmds), cb, true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (cmds[1] == "main.go") { res.Echo(msg.Option("content"))
|
if (cmds[1] == "main.go") { res.Echo(msg.Option("content"))
|
||||||
|
@ -78,7 +78,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
_display: function(can, task) { if (!task["extra.cmd"]) { return }
|
_display: function(can, task) { if (!task["extra.cmd"]) { return }
|
||||||
can.onappend.plugin(can, {type: chat.STORY, ctx: task["extra.ctx"], cmd: task["extra.cmd"], arg: task["extra.arg"]}, function(sub, meta) {
|
can.onappend.plugin(can, {type: chat.STORY, ctx: task["extra.ctx"], cmd: task["extra.cmd"], arg: task["extra.arg"]}, function(sub, meta) {
|
||||||
sub.run = function(event, cmds, cb) { var msg = can.request(event, kit.Dict("task.pod", task["pod"], "task.zone", task.zone, "task.id", task.id))
|
sub.run = function(event, cmds, cb) { var msg = can.request(event, kit.Dict("task.pod", task["pod"], "task.zone", task.zone, "task.id", task.id))
|
||||||
can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, task[mdb.ZONE], task[mdb.ID]], cmds), cb, true)
|
can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, task[mdb.ZONE], task[mdb.ID]], cmds), cb, true)
|
||||||
}
|
}
|
||||||
}, can.ui.display)
|
}, can.ui.display)
|
||||||
can.page.Modify(can, can.ui.display, {style: {display: html.BLOCK}})
|
can.page.Modify(can, can.ui.display, {style: {display: html.BLOCK}})
|
||||||
|
@ -415,7 +415,7 @@ Volcanos("ondetail", {help: "组件详情", list: [cli.START, ice.RUN, ice.COPY,
|
|||||||
can.onmotion.clear(can, can.ui.display), can.svg.Value("pid", target.Value("pid"))
|
can.onmotion.clear(can, can.ui.display), can.svg.Value("pid", target.Value("pid"))
|
||||||
var index = target.Value(mdb.INDEX); index && can.onappend.plugin(can, {type: chat.STORY, index: index, args: target.Value(ctx.ARGS)}, function(sub) {
|
var index = target.Value(mdb.INDEX); index && can.onappend.plugin(can, {type: chat.STORY, index: index, args: target.Value(ctx.ARGS)}, function(sub) {
|
||||||
sub.Conf("height", can.Conf("height")-can.svg.Val("height")-52), sub.Conf("width", can.Conf("width"))
|
sub.Conf("height", can.Conf("height")-can.svg.Val("height")-52), sub.Conf("width", can.Conf("width"))
|
||||||
sub.run = function(event, cmds, cb) { can.run(event, can.misc.concat([ice.RUN, index], cmds), cb, true) }
|
sub.run = function(event, cmds, cb) { can.run(event, can.misc.concat(can, [ice.RUN, index], cmds), cb, true) }
|
||||||
can.onmotion.hidden(can, sub._legend), can.onmotion.hidden(can, can.ui.display, true)
|
can.onmotion.hidden(can, sub._legend), can.onmotion.hidden(can, can.ui.display, true)
|
||||||
}, can.ui.display)
|
}, can.ui.display)
|
||||||
},
|
},
|
||||||
|
@ -60,7 +60,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
|||||||
field: function(can, data, target, width) { var item = can.base.Obj(data.meta)
|
field: function(can, data, target, width) { var item = can.base.Obj(data.meta)
|
||||||
can.onappend._init(can, item, [chat.PLUGIN_STATE_JS], function(sub) {
|
can.onappend._init(can, item, [chat.PLUGIN_STATE_JS], function(sub) {
|
||||||
sub.run = function(event, cmds, cb, silent) {
|
sub.run = function(event, cmds, cb, silent) {
|
||||||
can.run(event, can.misc.concat([ctx.ACTION, chat.STORY, data.type, data.name, data.text], cmds), cb, true)
|
can.run(event, can.misc.concat(can, [ctx.ACTION, chat.STORY, data.type, data.name, data.text], cmds), cb, true)
|
||||||
}
|
}
|
||||||
sub.Conf(html.HEIGHT, can.Conf(html.HEIGHT))
|
sub.Conf(html.HEIGHT, can.Conf(html.HEIGHT))
|
||||||
sub.Conf(html.WIDTH, item.width = (width||can.Conf(html.WIDTH))-20)
|
sub.Conf(html.WIDTH, item.width = (width||can.Conf(html.WIDTH))-20)
|
||||||
|
@ -172,7 +172,7 @@ Volcanos("ondetail", {help: "用户交互", list: [],
|
|||||||
}
|
}
|
||||||
can.onappend.plugin(can, can.base.Copy(value, {type: chat.FLOAT, index: index, args: args}), function(sub) {
|
can.onappend.plugin(can, can.base.Copy(value, {type: chat.FLOAT, index: index, args: args}), function(sub) {
|
||||||
sub.run = function(event, cmds, cb) { can.request(event, value, can.Option())
|
sub.run = function(event, cmds, cb) { can.request(event, value, can.Option())
|
||||||
can.run(event, can.misc.concat(prefix, cmds), cb, true)
|
can.run(event, can.misc.concat(can, prefix, cmds), cb, true)
|
||||||
}, can.ondetail.figure(can, sub)
|
}, can.ondetail.figure(can, sub)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
1
proto.js
1
proto.js
@ -203,6 +203,7 @@ var html = {
|
|||||||
FIELDSET_HEAD: "fieldset.head", FIELDSET_FOOT: "fieldset.foot",
|
FIELDSET_HEAD: "fieldset.head", FIELDSET_FOOT: "fieldset.foot",
|
||||||
FIELDSET_LEFT: "fieldset.left", FIELDSET_MAIN: "fieldset.main",
|
FIELDSET_LEFT: "fieldset.left", FIELDSET_MAIN: "fieldset.main",
|
||||||
FIELDSET_AUTO: "fieldset.auto", FIELDSET_FLOAT: "fieldset.float",
|
FIELDSET_AUTO: "fieldset.auto", FIELDSET_FLOAT: "fieldset.float",
|
||||||
|
DIV_LEGEND: "div.legend",
|
||||||
|
|
||||||
OPTION_ARGS: "select.args,input.args,textarea.args",
|
OPTION_ARGS: "select.args,input.args,textarea.args",
|
||||||
INPUT_ARGS: "input.args,textarea.args",
|
INPUT_ARGS: "input.args,textarea.args",
|
||||||
|
@ -73,7 +73,7 @@ setTimeout(function() { Volcanos({Option: function() { return [] },
|
|||||||
}, msg.Option("selection")||sub._legend.onclick()
|
}, msg.Option("selection")||sub._legend.onclick()
|
||||||
|
|
||||||
sub.run = function(event, cmds, cb) { if (msg.RunAction(event, can, cmds)) { return }
|
sub.run = function(event, cmds, cb) { if (msg.RunAction(event, can, cmds)) { return }
|
||||||
can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, meta.index], cmds), cb)
|
can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, meta.index], cmds), cb)
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.Option("selection") && (can.onengine.listen(can, "onselection", function() {
|
msg.Option("selection") && (can.onengine.listen(can, "onselection", function() {
|
||||||
@ -113,7 +113,7 @@ setTimeout(function() { Volcanos({Option: function() { return [] },
|
|||||||
},
|
},
|
||||||
}, function(can) {
|
}, function(can) {
|
||||||
can.run = function(event, cmds, cb) { if (cmds[0] == "_search") { return }
|
can.run = function(event, cmds, cb) { if (cmds[0] == "_search") { return }
|
||||||
var msg = can.request(event, {host: location.host}); msg.detail = can.misc.concat(["page"], cmds)
|
var msg = can.request(event, {host: location.host}); msg.detail = can.misc.concat(can, ["page"], cmds)
|
||||||
chrome.runtime.sendMessage(msg, function(res) { can.base.isFunc(cb) && cb(msg.Copy(res)) })
|
chrome.runtime.sendMessage(msg, function(res) { can.base.isFunc(cb) && cb(msg.Copy(res)) })
|
||||||
}, can._daemon(can), can._motion(can)
|
}, can._daemon(can), can._motion(can)
|
||||||
}) }, 1)
|
}) }, 1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user