]>
Commit | Line | Data |
---|---|---|
e20e5a6b | 1 | qwebirc.ui.Interface = new Class({ |
d65fe45f CP |
2 | Implements: [Options], |
3 | options: { | |
4 | initialNickname: "qwebirc" + Math.ceil(Math.random() * 100000), | |
5 | initialChannels: "", | |
66de775f | 6 | searchURL: true, |
d65fe45f CP |
7 | theme: undefined |
8 | }, | |
9 | initialize: function(element, ui, options) { | |
10 | this.setOptions(options); | |
11 | ||
12 | window.addEvent("domready", function() { | |
e20e5a6b | 13 | var ui_ = new ui($(element), new qwebirc.ui.Theme(this.options.theme)); |
66de775f CP |
14 | var inick = this.options.initialNickname; |
15 | var ichans = this.options.initialChannels; | |
16 | var autoNick = true; | |
17 | ||
18 | var callback = function(options) { | |
e20e5a6b | 19 | var IRC = new qwebirc.irc.IRCClient(options, ui_); |
d65fe45f CP |
20 | IRC.connect(); |
21 | window.addEvent("beforeunload", function() { | |
22 | IRC.quit("Page closed"); | |
23 | }); | |
66de775f CP |
24 | }; |
25 | ||
26 | var supplied = false; | |
27 | if(this.options.searchURL) { | |
e20e5a6b | 28 | var args = qwebirc.util.parseURI(String(document.location)); |
66de775f CP |
29 | |
30 | var chans = args["channels"]; | |
31 | var nick = args["nick"]; | |
32 | ||
33 | if(chans) { | |
290c60db CP |
34 | var cdata = chans.split(" "); |
35 | ||
36 | chans = cdata[0].split(","); | |
66de775f CP |
37 | var chans2 = []; |
38 | ||
39 | for(i=0;i<chans.length;i++) { | |
40 | chans2[i] = chans[i]; | |
41 | ||
42 | if(chans[i].charAt(0) != '#') | |
43 | chans2[i] = "#" + chans2[i] | |
44 | } | |
290c60db CP |
45 | cdata[0] = chans2.join(","); |
46 | ichans = cdata.join(" "); | |
66de775f CP |
47 | supplied = true; |
48 | } | |
49 | ||
bede573a | 50 | if($defined(nick)) { |
66de775f CP |
51 | inick = nick; |
52 | autoNick = false; | |
53 | } | |
bede573a CP |
54 | |
55 | if(supplied && args["prompt"]) | |
56 | supplied = false; | |
66de775f | 57 | } |
bede573a | 58 | |
66de775f | 59 | var details = ui_.loginBox(callback, inick, ichans, supplied, autoNick); |
d65fe45f CP |
60 | }.bind(this)); |
61 | } | |
62 | }); |