]> jfr.im git - irc/quakenet/qwebirc.git/blame - js/ui/panes/connect.js
Reorganise panes and ui frontends.
[irc/quakenet/qwebirc.git] / js / ui / panes / connect.js
CommitLineData
2cad083e 1qwebirc.ui.GenericLoginBox = function(parentElement, callback, initialNickname, initialChannels, autoConnect, autoNick, networkName) {
66de775f 2 if(autoConnect) {
2cad083e 3 qwebirc.ui.ConfirmBox(parentElement, callback, initialNickname, initialChannels, autoNick, networkName);
66de775f 4 } else {
2cad083e 5 qwebirc.ui.LoginBox(parentElement, callback, initialNickname, initialChannels, networkName);
66de775f
CP
6 }
7}
8
2cad083e 9qwebirc.ui.ConfirmBox = function(parentElement, callback, initialNickname, initialChannels, autoNick, networkName) {
90b89aee 10 var box = new Element("table");
e1a91a8a 11 box.addClass("qwebirc-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
2cad083e 29 text.appendChild(document.createTextNode("To connect to " + networkName + " IRC and join channel" + ((c.length>1)?"s":"") + " "));
290c60db
CP
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);
2cad083e
CP
44 }
45
66de775f 46 text.appendChild(document.createTextNode(" click 'Connect'."));
74caeb3e
CP
47 text.appendChild(new Element("br"));
48 if(!qwebirc.auth.loggedin())
49 text.appendChild(document.createTextNode("If you'd like to connect using your Q auth click 'Log in'."));
50
90b89aee 51 var tr = new Element("tr");
95ce57b3 52 tbody.appendChild(tr);
90b89aee 53 tr.addClass("tr2");
66de775f 54
90b89aee
CP
55 var td = new Element("td");
56 tr.appendChild(td);
57
66de775f 58 var yes = new Element("input", {"type": "submit", "value": "Connect"});
f065bc69 59 td.appendChild(yes);
70638ce4 60 yes.focus();
f065bc69 61 yes.addEvent("click", function(e) {
66de775f
CP
62 parentElement.removeChild(box);
63 callback({"nickname": initialNickname, "autojoin": initialChannels});
64 });
f065bc69 65
4fb3b38c 66 if(!qwebirc.auth.loggedin()) {
f065bc69
CP
67 var auth = new Element("input", {"type": "submit", "value": "Log in"});
68 td.appendChild(auth);
69 auth.addEvent("click", function(e) {
70 var cookie = Cookie.write("redirect", document.location);
71 document.location = "./auth/";
72 });
73 }
66de775f
CP
74}
75
2cad083e 76qwebirc.ui.LoginBox = function(parentElement, callback, initialNickname, initialChannels, networkName) {
90b89aee 77 var box = new Element("table");
66de775f 78 parentElement.appendChild(box);
e1a91a8a 79 box.addClass("qwebirc-loginbox");
90b89aee 80
95ce57b3
CP
81 var tbody = new Element("tbody");
82 box.appendChild(tbody);
83
90b89aee 84 var tr = new Element("tr");
95ce57b3 85 tbody.appendChild(tr);
90b89aee 86 tr.addClass("tr1");
66de775f 87
90b89aee
CP
88 var td = new Element("td");
89 tr.appendChild(td);
2cad083e 90 td.set("html", "<h1>Connect to " + networkName + " IRC</h1>");
95ce57b3 91
90b89aee 92 var tr = new Element("tr");
95ce57b3 93 tbody.appendChild(tr);
90b89aee
CP
94 tr.addClass("tr2");
95
90b89aee
CP
96 var td = new Element("td");
97 tr.appendChild(td);
95ce57b3 98
66de775f 99 var form = new Element("form");
90b89aee 100 td.appendChild(form);
66de775f
CP
101
102 var boxtable = new Element("table");
103 form.appendChild(boxtable);
104
105 var tbody = new Element("tbody");
106 boxtable.appendChild(tbody); /* stupid IE */
107
108 function createRow(label, e2) {
109 var r = new Element("tr");
110 tbody.appendChild(r);
111
112 var d1 = new Element("td");
113 if(label)
114 d1.set("text", label);
115 r.appendChild(d1);
116
117 var d2 = new Element("td");
118 r.appendChild(d2);
119 d2.appendChild(e2);
120 return d1;
121 }
122
123 var nick = new Element("input");
124 createRow("Nickname:", nick);
125 var chan = new Element("input");
90b89aee 126 createRow("Channels:", chan);
66de775f
CP
127
128 var connbutton = new Element("input", {"type": "submit"});
129 connbutton.set("value", "Connect");
130 createRow(undefined, connbutton)
131
132 form.addEvent("submit", function(e) {
133 new Event(e).stop();
134 var nickname = nick.value;
135 var chans = chan.value;
136 if(chans == "#") /* sorry channel "#" :P */
137 chans = "";
138
139 if(!nickname) {
140 alert("You must supply a nickname.");
141 nick.focus();
142 return;
143 }
144
145 parentElement.removeChild(box);
146
147 callback({"nickname": nickname, "autojoin": chans});
148 }.bind(this));
149
150 nick.set("value", initialNickname);
151 chan.set("value", initialChannels);
152
153 nick.focus();
cad18909 154}