mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
opt inner
This commit is contained in:
parent
d98fc1a667
commit
c29e628e2e
2
frame.js
2
frame.js
@ -327,7 +327,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { met
|
|||||||
// can.core.Item(can.Option(), function(key, value) { args[key] = value })
|
// can.core.Item(can.Option(), function(key, value) { args[key] = value })
|
||||||
//
|
//
|
||||||
|
|
||||||
can.user.locals(can, args)
|
location.protocol == "chrome:" && can.user.locals(can, args)
|
||||||
location.href = can.user.Share(can, args, true)
|
location.href = can.user.Share(can, args, true)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -356,6 +356,7 @@ var page = Volcanos("page", {help: "网页模块",
|
|||||||
text = text.replace(/\033\[31m/g, "<span style='color:#f00'>")
|
text = text.replace(/\033\[31m/g, "<span style='color:#f00'>")
|
||||||
text = text.replace(/\033\[32m/g, "<span style='color:#0f0'>")
|
text = text.replace(/\033\[32m/g, "<span style='color:#0f0'>")
|
||||||
text = text.replace(/\033\[33m/g, "<span style='color:#ff0'>")
|
text = text.replace(/\033\[33m/g, "<span style='color:#ff0'>")
|
||||||
|
text = text.replace(/\033\[34m/g, "<span style='color:#00f'>")
|
||||||
text = text.replace(/\033\[36m/g, "<span style='color:#0ff'>")
|
text = text.replace(/\033\[36m/g, "<span style='color:#0ff'>")
|
||||||
text = text.replace(/\033\[1m/g, "<span style='font-weight:bold'>")
|
text = text.replace(/\033\[1m/g, "<span style='font-weight:bold'>")
|
||||||
text = text.replace(/\033\[0m/g, "</span>")
|
text = text.replace(/\033\[0m/g, "</span>")
|
||||||
|
@ -59,9 +59,9 @@ fieldset.editor>div.output div.content>pre.item {
|
|||||||
padding-left:10px;
|
padding-left:10px;
|
||||||
min-width:120px;
|
min-width:120px;
|
||||||
}
|
}
|
||||||
fieldset.editor>div.output div.content>div.item.select {
|
fieldset.editor>div.output div.content>pre.item.select {
|
||||||
background-color:red;
|
/* background-color:red; */
|
||||||
border:solid 1px yellow;
|
border:solid 1px red;
|
||||||
}
|
}
|
||||||
fieldset.editor>div.output div.content>pre.item span.comment {
|
fieldset.editor>div.output div.content>pre.item span.comment {
|
||||||
color:cyan; background-color:blue;
|
color:cyan; background-color:blue;
|
||||||
|
@ -4,6 +4,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
|||||||
// can.page.Modify(can, target, {style: {"max-height": height-160+"px"}})
|
// can.page.Modify(can, target, {style: {"max-height": height-160+"px"}})
|
||||||
|
|
||||||
can.onappend.table(can, target, "table", msg), can.ui = can.page.Append(can, target, [
|
can.onappend.table(can, target, "table", msg), can.ui = can.page.Append(can, target, [
|
||||||
|
{view: "search", style: {display: "none"}},
|
||||||
{view: "project"}, {view: "profile"},
|
{view: "project"}, {view: "profile"},
|
||||||
|
|
||||||
{view: "holdon", list: [
|
{view: "holdon", list: [
|
||||||
@ -25,16 +26,21 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
|||||||
can.onkeymap.parse(event, can, "command")
|
can.onkeymap.parse(event, can, "command")
|
||||||
}},
|
}},
|
||||||
{type: "code", list: [{view: ["display", "pre"]}]},
|
{type: "code", list: [{view: ["display", "pre"]}]},
|
||||||
{view: "search"},
|
|
||||||
])
|
])
|
||||||
|
|
||||||
|
can.history = [{
|
||||||
|
path: msg.Option("path"),
|
||||||
|
file: msg.Option("file"),
|
||||||
|
line: msg.Option("line"),
|
||||||
|
}]
|
||||||
msg.Option("path", can.Option("path"))
|
msg.Option("path", can.Option("path"))
|
||||||
msg.Option("file", can.Option("file"))
|
msg.Option("file", can.Option("file"))
|
||||||
msg.Option("key", can.Option("key"))
|
msg.Option("line", can.Option("line"))
|
||||||
can.tabview = {}, can.Timer(10, function() {
|
can.tabview = {}, can.Timer(10, function() {
|
||||||
can.onimport.project(can, can.Option("path"))
|
can.onimport.project(can, can.Option("path"))
|
||||||
can.onsyntax._init(can, msg)
|
can.onsyntax._init(can, msg)
|
||||||
can.onkeymap._init(can)
|
can.onkeymap._init(can)
|
||||||
|
can.onaction.selectLine(can, parseInt(msg.Option("line")))
|
||||||
})
|
})
|
||||||
return typeof cb == "function" && cb(msg)
|
return typeof cb == "function" && cb(msg)
|
||||||
},
|
},
|
||||||
@ -47,13 +53,21 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
|||||||
can.Conf("height", can.Conf("height") + 64)
|
can.Conf("height", can.Conf("height") + 64)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
tabview: function(can, path, file) { can.Option({path: path, file: file, key: ""})
|
tabview: function(can, path, file, line) {
|
||||||
if (can.tabview[path+file]) { return can.onsyntax._init(can, can.tabview[path+file]) }
|
var push = {path: path, file: file, line: line}
|
||||||
|
!can.core.Eq(can.history[can.history.length-1], push) && can.history.push(push)
|
||||||
|
|
||||||
|
can.Option({path: path, file: file, line: line||1})
|
||||||
|
if (can.tabview[path+file]) {
|
||||||
|
can.onsyntax._init(can, can.tabview[path+file])
|
||||||
|
can.onaction.selectLine(can, line||1)
|
||||||
|
return
|
||||||
|
}
|
||||||
can.run({}, [path, file], function(msg) {
|
can.run({}, [path, file], function(msg) {
|
||||||
msg.Option({path: can.Option("path"), file: can.Option("file")})
|
msg.Option({path: can.Option("path"), file: can.Option("file")})
|
||||||
can.page.Append(can, can._action, [{view: ["file", "div", file], onclick: function(event) {
|
can.page.Append(can, can._action, [{view: ["file", "div", file], onclick: function(event) {
|
||||||
can.onsyntax._init(can, can.tabview[path+file] = msg)
|
can.onsyntax._init(can, can.tabview[path+file] = msg)
|
||||||
can.Option({path: path, file: file, key: ""})
|
can.Option({path: path, file: file, line: line||1})
|
||||||
}, ondblclick: function(event) {
|
}, ondblclick: function(event) {
|
||||||
can.onkeymap._remote(event, can, "运行")
|
can.onkeymap._remote(event, can, "运行")
|
||||||
}, oncontextmenu: function(event) {
|
}, oncontextmenu: function(event) {
|
||||||
@ -72,18 +86,21 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
|||||||
},
|
},
|
||||||
|
|
||||||
}]).first.click()
|
}]).first.click()
|
||||||
|
can.onaction.selectLine(can, line||1)
|
||||||
}, true)
|
}, true)
|
||||||
},
|
},
|
||||||
project: function(can, path) { can.Option({path: path}), can.ui.project.innerHTML = ""
|
project: function(can, path) { can.Option({path: path}), can.ui.project.innerHTML = ""
|
||||||
can.run({}, ["action", "project", path+"/"], function(res) { res.Table(function(value) {
|
can.run({}, ["action", "project", path+"/"], function(res) { res.Table(function(value) {
|
||||||
|
value.path = value.path.slice(can.Option("path").length+1)
|
||||||
|
|
||||||
var title = can.core.List(["time", "size"], function(item) { return item + ": " + value[item] }).join("\n")
|
var title = can.core.List(["time", "size"], function(item) { return item + ": " + value[item] }).join("\n")
|
||||||
can.page.Append(can, can.ui.project, [{text: [value.file, "div", "item"], title: title,
|
can.page.Append(can, can.ui.project, [{text: [value.path, "div", "item"], title: title,
|
||||||
onclick: function(event) {
|
onclick: function(event) {
|
||||||
value.file.endsWith("/")? can.onimport.project(can, can.base.Path(can.Option("path"), value.file)):
|
value.path.endsWith("/")? can.onimport.project(can, can.base.Path(can.Option("path"), value.path)):
|
||||||
can.onimport.tabview(can, can.Option("path"), value.file)
|
can.onimport.tabview(can, can.Option("path"), value.path)
|
||||||
},
|
},
|
||||||
ondblclick: function(event) {
|
ondblclick: function(event) {
|
||||||
can.onkeymap._remote(event, can, "运行", ["action", "运行", path, value.file])
|
can.onkeymap._remote(event, can, "运行", ["action", "运行", path, value.path])
|
||||||
},
|
},
|
||||||
}])
|
}])
|
||||||
}) }, true)
|
}) }, true)
|
||||||
@ -98,12 +115,12 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
|
|
||||||
// caches save
|
// caches save
|
||||||
can.core.List(["preview", "content", "display"], function(item) {
|
can.core.List(["preview", "content", "display"], function(item) {
|
||||||
can.Cache(can.file+item, can.ui[item], can.current)
|
can.Cache(can.file+item, can.ui[item], can.ui.holdon.scrollTop)
|
||||||
});
|
});
|
||||||
// caches load
|
// caches load
|
||||||
can.file = can.base.Path(msg.Option("path"), msg.Option("file"))
|
can.file = can.base.Path(msg.Option("path"), msg.Option("file"))
|
||||||
var cache = false; can.core.List(["preview", "content", "display"], function(item) {
|
var cache = false; can.core.List(["preview", "content", "display"], function(item) {
|
||||||
var p = can.Cache(can.file+item, can.ui[item]); if (!cache && p) { p.click(), cache = true }
|
var p = can.Cache(can.file+item, can.ui[item]); if (!cache && p != undefined) { can.ui.holdon.scrollTo(0, p); cache = true }
|
||||||
}); if (cache) { return }
|
}); if (cache) { return }
|
||||||
|
|
||||||
// remote
|
// remote
|
||||||
@ -126,6 +143,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
},
|
},
|
||||||
parse: function(can, line) { var p = can.onsyntax[can.parse]; if (!p) { return }
|
parse: function(can, line) { var p = can.onsyntax[can.parse]; if (!p) { return }
|
||||||
p = can.onsyntax[p.link] || p
|
p = can.onsyntax[p.link] || p
|
||||||
|
line = line.replace("<", "<").replace(">", ">")
|
||||||
function wrap(type, str) { return type? '<span class="'+type+'">'+str+'</span>': str }
|
function wrap(type, str) { return type? '<span class="'+type+'">'+str+'</span>': str }
|
||||||
p.keyword && (line = can.core.List(can.core.Split(line, p.split && p.split.space || " ", p.split && p.split.operator || "{[(|)]}"), function(item, index, array) {
|
p.keyword && (line = can.core.List(can.core.Split(line, p.split && p.split.space || " ", p.split && p.split.operator || "{[(|)]}"), function(item, index, array) {
|
||||||
item = typeof item == "object"? item: {text: item}, p.word && (item = p.word(item, index, array))
|
item = typeof item == "object"? item: {text: item}, p.word && (item = p.word(item, index, array))
|
||||||
@ -215,6 +233,10 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
go: {
|
go: {
|
||||||
|
split: {
|
||||||
|
space: " \t",
|
||||||
|
operator: "{[(&.:,;!|<>)]}",
|
||||||
|
},
|
||||||
prefix: {"//": "comment"},
|
prefix: {"//": "comment"},
|
||||||
keyword: {
|
keyword: {
|
||||||
"package": "keyword",
|
"package": "keyword",
|
||||||
@ -237,17 +259,20 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
"default": "keyword",
|
"default": "keyword",
|
||||||
"fallthrough": "keyword",
|
"fallthrough": "keyword",
|
||||||
|
|
||||||
"return": "keyword",
|
|
||||||
"defer": "keyword",
|
"defer": "keyword",
|
||||||
"go": "keyword",
|
"go": "keyword",
|
||||||
"select": "keyword",
|
"select": "keyword",
|
||||||
|
"return": "keyword",
|
||||||
|
|
||||||
"map": "datatype",
|
"map": "datatype",
|
||||||
"chan": "datatype",
|
"chan": "datatype",
|
||||||
"string": "datatype",
|
"string": "datatype",
|
||||||
"error": "datatype",
|
"error": "datatype",
|
||||||
"bool": "datatype",
|
"bool": "datatype",
|
||||||
|
"byte": "datatype",
|
||||||
"int": "datatype",
|
"int": "datatype",
|
||||||
|
"int64": "datatype",
|
||||||
|
"float64": "datatype",
|
||||||
|
|
||||||
"len": "function",
|
"len": "function",
|
||||||
"cap": "function",
|
"cap": "function",
|
||||||
@ -258,9 +283,9 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
|
|
||||||
"m": "function",
|
"m": "function",
|
||||||
"msg": "function",
|
"msg": "function",
|
||||||
"kit": "keyword",
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
godoc: {link: "go"},
|
||||||
js: {
|
js: {
|
||||||
split: {
|
split: {
|
||||||
space: " ",
|
space: " ",
|
||||||
@ -332,7 +357,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
h: {
|
h: {
|
||||||
split: {
|
split: {
|
||||||
space: " ",
|
space: " ",
|
||||||
operator: "{[(.:,;!|)]}",
|
operator: "{[(.:,;!|<>)]}",
|
||||||
},
|
},
|
||||||
prefix: {
|
prefix: {
|
||||||
"//": "comment",
|
"//": "comment",
|
||||||
@ -386,6 +411,24 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
c: {link: "h"},
|
c: {link: "h"},
|
||||||
|
man3: {
|
||||||
|
split: {
|
||||||
|
},
|
||||||
|
prefix: {
|
||||||
|
"NAME": "comment",
|
||||||
|
"LIBRARY": "comment",
|
||||||
|
"SYNOPSIS": "comment",
|
||||||
|
"DESCRIPTION": "comment",
|
||||||
|
"STANDARDS": "comment",
|
||||||
|
"SEE ALSO": "comment",
|
||||||
|
"HISTORY": "comment",
|
||||||
|
"BUGS": "comment",
|
||||||
|
|
||||||
|
},
|
||||||
|
keyword: {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
man2: {link: "man3"},
|
||||||
|
|
||||||
png: {
|
png: {
|
||||||
display: true,
|
display: true,
|
||||||
@ -491,8 +534,8 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"
|
|||||||
},
|
},
|
||||||
_engine: {
|
_engine: {
|
||||||
w: function(event, can) { can.onkeymap._remote(event, can, "保存") },
|
w: function(event, can) { can.onkeymap._remote(event, can, "保存") },
|
||||||
e: function(event, can, line, ls) { ls = ls[1].split("/")
|
e: function(event, can, line, ls) {
|
||||||
can.onimport.tabview(can, ls.slice(0, -1).join("/")||can.Option("path"), ls.slice(-1).join(""))
|
can.onimport.tabview(can, can.Option("path"), ls[1])
|
||||||
},
|
},
|
||||||
r: function(event, can) { can.onkeymap._remote(event, can, "运行") },
|
r: function(event, can) { can.onkeymap._remote(event, can, "运行") },
|
||||||
|
|
||||||
@ -659,14 +702,18 @@ Volcanos("onaction", {help: "控件交互", list: [
|
|||||||
selectLine: function(can, target) { if (target !== 0 && !target) { return }
|
selectLine: function(can, target) { if (target !== 0 && !target) { return }
|
||||||
can.page.Select(can, can.ui.content, "pre.item", function(item, index) {
|
can.page.Select(can, can.ui.content, "pre.item", function(item, index) {
|
||||||
can.page.ClassList.del(can, item, "select")
|
can.page.ClassList.del(can, item, "select")
|
||||||
if (item != target && index != target) { return }
|
if (item != target && index+1 != target) { return }
|
||||||
can.page.ClassList.add(can, item, "select")
|
can.page.ClassList.add(can, item, "select")
|
||||||
|
can.Option("line", index+1)
|
||||||
|
|
||||||
target = item, can.Status("当前行", can.onexport.position(can, index))
|
target = item, can.Status("当前行", can.onexport.position(can, index))
|
||||||
can.page.Select(can, can.ui.preview, "div.item", function(item, i) {
|
can.page.Select(can, can.ui.preview, "div.item", function(item, i) {
|
||||||
can.page.ClassList[index==i? "add": "del"](can, item, "select")
|
can.page.ClassList[index==i? "add": "del"](can, item, "select")
|
||||||
})
|
})
|
||||||
}); if (typeof target != "object") { return }; can.current = target
|
}); if (typeof target != "object") { return }; can.current = target
|
||||||
|
if (target.offsetTop < can.ui.holdon.scrollTop || target.offsetTop > can.ui.holdon.scrollTop+can.ui.holdon.offsetHeight) {
|
||||||
|
can.ui.holdon.scrollTo(0, target.offsetTop-160)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
|
|
||||||
can.page.Modify(can, can.editor, {className: "editor "+can.mode, value: can.current.innerText, style: {
|
can.page.Modify(can, can.editor, {className: "editor "+can.mode, value: can.current.innerText, style: {
|
||||||
@ -685,9 +732,23 @@ Volcanos("onaction", {help: "控件交互", list: [
|
|||||||
can.onaction.selectLine(can, index)
|
can.onaction.selectLine(can, index)
|
||||||
}}])
|
}}])
|
||||||
var line = can.page.Append(can, can.ui.content, [{view: ["item", "pre", ""], onclick: function(event) {
|
var line = can.page.Append(can, can.ui.content, [{view: ["item", "pre", ""], onclick: function(event) {
|
||||||
// can.onaction.selectLine(can, line)
|
can.onaction.selectLine(can, line)
|
||||||
}, ondblclick: function(event) {
|
}, ondblclick: function(event) {
|
||||||
can.onaction.searchLine(event, can, document.getSelection().toString())
|
var s = document.getSelection()
|
||||||
|
var str = s.baseNode.data
|
||||||
|
var begin = str.indexOf(s.toString())
|
||||||
|
var end = begin+s.toString().length
|
||||||
|
for (var i = begin; i >= 0; i--) {
|
||||||
|
if (!str[i].match(/[a-zA-Z0-9.]/) || i <= 0) {
|
||||||
|
s = str.slice(i+1, end)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (s.indexOf("kit.") == 0) {
|
||||||
|
s = s.replace("kit.", "toolkits.")
|
||||||
|
}
|
||||||
|
|
||||||
|
can.onaction.searchLine(event, can, s)
|
||||||
}}]).first; value && can.onaction.modifyLine(can, line, value)
|
}}]).first; value && can.onaction.modifyLine(can, line, value)
|
||||||
return line
|
return line
|
||||||
},
|
},
|
||||||
@ -700,14 +761,40 @@ Volcanos("onaction", {help: "控件交互", list: [
|
|||||||
can.onaction.deleteLine(can, target.nextSibling)
|
can.onaction.deleteLine(can, target.nextSibling)
|
||||||
return target
|
return target
|
||||||
},
|
},
|
||||||
searchLine: function(event, can, value) { var msg = can.request(event)
|
searchLine: function(event, can, value) { can.ui.search.innerHTML = ""
|
||||||
msg.Option("_path", can.Option("path"))
|
can.page.Modify(can, can.ui.search, {style: {display: ""}})
|
||||||
can.run(event, ["search", "Search.onimport.active", can.parse, value, ""], function(line) {
|
var ui = can.page.Append(can, can.ui.search, [{view: "action", list: [
|
||||||
var ls = line.file.split("/")
|
{input: ["word", function(event) {
|
||||||
can.onimport.tabview(can, ls.slice(0, -1).join("/"), ls[ls.length-1])
|
if (event.key == "Enter") {
|
||||||
can.onaction.selectLine(can, parseInt(line.line-1))
|
can.onaction.searchLine(event, can, ui.word.value)
|
||||||
can.current && can.current.scrollIntoView()
|
}
|
||||||
can.ui.holdon.scrollBy(0, -22*5)
|
}], value: value||"main"},
|
||||||
|
{button: ["搜索", function(event) {
|
||||||
|
can.onaction.searchLine(event, can, ui.word.value)
|
||||||
|
}]},
|
||||||
|
{button: ["返回", function(event) {
|
||||||
|
var last = can.history.pop()
|
||||||
|
last = can.history.pop()
|
||||||
|
last && can.onimport.tabview(can, last.path, last.file, last.line)
|
||||||
|
}]},
|
||||||
|
{button: ["关闭", function(event) {
|
||||||
|
can.page.Modify(can, can.ui.search, {style: {display: "none"}})
|
||||||
|
}]},
|
||||||
|
]}])
|
||||||
|
|
||||||
|
var msg = can.request(event); msg.Option("_path", can.Option("path"))
|
||||||
|
value && can.run(event, ["action", "search", can.parse, value, ""], function(msg) {
|
||||||
|
can.onappend.table(can, can.ui.search, "table", msg, function(value, key, index, line) {
|
||||||
|
value = value.replace("<", "<").replace(">", ">")
|
||||||
|
return {text: [value, "td"], onclick: function(event) {
|
||||||
|
line.line && can.onimport.tabview(can, can.Option("path"), line.file, parseInt(line.line))
|
||||||
|
}}
|
||||||
|
})
|
||||||
|
can.page.Select(can, can.ui.search, "tr", function(item, index) {
|
||||||
|
index == 1 && can.page.Select(can, item, "td", function(item, index) {
|
||||||
|
index == 0 && item.click()
|
||||||
|
})
|
||||||
|
})
|
||||||
}, true)
|
}, true)
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -728,28 +815,9 @@ Volcanos("onaction", {help: "控件交互", list: [
|
|||||||
can.page.Modify(can, can.ui.project, {style: {display: hide? "": "none"}})
|
can.page.Modify(can, can.ui.project, {style: {display: hide? "": "none"}})
|
||||||
},
|
},
|
||||||
"上传": function(event, can) { can.user.upload(event, can) },
|
"上传": function(event, can) { can.user.upload(event, can) },
|
||||||
"搜索": function(event, can) {
|
"搜索": function(event, can) { var hide = can.ui.search.style.display == "none"
|
||||||
can.onaction.searchLine(event, can, "")
|
can.page.Modify(can, can.ui.search, {style: {display: hide? "": "none"}})
|
||||||
return
|
hide && can.onaction.searchLine(event, can, can.Option("file"))
|
||||||
|
|
||||||
can.user.input(event, can, ["word"], function(event, button, meta, list) {
|
|
||||||
var msg = can.request(event)
|
|
||||||
msg.Option("_path", can.Option("path"))
|
|
||||||
can.run(event, ["action", "search", can.parse, list[0], ""], function(msg) {
|
|
||||||
can.page.Modify(can, can.ui.search, {innerHTML: "", style: {display: "block"}})
|
|
||||||
can.onappend.table(can, can.ui.search, "table", msg, function(value, key, index, line) {
|
|
||||||
return {text: [value, "td"], onclick: function(event) {
|
|
||||||
console.log(value)
|
|
||||||
|
|
||||||
var ls = line.file.split("/")
|
|
||||||
can.onimport.tabview(can, ls.slice(0, -1).join("/"), ls[ls.length-1])
|
|
||||||
can.onaction.selectLine(can, parseInt(line.line-1))
|
|
||||||
can.current && can.current.scrollIntoView()
|
|
||||||
can._target && can._target.scrollBy(0, -22*3)
|
|
||||||
}}
|
|
||||||
})
|
|
||||||
}, true)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
"记录": function(event, can) { var sub = can.request(event)
|
"记录": function(event, can) { var sub = can.request(event)
|
||||||
can.core.Item(can.Option(), sub.Option)
|
can.core.Item(can.Option(), sub.Option)
|
||||||
|
@ -80,6 +80,7 @@ Volcanos("onfigure", {help: "组件菜单", list: [],
|
|||||||
},
|
},
|
||||||
m4v: function(can, path) { return can.onfigure.video(can, path) },
|
m4v: function(can, path) { return can.onfigure.video(can, path) },
|
||||||
mp4: function(can, path) { return can.onfigure.video(can, path) },
|
mp4: function(can, path) { return can.onfigure.video(can, path) },
|
||||||
|
mov: function(can, path) { return can.onfigure.video(can, path) },
|
||||||
})
|
})
|
||||||
|
|
||||||
Volcanos("onaction", {help: "组件菜单", list: ["", "上传", "收藏"],
|
Volcanos("onaction", {help: "组件菜单", list: ["", "上传", "收藏"],
|
||||||
|
4
proto.js
4
proto.js
@ -108,11 +108,11 @@ var Volcanos = shy("火山架", {cache: {}, index: 1, order: 1, debug: {
|
|||||||
},
|
},
|
||||||
Table: shy("遍历数据", function(cb) { if (!msg.append || !msg.append.length || !msg[msg.append[0]]) { return }
|
Table: shy("遍历数据", function(cb) { if (!msg.append || !msg.append.length || !msg[msg.append[0]]) { return }
|
||||||
var max = "", len = 0; can.core.List(msg.append, function(key, index) {
|
var max = "", len = 0; can.core.List(msg.append, function(key, index) {
|
||||||
if (msg[key].length > len) { max = key, len = msg[key].length }
|
if (msg[key] && msg[key].length > len) { max = key, len = msg[key].length }
|
||||||
});
|
});
|
||||||
|
|
||||||
return can.core.List(msg[max], function(value, index, array) { var one = {}, res;
|
return can.core.List(msg[max], function(value, index, array) { var one = {}, res;
|
||||||
can.core.List(msg.append, function(key) { one[key] = (msg[key][index]||"").trim() })
|
can.core.List(msg.append, function(key) { one[key] = (msg[key]&&msg[key][index]||"").trim() })
|
||||||
return typeof cb == "function" && (res = cb(one, index, array)) && res != undefined && res || one
|
return typeof cb == "function" && (res = cb(one, index, array)) && res != undefined && res || one
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user