if (!plugin_event) {\r
return;\r
}\r
- tab = Tabview.getTab(plugin_event.destination);\r
- if (!tab) {\r
- tab = new Tabview(plugin_event.destination);\r
- }\r
- tab.addMsg(null, plugin_event.nick, plugin_event.msg);\r
\r
var chan = kiwi.bbchans.detect(function (c) {\r
return c.get("name") === plugin_event.destination;\r
});\r
- chan.addMsg(null, plugin_event.nick, plugin_event.msg);\r
+ if (chan) {\r
+ chan.addMsg(null, plugin_event.nick, plugin_event.msg);\r
+ }\r
},\r
\r
/**\r
destination = data.channel;\r
}\r
\r
- tab = Tabview.getTab(destination);\r
- if (!tab) {\r
- tab = new Tabview(destination);\r
+ var chan = kiwi.bbchans.detect(function (c) {\r
+ return c.get("name") === plugin_event.destination;\r
+ });\r
+ if (chan) {\r
+ chan.addMsg(null, ' ', '* ' + data.nick + ' ' + data.msg, 'action', 'color:#555;');\r
}\r
- tab.addMsg(null, ' ', '* ' + data.nick + ' ' + data.msg, 'action', 'color:#555;');\r
},\r
\r
/**\r
* @param {Object} data The event data\r
*/\r
onTopic: function (e, data) {\r
- var tab = Tabview.getTab(data.channel);\r
- if (tab) {\r
- tab.changeTopic(data.topic);\r
+ var chan = kiwi.bbchans.detect(function (c) {\r
+ return c.get("name") === data.channel;\r
+ });\r
+ if (chan) {\r
+ chan.set({"topic": data.topic});\r
}\r
},\r
\r
* @param {Object} data The event data\r
*/\r
onTopicSetBy: function (e, data) {\r
- var when, tab = Tabview.getTab(data.channel);\r
- if (tab) {\r
- when = new Date(data.when * 1000).toLocaleString();\r
- tab.addMsg(null, '', 'Topic set by ' + data.nick + ' at ' + when, 'topic');\r
- }\r
+ var when,\r
+ chan = kiwi.bbchans.detect(function (c) {\r
+ return c.get("name") === data.channel;\r
+ });\r
+ when = new Date(data.when * 1000).toLocaleString();\r
+ chan.addMsg(null, '', 'Topic set by ' + data.nick + ' at ' + when, 'topic');\r
},\r
\r
/**\r
*/\r
onNotice: function (e, data) {\r
var nick = (data.nick === undefined) ? '' : data.nick,\r
- enick = '[' + nick + ']';\r
+ enick = '[' + nick + ']',\r
+ chan;\r
\r
- if (Tabview.tabExists(data.target)) {\r
- Tabview.getTab(data.target).addMsg(null, enick, data.msg, 'notice');\r
- } else if (Tabview.tabExists(nick)) {\r
- Tabview.getTab(nick).addMsg(null, enick, data.msg, 'notice');\r
- } else {\r
- Tabview.getServerTab().addMsg(null, enick, data.msg, 'notice');\r
+ chan = kiwi.bbchans.detect(function (c) {\r
+ return c.get("name") === data.channel;\r
+ });\r
+ if (chan) {\r
+ chan.addMsg(null, enick, data.msg, 'notice');\r
}\r
},\r
\r
err_box.parent().removeClass('disconnect');\r
\r
// Rejoin channels\r
- channels = '';\r
- _.each(Tabview.getAllTabs(), function (tabview) {\r
- if (tabview.name === 'server') {\r
- return;\r
- }\r
- channels += tabview.name + ',';\r
- });\r
- console.log('Rejoining: ' + channels);\r
- kiwi.gateway.join(channels);\r
+ //channels = '';\r
+ //_.each(Tabview.getAllTabs(), function (tabview) {\r
+ // if (tabview.name === 'server') {\r
+ // return;\r
+ // }\r
+ // channels += tabview.name + ',';\r
+ //});\r
+ //console.log('Rejoining: ' + channels);\r
+ //kiwi.gateway.join(channels);\r
return;\r
}\r
\r
kiwi.front.ui.doLayout();\r
}\r
\r
- Tabview.getServerTab().addMsg(null, ' ', '=== Connected OK :)', 'status');\r
- if (typeof init_data.channel === "string") {\r
- kiwi.front.joinChannel(init_data.channel);\r
- }\r
+ //Tabview.getServerTab().addMsg(null, ' ', '=== Connected OK :)', 'status');\r
+ //if (typeof init_data.channel === "string") {\r
+ // kiwi.front.joinChannel(init_data.channel);\r
+ //}\r
kiwi.plugs.run('connect', {success: true});\r
} else {\r
- Tabview.getServerTab().addMsg(null, ' ', '=== Failed to connect :(', 'status');\r
+ //Tabview.getServerTab().addMsg(null, ' ', '=== Failed to connect :(', 'status');\r
kiwi.plugs.run('connect', {success: false});\r
}\r
\r
*/\r
onConnectFail: function (e, data) {\r
var reason = (typeof data.reason === 'string') ? data.reason : '';\r
- Tabview.getServerTab().addMsg(null, '', 'There\'s a problem connecting! (' + reason + ')', 'error');\r
+ //Tabview.getServerTab().addMsg(null, '', 'There\'s a problem connecting! (' + reason + ')', 'error');\r
kiwi.plugs.run('connect', {success: false});\r
},\r
/**\r
*/\r
onDisconnect: function (e, data) {\r
var tab, tabs;\r
- tabs = Tabview.getAllTabs();\r
- for (tab in tabs) {\r
- tabs[tab].addMsg(null, '', 'Disconnected from server!', 'error disconnect');\r
- }\r
+ //tabs = Tabview.getAllTabs();\r
+ //for (tab in tabs) {\r
+ // tabs[tab].addMsg(null, '', 'Disconnected from server!', 'error disconnect');\r
+ //}\r
kiwi.plugs.run('disconnect', {success: false});\r
},\r
/**\r
*/\r
onOptions: function (e, data) {\r
if (typeof kiwi.gateway.network_name === "string" && kiwi.gateway.network_name !== "") {\r
- Tabview.getServerTab().setTabText(kiwi.gateway.network_name);\r
+ //Tabview.getServerTab().setTabText(kiwi.gateway.network_name);\r
}\r
},\r
/**\r
* @param {Object} data The event data\r
*/\r
onMOTD: function (e, data) {\r
- Tabview.getServerTab().addMsg(null, data.server, data.msg, 'motd');\r
+ //Tabview.getServerTab().addMsg(null, data.server, data.msg, 'motd');\r
},\r
/**\r
* Handles the whois event\r
idle_time = idle_time.h.toString().lpad(2, "0") + ':' + idle_time.m.toString().lpad(2, "0") + ':' + idle_time.s.toString().lpad(2, "0");\r
}\r
\r
- tab = Tabview.getCurrentTab();\r
- if (data.msg) {\r
- tab.addMsg(null, data.nick, data.msg, 'whois');\r
- } else if (data.logon) {\r
- d = new Date();\r
- d.setTime(data.logon * 1000);\r
- d = d.toLocaleString();\r
+ //tab = Tabview.getCurrentTab();\r
+ //if (data.msg) {\r
+ // tab.addMsg(null, data.nick, data.msg, 'whois');\r
+ //} else if (data.logon) {\r
+ // d = new Date();\r
+ // d.setTime(data.logon * 1000);\r
+ // d = d.toLocaleString();\r
\r
- tab.addMsg(null, data.nick, 'idle for ' + idle_time + ', signed on ' + d, 'whois');\r
- } else {\r
- tab.addMsg(null, data.nick, 'idle for ' + idle_time, 'whois');\r
- }\r
+ // tab.addMsg(null, data.nick, 'idle for ' + idle_time + ', signed on ' + d, 'whois');\r
+ //} else {\r
+ // tab.addMsg(null, data.nick, 'idle for ' + idle_time, 'whois');\r
+ //}\r
},\r
/**\r
* Handles the mode event\r
* @param {Object} data The event data\r
*/\r
onMode: function (e, data) {\r
- var tab;\r
+ var tab, mem;\r
if ((typeof data.channel === 'string') && (typeof data.effected_nick === 'string')) {\r
- tab = Tabview.getTab(data.channel);\r
- tab.addMsg(null, ' ', '[' + data.mode + '] ' + data.effected_nick + ' by ' + data.nick, 'mode', '');\r
- if (tab.userlist.hasUser(data.effected_nick)) {\r
- tab.userlist.changeUserMode(data.effected_nick, data.mode.substr(1), (data.mode[0] === '+'));\r
+ // tab = Tabview.getTab(data.channel);\r
+ // tab.addMsg(null, ' ', '[' + data.mode + '] ' + data.effected_nick + ' by ' + data.nick, 'mode', '');\r
+ // if (tab.userlist.hasUser(data.effected_nick)) {\r
+ // tab.userlist.changeUserMode(data.effected_nick, data.mode.substr(1), (data.mode[0] === '+'));\r
+ // }\r
+ chan = kiwi.bbchans.detect(function (c) {\r
+ return c.get("name") === data.channel;\r
+ });\r
+ if (chan) {\r
+ chan.addMsg(null, ' ', '[' + data.mode + '] ' + data.effected_nick + ' by ' + data.nick, 'mode', '');\r
+ mem = _.detect(chan.get("members"), function (m) {\r
+ return data.effected_nick === m.get("nick");\r
+ });\r
+ if (mem) {\r
+ if (data.mode[0] === '+') {\r
+ mem.addMode(data.mode);\r
+ } else {\r
+ mem.removeMode(data.mode);\r
+ }\r
+ }\r
}\r
}\r
-\r
// TODO: Other mode changes that aren't +/- qaohv. - JA\r
},\r
/**\r
* @param {Object} data The event data\r
*/\r
onUserList: function (e, data) {\r
- var tab;\r
+ var tab, chan;\r
\r
- tab = Tabview.getTab(data.channel);\r
- if (!tab) {\r
- return;\r
- }\r
+ //tab = Tabview.getTab(data.channel);\r
+ //if (!tab) {\r
+ // return;\r
+ //}\r
\r
+ chan = kiwi.bbchans.detect(function (c) {\r
+ return c.get("name") === data.channel;\r
+ });\r
if ((!kiwi.front.cache.userlist) || (!kiwi.front.cache.userlist.updating)) {\r
if (!kiwi.front.cache.userlist) {\r
kiwi.front.cache.userlist = {updating: true};\r
} else {\r
kiwi.front.cache.userlist.updating = true;\r
}\r
- tab.userlist.empty();\r
+ chan.get("members").reset();\r
}\r
\r
- tab.userlist.addUser(data.users);\r
-\r
+ //tab.userlist.addUser(data.users);\r
+ if (chan) {\r
+ chan.get("members").add(data.users, {"silent": true});\r
+ }\r
},\r
/**\r
* Handles the userListEnd event\r
kiwi.front.cache.userlist = {};\r
}\r
kiwi.front.cache.userlist.updating = false;\r
+ chan = kiwi.bbchans.detect(function (c) {\r
+ return c.get("name") === data.channel;\r
+ });\r
+ if (chan) {\r
+ chan.get("members").trigger("change");\r
+ }\r
},\r
\r
/**\r
* @param {Object} data The event data\r
*/\r
onJoin: function (e, data) {\r
- var tab = Tabview.getTab(data.channel);\r
- if (!tab) {\r
- tab = new Tabview(data.channel.toLowerCase());\r
- }\r
+ //var tab = Tabview.getTab(data.channel);\r
+ //if (!tab) {\r
+ // tab = new Tabview(data.channel.toLowerCase());\r
+ //}\r
\r
- tab.addMsg(null, ' ', '--> ' + data.nick + ' [' + data.ident + '@' + data.hostname + '] has joined', 'action join', 'color:#009900;');\r
+ //tab.addMsg(null, ' ', '--> ' + data.nick + ' [' + data.ident + '@' + data.hostname + '] has joined', 'action join', 'color:#009900;');\r
\r
- var c = new kiwi.model.Channel({"name": data.channel.toLowerCase()});\r
- c.get("members").add(new kiwi.model.Member({"nick": data.nick, "modes": []}));\r
- kiwi.bbchans.add(c);\r
- if (data.nick === kiwi.gateway.nick) {\r
- return; // Not needed as it's already in nicklist\r
+ chan = kiwi.bbchans.detect(function (c) {\r
+ return c.get("name") === data.channel;\r
+ });\r
+ if (!chan) {\r
+ chan = new kiwi.model.Channel({"name": data.channel.toLowerCase()});\r
+ chan.get("members").add(new kiwi.model.Member({"nick": data.nick, "modes": []}));\r
+ kiwi.bbchans.add(chan);\r
+ } else {\r
+ chan.get("members").add(data.users, {"silent": true});\r
}\r
+ chan.view.show();\r
+\r
+ //if (data.nick === kiwi.gateway.nick) {\r
+ // return; // Not needed as it's already in nicklist\r
+ //}\r
\r
- tab.userlist.addUser({nick: data.nick, modes: []});\r
+ //tab.userlist.addUser({nick: data.nick, modes: []});\r
},\r
/**\r
* Handles the part event\r
* @param {Object} data The event data\r
*/\r
onPart: function (e, data) {\r
- var tab = Tabview.getTab(data.channel);\r
- if (tab) {\r
+ var chan, members;\r
+ //var tab = Tabview.getTab(data.channel);\r
+ //if (tab) {\r
// If this is us, close the tabview\r
+ // if (data.nick === kiwi.gateway.nick) {\r
+ // tab.close();\r
+ // Tabview.getServerTab().show();\r
+ // return;\r
+ // }\r
+\r
+ // tab.addMsg(null, ' ', '<-- ' + data.nick + ' has left (' + data.message + ')', 'action part', 'color:#990000;');\r
+ // tab.userlist.removeUser(data.nick);\r
+ //}\r
+ chan = kiwi.bbchans.detect(function (c) {\r
+ return c.get("name") === data.channel;\r
+ });\r
+ if (chan) {\r
if (data.nick === kiwi.gateway.nick) {\r
- tab.close();\r
- Tabview.getServerTab().show();\r
- return;\r
+ chan.trigger("close");\r
+ } else {\r
+ chan.addMsg(null, ' ', '<-- ' + data.nick + ' has left (' + data.message + ')', 'action part', 'color:#990000;');\r
+ members = chan.get("members");\r
+ members.remove(_.detect(members, function (m) {\r
+ return data.nick === m.get("nick");\r
+ }));\r
}\r
-\r
- tab.addMsg(null, ' ', '<-- ' + data.nick + ' has left (' + data.message + ')', 'action part', 'color:#990000;');\r
- tab.userlist.removeUser(data.nick);\r
}\r
},\r
/**\r
* @param {Object} data The event data\r
*/\r
onKick: function (e, data) {\r
- var tab = Tabview.getTab(data.channel);\r
- if (tab) {\r
- // If this is us, close the tabview\r
- if (data.kicked === kiwi.gateway.nick) {\r
- //tab.close();\r
- tab.addMsg(null, ' ', '=== You have been kicked from ' + data.channel + '. ' + data.message, 'status kick');\r
- tab.safe_to_close = true;\r
- tab.userlist.remove();\r
- return;\r
- }\r
-\r
- tab.addMsg(null, ' ', '<-- ' + data.kicked + ' kicked by ' + data.nick + '(' + data.message + ')', 'action kick', 'color:#990000;');\r
- tab.userlist.removeUser(data.nick);\r
- }\r
+ //var tab = Tabview.getTab(data.channel);\r
+ //if (tab) {\r
+ // // If this is us, close the tabview\r
+ // if (data.kicked === kiwi.gateway.nick) {\r
+ // //tab.close();\r
+ // tab.addMsg(null, ' ', '=== You have been kicked from ' + data.channel + '. ' + data.message, 'status kick');\r
+ // tab.safe_to_close = true;\r
+ // tab.userlist.remove();\r
+ // return;\r
+ // }\r
+\r
+ // tab.addMsg(null, ' ', '<-- ' + data.kicked + ' kicked by ' + data.nick + '(' + data.message + ')', 'action kick', 'color:#990000;');\r
+ // tab.userlist.removeUser(data.nick);\r
+ //}\r
},\r
/**\r
* Handles the nick event\r
* @param {Object} data The event data\r
*/\r
onNick: function (e, data) {\r
- if (data.nick === kiwi.gateway.nick) {\r
- kiwi.gateway.nick = data.newnick;\r
- kiwi.front.ui.doLayout();\r
- }\r
+ //if (data.nick === kiwi.gateway.nick) {\r
+ // kiwi.gateway.nick = data.newnick;\r
+ // kiwi.front.ui.doLayout();\r
+ //}\r
\r
- _.each(Tabview.getAllTabs(), function (tab) {\r
- if (tab.userlist.hasUser(data.nick)) {\r
- tab.userlist.renameUser(data.nick, data.newnick);\r
- tab.addMsg(null, ' ', '=== ' + data.nick + ' is now known as ' + data.newnick, 'action changenick');\r
- }\r
- });\r
+ //_.each(Tabview.getAllTabs(), function (tab) {\r
+ // if (tab.userlist.hasUser(data.nick)) {\r
+ // tab.userlist.renameUser(data.nick, data.newnick);\r
+ // tab.addMsg(null, ' ', '=== ' + data.nick + ' is now known as ' + data.newnick, 'action changenick');\r
+ // }\r
+ //});\r
},\r
/**\r
* Handles the quit event\r
* @param {Object} data The event data\r
*/\r
onQuit: function (e, data) {\r
- _.each(Tabview.getAllTabs(), function (tab) {\r
- if (tab.userlist.hasUser(data.nick)) {\r
- tab.userlist.removeUser(data.nick);\r
- tab.addMsg(null, ' ', '<-- ' + data.nick + ' has quit (' + data.message + ')', 'action quit', 'color:#990000;');\r
- }\r
- });\r
+ //_.each(Tabview.getAllTabs(), function (tab) {\r
+ // if (tab.userlist.hasUser(data.nick)) {\r
+ // tab.userlist.removeUser(data.nick);\r
+ // tab.addMsg(null, ' ', '<-- ' + data.nick + ' has quit (' + data.message + ')', 'action quit', 'color:#990000;');\r
+ // }\r
+ //});\r
},\r
/**\r
* Handles the channelRedirect event\r
* @param {Object} data The event data\r
*/\r
onChannelRedirect: function (e, data) {\r
- var tab = Tabview.getTab(data.from);\r
- tab.close();\r
- tab = new Tabview(data.to);\r
- tab.addMsg(null, ' ', '=== Redirected from ' + data.from, 'action');\r
+ //var tab = Tabview.getTab(data.from);\r
+ //tab.close();\r
+ //tab = new Tabview(data.to);\r
+ //tab.addMsg(null, ' ', '=== Redirected from ' + data.from, 'action');\r
},\r
\r
/**\r
* @param {Object} data The event data\r
*/\r
onIRCError: function (e, data) {\r
- var t_view,\r
+ /*var t_view,\r
tab = Tabview.getTab(data.channel);\r
if (data.channel !== undefined && tab) {\r
t_view = data.channel;\r
default:\r
// We don't know what data contains, so don't do anything with it.\r
console.log(e, data);\r
- }\r
+ }*/\r
},\r
\r
\r