1
0
mirror of https://shylinux.com/x/ContextOS synced 2025-04-26 09:14:06 +08:00

add chat.storm.delete

This commit is contained in:
shaoying 2019-10-14 08:46:34 +08:00
parent 57ba474020
commit 56b6f61b0e
7 changed files with 173 additions and 94 deletions

View File

@ -7,5 +7,5 @@ var version = struct {
self int self int
}{ }{
[]string{"2017-11-01 01:02:03", "2019-07-13 18:02:21"}, []string{"2017-11-01 01:02:03", "2019-07-13 18:02:21"},
`2019-10-13 12:01:52`, `mac`, 640, `2019-10-13 19:19:17`, `mac`, 639,
} }

View File

@ -333,11 +333,13 @@ var Index = &ctx.Context{Name: "chat", Help: "会议中心",
return return
} }
m.Option("river", rid)
// 命令列表 // 命令列表
if len(arg) == 0 { if len(arg) == 0 {
m.Confm("flow", []string{rid, "tool"}, func(key string, value map[string]interface{}) { m.Confm("flow", []string{rid, "tool"}, func(key string, value map[string]interface{}) {
m.Push("key", key) m.Push("key", key)
m.Push("count", len(value["list"].([]interface{}))) m.Push("count", len(value["list"].([]interface{})))
m.Push("status", kit.Format(value["status"]))
}) })
m.Sort("key").Table() m.Sort("key").Table()
return return
@ -351,6 +353,16 @@ var Index = &ctx.Context{Name: "chat", Help: "会议中心",
m.Conf("flow", []string{rid, "tool", arg[1]}, "") m.Conf("flow", []string{rid, "tool", arg[1]}, "")
m.Echo(str) m.Echo(str)
case "clone":
args := []string{}
m.Confm("flow", []string{rid, "tool", arg[2], "list"}, func(index int, value map[string]interface{}) {
args = append(args, kit.Format(value["node"]), kit.Format(value["group"]), kit.Format(value["index"]), kit.Format(value["name"]))
})
m.Cmdy(".steam", rid, "spawn", arg[1], args)
case "save":
m.Confv("flow", []string{rid, "tool", arg[1], "status"}, arg[2])
default: default:
// 命令列表 // 命令列表
m.Set("option", "name") m.Set("option", "name")

View File

@ -93,7 +93,7 @@ var page = Page({
"退出登录": function(event) { "退出登录": function(event) {
kit.confirm("logout?") && page.login.Pane.Exit() kit.confirm("logout?") && page.login.Pane.Exit()
}, },
}, ["修改昵称", "退出登录"], function(value, meta, event) { }, ["修改昵称", "退出登录"], function(event, value, meta) {
meta[value](event) meta[value](event)
})) }))
}, },
@ -232,6 +232,7 @@ var page = Page({
}, },
}, },
Button: ["创建", "共享"], Button: ["创建", "共享"],
Choice: ["创建", "共享"],
} }
}, },
initTarget: function(page, field, option, output) { initTarget: function(page, field, option, output) {
@ -371,8 +372,8 @@ var page = Page({
page.plugin && page.plugin.Plugin.onfigure("canvas") page.plugin && page.plugin.Plugin.onfigure("canvas")
}, },
"添加": function(event, value) { "复制": function(event, value) {
page.plugin && page.plugin.Plugin.Clone().Select() page.plugin && page.plugin.Plugin.Clone()
}, },
"删除": function(event, value) { "删除": function(event, value) {
page.plugin && page.plugin.Plugin.Delete() page.plugin && page.plugin.Plugin.Delete()
@ -402,7 +403,7 @@ var page = Page({
Button: [["layout", "聊天", "办公", "工作", "最高", "最宽", "最大"], Button: [["layout", "聊天", "办公", "工作", "最高", "最宽", "最大"],
"", "刷新", "清屏", "并行", "串行", "", "刷新", "清屏", "并行", "串行",
"", ["display", "表格", "编辑", "绘图"], "", ["display", "表格", "编辑", "绘图"],
"", "添加", "删除", "加参", "减参", "", "复制", "删除", "加参", "减参",
"", "执行", "下载", "清空", "返回", "", "执行", "下载", "清空", "返回",
], ],
Choice: [ Choice: [
@ -439,13 +440,13 @@ var page = Page({
"创建": function(event) { "创建": function(event) {
page.steam.Pane.Show() page.steam.Pane.Show()
}, },
"共享": function(event) { "共享": function(event, value, meta, line) {
var user = kit.prompt("分享给用户") var user = kit.prompt("分享给用户")
if (user == null) {return} if (user == null) {return}
page.login.Pane.Run(event, ["relay", "storm", "username", user, "url", ctx.Share({ page.login.Pane.Run(event, ["relay", "storm", "username", user, "url", ctx.Share({
"river": page.river.Pane.which.get(), "river": page.river.Pane.which.get(),
"storm": page.storm.Pane.which.get(), "storm": line.key,
"layout": page.action.Pane.Layout(), "layout": page.action.Pane.Layout(),
})], function(msg) { })], function(msg) {
var url = location.origin+location.pathname+"?relay="+msg.result.join("") var url = location.origin+location.pathname+"?relay="+msg.result.join("")
@ -454,12 +455,43 @@ var page = Page({
}}) }})
}) })
}, },
"刷新": function(event) { "刷新": function(event) {var pane = field.Pane
pane.Save(""), field.Pane.Show()
},
"复制": function(event, value, meta, line) {var pane = field.Pane
var name = kit.prompt("名称")
name && pane.Run(event, [river, "clone", name, line.key], function(msg) {
field.Pane.Show(name)
})
},
"删除": function(event, value, meta, line) {var pane = field.Pane
kit.confirm("删除") && pane.Run(event, [river, "delete", line.key], function(msg) {
field.Pane.Show()
})
},
"恢复": function(event, value, meta, line) {
var status = JSON.parse(line.status)
kit.Selector(page.action, "fieldset.item", function(field, index) {
var args = status[index].args
kit.Selector(field, "input.args", function(input, index) {
input.value = args[index]||""
})
})
},
"保存": function(event, value, meta, line) {var pane = field.Pane
field.Pane.Run(event, [river, "save", pane.which.get(),
JSON.stringify(kit.Selector(page.action, "fieldset.item", function(field) {
return {name: field.Meta.name, args: kit.Selector(field, "input.args", function(input) {
return input.value
})}
}))], function(msg) {
page.toast.Pane.Show("保存成功")
})
}, },
}, },
Button: ["创建", "共享"], Button: ["刷新", "创建"],
Choice: ["创建", "共享"], Choice: ["刷新", "创建"],
Detail: ["刷新"], Detail: ["保存", "恢复", "共享", "复制", "删除"],
} }
}, },
initSteam: function(page, field, option, output) { initSteam: function(page, field, option, output) {
@ -537,8 +569,8 @@ var page = Page({
kit.AppendTable(device, list, ["key", "index", "name", "help"], function(value, key, com, i, tr, event) { kit.AppendTable(device, list, ["key", "index", "name", "help"], function(value, key, com, i, tr, event) {
pane.Select(com, pod) pane.Select(com, pod)
}, function(value, key, com, i, tr, event) { }, function(value, key, com, i, tr, event) {
page.carte.Pane.Show(event, shy({}, ["创建"], function(event, item) { page.carte.Pane.Show(event, shy(pane.Action, pane.Detail, function(event, item, meta) {
pane.Create(com.key) meta[item](event, value, key, com)
})) }))
}) })
}, },
@ -577,8 +609,16 @@ var page = Page({
"全选": function(event) { "全选": function(event) {
kit.Selector(device, "tr.normal", function(item) {item.firstChild.click()}) kit.Selector(device, "tr.normal", function(item) {item.firstChild.click()})
}, },
"刷新": function(event) {
field.Pane.Save(""), field.Pane.Show(), field.Pane.Show()
}, },
Button: ["取消", "清空", "全选"], "创建": function(event, value, key, line) {
field.Pane.Create(line.key)
},
},
Button: ["取消", "清空", "全选", "刷新"],
Choice: ["取消", "清空", "全选", "刷新"],
Detail: ["创建"],
} }
}, },
init: function(page) { init: function(page) {

View File

@ -58,11 +58,11 @@ ctx = context = (function(kit) {var ctx = {__proto__: kit,
}, },
}, msg.event = event }, msg.event = event
kit.Log("event", ++arguments.callee.meta.order, event.type, proto.name.join("."), msg) kit.Log("event", ++arguments.callee.meta.order, event.type, (proto.name||[document.title]).join("."), msg)
return msg return msg
}), }),
Share: shy("共享链接", function(objs, clear) {objs = objs || {} Share: shy("共享链接", function(objs, clear) {objs = objs || {}
!clear && kit.Item(this.Search(), function(key, value) {objs[key] = value}) !clear && kit.Item(this.Search(), function(key, value) {objs[key] || (objs[key] = value)})
return location.origin+location.pathname+"?"+kit.Item(objs, function(key, value) { return location.origin+location.pathname+"?"+kit.Item(objs, function(key, value) {
return kit.List(value, function(value) {return key+"="+encodeURIComponent(value)}).join("&") return kit.List(value, function(value) {return key+"="+encodeURIComponent(value)}).join("&")
}).join("&") }).join("&")

View File

@ -127,6 +127,7 @@ function Meta(zone, target, obj) {
return meta return meta
} }
function Page(page) { function Page(page) {
kit.device.isWeiXin = true
var script = {}, record = "" var script = {}, record = ""
page = Meta([document.title], document.body, page, {check: true, page = Meta([document.title], document.body, page, {check: true,
onload: function(event) { onload: function(event) {
@ -144,6 +145,8 @@ function Page(page) {
msg.result && msg.result[0]? (page.who.set(msg.nickname[0]), page.init(page)) msg.result && msg.result[0]? (page.who.set(msg.nickname[0]), page.init(page))
:page.login.Pane.Dialog(1, 1) :page.login.Pane.Dialog(1, 1)
}): page.init(page) }): page.init(page)
page.Button()
page.Status()
} }
// 事件回调 // 事件回调
@ -411,7 +414,7 @@ function Page(page) {
Show: function(event, cb) {if (!cb.list || cb.list.length == 0) {return} Show: function(event, cb) {if (!cb.list || cb.list.length == 0) {return}
output.innerHTML = "" output.innerHTML = ""
kit.AppendActions(output, cb.list, function(event, value) { kit.AppendActions(output, cb.list, function(event, value) {
kit._call(cb, [value, cb.meta, event]) && field.Pane.Hide() kit._call(cb, [event, value, cb.meta]) && field.Pane.Hide()
}, true) }, true)
var pos = {display: "block", left: event.x, top: event.y} var pos = {display: "block", left: event.x, top: event.y}
@ -506,6 +509,8 @@ function Page(page) {
}]}, {type: "br"}, }]}, {type: "br"},
]) ])
return {
WeiXin: function() {
// 微信接口 // 微信接口
kit.device.isWeiXin && page.login.Pane.Run(event, ["weixin"], function(msg) { kit.device.isWeiXin && page.login.Pane.Run(event, ["weixin"], function(msg) {
msg.appid[0] && page.Include(["https://res.wx.qq.com/open/js/jweixin-1.4.0.js"], function(event) { msg.appid[0] && page.Include(["https://res.wx.qq.com/open/js/jweixin-1.4.0.js"], function(event) {
@ -524,7 +529,7 @@ function Page(page) {
appId: msg.appid[0], nonceStr: msg.nonce[0], timestamp: msg.timestamp[0], signature: msg.signature[0]}) appId: msg.appid[0], nonceStr: msg.nonce[0], timestamp: msg.timestamp[0], signature: msg.signature[0]})
}) })
}) })
return { },
Login: function(username, password, cb) { Login: function(username, password, cb) {
field.Pane.Run(event, [username, password], function(msg) {cb(msg.result && msg.result[0] || "")}) field.Pane.Run(event, [username, password], function(msg) {cb(msg.result && msg.result[0] || "")})
}, },
@ -601,6 +606,7 @@ function Page(page) {
}, },
Pane: Pane, Pane: Pane,
}), page.which = page.Sync("layout"), page.who = page.Sync("username") }), page.which = page.Sync("layout"), page.who = page.Sync("username")
kit.Log("init", "page", page) kit.Log("init", "page", page)
return window.onload = page.onload, page return window.onload = page.onload, page
} }
@ -633,6 +639,7 @@ function Pane(page, field) {
}), }),
Append: shy("添加列表", function(type, line, key, which, cb) {type = type || line.type Append: shy("添加列表", function(type, line, key, which, cb) {type = type || line.type
var ui = pane.View(output, type, line, key) var ui = pane.View(output, type, line, key)
if (!ui.item) {return}
ui.item.onclick = function(event) { if (pane.which.get() == line[which]) {return} ui.item.onclick = function(event) { if (pane.which.get() == line[which]) {return}
pane.Event(event, {}, {name: pane.Zone("select", line[key[0]])}) pane.Event(event, {}, {name: pane.Zone("select", line[key[0]])})
@ -658,8 +665,8 @@ function Pane(page, field) {
event.stopPropagation() event.stopPropagation()
} }
ui.item.oncontextmenu = function(event) { ui.item.oncontextmenu = function(event) {
pane.Detail && page.carte.Pane.Show(event, shy({}, pane.Detail, function(value, meta, event) { pane.Detail && page.carte.Pane.Show(event, shy({}, pane.Detail, function(event, value, meta) {
pane.Check(event, value) pane.Check(event, value, meta, line)
})) }))
} }
@ -784,25 +791,27 @@ function Pane(page, field) {
pane.Event(event, {}, {name: pane.Zone("click", value)}) pane.Event(event, {}, {name: pane.Zone("click", value)})
page.script("record", [name, value]) page.script("record", [name, value])
var cb = function() {}
if (pane.Action && pane.Action.meta && typeof pane.Action.meta[value] == "function") { if (pane.Action && pane.Action.meta && typeof pane.Action.meta[value] == "function") {
kit._call(pane.Action.meta[value], [event, value]) cb = pane.Action.meta[value]
} else if (pane.Action && typeof pane.Action[value] == "function") { } else if (pane.Action && typeof pane.Action[value] == "function") {
kit._call(pane.Action[value], [event, value]) cb = pane.Action[value]
} else if (typeof pane.Action == "function") { } else if (typeof pane.Action == "function") {
kit._call(pane.Action, [event, value]) cb = pane.Action
} else if (typeof pane[value] == "function") { } else if (typeof pane[value] == "function") {
kit._call(pane[value], [event, value]) cb = pane[value]
} }
if (page.Action && page.Action.meta && typeof page.Action.meta[value] == "function") { if (page.Action && page.Action.meta && typeof page.Action.meta[value] == "function") {
kit._call(page.Action.meta[value], [event, value]) cb = page.Action.meta[value]
} else if (page.Action && typeof page.Action[value] == "function") { } else if (page.Action && typeof page.Action[value] == "function") {
kit._call(page.Action[value], [event, value]) cb = page.Action[value]
} else if (typeof page.Action == "function") { } else if (typeof page.Action == "function") {
kit._call(page.Action, [event, value]) cb = page.Action
} else if (typeof page[value] == "function") { } else if (typeof page[value] == "function") {
kit._call(page[value], [event, value]) cb = page[value]
} }
kit._call(cb, arguments)
}), }),
Tutor: function() {var pane = field.Pane Tutor: function() {var pane = field.Pane
var event = window.event var event = window.event
@ -978,7 +987,7 @@ function Pane(page, field) {
onaction: shy("事件列表", { onaction: shy("事件列表", {
oncontextmenu: function(event) { oncontextmenu: function(event) {
pane.Choice && page.carte.Pane.Show(event, shy({}, pane.Choice, function(value, meta, event) { pane.Choice && page.carte.Pane.Show(event, shy({}, pane.Choice, function(event, value, meta) {
pane.Check(event, value) pane.Check(event, value)
})) }))
}, },
@ -1056,7 +1065,7 @@ function Plugin(page, pane, field, inits, runs) {
return JSON.stringify(field.Meta) return JSON.stringify(field.Meta)
}), }),
Clone: shy("复制插件", function() { Clone: shy("复制插件", function() {
return pane.Append("field", {text: plugin.Reveal(), init: meta.init, view: meta.view}, [], "").item.Plugin.Select() return pane.Append("field", {text: plugin.Reveal(), init: meta.init, view: meta.view, group: meta.group}, [], "")
}), }),
Move: function() { Move: function() {
@ -1140,7 +1149,7 @@ function Plugin(page, pane, field, inits, runs) {
return item return item
}).length == 0 && plugin.Runs(event, cb) }).length == 0 && plugin.Runs(event, cb)
}), }),
Last: shy("历史命令", function() {kit.notNone(plugin.History()) && plugin.Check(event)}), Last: shy("历史命令", function(event) {kit.notNone(plugin.History()) && plugin.Check(event)}),
Runs: shy("执行命令", function(event, cb) {plugin.Run(event, plugin.Option(), cb)}), Runs: shy("执行命令", function(event, cb) {plugin.Run(event, plugin.Option(), cb)}),
Run: shy("执行命令", function(event, args, cb, silent) {var show = true Run: shy("执行命令", function(event, args, cb, silent) {var show = true
page.script("record", ["action", name].concat(args)) page.script("record", ["action", name].concat(args))
@ -1199,11 +1208,11 @@ function Plugin(page, pane, field, inits, runs) {
}), }),
onchoice: shy("菜单列表", { onchoice: shy("菜单列表", {
"返回": "Last", "返回": "Last",
"添加": "Clone", "复制": "Clone",
"加参": "Appends", "加参": "Appends",
"减参": "Remove", "减参": "Remove",
"删除": "Delete", "删除": "Delete",
}, ["返回", "添加", "加参", "减参", "删除"], function(value, meta, event) { }, ["返回", "复制", "加参", "减参", "删除"], function(event, value, meta) {
kit._call(plugin, plugin[meta[value]]) kit._call(plugin, plugin[meta[value]])
return true return true
}), }),
@ -1273,13 +1282,13 @@ function Inputs(plugin, meta, item, target, option) {
onblur: function(event) {type == "text" && input.which.set(target.value)}, onblur: function(event) {type == "text" && input.which.set(target.value)},
onclick: function(event) {plugin.Select() onclick: function(event) {plugin.Select()
// Event入口 2.0 // Event入口 2.0
type == "button" && input.Event(event, {}) && kit.Value(input[item.cb], plugin[item.cb], function() { type == "button" && input.Event(event, {}) && kit.Value(input[item.cb], plugin[item.cb], function(event, target) {
plugin.Check(event) plugin.Check(event)
})(event, input) })(event, target)
}, },
onchange: function(event) { onchange: function(event) {
// Event入口 2.1 // Event入口 2.1
type == "select" && input.Event(event, {}) && plugin.Check(event, item.action == "auto"? undefined: target) type == "select" && input.Event(event, {}) && plugin.History(target.value, target) && plugin.Check(event, item.action == "auto"? undefined: target)
}, },
ondblclick: function(event) { ondblclick: function(event) {
var txt = kit.History("txt", -1); var txt = kit.History("txt", -1);
@ -1433,7 +1442,7 @@ function Output(plugin, type, msg, cb, target, option) {
"绘图": "_canvas", "绘图": "_canvas",
"下载": "Download", "下载": "Download",
"清空": "clear", "清空": "clear",
}, ["表格", "绘图", "下载", "清空"], function(value, meta, event) { }, ["表格", "绘图", "下载", "清空"], function(event, value, meta) {
kit._call(output, output[meta[value]]) kit._call(output, output[meta[value]])
return true return true
}), }),

View File

@ -24,7 +24,11 @@ kit = toolkit = (function() {var kit = {__proto__: document,
}, },
alert: function(text) {alert(JSON.stringify(text))}, alert: function(text) {alert(JSON.stringify(text))},
confirm: function(text) {return confirm(text)}, confirm: function(text) {return confirm(text)},
prompt: function(text) {return prompt(text)}, prompt: function(text, cb) {
var text = prompt(text)
text && kit._call(cb, text)
return text
},
reload: function() {location.reload()}, reload: function() {location.reload()},
// 日志调试 // 日志调试
History: shy("历史记录", {lay: [], cmd: [], txt: [], key: []}, function(type, index, data) {var meta = arguments.callee.meta History: shy("历史记录", {lay: [], cmd: [], txt: [], key: []}, function(type, index, data) {var meta = arguments.callee.meta
@ -642,7 +646,7 @@ function Canvas(plugin, option, output, width, height, space, msg) {
var conf = { var conf = {
font: "monospace", text: "hi", tool: "stroke", style: "black", font: "monospace", text: "hi", tool: "stroke", style: "black",
type: "trend", shape: "drawText", means: "drawPoint", type: "ticket", shape: "drawText", means: "drawPoint",
limits: {scale: 3, drawPoint: 1, drawPoly: 3}, limits: {scale: 3, drawPoint: 1, drawPoly: 3},
axies: {style: "black", width: 2}, axies: {style: "black", width: 2},
@ -1229,8 +1233,8 @@ function Canvas(plugin, option, output, width, height, space, msg) {
what.refresh() what.refresh()
}, },
trans: { trans: {
"折线图": ["type", "trend"],
"股价图": ["type", "ticket"], "股价图": ["type", "ticket"],
"折线图": ["type", "trend"],
"柱状图": ["type", "stick"], "柱状图": ["type", "stick"],
"饼状图": ["type", "weight"], "饼状图": ["type", "weight"],
@ -1311,15 +1315,15 @@ function Canvas(plugin, option, output, width, height, space, msg) {
} }
var action = kit.AppendAction(kit.AppendChild(output, [{view: ["action"]}]).last, [ var action = kit.AppendAction(kit.AppendChild(output, [{view: ["action"]}]).last, [
["折线图", "股价图", "柱状图", "饼状图"], ["", "股价图", "折线图", "柱状图", "饼状图"],
["移动", "旋转", "缩放"], ["", "移动", "旋转", "缩放"],
["文本", "直线", "折线", "矩形", "圆形", "椭圆"], ["", "文本", "直线", "折线", "矩形", "圆形", "椭圆"],
["辅助点", "辅助线"], ["", "辅助点", "辅助线"],
["画笔", "画刷"], ["", "画笔", "画刷"],
["黑色", "红色", "绿色", "黄色", "蓝色", "紫色", "青色", "白色", "随机色", "默认色"], ["", "黑色", "红色", "绿色", "黄色", "蓝色", "紫色", "青色", "白色", "随机色", "默认色"],
"", "清屏", "刷新", "播放", "回退", "", "清屏", "刷新", "播放", "回退",
"", "标签", "快捷键", "", "标签", "快捷键",
], function(value, event) { ], function(event, value) {
var map = what.trans[value] var map = what.trans[value]
conf[map[0]] && (conf[map[0]] = map[1]) || what[map[0]] && what[map[0]](value, event) conf[map[0]] && (conf[map[0]] = map[1]) || what[map[0]] && what[map[0]](value, event)
what.refresh() what.refresh()

View File

@ -1,6 +1,4 @@
var page = Page({ var page = Page({check: false, conf: {border: 4},
login: true,
conf: {border: 4},
onlayout: function(event, sizes) { onlayout: function(event, sizes) {
var height = document.body.clientHeight-page.conf.border var height = document.body.clientHeight-page.conf.border
var width = document.body.clientWidth-page.conf.border var width = document.body.clientWidth-page.conf.border
@ -36,6 +34,40 @@ var page = Page({
} }
}, },
Action: {
title: function(event, item, value, page) {
ctx.Search("layout", ctx.Search("layout")? "": "max")
},
user: function(event, item, value, page) {
page.carte.Pane.Show(event, shy({
"修改昵称": function(event) {
var name = kit.prompt("new name")
name && page.login.Pane.Run(event, ["rename", name], function(msg) {
page.header.Pane.State("user", name)
})
},
"退出登录": function(event) {
kit.confirm("logout?") && page.login.Pane.Exit()
},
}, ["修改昵称", "退出登录"], function(event, value, meta) {
meta[value](event)
}))
},
menu: function() {
page.text.Pane.Menu()
},
tree: function() {
page.tree.Pane.Tree()
},
},
Button: shy({title: "github.com/shylinux/context", tree: "tree", menu: "menu"}, ["tree", "menu"], function(key, value) {var meta = arguments.callee.meta
return kit.isNone(key)? meta: kit.isNone(value)? meta[key]: (meta[key] = value, page.header.Pane.Show())
}),
Status: shy({title: '<a href="mailto:shylinux@163.com">shylinux@163.com</a>', text: "0", menu: "0"}, ["text", "menu"], function(key, value) {var meta = arguments.callee.meta
return kit.isNone(key)? meta: kit.isNone(value)? meta[key]: (meta[key] = value, page.footer.Pane.Show())
}),
initTree: function(page, field, form, output) { initTree: function(page, field, form, output) {
var ui = kit.AppendChild(output, [ var ui = kit.AppendChild(output, [
{"view": ["back"], "name": "back"}, {"view": ["gap"]}, {"view": ["back"], "name": "back"}, {"view": ["gap"]},
@ -53,7 +85,7 @@ var page = Page({
page.onlayout() page.onlayout()
}) })
ctx.Run(form.dataset, [], function(msg) { ctx.Run(event, form.dataset, [], function(msg) {
ui.back.innerHTML = "", kit.AppendChild(ui.back, [ ui.back.innerHTML = "", kit.AppendChild(ui.back, [
{"button": ["知识", function(event) { {"button": ["知识", function(event) {
ctx.Search({"level": "", "class": "", "favor": ""}) ctx.Search({"level": "", "class": "", "favor": ""})
@ -64,12 +96,12 @@ var page = Page({
}]} }]}
}))) })))
ui.tree.innerHTML = "", kit.AppendChild(ui.tree, ctx.Table(msg, function(value, index) { ui.tree.innerHTML = "", kit.AppendChild(ui.tree, msg.Table(function(value, index) {
return value.file.endsWith("/") && {"text": [value.file, "div"], click: function(event, target) { return value.file.endsWith("/") && {"text": [value.file, "div"], click: function(event, target) {
location.hash = "", ctx.Search({"class": ctx.Search("class")+value.file, "favor": ""}) location.hash = "", ctx.Search({"class": ctx.Search("class")+value.file, "favor": ""})
}} }}
})) }))
ui.list.innerHTML = "", kit.AppendChild(ui.list, ctx.Table(msg, function(value, index) { ui.list.innerHTML = "", kit.AppendChild(ui.list, msg.Table(function(value, index) {
return !value.file.endsWith("/") && {"text": [value.time.substr(5, 5)+" "+value.file, "div"], click: function(event, target) { return !value.file.endsWith("/") && {"text": [value.time.substr(5, 5)+" "+value.file, "div"], click: function(event, target) {
location.hash = "", ctx.Search("favor", value.file) location.hash = "", ctx.Search("favor", value.file)
}} }}
@ -84,10 +116,10 @@ var page = Page({
{"view": ["text", "div", "", "text"]}, {"view": ["text", "div", "", "text"]},
]) ])
ui.text.onscroll = function(event) { ui.text.onscroll = function(event) {
page.footer.Pane.State("text", kit.Position(ui.text)) page.Status("text", kit.Position(ui.text))
} }
ui.menu.onscroll = function(event) { ui.menu.onscroll = function(event) {
page.footer.Pane.State("menu", kit.Position(ui.menu)) page.Status("menu", kit.Position(ui.menu))
} }
return { return {
Menu: function(value) { Menu: function(value) {
@ -129,11 +161,11 @@ var page = Page({
ctx.Search("layout") == "max" && (page.Conf("tree.display", "none"), page.Conf("menu.display", "none")) ctx.Search("layout") == "max" && (page.Conf("tree.display", "none"), page.Conf("menu.display", "none"))
ctx.Run(form.dataset, [], function(msg) { ctx.Run(event, form.dataset, [], function(msg) {
ui.menu.innerHTML = "", ui.text.innerHTML = msg.result? msg.result.join(""): "" ui.menu.innerHTML = "", ui.text.innerHTML = msg.result? msg.result.join(""): ""
kit.AppendChild(ui.menu, [{"tree": kit.OrderText(field, ui.text)}]) kit.AppendChild(ui.menu, [{"tree": kit.OrderText(field, ui.text)}])
page.footer.Pane.State("count", msg.visit_count) page.Status("count", msg.visit_count)
page.footer.Pane.State("visit", msg.visit_total) page.Status("visit", msg.visit_total)
page.onlayout() page.onlayout()
return return
}) })
@ -141,26 +173,8 @@ var page = Page({
} }
}, },
init: function(page) { init: function(page) {
page.footer.Pane.Order({"text": "", "menu": "", "count": "0", "visit": "0"}, ["visit", "count", "menu", "text"])
page.header.Pane.Order({"tree": "tree", "menu": "menu"}, ["tree", "menu"], function(event, item, value) {
switch (item) {
case "menu":
page.text.Pane.Menu()
break
case "tree":
page.tree.Pane.Tree()
break
case "title":
ctx.Search("layout", ctx.Search("layout")? "": "max")
break
default:
page.confirm("logout?") && page.login.Pane.Exit()
}
})
page.header.style.height = "32px"
page.footer.style.height = "32px"
page.tree.Pane.Show() page.tree.Pane.Show()
page.text.Pane.Show() page.text.Pane.Show()
page.Button("tree", "tree")
}, },
}) })