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