mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt some
This commit is contained in:
parent
a8485b8ecd
commit
207c4306a8
31
frame.js
31
frame.js
@ -5,7 +5,7 @@ Volcanos("onengine", { _init: function(can, meta, list, cb, target) {
|
||||
can.core.Next(meta.panes, function(item, next) {
|
||||
can.onappend._init(can, item, meta.libs.concat(item.list), function(pane) {
|
||||
pane.Conf(item), pane.run = function(event, cmds, cb) {
|
||||
(can.onengine[cmds[0]]||can.onengine[meta.main.engine])(event, can, pane.request(event), pane, cmds, cb);
|
||||
return (can.onengine[cmds[0]]||can.onengine[meta.main.engine])(event, can, pane.request(event), pane, cmds, cb)
|
||||
}, can[item.name] = pane, next();
|
||||
}, can._target);
|
||||
}, function() { can.onlayout._init(can, meta, list, function() {
|
||||
@ -42,7 +42,7 @@ Volcanos("onengine", { _init: function(can, meta, list, cb, target) {
|
||||
fun && (sub = mod, mod = fun, key = value, fun = mod[value])
|
||||
}); if (!sub || !mod || !fun) { console.info("not found", chain); return }
|
||||
|
||||
typeof fun == "function" && fun(sub, msg, cmds.slice(2), cb, sub._target)
|
||||
return typeof fun == "function" && fun(sub, msg, cmds.slice(2), cb, sub._target)
|
||||
},
|
||||
engine: function(event, can, msg, pane, cmds, cb) { if (!can.onengine) { return false }
|
||||
switch (pane._name) {
|
||||
@ -192,7 +192,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
|
||||
var last = sub._history[sub._history.length-1]
|
||||
!can.core.Eq(last, cmds) && cmds[0] != "action" && sub._history.push(cmds)
|
||||
|
||||
run(event, cmds, cb, silent)
|
||||
return run(event, cmds, cb, silent)
|
||||
}
|
||||
|
||||
// 添加事件
|
||||
@ -210,7 +210,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
|
||||
})
|
||||
|
||||
var count = 0
|
||||
function run(event, cmds, cb, silent) { sub.run(event, cmds, function(msg) {
|
||||
function run(event, cmds, cb, silent) { return sub.run(event, cmds, function(msg) {
|
||||
sub.Status("ncmd", sub._history.length+"/"+count++)
|
||||
if (silent) { typeof cb == "function" && cb(msg); return }
|
||||
|
||||
@ -225,7 +225,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
|
||||
}, Volcanos.meta.libs.concat(["/frame.js", display]), function(table) { table.Conf(sub.Conf())
|
||||
table.onimport && table.onimport._init && table.onimport._init(table, msg, msg.result||[], function() {}, output)
|
||||
table.run = function(event, cmds, cb, silent) { cmds = cmds || []
|
||||
run(event, cmds, cb, silent)
|
||||
return run(event, cmds, cb, silent)
|
||||
}
|
||||
|
||||
// 工具栏
|
||||
@ -384,6 +384,10 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
|
||||
can.page.Modify(can, can._carte, {style: {display: "none"}})
|
||||
}}]).last
|
||||
|
||||
meta = meta||can.ondetail||{}, cb = cb||function(ev, item, meta) {
|
||||
(can.ondetail[item]||can.onaction[item])(event, can)
|
||||
}
|
||||
|
||||
can.page.Appends(can, can._carte, can.core.List(list, function(item) {
|
||||
return {view: ["item"], list: [typeof item == "string"? {text: [item], click: function(event) {
|
||||
typeof cb == "function" && cb(event, item, meta)
|
||||
@ -399,12 +403,19 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
|
||||
}], value: src[item[0]]||""}]}
|
||||
}))
|
||||
|
||||
var pos = {position: "absolute", display: "block", left: event.x, top: event.y}
|
||||
if (document.body.clientWidth - event.x < 60) {
|
||||
var pos = {display: "block", right: event.x, top: event.y}
|
||||
}
|
||||
pos.left += "px"; pos.top += "px";
|
||||
|
||||
var ls = can._follow.split(".")
|
||||
|
||||
console.log(ls.length, can)
|
||||
var left = (ls.length > 2) && can.run({}, ["search", can._follow.split(".")[1]+".onexport.left"]) || 0
|
||||
var top = (ls.length == 3) && can.run({}, ["search", can._follow.split(".")[1]+".onexport.top"]) || 0
|
||||
var top = (ls.length > 3)? event.y: top
|
||||
var pos = {position: "absolute", display: "block", left: event.x-left, top: event.y-top}
|
||||
// if (document.body.clientWidth - event.x < 60) {
|
||||
// var pos = {display: "block", right: event.x, top: event.y}
|
||||
// }
|
||||
can.page.Modify(can, can._carte, {style: pos})
|
||||
console.log("carte ", can._carte.offsetLeft, "output", can._carte.parentNode.offsetLeft)
|
||||
|
||||
event.stopPropagation()
|
||||
event.preventDefault()
|
||||
|
@ -93,6 +93,9 @@ fieldset>div.action>div.item>input {
|
||||
fieldset>div.action>div.item>input:hover {
|
||||
background:gray;
|
||||
}
|
||||
fieldset>div.action>div.item.space {
|
||||
width:10px;
|
||||
}
|
||||
fieldset>div.status>div.item {
|
||||
float:left;
|
||||
padding:4px;
|
||||
@ -178,6 +181,7 @@ div.carte {
|
||||
background:black;
|
||||
border:solid 2px red;
|
||||
position:absolute;
|
||||
z-index:10;
|
||||
}
|
||||
div.carte div.item {
|
||||
padding:0 5px;
|
||||
|
@ -92,7 +92,7 @@ Volcanos("core", {help: "核心模块",
|
||||
if (left == "") {
|
||||
left = list[i], space = false, begin = i+1
|
||||
} else if (left == list[i]) {
|
||||
res.push({text: list.slice(begin, i), type: "string", left: left})
|
||||
res.push({text: list.slice(begin, i), type: "string", left: left, right: left})
|
||||
left = "", space = true, begin = i+1
|
||||
}
|
||||
} else if (sups[list[i]]) {
|
||||
@ -117,7 +117,11 @@ Volcanos("core", {help: "核心模块",
|
||||
}
|
||||
|
||||
// 末尾单词
|
||||
if (begin < list.length) { res.push(list.slice(begin)) }
|
||||
if (left != "") {
|
||||
res.push({text: list.slice(begin), type: "string", left: left, right: ""})
|
||||
} else if (begin < list.length) {
|
||||
res.push(list.slice(begin))
|
||||
}
|
||||
return res
|
||||
}),
|
||||
|
||||
|
@ -36,6 +36,8 @@ Volcanos("page", {help: "网页模块",
|
||||
"width": true, "height": true,
|
||||
"max-height": true,
|
||||
"margin-left": true,
|
||||
"left": true,
|
||||
"top": true,
|
||||
}
|
||||
if (size[sub] && (typeof value == "number" || !value.endsWith("px"))) {
|
||||
value += "px"
|
||||
|
@ -42,11 +42,12 @@ Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg,
|
||||
can.Conf("action", value.name)
|
||||
// console.log(event, sub, msg)
|
||||
// 插件回调
|
||||
can.run(event, [river, storm, index].concat(cmds), function(msg) {
|
||||
//
|
||||
return can.run(event, can.onengine[cmds[0]]? cmds: [river, storm, index].concat(cmds), function(msg) {
|
||||
can.run(msg._event, ["search", "Footer.onaction.ncmd"]);
|
||||
can.onappend.toast(can, "执行成功", value.name, 2000);
|
||||
typeof cb == "function" && cb(msg)
|
||||
}, silent);
|
||||
}, silent)
|
||||
}
|
||||
sub._target.oncontextmenu = function(event) {
|
||||
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
|
||||
@ -60,5 +61,11 @@ Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg,
|
||||
key: function(can, msg) { msg.Option("active", can.Conf("action"))
|
||||
can.core.Item(can.Conf("active"), msg.Option)
|
||||
},
|
||||
left: function(can) {
|
||||
return can._target.offsetLeft
|
||||
},
|
||||
top: function(can) {
|
||||
return can._target.offsetTop
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -52,6 +52,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
||||
tabview: function(can, path, name) {
|
||||
can.Option("path", path)
|
||||
can.Option("name", name)
|
||||
can.Option("key", "")
|
||||
if (can.tabview[path+name]) { return can.onsyntax._init(can, can.tabview[path+name]) }
|
||||
|
||||
can.run({}, [path, name], function(msg) {
|
||||
@ -60,6 +61,9 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
||||
|
||||
can.page.Append(can, can._action, [{view: ["file", "div", name], onclick: function(event) {
|
||||
can.onsyntax._init(can, msg)
|
||||
}, oncontextmenu: function(event) {
|
||||
can.onappend.carte(can, null, ["保存", "运行"])
|
||||
|
||||
}}]), can.onsyntax._init(can, can.tabview[path+name] = msg)
|
||||
}, true)
|
||||
},
|
||||
@ -132,7 +136,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
||||
|
||||
switch (item.type) {
|
||||
case "space": return text
|
||||
case "string": return wrap("string", item.left+text+item.left)
|
||||
case "string": return wrap("string", item.left+text+item.right)
|
||||
default: return wrap(key, text)
|
||||
}
|
||||
}).join(""))
|
||||
@ -190,7 +194,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
||||
"require": "keyword",
|
||||
},
|
||||
prefix: {"#": "comment"},
|
||||
suffix: {"{": "comment"},
|
||||
suffix: {"\x7B": "comment"},
|
||||
line: function(can, line) { return line },
|
||||
},
|
||||
vim: {
|
||||
@ -203,6 +207,10 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
||||
},
|
||||
shy: {
|
||||
profile: true,
|
||||
keyword: {
|
||||
"chapter": "keyword",
|
||||
"label": "keyword",
|
||||
},
|
||||
split: {},
|
||||
line: function(can, line) { return line },
|
||||
},
|
||||
@ -561,7 +569,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"
|
||||
},
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "控件交互", list: ["项目", "上传", "保存", "", "历史", "提交", "运行", "日志", "记录", "复盘"],
|
||||
Volcanos("onaction", {help: "控件交互", list: ["", "项目", "", "上传", "保存", "运行", "日志", "", "提交", "历史", "记录", "复盘", ""],
|
||||
modifyLine: function(can, target, value) { var p = can.onsyntax.parse(can, value)
|
||||
typeof p == "object"? can.page.Appends(can, target, [p]): target.innerHTML = p
|
||||
},
|
||||
@ -610,17 +618,17 @@ Volcanos("onaction", {help: "控件交互", list: ["项目", "上传", "保存",
|
||||
"项目": function(event, can, msg) { can.onlayout.project(can) },
|
||||
"上传": function(event, can, msg) { can.onappend.upload(can) },
|
||||
"保存": function(event, can, msg) { can.onkeymap._remote(event, can, "保存") },
|
||||
"提交": function(event, can, msg) { can.onkeymap._remote(event, can, "提交") },
|
||||
"历史": function(event, can, msg) { can.onkeymap._remote(event, can, "历史") },
|
||||
"运行": function(event, can, msg) { can.onkeymap._remote(event, can, "运行") },
|
||||
"日志": function(event, can, msg) { can.onkeymap._remote(event, can, "日志") },
|
||||
"记录": function(event, can, msg) {
|
||||
var sub = can.request(event)
|
||||
"记录": function(event, can, msg) { var sub = can.request(event)
|
||||
can.core.Item(can.Option(), sub.Option)
|
||||
sub.Option("display", can.display.innerText)
|
||||
can.onkeymap._remote(event, can, "记录", ["action", "记录"])
|
||||
},
|
||||
"复盘": function(event, can, msg) { can.onkeymap._remote(event, can, "复盘") },
|
||||
|
||||
"提交": function(event, can, msg) { can.onkeymap._remote(event, can, "提交") },
|
||||
"历史": function(event, can, msg) { can.onkeymap._remote(event, can, "历史") },
|
||||
})
|
||||
Volcanos("ondetail", {help: "菜单交互", list: ["删除行", "合并行", "插入行", "添加行", "追加行"],
|
||||
"删除行": function(event, can, msg) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user