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