diff --git a/frame.js b/frame.js index 4eaec60a..36d27478 100644 --- a/frame.js +++ b/frame.js @@ -161,7 +161,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta, }, }) Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, list, cb, target, field) { - meta.name = meta.name || "", meta.name = meta.name.split(" ")[0] + meta.name = meta.name || "", meta.name = meta.name.split(" ")[0].split(".").pop() field = field || can.onappend.field(can, meta.type, meta, target).first var legend = can.page.Select(can, field, "legend")[0] var option = can.page.Select(can, field, "form.option")[0] @@ -328,6 +328,12 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, return can.onappend._output(can, meta, event, can.Pack(cmds, silent), cb, silent) }, can._outputs.push(table), table._msg = msg + if (table.onimport._require) { var ls = display.split("/"); ls.pop() + can.require(can.core.List(table.onimport._require, function(item) { + return ls.join("/")+"/"+item + })) + } + table.onimport && table.onimport._init && table.onimport._init(table, msg, msg.result||[], function(msg) { can.page.Modify(can, can._action, ""), can.page.Modify(can, can._status, "") table.onaction && table.onappend._action(table, msg._action||meta._action||table.onaction.list) @@ -416,17 +422,37 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, return can.page.Append(can, target, [{view: ["item "+item.type], list: [input]}])[item.name] }, table: function(can, msg, cb, target, sort) { - var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key) { - return {text: [value, "td"], onclick: function(event) { + var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key, index, line, array) { + if (key == "value") { key = line.key, line = {} + can.core.List(array, function(item, index) { line[item.key] = item.value }) + } + + return {type: "td", inner: value, onclick: function(event) { var target = event.target + if (target.tagName == "INPUT" && target.type == "button") { + var msg = can.sup.request(event, can.Option(), line) + return can.run(event, ["action", target.name], function(msg) { can.run() }, true) + } + can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.onimport._init(can, msg, [], cb, can._output) }) + }, ondblclick: function(event) { var target = event.target + can.onmotion.modify(can, target, function(event, value, old) { + var msg = can.sup.request(event, can.Option(), line) + can.run(event, ["action", "modify", key, value], function(msg) { + can.user.toast(can, "修改成功") + }, true) + }) }} }); table && can.page.Modify(can, table, {className: "content"}) - sort && can.page.RangeTable(can, table, sort) - return table + + can.page.Select(can, table, "input[type=button]", function(button) { + button.value = can.user.trans(can, button.value) + }) + + return sort && can.page.RangeTable(can, table, sort), table }, - board: function(can, text, target) { text = can.page.Display(text || "") + board: function(can, text, target) { text = can.page.Display(text||"") return text && can.page.Append(can, target||can._output, [{view: ["code", "div", text]}]).code }, @@ -759,18 +785,21 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe }) }, + clear: function(can, target) { + can.page.Modify(can, target||can._output, "") + }, story: function(can, target) { - can.page.Select(can, target, ".story", function(target) { var data = target.dataset - can.page.Modify(can, target, {style: can.base.Obj(data.style)}) + can.page.Select(can, target||can._output, ".story", function(story) { var data = story.dataset + can.page.Modify(can, story, {style: can.base.Obj(data.style)}) switch (data.type) { case "spark": if (data["name"] == "inner") { - target.title = "点击复制", target.onclick = function(event) { - can.user.copy(event, can, target.innerText) + story.title = "点击复制", story.onclick = function(event) { + can.user.copy(event, can, story.innerText) } } else { - can.page.Select(can, target, "span", function(item) { + can.page.Select(can, story, "span", function(item) { item.title = "点击复制", item.onclick = function(event) { can.user.copy(event, can, item.innerText) } @@ -779,9 +808,7 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe } }) }, - clear: function(can, target) { - can.page.Modify(can, target||can._output, "") - }, + hidden: function(can, target) { can.page.Modify(can, target||can._target, {style: {display: "none"}}) }, diff --git a/lib/page.js b/lib/page.js index fb673a8d..3d3d62ab 100644 --- a/lib/page.js +++ b/lib/page.js @@ -204,7 +204,7 @@ Volcanos("page", {help: "网页模块", var table = can.page.Append(can, target, "table") var tr = can.page.Append(can, table, "tr", {dataset: {index: -1}}) - can.core.List(list, function(key, index) {if (key.indexOf("_") == 0) {return} + can.core.List(list, function(key, index) { if (key.indexOf("_") == 0) { return } key = can.Conf("feature.table.trans."+key) || {}[key] || key can.page.Append(can, tr, "th", key.trim()).onclick = function(event) { @@ -215,7 +215,7 @@ Volcanos("page", {help: "网页模块", }) can.page.Append(can, table, can.core.List(msg.Table(), function(line, index, array) { - return {type: "tr", dataset: {index: index}, list: can.core.List(list, function(key) {if (key.indexOf("_") == 0) {return} + return {type: "tr", dataset: {index: index}, list: can.core.List(list, function(key) { if (key.indexOf("_") == 0) { return } return cb(can.page.Display(line[key]).trim(), key, index, line, array) })} })) diff --git a/lib/user.js b/lib/user.js index 8378514c..7eaa2bee 100644 --- a/lib/user.js +++ b/lib/user.js @@ -52,6 +52,7 @@ Volcanos("user", {help: "用户模块", agent: { if (typeof text == "function") { text = text.name || "" } return can._trans && can._trans[text] || can.Conf("trans."+text) || can.Conf("feature.trans."+text) || { "submit": "提交", "cancel": "取消", + "begin": "启动", "end": "结束", }[text] || text }, topic: function(can, name) { @@ -91,7 +92,7 @@ Volcanos("user", {help: "用户模块", agent: { var src = can.user.MergeURL(can, {_path: "/share/"+msg.Result()}, true) var ui = can.user.toast(can, { title: can.page.Format("a", "/share?share="+msg.Result(), "share"), - text: can.page.Format("img", src+"/share"), width: 300, height: 300, duration: 100000, + content: can.page.Format("img", src+"/share"), width: 300, height: 300, duration: 100000, button: [{button: ["确定", function(event) { ui.Close() }]}], }) }) diff --git a/pane/River.js b/pane/River.js index 04666ac5..c916777e 100644 --- a/pane/River.js +++ b/pane/River.js @@ -180,9 +180,9 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户 }) }, "重命名应用": function(event, can, button, river, storm) { - can.user.input(event, can, ["name"], function(event, button, meta, list) { - var msg = can.request(event, {hash: storm}) - can.run(event, [river, "tool", "action", "modify", "name", meta.name], function(msg) { + var msg = can.request(event, {hash: storm}) + can.user.input(event, can, ["name"], function(ev, button, meta, list, args) { + can.run(event, [river, "tool", "action", "modify"].concat(args), function(msg) { can.user.Search(can, {river: river, storm: storm}) }) }) @@ -226,10 +226,8 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户 "共享设备": function(event, can, button, river, storm) { can.run(event, ["action", "invite"], function(msg) { var toast = can.user.toast(can, { - text: msg.Result(), title: "共享设备", - width: -100, duration: -1, button: [ - {button: ["关闭", function() { toast.Close() }]}, - ] + title: "共享设备", content: msg.Result(), + width: -100, duration: -1, button: ["关闭"], }) }) }, diff --git a/plugin/state.js b/plugin/state.js index a921088b..4d279d49 100644 --- a/plugin/state.js +++ b/plugin/state.js @@ -8,9 +8,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, if (size != "" && size == msg.Append("total")) { return true } can.user.toast(can, { - title: can._name+" "+msg.Append("step")+"% ", duration: 1100, - text: "执行进度: "+can.base.Size(size||0)+"/"+can.base.Size(msg.Append("total")||"1000")+"\n"+msg.Append("name"), - progress: parseInt(msg.Append("step")), width: 400, + title: can._name+" "+msg.Append("step")+"% ", width: 400, + content: "执行进度: "+can.base.Size(size||0)+"/"+can.base.Size(msg.Append("total")||"1000")+"\n"+msg.Append("name"), + duration: 1100, progress: parseInt(msg.Append("step")), }) can.page.Select(can, can._output, "td", function(td) { diff --git a/proto.js b/proto.js index f5f41927..cd82c8bb 100644 --- a/proto.js +++ b/proto.js @@ -50,6 +50,12 @@ var Volcanos = shy("火山架", {pack: {}, libs: [], cache: {}}, [], function(na return // 加载完成 } + if (libs && libs[0][0] != "/") { + can._require = can._require||[], can._require.push(libs[0]) + can.require(libs.slice(1), cb, each) + return + } + // 请求模块 function next() { can._load(libs[0], each), can.require(libs.slice(1), cb, each) } meta.cache[libs[0]]? next(): meta._load(libs[0], next) @@ -70,6 +76,7 @@ var Volcanos = shy("火山架", {pack: {}, libs: [], cache: {}}, [], function(na } else { list.push(can) } + return can.require(libs, cb), can }) Volcanos.meta._load = function(url, cb) {