forked from x/volcanos
opt search
This commit is contained in:
parent
b38441ed1f
commit
583efd2168
4
frame.js
4
frame.js
@ -670,7 +670,7 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
_parse: function(event, can, mode, list, target) { list = list||[], list.push(event.key)
|
_parse: function(event, can, mode, list, target) { list = list||[], list.push(event.key)
|
||||||
can.Status("按键", list.join(""))
|
// can.Status("按键", list.join(""))
|
||||||
for (var pre = 0; pre < list.length; pre++) {
|
for (var pre = 0; pre < list.length; pre++) {
|
||||||
if ("0" <= list[pre] && list[pre] <= "9") { continue } break
|
if ("0" <= list[pre] && list[pre] <= "9") { continue } break
|
||||||
}; var count = parseInt(list.slice(0, pre).join(""))||1
|
}; var count = parseInt(list.slice(0, pre).join(""))||1
|
||||||
@ -678,7 +678,7 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
|
|||||||
function repeat(cb, count) { list = []
|
function repeat(cb, count) { list = []
|
||||||
for (var i = 1; i <= count; i++) { if (cb(event, can, target, count)) { break } }
|
for (var i = 1; i <= count; i++) { if (cb(event, can, target, count)) { break } }
|
||||||
event.stopPropagation(), event.preventDefault()
|
event.stopPropagation(), event.preventDefault()
|
||||||
can.Status("按键", list.join(""))
|
// can.Status("按键", list.join(""))
|
||||||
}
|
}
|
||||||
|
|
||||||
var map = can.onkeypop._mode[mode]
|
var map = can.onkeypop._mode[mode]
|
||||||
|
@ -238,7 +238,7 @@ div.carte {
|
|||||||
background:#295b61;
|
background:#295b61;
|
||||||
color:white;
|
color:white;
|
||||||
padding:4px;
|
padding:4px;
|
||||||
z-index:10;
|
z-index:30;
|
||||||
min-width:80px;
|
min-width:80px;
|
||||||
}
|
}
|
||||||
div.carte div.item {
|
div.carte div.item {
|
||||||
|
@ -1,46 +1,22 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
can.ui = can.page.Append(can, can._output, [
|
can.onmotion.clear(can, can.ui.content)
|
||||||
{input: ["word", function(event) { can.onkeypop.input(event, can)
|
|
||||||
if (event.key == "Escape") { can.onmotion.hide(can) }
|
|
||||||
|
|
||||||
if (event.key == "Enter") { event.stopPropagation(), event.preventDefault()
|
|
||||||
if (event.ctrlKey) {
|
|
||||||
can.type == "*"? can.onimport._plugin(can, can.list[0]): can.onaction.select(event, can, 0)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (event.shiftKey) { return can.onaction["完成"](event, can) }
|
|
||||||
can.input(event, event.target.value)
|
|
||||||
}
|
|
||||||
}]},
|
|
||||||
{view: "content"}, {view: ["display", "table"]}, {view: "preview"},
|
|
||||||
]), can.base.isFunc(cb) && cb(msg)
|
|
||||||
can.page.ClassList.add(can, can.ui.display, "content")
|
|
||||||
},
|
|
||||||
_plugin: function(can, line) {
|
|
||||||
can.onappend.plugin(can, {index: line.ctx&&line.cmd!="command"? line.ctx+"."+line.cmd: line.text+"."+line.name||msg.Option("index"), option: line}, function(sub, meta) {
|
|
||||||
sub.run = function(event, cmds, cb) { var msg = can.request(event, line)
|
|
||||||
can.run(event, ["action", "command", "run", meta.index].concat(cmds), function(msg) {
|
|
||||||
can.base.isFunc(cb) && cb(msg)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}, can.ui.preview)
|
|
||||||
},
|
|
||||||
_table: function(can, msg, fields) { can.onmotion.clear(can, can.ui.content)
|
|
||||||
var table = can.onappend.table(can, msg, function(value, key, index, line) { can.Status("count", index+1)
|
var table = can.onappend.table(can, msg, function(value, key, index, line) { can.Status("count", index+1)
|
||||||
return {text: [key == "text" && can.base.isFunc(line.text) && line.text.help || value, "td"], onclick: function(event) {
|
return {text: [key == "text" && can.base.isFunc(line.text) && line.text.help || value, "td"], onclick: function(event) {
|
||||||
can.type == "*" || event.shiftKey? can.onimport._plugin(can, line): can.onaction.select(event, can, index)
|
can.onaction[can.type == "*"||event.ctrlKey? "plugin": "select"](event, can, index)
|
||||||
}}
|
}}
|
||||||
}, can.ui.content, can.core.List((msg.Option("sort")||"ctx,cmd,type,name,text").split(","), function(item) {
|
}, can.ui.content, can.core.List((msg.Option("sort")||"ctx,cmd,type,name,text").split(","), function(item) {
|
||||||
return fields.indexOf(item)
|
return list.indexOf(item)
|
||||||
})); table && can.page.Modify(can, can.ui.display, {style: {width: table.offsetWidth}})
|
})); table && can.page.Modify(can, can.ui.display, {style: {width: table.offsetWidth}})
|
||||||
},
|
},
|
||||||
_word: function(can, msg, cmds, fields) { can.type = cmds[0]
|
_word: function(can, msg, cmds, fields) { can.type = cmds[0]
|
||||||
msg.Option({word: cmds, fields: fields.join(","), sort: msg.Option("sort"), index: msg.Option("index")})
|
var sub = can.request({}, {word: cmds, fields: fields.join(","), sort: msg.Option("sort"), index: msg.Option("index")})
|
||||||
can.onengine.signal(can, "search", msg)
|
can.onengine.signal(can, "search", sub)
|
||||||
|
|
||||||
can.run(msg._event, cmds, function(msg) { can.list = msg.Table()
|
can.run(sub._event, cmds, function(sub) { can.list = sub.Table()
|
||||||
can.onimport._table(can, msg, fields)
|
can.onimport._init(can, sub, fields)
|
||||||
}), can.ui.word.setSelectionRange(0, -1)
|
}), can.ui.word.setSelectionRange(0, -1)
|
||||||
|
|
||||||
|
can.onmotion.show(can), can.ui.input.focus()
|
||||||
},
|
},
|
||||||
|
|
||||||
select: function(can, msg, cmds, cb) { can.ui.word.value = cmds[1]
|
select: function(can, msg, cmds, cb) { can.ui.word.value = cmds[1]
|
||||||
@ -53,8 +29,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.onimport._word(can, msg, cmds, fields)
|
can.onimport._word(can, msg, cmds, fields)
|
||||||
}, can.onimport._word(can, msg, cmds, fields)
|
}, can.onimport._word(can, msg, cmds, fields)
|
||||||
|
|
||||||
can.onmotion.show(can), can.ui.input.focus()
|
|
||||||
|
|
||||||
can.search(["Action.onexport.size"], function(msg, top, left, width, height) {
|
can.search(["Action.onexport.size"], function(msg, top, left, width, height) {
|
||||||
can.page.Modify(can, can._output, {style: {"max-width": width, "max-height": height-75}})
|
can.page.Modify(can, can._output, {style: {"max-width": width, "max-height": height-75}})
|
||||||
can.page.Modify(can, can._target, {style: {top: top, left: left}})
|
can.page.Modify(can, can._target, {style: {top: top, left: left}})
|
||||||
@ -62,10 +36,24 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "交互操作", list: ["关闭", "清空", "完成"], _init: function(can, msg, list, cb, target) {
|
Volcanos("onaction", {help: "交互操作", list: ["关闭", "清空", "完成"], _init: function(can, msg, list, cb, target) {
|
||||||
can.onimport._init(can, msg, list, cb, can._output)
|
can.ui = can.page.Append(can, can._output, [
|
||||||
|
{input: ["word", function(event) { can.onkeypop.input(event, can)
|
||||||
|
if (event.key == "Escape") { can.onmotion.hide(can) }
|
||||||
|
|
||||||
|
if (event.key == "Enter") { event.stopPropagation(), event.preventDefault()
|
||||||
|
if (event.shiftKey) {
|
||||||
|
var first = can.page.Select(can, can.ui.content, "tr")[1]
|
||||||
|
return can.onaction[can.type == "*"? "plugin": "select"](event, can, first.dataset.index)
|
||||||
|
}
|
||||||
|
if (event.ctrlKey) { return can.onaction["完成"](event, can) }
|
||||||
|
can.input(event, event.target.value)
|
||||||
|
}
|
||||||
|
}]},
|
||||||
|
{view: "content"}, {view: ["display", "table"]}, {view: "preview"},
|
||||||
|
]), can.base.isFunc(cb) && cb(msg)
|
||||||
},
|
},
|
||||||
"关闭": function(event, can) { can.onmotion.hide(can) },
|
"关闭": function(event, can) { can.onmotion.hide(can) },
|
||||||
"清空": function(event, can) { can.onmotion.clear(can, can.ui.display), can.onmotion.clear(can, can.ui.preview) },
|
"清空": function(event, can) { can.onmotion.clear(can, can.ui.preview) },
|
||||||
"完成": function(event, can) { can.base.isFunc(can.cb) && can.cb() },
|
"完成": function(event, can) { can.base.isFunc(can.cb) && can.cb() },
|
||||||
|
|
||||||
select: function(event, can, index) {
|
select: function(event, can, index) {
|
||||||
@ -93,6 +81,36 @@ Volcanos("onaction", {help: "交互操作", list: ["关闭", "清空", "完成"]
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
plugin: function(event, can, index) { var line = can.list[index]
|
||||||
|
var cmd = line.cmd == "command"? can.core.Keys(line.text, line.name): can.core.Keys(line.ctx, line.cmd)
|
||||||
|
|
||||||
|
can.onappend.plugin(can, {type: "plugin", index: cmd||msg.Option("index"), option: line}, function(sub, meta) {
|
||||||
|
sub.run = function(event, cmds, cb) { var msg = can.request(event, line)
|
||||||
|
can.run(event, ["action", "command", "run", meta.index].concat(cmds), function(msg) {
|
||||||
|
can.base.isFunc(cb) && cb(msg)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
sub.page.Modify(sub, sub._legend, {
|
||||||
|
onmouseenter: function(event) {
|
||||||
|
Volcanos.meta.data.menu && sub.page.Remove(sub, Volcanos.meta.data.menu.first)
|
||||||
|
Volcanos.meta.data.menu = sub.user.carte(event, sub, can.ondetail, can.ondetail.list)
|
||||||
|
|
||||||
|
sub.page.Modify(sub, Volcanos.meta.data.menu.first, {style: {
|
||||||
|
left: event.target.offsetLeft+can.run(event, ["search", "River.onexport.width"])+10,
|
||||||
|
top: event.target.offsetTop-(can.user.isMobile? can._target.parentNode.parentNode.scrollTop: can._output.scrollTop)+event.target.offsetHeight+can.run(event, ["search", "Header.onexport.height"])+32,
|
||||||
|
}})
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}, can.ui.preview)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
Volcanos("ondetail", {help: "交互操作", list: ["删除"], _init: function(can, msg, list, cb, target) {
|
||||||
|
},
|
||||||
|
"删除": function(event, sub) {
|
||||||
|
sub.page.Remove(sub, sub._target)
|
||||||
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: ["selected", "count"],
|
Volcanos("onexport", {help: "导出数据", list: ["selected", "count"],
|
||||||
select: function(can) {
|
select: function(can) {
|
||||||
|
@ -76,6 +76,9 @@ fieldset.editor>div.output div.search td>div {
|
|||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.white fieldset.editor>div.output div.project {
|
||||||
|
color:#a2dad2;
|
||||||
|
}
|
||||||
body.white fieldset.editor>div.output div.content {
|
body.white fieldset.editor>div.output div.content {
|
||||||
background-color:#013b675c;
|
background-color:#013b675c;
|
||||||
}
|
}
|
||||||
|
@ -104,10 +104,10 @@ Volcanos("ondetail", {help: "组件菜单", list: ["关闭", "下载", "上一
|
|||||||
"上一个": function(event, can) { can.order > 0? can.show(--can.order): can.user.toast(can, "已经是第一张啦!") },
|
"上一个": function(event, can) { can.order > 0? can.show(--can.order): can.user.toast(can, "已经是第一张啦!") },
|
||||||
"下一个": function(event, can) { can.order < can.list.length-1? can.show(++can.order): can.user.toast(can, "已经是最后一张啦!") },
|
"下一个": function(event, can) { can.order < can.list.length-1? can.show(++can.order): can.user.toast(can, "已经是最后一张啦!") },
|
||||||
"设置头像": function(event, can) { var msg = can.request(event, {url: can.onimport._file(can, can.list[can.order].path)})
|
"设置头像": function(event, can) { var msg = can.request(event, {url: can.onimport._file(can, can.list[can.order].path)})
|
||||||
can.run(event, ["search", "Header.onimport.avatar"])
|
can.run(event, ["search", "Header.onimport.avatar"], null, true)
|
||||||
},
|
},
|
||||||
"设置背景": function(event, can) { var msg = can.request(event, {url: can.onimport._file(can, can.list[can.order].path)})
|
"设置背景": function(event, can) { var msg = can.request(event, {url: can.onimport._file(can, can.list[can.order].path)})
|
||||||
can.run(event, ["search", "Header.onimport.background"])
|
can.run(event, ["search", "Header.onimport.background"], null, true)
|
||||||
},
|
},
|
||||||
"复制链接": function(event, can) {
|
"复制链接": function(event, can) {
|
||||||
can.user.copy(event, can, can.user.MergeURL(can, {_path: can.onimport._file(can, can.list[can.order].path)}, true))
|
can.user.copy(event, can, can.user.MergeURL(can, {_path: can.onimport._file(can, can.list[can.order].path)}, true))
|
||||||
|
@ -10,9 +10,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
|
|||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
_hold: function(can, msg) {
|
_hold: function(can, msg) { return true },
|
||||||
return true
|
|
||||||
},
|
|
||||||
_back: function(can) {
|
_back: function(can) {
|
||||||
can._history.pop(); for (var his = can._history.pop(); his; his = can._history.pop()) {
|
can._history.pop(); for (var his = can._history.pop(); his; his = can._history.pop()) {
|
||||||
if (his[0] == "action") { continue }
|
if (his[0] == "action") { continue }
|
||||||
@ -21,9 +19,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
|
|||||||
}), can.onappend._output(can, can.Conf(), {}, can.Pack([]))
|
}), can.onappend._output(can, can.Conf(), {}, can.Pack([]))
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if (!his) {
|
!his && can.onappend._output(can, can.Conf(), {}, can.Pack([]))
|
||||||
can.onappend._output(can, can.Conf(), {}, can.Pack([]))
|
|
||||||
}
|
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
|
|
||||||
|
3
proto.js
3
proto.js
@ -84,7 +84,8 @@ var Volcanos = shy("火山架", {args: {}, data: {}, pack: {}, libs: [], cache:
|
|||||||
},
|
},
|
||||||
search: function(cmds, cb) { can.run({}, ["search"].concat(cmds), cb, true) },
|
search: function(cmds, cb) { can.run({}, ["search"].concat(cmds), cb, true) },
|
||||||
Conf: function(key, value) { return can.core.Value(can._conf, key, value) }, _conf: {},
|
Conf: function(key, value) { return can.core.Value(can._conf, key, value) }, _conf: {},
|
||||||
}; can = can || {}; for (var k in proto) { can.hasOwnProperty(k) || (can[k] = proto[k]) }
|
// }; can = can || {}; for (var k in proto) { can.hasOwnProperty(k) || (can[k] = proto[k]) }
|
||||||
|
}; can = can || {}; can.__proto__ = proto
|
||||||
|
|
||||||
if (_can_name) {
|
if (_can_name) {
|
||||||
meta.cache[_can_name] = meta.cache[_can_name] || []
|
meta.cache[_can_name] = meta.cache[_can_name] || []
|
||||||
|
Loading…
x
Reference in New Issue
Block a user