if(!this.firstClient) {
this.firstClient = true;
w.addLine("", "qwebirc v" + qwebirc.VERSION);
- w.addLine("", "Copyright (C) 2008-2009 Chris Porter. All rights reserved.");
- w.addLine("", "http://webchat.quakenet.org/");
- w.addLine("", "This is BETA quality software, please report bugs to slug@quakenet.org");
+ w.addLine("", "Copyright (C) 2008-2009 Chris Porter and the qwebirc project.");
+ w.addLine("", "http://www.qwebirc.org");
+ w.addLine("", "Licensed under the GNU General Public License, Version 2.");
}
return w;
},
return client.id;
}
},
- getWindowIdentifier: function(type, name) {
+ getWindowIdentifier: function(client, type, name) {
if(type == qwebirc.ui.WINDOW_MESSAGES)
return "-M";
if(type == qwebirc.ui.WINDOW_STATUS)
return "";
- return "_" + name.toIRCLower();
+
+ if(client == qwebirc.ui.CUSTOM_CLIENT) /* HACK */
+ return "_" + name;
+
+ return "_" + client.toIRCLower(name);
},
newWindow: function(client, type, name) {
var w = this.getWindow(client, type, name);
if($defined(w))
return w;
- var wId = this.getWindowIdentifier(type, name);
+ var wId = this.getWindowIdentifier(client, type, name);
var w = this.windows[this.getClientId(client)][wId] = new this.windowClass(this, client, type, name, wId);
this.windowArray.push(w);
if(!$defined(c))
return null;
- return c[this.getWindowIdentifier(type, name)];
+ return c[this.getWindowIdentifier(client, type, name)];
},
getActiveWindow: function() {
return this.active;
},
getActiveIRCWindow: function(client) {
if(!this.active || this.active.type == qwebirc.ui.WINDOW_CUSTOM) {
- return this.windows[this.getClientId(client)][this.getWindowIdentifier(qwebirc.ui.WINDOW_STATUS)];
+ return this.windows[this.getClientId(client)][this.getWindowIdentifier(client, qwebirc.ui.WINDOW_STATUS)];
} else {
return this.active;
}
qwebirc.ui.StandardUI = new Class({
Extends: qwebirc.ui.BaseUI,
- UICommands: [
- ["Options", "options"],
- ["Add webchat to your site", "embedded"],
- ["Privacy policy", "privacy"],
- ["Feedback", "feedback"],
- ["About qwebirc", "about"]
- ],
+ UICommands: qwebirc.ui.UI_COMMANDS,
initialize: function(parentElement, windowClass, uiName, options) {
this.parent(parentElement, windowClass, uiName, options);
this.uiOptions = new qwebirc.ui.DefaultOptionsClass(this);
this.customWindows = {};
+ var ev;
if(Browser.Engine.trident) {
ev = "keydown";
} else {
ew.addEvent("close", function() {
d.close();
}.bind(this));
+
+ d.setSubWindow(ew);
},
embeddedWindow: function() {
- this.addCustomWindow("Embedding wizard", qwebirc.ui.EmbedWizard, "embeddedwizard");
+ this.addCustomWindow("Embedding wizard", qwebirc.ui.EmbedWizard, "embeddedwizard", {baseURL: this.options.baseURL});
},
optionsWindow: function() {
this.addCustomWindow("Options", qwebirc.ui.OptionsPane, "optionspane", this.uiOptions);
feedbackWindow: function() {
this.addCustomWindow("Feedback", qwebirc.ui.FeedbackPane, "feedbackpane", this.uiOptions);
},
+ faqWindow: function() {
+ this.addCustomWindow("FAQ", qwebirc.ui.FAQPane, "faqpane", this.uiOptions);
+ },
urlDispatcher: function(name) {
if(name == "embedded")
return ["a", this.embeddedWindow.bind(this)];
if(name == "options")
return ["a", this.optionsWindow.bind(this)];
+ /* doesn't really belong here */
+ if(name == "whois") {
+ return ["span", function(nick) {
+ this.client.exec("/WHOIS " + nick);
+ }.bind(window)];
+ }
+
return null;
},
tabComplete: function(element) {
}
});
-qwebirc.ui.QuakeNetUI = new Class({
+qwebirc.ui.NewLoginUI = new Class({
Extends: qwebirc.ui.SoundUI,
+ loginBox: function(callbackfn, initialNickname, initialChannels, autoConnect, autoNick) {
+ this.postInitialize();
+
+ var w = this.newCustomWindow("Connect", true, qwebirc.ui.WINDOW_CONNECT);
+ var callback = function(args) {
+ w.close();
+ callbackfn(args);
+ };
+
+ qwebirc.ui.GenericLoginBox(w.lines, callback, initialNickname, initialChannels, autoConnect, autoNick, this.options.networkName);
+ }
+});
+
+qwebirc.ui.QuakeNetUI = new Class({
+ Extends: qwebirc.ui.NewLoginUI,
urlDispatcher: function(name, window) {
if(name == "qwhois") {
return ["span", function(auth) {
this.client.exec("/MSG Q whois #" + auth);
}.bind(window)];
}
- if(name == "whois") {
- return ["span", function(nick) {
- this.client.exec("/WHOIS " + nick);
- }.bind(window)];
- }
return this.parent(name);
},
logout: function() {
for(var client in this.clients) {
this.clients[client].quit("Logged out");
};
- document.location = "/auth?logout=1";
+
+ /* HACK */
+ var foo = function() { document.location = "/auth?logout=1"; };
+ foo.delay(500);
}
}
});
-
-qwebirc.ui.NewLoginUI = new Class({
- Extends: qwebirc.ui.QuakeNetUI,
- loginBox: function(callbackfn, initialNickname, initialChannels, autoConnect, autoNick) {
- this.postInitialize();
-
- var w = this.newCustomWindow("Connect", true, qwebirc.ui.WINDOW_CONNECT);
- var callback = function(args) {
- w.close();
- callbackfn(args);
- };
-
- qwebirc.ui.GenericLoginBox(w.lines, callback, initialNickname, initialChannels, autoConnect, autoNick, this.options.networkName);
- }
-});