]> jfr.im git - irc/quakenet/qwebirc.git/blame - js/ui/genericlogin.js
Fix IE7.
[irc/quakenet/qwebirc.git] / js / ui / genericlogin.js
CommitLineData
e20e5a6b 1qwebirc.ui.GenericLoginBox = function(parentElement, callback, initialNickname, initialChannels, autoConnect, autoNick) {
66de775f 2 if(autoConnect) {
e20e5a6b 3 qwebirc.ui.ConfirmBox(parentElement, callback, initialNickname, initialChannels, autoNick);
66de775f 4 } else {
e20e5a6b 5 qwebirc.ui.LoginBox(parentElement, callback, initialNickname, initialChannels);
66de775f
CP
6 }
7}
8
e20e5a6b 9qwebirc.ui.ConfirmBox = function(parentElement, callback, initialNickname, initialChannels, autoNick) {
90b89aee
CP
10 var box = new Element("table");
11 box.addClass("confirmbox");
66de775f
CP
12 parentElement.appendChild(box);
13
95ce57b3
CP
14 var tbody = new Element("tbody");
15 box.appendChild(tbody);
16
90b89aee 17 var tr = new Element("tr");
95ce57b3 18 tbody.appendChild(tr);
90b89aee
CP
19 tr.addClass("tr1");
20
21 var text = new Element("td");
22 tr.appendChild(text);
23
66de775f
CP
24 var nick = new Element("b");
25 nick.set("text", initialNickname);
26
290c60db 27 var c = initialChannels.split(" ")[0].split(",");
66de775f 28
290c60db
CP
29 text.appendChild(document.createTextNode("To connect to IRC and join channel" + ((c.length>1)?"s":"") + " "));
30
31 for(var i=0;i<c.length;i++) {
32 if((c.length > 1) && (i == c.length - 1)) {
33 text.appendChild(document.createTextNode(" and "));
34 } else if(i > 0) {
35 text.appendChild(document.createTextNode(", "));
36 }
37 text.appendChild(new Element("b").set("text", c[i]));
38
66de775f
CP
39 }
40
66de775f
CP
41 if(!autoNick) {
42 text.appendChild(document.createTextNode(" as "));
43 text.appendChild(nick);
44 }
45 text.appendChild(document.createTextNode(" click 'Connect'."));
46
90b89aee 47 var tr = new Element("tr");
95ce57b3 48 tbody.appendChild(tr);
90b89aee 49 tr.addClass("tr2");
66de775f 50
90b89aee
CP
51 var td = new Element("td");
52 tr.appendChild(td);
53
66de775f 54 var yes = new Element("input", {"type": "submit", "value": "Connect"});
f065bc69 55 td.appendChild(yes);
70638ce4 56 yes.focus();
f065bc69 57 yes.addEvent("click", function(e) {
66de775f
CP
58 parentElement.removeChild(box);
59 callback({"nickname": initialNickname, "autojoin": initialChannels});
60 });
f065bc69 61
4fb3b38c 62 if(!qwebirc.auth.loggedin()) {
f065bc69
CP
63 var auth = new Element("input", {"type": "submit", "value": "Log in"});
64 td.appendChild(auth);
65 auth.addEvent("click", function(e) {
66 var cookie = Cookie.write("redirect", document.location);
67 document.location = "./auth/";
68 });
69 }
66de775f
CP
70}
71
e20e5a6b 72qwebirc.ui.LoginBox = function(parentElement, callback, initialNickname, initialChannels) {
90b89aee 73 var box = new Element("table");
66de775f 74 parentElement.appendChild(box);
90b89aee
CP
75 box.addClass("loginbox");
76
95ce57b3
CP
77 var tbody = new Element("tbody");
78 box.appendChild(tbody);
79
90b89aee 80 var tr = new Element("tr");
95ce57b3 81 tbody.appendChild(tr);
90b89aee 82 tr.addClass("tr1");
66de775f 83
90b89aee
CP
84 var td = new Element("td");
85 tr.appendChild(td);
86 td.set("html", "<h1>Connect to IRC</h1>");
95ce57b3 87
90b89aee 88 var tr = new Element("tr");
95ce57b3 89 tbody.appendChild(tr);
90b89aee
CP
90 tr.addClass("tr2");
91
90b89aee
CP
92 var td = new Element("td");
93 tr.appendChild(td);
95ce57b3 94
66de775f 95 var form = new Element("form");
90b89aee 96 td.appendChild(form);
66de775f
CP
97
98 var boxtable = new Element("table");
99 form.appendChild(boxtable);
100
101 var tbody = new Element("tbody");
102 boxtable.appendChild(tbody); /* stupid IE */
103
104 function createRow(label, e2) {
105 var r = new Element("tr");
106 tbody.appendChild(r);
107
108 var d1 = new Element("td");
109 if(label)
110 d1.set("text", label);
111 r.appendChild(d1);
112
113 var d2 = new Element("td");
114 r.appendChild(d2);
115 d2.appendChild(e2);
116 return d1;
117 }
118
119 var nick = new Element("input");
120 createRow("Nickname:", nick);
121 var chan = new Element("input");
90b89aee 122 createRow("Channels:", chan);
66de775f
CP
123
124 var connbutton = new Element("input", {"type": "submit"});
125 connbutton.set("value", "Connect");
126 createRow(undefined, connbutton)
127
128 form.addEvent("submit", function(e) {
129 new Event(e).stop();
130 var nickname = nick.value;
131 var chans = chan.value;
132 if(chans == "#") /* sorry channel "#" :P */
133 chans = "";
134
135 if(!nickname) {
136 alert("You must supply a nickname.");
137 nick.focus();
138 return;
139 }
140
141 parentElement.removeChild(box);
142
143 callback({"nickname": nickname, "autojoin": chans});
144 }.bind(this));
145
146 nick.set("value", initialNickname);
147 chan.set("value", initialChannels);
148
149 nick.focus();
cad18909 150}