diff --git a/client/css/style.css b/client/css/style.css index d91eb52e..0b8b0b3c 100644 --- a/client/css/style.css +++ b/client/css/style.css @@ -840,6 +840,12 @@ button, color: #2ecc40; } +#chat .whois .from:before { + font-family: FontAwesome; + content: "\f007"; + color: #2ecc40; +} + #chat .nick .from:before { font-family: FontAwesome; content: "\f007"; diff --git a/client/js/lounge.js b/client/js/lounge.js index fc87c491..74dd5d4e 100644 --- a/client/js/lounge.js +++ b/client/js/lounge.js @@ -210,7 +210,6 @@ $(function() { } var chan = chat.find(target); - var from = data.msg.from; var msg; if ([ @@ -223,6 +222,7 @@ $(function() { "quit", "topic", "action", + "whois", ].indexOf(type) !== -1) { data.msg.template = "actions/" + type; msg = $(render("msg_action", data.msg)); @@ -238,7 +238,7 @@ $(function() { if ((type === "message" || type === "action") && chan.hasClass("channel")) { var nicks = chan.find(".users").data("nicks"); if (nicks) { - var find = nicks.indexOf(from); + var find = nicks.indexOf(data.msg.from); if (find !== -1 && typeof move === "function") { move(nicks, find, 0); } diff --git a/client/views/actions/whois.tpl b/client/views/actions/whois.tpl new file mode 100644 index 00000000..0e17a02c --- /dev/null +++ b/client/views/actions/whois.tpl @@ -0,0 +1,26 @@ +
+ {{whois.nickname}} + ({{whois.username}}@{{whois.hostname}}): + {{whois.realname}} +
+{{#if whois.channels}} +
+ {{whois.nickname}} + is on the following channels: + {{#each whois.channels}} + {{{parse this}}} + {{/each}} +
+{{/if}} +{{#if whois.server}} +
+ {{whois.nickname}} + is connected to {{whois.server}} +
+{{/if}} +{{#if whois.away}} +
+ {{whois.nickname}} + is away ({{whois.away}}) +
+{{/if}} diff --git a/src/plugins/irc-events/whois.js b/src/plugins/irc-events/whois.js index 38374146..d4d8374b 100644 --- a/src/plugins/irc-events/whois.js +++ b/src/plugins/irc-events/whois.js @@ -20,27 +20,14 @@ module.exports = function(irc, network) { chan: chan }); } - var prefix = { - hostname: "from", - realname: "is", - channels: "on", - server: "using" - }; - for (var k in data) { - var key = prefix[k]; - if (!key || data[k].toString() === "") { - continue; - } - var msg = new Msg({ - type: Msg.Type.WHOIS, - from: data.nickname, - text: key + " " + data[k] - }); - chan.messages.push(msg); - client.emit("msg", { - chan: chan.id, - msg: msg - }); - } + var msg = new Msg({ + type: Msg.Type.WHOIS, + whois: data + }); + chan.messages.push(msg); + client.emit("msg", { + chan: chan.id, + msg: msg + }); }); };