diff --git a/lib/page.js b/lib/page.js index 956f91e5..93957e2b 100644 --- a/lib/page.js +++ b/lib/page.js @@ -306,7 +306,7 @@ Volcanos("page", {help: "网页模块", case "a": return ""+(arguments[2]||arguments[1])+"" case "img": - return "" + return arguments[2]? "": "" } }, DelText: function(target, start, count) { diff --git a/page/index.css b/page/index.css index cdf0cbbc..8dd28185 100644 --- a/page/index.css +++ b/page/index.css @@ -232,7 +232,7 @@ div.carte { color:white; padding:4px; z-index:10; - min-width:120px; + min-width:80px; } div.carte div.item { padding:3px 12px; diff --git a/page/index.js b/page/index.js index ba1c158e..67815bbc 100644 --- a/page/index.js +++ b/page/index.js @@ -1,6 +1,6 @@ Volcanos({name: "chat", iceberg: "/chat/", volcano: "/frame.js", libs: ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"], panels: [ - {name: "Header", help: "标题栏", pos: "head", state: ["time", "username"]}, + {name: "Header", help: "标题栏", pos: "head", state: ["time", "username", "avatar"]}, {name: "Search", help: "搜索框", pos: "auto"}, {name: "River", help: "群聊组", pos: "left", action: ["创建", "刷新"]}, {name: "Action", help: "工作台", pos: "main"}, diff --git a/panel/Header.css b/panel/Header.css index 327ecd87..4541720f 100644 --- a/panel/Header.css +++ b/panel/Header.css @@ -33,6 +33,9 @@ fieldset.Header>div.output>div.menus { fieldset.Header>div.output>div.state { float:right; } +fieldset.Header>div.output>div.state.avatar>img { + height:22px; +} fieldset.Header>div.output div.menu { height:21px; padding:5px; diff --git a/panel/Header.js b/panel/Header.js index 1daffdee..f19f6896 100644 --- a/panel/Header.js +++ b/panel/Header.js @@ -46,7 +46,14 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }) }, _state: function(can, msg, target) { - can.core.List(can.Conf("state")||["time", "username"], function(item) { + can.core.List(can.base.Obj(msg.Option("state"), can.Conf("state")||["time", "username"]), function(item) { + if (item == "avatar") { + can.page.Append(can, target, [{view: ["state "+item], list: [{img: can.Conf(item), onmouseenter: function(event) { + can.onaction.carte(event, can, [can.page.Format("img", can.Conf(item), 160)]) + }}]}]) + return + } + can.page.Append(can, target, [{view: ["state "+item, "div", (can.Conf(item)||"").slice(0, 10)], onmouseenter: function(event) { can.core.CallFunc([can.onaction, item], [event, can, item]) }, _init: function(target) { @@ -62,6 +69,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }}] }]); can.onmotion.autosize(can, ui.input, 240, 120) can.user.isMobile && can.page.Modify(can, ui.first, {style: {float: "right"}}) }, + _avatar: function(can, msg) { + !can.user.isLocalFile && can.page.Modify(can, "div.output div.state.avatar>img", {src: can.Conf("avatar", msg.Option("avatar"))}) + }, _background: function(can, msg) { !can.user.isLocalFile && can.onlayout.background(can, msg.Option("background"), document.body) }, @@ -142,6 +152,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, } }) }]).first }, + avatar: function(event, can, url) { + can.run(event, ["action", "avatar", url], function(msg) { + can.onimport._avatar(can, msg) + }) + }, background: function(event, can, url) { can.run(event, ["action", "background", url], function(msg) { can.onimport._background(can, msg) @@ -151,6 +166,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) { function init() { can.run({}, [], function(msg) { can.Conf("username", msg.Option("user.nick")||msg.Option("user.name")) + can.Conf("background", msg.Option("background")) + can.Conf("avatar", msg.Option("avatar")) can.onimport._init(can, msg, list, function(msg) { can.onengine.listen(can, "storm.select", function(msg, river, storm) { diff --git a/plugin/local/wiki/feel.js b/plugin/local/wiki/feel.js index 642bc5c7..b18bf90c 100644 --- a/plugin/local/wiki/feel.js +++ b/plugin/local/wiki/feel.js @@ -50,11 +50,14 @@ Volcanos("onfigure", {help: "组件菜单", list: [], sub.Status("位置", order+1+"/"+can.list.length), sub.Status("file", path) }; show(order) - sub.onappend._action(sub, ["关闭", "下载", "上一个", "下一个", "设置背景", "复制链接"], sub._action, { + sub.onappend._action(sub, ["关闭", "下载", "上一个", "下一个", "设置头像", "设置背景", "复制链接"], sub._action, { "关闭": function(event) { sub.page.Remove(sub, sub._target) }, "下载": function(event) { can.user.download(can, path) }, "上一个": function(event) { order > 0? show(--order): can.user.toast(can, "已经是第一张啦!") }, "下一个": function(event) { order < can.list.length-1? show(++order): can.user.toast(can, "已经是最后一张啦!") }, + "设置头像": function(event) { var msg = can.request(event, {url: can.onimport._file(can, can.list[order].path)}) + sub.run(event, ["search", "Header.onimport.avatar"]) + }, "设置背景": function(event) { var msg = can.request(event, {url: can.onimport._file(can, can.list[order].path)}) sub.run(event, ["search", "Header.onimport.background"]) },