Make nickname in use go to active window.
UI:\r
- tab dragging\r
- [ ] style flashing\r
- block backspace\r
- scrolling is broken\r
- [enter] in text box should trigger event instead of having a form there?\r
- about DIALOG?\r
- Save last nick in cookies.\r
+ FEAT: tab dragging\r
+ FEAT: [ ] style flashing\r
+ FEAT: block backspace\r
+ TIDY: [enter] in text box should trigger event instead of having a form there?\r
+ FEAT: about DIALOG?\r
+ FEAT: Save last nick in cookies.\r
\r
Authing:\r
- Finish integration (notably login button on non-autoconnect page).\r
- Login button should save state on form.\r
- Fix up state inconsistency if backend is restarted (state is stored in user cookie and not refreshed except on login).\r
+ TIDY: Finish integration (notably login button on non-autoconnect page).\r
+ TIDY: Login button should save state on form.\r
+ TIDY: Fix up state inconsistency if backend is restarted (state is stored in user cookie and not refreshed except on login).\r
\r
IRC: \r
- /msg $ goes to status, as does /notice $\r
- Nick in use should go to active window.\r
+ TIDY: /msg $ goes to status, as does /notice $, should go to active.\r
\r
Options pane:\r
- motd and possibly linked somewhere else.\r
- same with embedded wizard\r
- Various options:\r
- - notices going to active window\r
- Sound\r
- Last position line\r
- Store options server side when logged in.\r
+ TIDY: motd and possibly linked somewhere else.\r
+ FEAT: same with embedded wizard\r
+ FEAT: Sound\r
+ FEAT: Last position line\r
+ FEAT: Store options server side when logged in.\r
\r
Other:\r
- IE7 seems to be broke\r
+ BUG: IE7 seems to be broke\r
+ BUG: Queries: upper/lowercase issues.\r
\ No newline at end of file
this.signedOn(this.nickname);
},
irc_ERR_NICKNAMEINUSE: function(prefix, params) {
+ this.genericError(params[1], params.indexFromEnd(-1).replace("in use.", "in use"));
+
if(this.__signedOn)
- return;
+ return true;
var newnick = params[1] + "_";
if(newnick == this.lastnick)
- newnick = "webchat" + Math.floor(Math.random() * 1024 * 1024);
+ newnick = "qwebirc" + Math.floor(Math.random() * 1024 * 1024);
this.send("NICK " + newnick);
this.lastnick = newnick;
+ return true;
},
irc_NICK: function(prefix, params) {
var user = prefix;
if(!this.send("PRIVMSG " + target + " :\x01ACTION " + args + "\x01"))
return;
- this.newQueryLine(target, "ACTION", args);
+ this.newQueryLine(target, "ACTION", args, {"@": this.parentObject.getNickStatus(target, this.parentObject.nickname)});
}],
cmd_CTCP: [false, 3, 2, function(args) {
var target = args[0];
var target = args[0];
var message = args[1];
- if(this.send("NOTICE " + target + " :" + message))
- this.newTargetLine(target, "NOTICE", message);
+ if(this.send("NOTICE " + target + " :" + message)) {
+ if(this.parentObject.isChannel(target)) {
+ this.newTargetLine(target, "NOTICE", message, {"@": this.parentObject.getNickStatus(target, this.parentObject.nickname)});
+ } else {
+ this.newTargetLine(target, "NOTICE", message);
+ }
+ }
}],
cmd_QUERY: [false, 2, 1, function(args) {
this.parentObject.newWindow(args[0], qwebirc.ui.WINDOW_QUERY, true);
if(type == "ACTION") {
this.tracker.updateLastSpoke(user.hostToNick(), channel, new Date().getTime());
- this.newChanLine(channel, "CHANACTION", user, {"m": args, "c": channel});
+ this.newChanLine(channel, "CHANACTION", user, {"m": args, "c": channel, "@": this.getNickStatus(channel, nick)});
return;
}
- this.newChanLine(channel, "CHANCTCP", user, {"x": type, "m": args, "c": channel});
+ this.newChanLine(channel, "CHANCTCP", user, {"x": type, "m": args, "c": channel, "@": this.getNickStatus(channel, nick)});
},
userCTCP: function(user, type, args) {
var nick = user.hostToNick();
this.newChanLine(channel, "CHANMSG", user, {"m": message, "@": this.getNickStatus(channel, nick)});
},
channelNotice: function(user, channel, message) {
- this.newChanLine(channel, "CHANNOTICE", user, {"m": message});
+ this.newChanLine(channel, "CHANNOTICE", user, {"m": message, "@": this.getNickStatus(channel, nick)});
},
userPrivmsg: function(user, message) {
var nick = user.hostToNick();