diff --git a/frame.js b/frame.js
index 03ece92e..961059a9 100644
--- a/frame.js
+++ b/frame.js
@@ -10,7 +10,7 @@ Volcanos("onengine", { _init: function(can, meta, list, cb, target) {
}, target)
}, function() {
can.onlayout._init(can, meta, list, function() {
- can.require(meta.main.list, function(can) {
+ can.require(location.protocol == "file:"? []: meta.main.list, function(can) {
can.onkeypop._init(can)
can.onengine._topic(can)
can.onengine._daemon(can, can.user.title())
@@ -31,6 +31,7 @@ Volcanos("onengine", { _init: function(can, meta, list, cb, target) {
can.page.Modify(can, can._target, {className: can.user.Search(can, "topic")||(can.user.Search(can, "pod")? "black": "white")})
},
_daemon: function(can, name) {
+ return
can.misc.WSS(can, "", {name: name, type: "chrome"}, function(event, msg) {
if (msg.Option("_handle")) { return can.user.toast(can, msg.result.join("")) }
can.user.toast(can, msg.detail.join(" "))
@@ -57,8 +58,20 @@ Volcanos("onengine", { _init: function(can, meta, list, cb, target) {
},
remote: function(event, can, msg, pane, cmds, cb) {
if (can.onengine.engine(event, can, msg, pane, cmds, cb)) { return }
+
+ var res = Volcanos.meta.pack[pane._name+","+cmds.join(",")]
+ if (res) {
+ res = can.request(event, res)
+ delete(msg._event), delete(msg._can)
+ return typeof cb == "function" && cb(res)
+ }
+
if (location.protocol == "file:") { typeof cb == "function" && cb(msg); return }
- can.misc.Run(event, can, {names: pane._name}, cmds, cb)
+ can.misc.Run(event, can, {names: pane._name}, cmds, function(msg) {
+ delete(msg._event), delete(msg._can)
+ Volcanos.meta.pack[pane._name+","+cmds.join(",")] = msg
+ typeof cb == "function" && cb(msg)
+ })
},
engine: function(event, can, msg, pane, cmds, cb) { if (!can.onengine) { return false }
switch (pane._name) {
diff --git a/index.html b/index.html
index 54c794a4..432ffb73 100644
--- a/index.html
+++ b/index.html
@@ -3,14 +3,15 @@
volcanos
-
-
-
+
+
+
-
-
-
+
+
+
+
diff --git a/index.js b/index.js
index 0813daa1..edac57ea 100644
--- a/index.js
+++ b/index.js
@@ -5,7 +5,7 @@ Volcanos({name: "chat", volcano: "/frame.js", iceberg: "/chat/", intshell: "plug
{name: "Action", help: "工作台", pos: "middle"},
{name: "Search", help: "搜索框", pos: "float"},
{name: "Footer", help: "状态条", pos: "foot", state: ["ncmd" ]},
- ], main: {name: "Header", engine: "remote", list: ["/publish/order.js"]}, plugin: [
+ ], main: {name: "Header", engine: "remote", list: ["publish/order.js"]}, plugin: [
"/plugin/state.js",
"/plugin/table.js",
"/plugin/input.js",
diff --git a/pane/Header.js b/pane/Header.js
index 680682e8..d745e9f2 100644
--- a/pane/Header.js
+++ b/pane/Header.js
@@ -9,6 +9,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
can.run(msg._event, ["search", "Footer.onaction._init"])
}, target)
}
+ if (location.protocol == "file:") { return init() }
can.run({}, ["check"], function(msg) { if (msg.Result()) { return init() }
can.user.login(can, init)
})
@@ -26,6 +27,37 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
can.user.reload(true)
}
},
+ pack: function(event, can, key) {
+ var msg = can.request(event)
+ can.core.Item(Volcanos.meta.pack, function(key, msg) {
+ delete(msg._event), delete(msg._can)
+ })
+ msg.Option("content", JSON.stringify(Volcanos.meta.pack))
+ can.run(event, ["pack"], function(msg) {
+ can.user.toast(can, "保存成功")
+ })
+ },
+ white: function(event, can, key) {
+ can.page.Modify(can, document.body, {className: key})
+ },
+ black: function(event, can, key) {
+ can.page.Modify(can, document.body, {className: key})
+ },
+ Footer: function(event, can, key) {
+ can.page.Select(can, document.body, "fieldset.Action", function(item) {
+ if (item.style.height) {
+ height = document.body.offsetHeight
+ can.page.Select(can, item, "div.output")[0].style.height = ""
+ item.style.height = ""
+ } else {
+ can.page.Select(can, item, "div.output")[0].style.height = height-100+"px"
+ item.style.height = height-88+"px"
+ }
+ })
+ can.page.Select(can, document.body, "fieldset."+key, function(item) {
+ can.page.Modify(can, item, {style: {display: item.style.display == "none"? "block": "none"}})
+ })
+ },
})
Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) {
can.run(msg._event, [], function(msg) { can._output.innerHTML = ""
@@ -58,27 +90,12 @@ Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg,
}, }], }]).input)
var height = document.body.offsetHeight
- var ui = can.page.Append(can, can._output, can.core.List(["Search", "River", "Footer"], function(item) {
+ var ui = can.page.Append(can, can._output, can.core.List(["Search", "River", "Footer", "pack"], function(item) {
return {view: "item", list: [{type: "input", data: {name: item, type: "button", value: item.toLowerCase()},
onclick: function(event) {
- if (item == "white") {
- can.page.Modify(can, document.body, {className: item})
- return
+ var cb = can.onaction[item]; if (typeof cb == "function") {
+ return cb(event, can, item)
}
- if (item == "black") {
- can.page.Modify(can, document.body, {className: item})
- return
- }
- if (item == "Footer") { can.page.Select(can, document.body, "fieldset.Action", function(item) {
- if (item.style.height) {
- height = document.body.offsetHeight
- can.page.Select(can, item, "div.output")[0].style.height = ""
- item.style.height = ""
- } else {
- can.page.Select(can, item, "div.output")[0].style.height = height-100+"px"
- item.style.height = height-88+"px"
- }
- }) }
can.page.Select(can, document.body, "fieldset."+item, function(item) {
can.page.Modify(can, item, {style: {display: item.style.display == "none"? "block": "none"}})
diff --git a/proto.js b/proto.js
index a1ce3528..5dd6a01b 100644
--- a/proto.js
+++ b/proto.js
@@ -13,7 +13,7 @@ function shy(help, meta, list, cb) {
return cb
}
var Volcanos = shy("火山架", {cache: {}, index: 1, order: 1, debug: {
-}, libs: []}, [], function(name, can, libs, cb) { var meta = arguments.callee.meta, list = arguments.callee.list
+}, libs: [], pack: {}}, [], function(name, can, libs, cb) { var meta = arguments.callee.meta, list = arguments.callee.list
if (typeof name == "object") { var Config = name
meta.volcano = Config.volcano, meta.libs = Config.libs
var Preload = Config.libs; Config.panes.forEach(function(pane) {