1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00

opt inner.js

This commit is contained in:
IT 老营长 @云轩领航-创始人 2022-01-14 09:25:16 +08:00
parent 1c939babd1
commit f5774929c4
17 changed files with 159 additions and 69 deletions

View File

@ -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)
}, },

View File

@ -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)
}, },

View File

@ -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;

View File

@ -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)

View File

@ -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}})

View File

@ -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)
}, },

View File

@ -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)

View File

@ -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)
} }
}) })
}, },

View File

@ -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;

View File

@ -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, "<", "&lt;", ">", "&gt;", "./", "")
}
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, "<", "&lt;", ">", "&gt;", "./", "")
]}, 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, [
{text: [file.split(ice.PS).pop(), html.DIV, chat.TABS], title: file, onclick: function(event) {
can.onimport.tabview(can, path, file, "", cb) can.onimport.tabview(can, path, file, "", cb)
}, _init: function(item) { can.core.Timer(10, function() { item.click() }) }, function(item) {
can.onaction.EnableDrop(can, can._action, chat.DIV_TABS, item) delete(can.tabview[path+file])
}} }), can.core.Timer(10, function() { msg._tab.click() })
]).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

View File

@ -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"))

View File

@ -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}})

View File

@ -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)
}, },

View File

@ -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)

View File

@ -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)
}) })
}, },

View File

@ -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",

View File

@ -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)