]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - js/ui/panes/connect.js
Add hideauth option.
[irc/quakenet/qwebirc.git] / js / ui / panes / connect.js
index 7affa3fe0c2ca1252e92ca7cbc1d270fb036fee5..abe71eff587a4345c20e8c0a4e63b14b514e488c 100644 (file)
@@ -56,10 +56,15 @@ qwebirc.ui.ConnectPane = new Class({
         }
       }
 
-      exec("[name=" + focus + "]", util.focus);
+      if(window == window.top) /* don't focus when we're iframe'd */
+        exec("[name=" + focus + "]", util.focus);
       exec("[name=connect]", util.attachClick(this.__connect.bind(this)));
       exec("[name=loginconnect]", util.attachClick(this.__loginConnect.bind(this)));
+
       exec("[name=login]", util.attachClick(this.__login.bind(this)));
+
+      if(qwebirc.ui.isHideAuth())
+       exec("[name=login]", util.setVisible(false));
     }.bind(this)});
     r.get();
   },
@@ -166,9 +171,14 @@ qwebirc.ui.ConnectPane = new Class({
     this.util.exec("[name=loggingin]", this.util.setVisible(true));
     this.util.exec("[name=" + calleename + "]", this.util.setVisible(false));
 
-    __qwebircAuthCallback = function(username) {
+    __qwebircAuthCallback = function(username, expiry, serverNow) {
       this.__cancelLoginCallback(true);
 
+      var now = new Date().getTime();
+      var offset = (serverNow * 1000) - now;
+      var ourExpiry = expiry * 1000 - offset;
+      Cookie.write("ticketexpiry", ourExpiry)
+
       this.util.exec("[name=loggingin]", this.util.setVisible(false));
       this.util.exec("[name=loginstatus]", this.util.setVisible(true));
       this.util.exec("[name=authname]", this.util.setText(username));
@@ -193,6 +203,14 @@ qwebirc.ui.ConnectPane = new Class({
       return false;
     }
 
+    var stripped = qwebirc.global.nicknameValidator.validate(nickname);
+    if(stripped != nickname) {
+      nick.value = stripped;
+      alert("Your nickname was invalid and has been corrected; please check your altered nickname and try again.");
+      nick.focus();
+      return false;
+    }
+    
     var data = {nickname: nickname, autojoin: chans};
     return data;
   },
@@ -238,6 +256,24 @@ qwebirc.ui.LoginBox2 = function(parentElement, callback, initialNickname, initia
   form.addEvent("submit", function(e) {
     new Event(e).stop();
 
+    var nickname = nick.value;
+    var chans = chan.value;
+    if(chans == "#") /* sorry channel "#" :P */
+      chans = "";
+
+    if(!nickname) {
+      alert("You must supply a nickname.");
+      nick.focus();
+      return;
+    }
+    var stripped = qwebirc.global.nicknameValidator.validate(nickname);
+    if(stripped != nickname) {
+      nick.value = stripped;
+      alert("Your nickname was invalid and has been corrected; please check your altered nickname and press Connect again.");
+      nick.focus();
+      return;
+    }
+    
     var data = {"nickname": nickname, "autojoin": chans};
     if(qwebirc.auth.enabled()) {
       if(qwebirc.auth.passAuth() && authCheckBox.checked) {
@@ -294,3 +330,11 @@ qwebirc.ui.isAuthRequired = (function() {
   };
 })();
 
+qwebirc.ui.isHideAuth = (function() {
+  var args = qwebirc.util.parseURI(String(document.location));
+  var value = $defined(args) && args["hideauth"];
+  return function() {
+    return value;
+  };
+})();
+