]> jfr.im git - irc/quakenet/qwebirc.git/commitdiff
IE fixes.
authorChris Porter <redacted>
Thu, 4 Dec 2008 22:29:30 +0000 (22:29 +0000)
committerChris Porter <redacted>
Thu, 4 Dec 2008 22:29:30 +0000 (22:29 +0000)
Try to minimise headers sent.

TODO.txt
js/irc/ircconnection.js
js/jslib.js
js/sound.js
js/ui/embedwizard.js
js/ui/optionspane.js

index 8bf3cde2f40e79d8847c1b5d20fe3180fe6c5ae4..4a0b8cace81b9cdac0e022cd91489f194207c0d4 100644 (file)
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,14 +1,15 @@
 UI:\r
   tab dragging\r
-  undo closed tab\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
   \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
   \r
 IRC:  \r
@@ -27,5 +28,5 @@ Options pane:
   Store options server side when logged in.\r
   \r
 Other:\r
-  IE6 is broken again :(\r
+  IE7 seems to be broke\r
   
\ No newline at end of file
index 074f5feacf1e3abdb61171957f9d19b1c86196f6..db6ba14deb7af3dcdec9a354e5e74a75115b723e 100644 (file)
@@ -51,12 +51,23 @@ qwebirc.irc.IRCConnection = new Class({
     
     /* try to minimise the amount of headers */
     r.headers = new Hash;
-    if(Browser.Engine.trident) {
-      r.addEvent("request", function() {
-        this.setRequestHeader("Cookie", "");
-        this.setRequestHeader("Cookie", "");
-      }.bind(r.xhr));
-    }
+    r.addEvent("request", function() {
+      var setHeader = function(key, value) {
+        try {
+          this.setRequestHeader(key, value);
+        } catch(e) {
+        }
+      }.bind(this);
+    
+      if(Browser.Engine.trident) {
+        setHeader("Cookie", "");
+        setHeader("Cookie", "");
+      }
+      
+      setHeader("User-Agent", null);
+      setHeader("Accept", null);
+      setHeader("Accept-Language", null);
+    }.bind(r.xhr));
     
     if(Browser.Engine.trident)
       r.setHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
index c9753c44ac0bce7ec4f2650b8da3bcf449891d13..0c0222af14545b812469358dbdbbd07c994bff90 100644 (file)
@@ -237,3 +237,26 @@ qwebirc.util.importJS = function(name, watchFor, onload) {
   }
   document.getElementsByTagName("head")[0].appendChild(script);
 }
+
+qwebirc.util.createInput = function(type, parent, name, selected) {
+  var r;
+  if(Browser.Engine.trident) {
+    if(name) {
+      name = " name=\"" + escape(name) + "\"";
+    } else {
+      name = "";
+    }
+    r = $(document.createElement("<input type=\"" + type + "\"" + name + " " + (selected?" checked":"") + "/>"));
+  } else {    
+    r = new Element("input");
+    r.type = type;
+    if(name)
+      r.name = name;
+      
+    if(selected)
+      r.checked = true;
+  }
+    
+  parent.appendChild(r);
+  return r;
+}
index eaa71f2afc1d0a9cddd103aef4ab7517d36cbf51..b23762da6a2b2acd9da124def88cef10197fb2a8 100644 (file)
@@ -28,7 +28,7 @@ qwebirc.sound.SoundPlayer = new Class({
       return;
     }
     
-    qwebirc.util.importJS("/js/soundmanager2.js", "SoundManager", function() {
+    qwebirc.util.importJS("/js/soundmanager2.js", "soundManager", function() {
       soundManager.url = "/sound/";
       
       /* Fixes Firefox z-index Flash bug */
index 64319b975f76d623936384b578536eb2f5517e29..8e7a8c3f70564d89d80fde4aaf737a6ac04bf3b8 100644 (file)
@@ -88,19 +88,7 @@ qwebirc.ui.EmbedWizard = new Class({
     var p = new Element("div");
     parent.appendChild(p);
 
-    var r;
-    if(Browser.Engine.trident) {
-      r = document.createElement("<input type=\"radio\" name=\" + escape(name) + \"" + (selected?" checked":"") + "/>");
-    } else {    
-      r = new Element("input");
-      r.type = "radio";
-      r.name = name;
-    }    
-
-    if(selected)
-      r.checked = true;
-      
-    p.appendChild(r);
+    var r = qwebirc.util.createInput("radio", p, name, selected);
     p.appendChild(document.createTextNode(text));
       
     return r;
index bad9f7779cf866a07b71f02165b2ffe34cd5b90f..dfbaa6b523d30ea6d8b1792ccb2aafefae3084e4 100644 (file)
@@ -30,6 +30,12 @@ qwebirc.config.Input = new Class({
     
     this.render();
   },
+  createInput: function(type, parent, name, selected) {
+    if(!$defined(parent))
+      parent = this.parentElement;
+
+    return qwebirc.util.createInput(type, parent, name, selected);
+  },
   FE: function(element, parent) {
     var n = new Element(element);
     if(!$defined(parent))
@@ -62,10 +68,9 @@ qwebirc.config.Input = new Class({
 qwebirc.config.TextInput = new Class({
   Extends: qwebirc.config.Input,
   render: function() {
-    var i = this.FE("input");
+    var i = this.createInput("text");
     this.mainElement = i;
     
-    i.type = "text";
     i.value = this.value;
 
     this.parent();
@@ -78,10 +83,9 @@ qwebirc.config.TextInput = new Class({
 qwebirc.config.CheckInput = new Class({
   Extends: qwebirc.config.Input,
   render: function() {
-    var i = this.FE("input");
+    var i = this.createInput("checkbox");
     this.mainElement = i;
     
-    i.type = "checkbox";
     i.checked = this.value;
     
     this.parent();
@@ -100,14 +104,9 @@ qwebirc.config.RadioInput = new Class({
     
     for(var i=0;i<value.length;i++) {
       var d = this.FE("div", this.parentObject);
-      var e = this.FE("input", d);
+      var e = this.createInput("radio", d, "options_radio" + this.position, i == this.option.position);
       this.elements.push(e);
       
-      e.type = "radio";
-      e.name = "options_radio" + this.position;
-      if(i == this.option.position)
-        e.checked = "1";
-
       if(i == 0)
         this.mainElement = e;
       
@@ -267,8 +266,7 @@ qwebirc.ui.OptionsPane = new Class({
     var r = FE("tr", tb);
     var cella = FE("td", r);
     var cellb = FE("td", r);
-    var save = FE("input", r);
-    save.type = "button";
+    var save = qwebirc.util.createInput("submit", cellb);
     save.value = "Save";
     
     save.addEvent("click", function() {
@@ -276,8 +274,7 @@ qwebirc.ui.OptionsPane = new Class({
       this.fireEvent("close");
     }.bind(this));
     
-    var cancel = FE("input", r);
-    cancel.type = "button";
+    var cancel = qwebirc.util.createInput("submit", cellb);
     cancel.value = "Cancel";
     cancel.addEvent("click", function() {
       this.fireEvent("close");
@@ -319,4 +316,3 @@ qwebirc.ui.CookieOptions = new Class({
 qwebirc.ui.DefaultOptionsClass = new Class({
   Extends: qwebirc.ui.CookieOptions
 });
-