]> jfr.im git - irc/quakenet/qwebirc.git/commitdiff
Fix errors in swmui, no argument commands and window closing.
authorChris Porter <redacted>
Thu, 10 Jul 2008 23:01:22 +0000 (00:01 +0100)
committerChris Porter <redacted>
Thu, 10 Jul 2008 23:01:22 +0000 (00:01 +0100)
js/irc/baseirc.js
js/irc/commandparser.js
js/irc/ircclient.js
js/irc/ircconnection.js
js/ui/baseui.js
js/ui/swmui.js

index e53e3577fce2e8d6c18686bec8407be71c00848f..69393d440b5bce9428aeae6b15e06c060adb04b7 100644 (file)
@@ -142,7 +142,7 @@ var BaseIRCClient = new Class({
         
     if(nick == this.nickname)
       this.channels[channel] = true;
-    
+
     this.userJoined(user, channel);
     
     return true;
index dea615ca342b7cd96a603295c09a073778d6efe7..2833de63b0e00266375cb9dd6745d8e4c2761cbb 100644 (file)
@@ -69,11 +69,14 @@ var CommandParser = new Class({
         return;
       }
     
-      if(splitargs != undefined)
+      if((splitargs != undefined) && (args != undefined))
         args = args.splitMax(" ", splitargs);
       
-      if((minargs != undefined) && (minargs > args.length)) {
-        w.errorMessage("Insufficient arguments for command.")
+      if((minargs != undefined) && (
+           ((args != undefined) && (minargs > args.length)) ||
+           ((args == undefined) && (minargs > 0))
+         )) {
+        w.errorMessage("Insufficient arguments for command.");
         return;
       }
       
@@ -101,9 +104,11 @@ var CommandParser = new Class({
       message = "";
 
     if(message == "") {
-      this.send("PRIVMSG " + target + " :\x01" + type + "\x01");
+      if(!this.send("PRIVMSG " + target + " :\x01" + type + "\x01"))
+        return;
     } else {
-      this.send("PRIVMSG " + target + " :\x01" + type + " " + message + "\x01");
+      if(!this.send("PRIVMSG " + target + " :\x01" + type + " " + message + "\x01"))
+        return;
     }
   
     this.newTargetLine(target, "CTCP", message, {"x": type});
@@ -112,16 +117,15 @@ var CommandParser = new Class({
     var target = args[0];
     var message = args[1];
     
-    this.newTargetLine(target, "MSG", message, {});
-    
-    this.send("PRIVMSG " + target + " :" + message);
+    if(this.send("PRIVMSG " + target + " :" + message))
+      this.newTargetLine(target, "MSG", message, {});  
   }],
   cmd_NOTICE: [false, 2, 2, function(args) {
     var target = args[0];
     var message = args[1];
 
-    this.newTargetLine(target, "NOTICE", message);
-    this.send("NOTICE " + target + " :" + message);
+    if(this.send("NOTICE " + target + " :" + message))
+      this.newTargetLine(target, "NOTICE", message);
   }],
   cmd_QUERY: [false, 2, 1, function(args) {
     this.parentObject.newWindow(args[0], WINDOW_QUERY, true);
index 328accdffd4e851f035bd8d93829628cef087722..16c971417cd236cd67abbcba5d88e4392877823f 100644 (file)
@@ -342,9 +342,11 @@ var IRCClient = new Class({
     }, this);
   },
   disconnected: function(message) {
-    for(var x in this.parent.channels)
-      this.ui.closeWindow(x);
-
+    for(var x in this.windows) {
+      var w = this.windows[x];
+      if(w.type == WINDOW_CHANNEL)
+        w.close();
+    }
     this.tracker = undefined;
     
     this.newServerLine("DISCONNECT", {"m": message});
index fc88942a81b7bb2dbc5983e5ee9f9e7e66c82b9c..332a97bc053548f644c52764008248ac9f700066 100644 (file)
@@ -13,17 +13,19 @@ var IRCConnection = new Class({
   },
   send: function(data) {
     if(this.disconnected)
-      return;
+      return false;
     var r = new Request.JSON({url: "/e/p/" + this.sessionid + "?c=" + encodeURIComponent(data) + "&t=" + this.counter++, onComplete: function(o) {
       if(!o || (o[0] == false)) {
         if(!this.disconnected) {
           this.disconnected = true;
           alert("An error occured: " + o[1]);
         }
+        return false;
       }
     }.bind(this)});
     
     r.get();
+    return true;
   },
   recv: function() {
     var r = new Request.JSON({url: "/e/s/" + this.sessionid + "?t=" + this.counter++, onComplete: function(o) {
@@ -43,7 +45,7 @@ var IRCConnection = new Class({
         if(!this.disconnected) {
           this.disconnected = true;
 
-          alert("An unknown error occured.");
+          alert("Error: the server closed the connection.");
         }
         return;
       }
index e7ce49b5f51268a0012bd55df31402ab25b7b450..5ac3fed75797e9b7e3e360188c135a95eca69c33 100644 (file)
@@ -1,6 +1,6 @@
-WINDOW_STATUS = 1;
-WINDOW_QUERY = 2;
-WINDOW_CHANNEL = 3;
+var WINDOW_STATUS = 1;
+var WINDOW_QUERY = 2;
+var WINDOW_CHANNEL = 3;
 
 var UIWindow = new Class({
   Implements: [Events],
index 8a235607f0d138a329f5261ccccd0c5104d2a5a6..38f1c097eb31be813c240cf4cfa7fcaaabac643e 100644 (file)
@@ -104,7 +104,7 @@ var SWMUIWindow = new Class({
     var e = new Element("div");
 
     if(colour) {
-      e.addStyle("background", colour);
+      e.setStyles({"background": colour});
     } else if(this.lastcolour) {
       e.addClass("linestyle1");
     } else {