}
}
+qwebirc.ui.AuthLogin = function(e) {
+ var cookie = Cookie.write("redirect", document.location);
+ document.location = "./auth/";
+ new Event(e).stop();
+}
+
qwebirc.ui.ConfirmBox = function(parentElement, callback, initialNickname, initialChannels, autoNick, networkName) {
+ var outerbox = new Element("table");
+ outerbox.addClass("qwebirc-centrebox");
+ parentElement.appendChild(outerbox);
+ var tbody = new Element("tbody");
+ outerbox.appendChild(tbody);
+ var tr = new Element("tr");
+ tbody.appendChild(tr);
+ var td = new Element("td");
+ tr.appendChild(td);
+
var box = new Element("table");
box.addClass("qwebirc-confirmbox");
- parentElement.appendChild(box);
+ td.appendChild(box);
var tbody = new Element("tbody");
box.appendChild(tbody);
text.appendChild(document.createTextNode(" click 'Connect'."));
text.appendChild(new Element("br"));
- if(!qwebirc.auth.loggedin())
+ if(qwebirc.auth.enabled() && qwebirc.auth.quakeNetAuth() && !qwebirc.auth.loggedin())
text.appendChild(document.createTextNode("If you'd like to connect using your Q auth click 'Log in'."));
var tr = new Element("tr");
td.appendChild(yes);
yes.focus();
yes.addEvent("click", function(e) {
- parentElement.removeChild(box);
+ parentElement.removeChild(outerbox);
callback({"nickname": initialNickname, "autojoin": initialChannels});
});
- if(!qwebirc.auth.loggedin()) {
+ if(qwebirc.auth.enabled() && qwebirc.auth.quakeNetAuth() && !qwebirc.auth.loggedin()) {
var auth = new Element("input", {"type": "submit", "value": "Log in"});
td.appendChild(auth);
- auth.addEvent("click", function(e) {
- var cookie = Cookie.write("redirect", document.location);
- document.location = "./auth/";
- });
+ auth.addEvent("click", qwebirc.ui.AuthLogin);
}
}
qwebirc.ui.LoginBox = function(parentElement, callback, initialNickname, initialChannels, networkName) {
+ var outerbox = new Element("table");
+ outerbox.addClass("qwebirc-centrebox");
+ parentElement.appendChild(outerbox);
+ var tbody = new Element("tbody");
+ outerbox.appendChild(tbody);
+ var tr = new Element("tr");
+ tbody.appendChild(tr);
+ var td = new Element("td");
+ tr.appendChild(td);
+
var box = new Element("table");
- parentElement.appendChild(box);
box.addClass("qwebirc-loginbox");
+ td.appendChild(box);
var tbody = new Element("tbody");
box.appendChild(tbody);
var tbody = new Element("tbody");
boxtable.appendChild(tbody); /* stupid IE */
- function createRow(label, e2) {
+ function createRow(label, e2, style) {
var r = new Element("tr");
tbody.appendChild(r);
var d2 = new Element("td");
r.appendChild(d2);
- d2.appendChild(e2);
- return d1;
+
+ if($defined(e2))
+ d2.appendChild(e2);
+ if($defined(style)) {
+ r.setStyles(style);
+ return [r, d2];
+ }
+
+ return d2;
}
var nick = new Element("input");
createRow("Nickname:", nick);
+
+ var chanStyle = null;
+ if(qwebirc.auth.enabled() && qwebirc.auth.bouncerAuth())
+ chanStyle = {display: "none"};
+
var chan = new Element("input");
- createRow("Channels:", chan);
+ createRow("Channels:", chan, chanStyle);
+ if(qwebirc.auth.enabled()) {
+ if(qwebirc.auth.passAuth()) {
+ var authRow = createRow("Auth to services:");
+ var authCheckBox = qwebirc.util.createInput("checkbox", authRow, "connect_auth_to_services", false);
+
+ var usernameBox = new Element("input");
+ var usernameRow = createRow("Username:", usernameBox, {display: "none"})[0];
+
+ var passwordRow = createRow("Password:", null, {display: "none"});
+ var passwordBox = qwebirc.util.createInput("password", passwordRow[1], "connect_auth_password");
+
+ authCheckBox.addEvent("click", function(e) { qwebirc.ui.authShowHide(authCheckBox, authRow, usernameBox, usernameRow, passwordRow[0]) });
+ } else if(qwebirc.auth.bouncerAuth()) {
+ var passwordRow = createRow("Password:");
+ var passwordBox = qwebirc.util.createInput("password", passwordRow, "connect_auth_password");
+ }
+ }
+
var connbutton = new Element("input", {"type": "submit"});
connbutton.set("value", "Connect");
- createRow(undefined, connbutton)
+ var r = createRow(undefined, connbutton);
+
+ if(qwebirc.auth.enabled() && qwebirc.auth.quakeNetAuth() && !qwebirc.auth.loggedin()) {
+ var auth = new Element("input", {"type": "submit", "value": "Log in"});
+ r.appendChild(auth);
+ auth.addEvent("click", qwebirc.ui.AuthLogin);
+ }
form.addEvent("submit", function(e) {
new Event(e).stop();
return;
}
- parentElement.removeChild(box);
+ var data = {"nickname": nickname, "autojoin": chans};
+ if(qwebirc.auth.passAuth() && authCheckBox.checked) {
+ if(!usernameBox.value || !passwordBox.value) {
+ alert("You must supply your username and password in auth mode.");
+ if(!usernameBox.value) {
+ usernameBox.focus();
+ } else {
+ passwordBox.focus();
+ }
+ return;
+ }
+
+ data["serverPassword"] = usernameBox.value + " " + passwordBox.value;
+ } else if(qwebirc.auth.bouncerAuth()) {
+ if(!passwordBox.value) {
+ alert("You must supply a password.");
+ passwordBox.focus();
+ return;
+ }
+
+ data["serverPassword"] = passwordBox.value;
+ }
+
+ parentElement.removeChild(outerbox);
- callback({"nickname": nickname, "autojoin": chans});
+ callback(data);
}.bind(this));
-
+
nick.set("value", initialNickname);
chan.set("value", initialChannels);
nick.focus();
}
+
+qwebirc.ui.authShowHide = function(checkbox, authRow, usernameBox, usernameRow, passwordRow) {
+ var visible = checkbox.checked;
+ var display = visible?null:"none";
+ usernameRow.setStyle("display", display);
+ passwordRow.setStyle("display", display);
+
+ if(visible) {
+// authRow.parentNode.setStyle("display", "none");
+ usernameBox.focus();
+ }
+}