Try to minimise headers sent.
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
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
/* 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");
}
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;
+}
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 */
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;
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))
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();
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();
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;
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() {
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");
qwebirc.ui.DefaultOptionsClass = new Class({
Extends: qwebirc.ui.CookieOptions
});
-