diff --git a/frame.js b/frame.js index df24becd..3f2aa6c3 100644 --- a/frame.js +++ b/frame.js @@ -521,7 +521,8 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe figure: function(event, can, target, right, layout) { target = target||can._target if (layout) { return can.page.Modify(can, target, {style: layout}), can.onmotion.move(can, target, layout), layout } - if (!event || !event.target) { return } + if (!event || !event.target || !event.clientX) { return {} } + var left = event.clientX-event.offsetX, top = event.clientY-event.offsetY+event.target.offsetHeight-5; if (right) { var left = event.clientX-event.offsetX+event.target.offsetWidth, top = event.clientY-event.offsetY } @@ -774,6 +775,12 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe selectField: function(event, can) { if (event.ctrlKey && event.key >= "0" && event.key <= "9") { + if (event.shiftKey) { + can.page.Select(can, can._option, "input[type=button]", function(item, index) { + index == event.key && (item.click()) + }) + return + } if (event.key == "0") { return can.onimport._back(can) } can.page.Select(can, can._output, html.TR, function(tr, index) { if (index == event.key) { diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 17dd7a55..43f63c3e 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -4,6 +4,8 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target msg.result = msg.result.concat(cmds||[]) })) + var paths = can.core.Split(can.Option(nfs.PATH), ice.FS); can.Option(nfs.PATH, paths[0]) + var files = can.core.Split(can.Option(nfs.FILE), ice.FS); can.Option(nfs.FILE, files[0]) can.tabview = can.tabview||{}, can.tabview[can.Option(nfs.PATH)+ice.DF+can.Option(nfs.FILE)] = msg can.history = can.history||[], can.toolkit = {}, can.extentions = {}, can.profile_size = {} @@ -14,11 +16,14 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target can.base.isFunc(cb) && cb(msg) can.onimport.tabview(can, can.Option(nfs.PATH), can.Option(nfs.FILE), can.Option(nfs.LINE)) - can.onimport.project(can, can.Option(nfs.PATH), function() { + can.onimport.project(can, paths, function() { can.onimport._toolkit(can, can.ui.toolkit), can.onimport._session(can, msg), can.onimport._keydown(can) can.onmotion.delay(can, function() { can.onmotion.toggle(can, can.ui.project), can.onimport.layout(can) can.onmotion.toggle(can, can.ui.project), can.onimport.layout(can) + can.core.Next(files.slice(1), function(file, next) { + can.onimport.tabview(can, can.Option(nfs.PATH), file, can.Option(nfs.LINE), next) + }, function() { can.onimport.tabview(can, paths[0], files[0]) }) }) }) }, @@ -73,14 +78,22 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target }) }, - project: function(can, path, cb) { can.Option({path: path}) - var msg = can.request({}, {dir_root: path, dir_deep: true}) - can.run(msg._event, [ice.PWD], function(msg) { can.onmotion.clear(can, can.ui.project) - can.onappend.tree(can, can._file = msg.Table(), nfs.PATH, ice.PS, function(event, item) { - can.onimport.tabview(can, path, item.path) - }, can.ui.project), can.onimport.layout(can), can.Status("文件数", msg.Length()) + project: function(can, path, cb) { can.onmotion.clear(can, can.ui.project) + can.core.Next(path, function(path, next, index, array) { + var list = can.ui.project; if (array.length > 1) { + var ui = can.page.Append(can, can.ui.project, [{view: [html.ITEM, html.DIV, path], onclick: function(event) { + can.onmotion.toggle(can, ui.list) + }}, {view: html.LIST}]); list = ui.list + if (index > 0) { ui.item.click() } + } + can.run(can.request({}, {dir_root: path, dir_deep: true})._event, [ice.PWD], function(msg) { + can.onappend.tree(can, can._file = msg.Table(), nfs.PATH, ice.PS, function(event, item) { + can.onimport.tabview(can, path, item.path) + }, list), can.onimport.layout(can), can.Status("文件数", msg.Length()), next() + }, true) + }, function() { can.base.isFunc(cb) && cb() - }, true) + }) }, tabview: function(can, path, file, line, cb) { var key = path+ice.DF+file if (can.tabview[key]) { can.user.mod.isCmd && can.user.title(path+file) diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js index 86ede5be..4eba3b55 100644 --- a/plugin/local/code/vimer.js +++ b/plugin/local/code/vimer.js @@ -144,7 +144,7 @@ Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, "autogen", "compile compile: function(event, can, button) { var msg = can.ui.search.request(event, {_handle: ice.TRUE, _toast: "编译中..."}) can.run(event, [ctx.ACTION, button], function(msg) { if (msg.Length() == 0) { var toast = can.user.toast(can, "重启中...", "", -1) - can.core.Timer(3000, function() { toast.close(), can.onaction["展示"]({}, can) }) + can.core.Timer(5000, function() { toast.close(), can.onaction["展示"]({}, can) }) } else { can.ui.search._show(msg) } diff --git a/proto.js b/proto.js index db2a3ae3..3d1d4a6a 100644 --- a/proto.js +++ b/proto.js @@ -99,6 +99,7 @@ var ssh = { SCRIPT: "script", } var nfs = { + DEFS: "defs", HTML: "html", CSS: "css", JS: "js", GO: "go", SH: "sh", CSV: "csv", JSON: "json", PATH: "path", FILE: "file", LINE: "line", SIZE: "size", DIR: "dir", CAT: "cat", TRASH: "trash",