del /q compiled\*.js\r
\r
cd js\r
-copy version.js + jslib.js + irc\ircconnection.js + irc\irclib.js + irc\baseirc.js + irc\irctracker.js + irc\commandparser.js + irc\ircclient.js + ui\baseui.js + ui\colour.js + ui\theme.js ..\compiled\qwebirc-concat.js /b\r
+copy version.js + jslib.js + irc\ircconnection.js + irc\irclib.js + irc\baseirc.js + irc\irctracker.js + irc\commandparser.js + irc\ircclient.js + ui\baseui.js + ui\colour.js + ui\theme.js + qwebircinterface.js ..\compiled\qwebirc-concat.js /b\r
copy ui\swmlayout.js + ui\swmui.js ..\compiled\swmui-concat.js /b\r
cd ..\compiled\r
\r
rm -f compiled/*.js
cd js
-cat version.js jslib.js irc/ircconnection.js irc/irclib.js irc/baseirc.js irc/irctracker.js irc/commandparser.js irc/ircclient.js ui/baseui.js ui/colour.js ui/theme.js > ../compiled/qwebirc-concat.js
+cat version.js jslib.js irc/ircconnection.js irc/irclib.js irc/baseirc.js irc/irctracker.js irc/commandparser.js irc/ircclient.js ui/baseui.js ui/colour.js ui/theme.js qwebircinterface.js > ../compiled/qwebirc-concat.js
cat ui/swmlayout.js ui/swmui.js > ../compiled/swmui-concat.js
cd ../compiled
},
serverError: function(message) {
this.newServerLine("ERROR", {"m": message});
+ },
+ quit: function(message) {
+ this.send("QUIT :" + message);
+ this.disconnect();
}
});
--- /dev/null
+var QWebIRCInterface = new Class({
+ Implements: [Options],
+ options: {
+ initialNickname: "qwebirc" + Math.ceil(Math.random() * 100000),
+ initialChannels: "",
+ searchURL: false,
+ theme: undefined
+ },
+ initialize: function(element, ui, options) {
+ this.setOptions(options);
+
+ window.addEvent("domready", function() {
+ var ui_ = new ui($(element), new Theme(this.options.theme));
+
+ if(this.options.searchURL) {
+ /* TODO: look at URI and detect nickname/channels... */
+ }
+
+ var details = ui_.loginBox(function(options) {
+ var IRC = new IRCClient(options, ui_);
+ IRC.connect();
+ window.addEvent("beforeunload", function() {
+ IRC.quit("Page closed");
+ });
+ }, this.options.initialNickname, this.options.initialChannels);
+ }.bind(this));
+ }
+});
delete this.windows[window.client][window.identifier];
},
- loginBox: function(callback) {
+ loginBox: function(callback, initialNickname, initialChannels) {
/*
this shouldn't be called by overriding classes!
some form of user input MUST be received before an
tricked into getting themselves glined
*/
- var nick = prompt("Nickname:");
+ var nick = prompt("Nickname:", initialNickname);
if(!nick) {
alert("Aborted.");
return;
}
- var chans = prompt("Channels (seperate by comma):", "#quakenetX");
+ var chans = prompt("Channels (seperate by comma):", initialChannels);
callback({"nickname": nick, "autojoin": chans});
}
});
resize: function() {
window.fireEvent("resize");
},
- loginBox: function(callback) {
+ loginBox: function(callback, initialNickname, initialChannels) {
var box = new Element("div");
var header = new Element("h1");
new Event(e).stop();
var nickname = nick.value;
var chans = chan.value;
+ if(chans == "#") /* sorry channel "#" :P */
+ chans = "";
+
if(!nickname) {
alert("You must supply a nickname.");
nick.focus();
box.appendChild(form);
this.parentElement.appendChild(box);
- nick.set("value", "qwebirc" + Math.ceil(Math.random() * 1000));
- chan.set("value", "#");
+ nick.set("value", initialNickname);
+ chan.set("value", initialChannels);
nick.focus();
}
var e = new Element("div");
if(colour) {
- e.addStyle("background", colour);
+ e.setStyles({"background": colour});
} else if(this.lastcolour) {
e.addClass("linestyle1");
} else {
form.appendChild(inputbox);
inputbox.focus();
},
- loginBox: function(callbackfn) {
+ loginBox: function(callbackfn, intialNickname, initialChannels) {
this.parent(function(options) {
this.postInitialize();
callbackfn(options);
- }.bind(this));
+ }.bind(this), intialNickname, initialChannels);
}
});
from twisted.web import resource, server, static
class RootResource(resource.Resource):
- isLeaf = True
- def render_GET(self, request):
- return "moo"
-
+ def getChild(self, name, request):
+ if name == "":
+ name = "swmui.html"
+ return self.primaryChild.getChild(name, request)
+
class RootSite(server.Site):
def __init__(self, path, *args, **kwargs):
- root = resource.Resource()
+ root = RootResource()
server.Site.__init__(self, root, *args, **kwargs)
-
- root.putChild("", RootResource())
+
+ root.primaryChild = static.File(path)
root.putChild("e", AJAXEngine("/e"))
- root.putChild("static", static.File(path))
<html>
<body>
- <iframe src="swmui.html" height="600" width="600"/>
+ <iframe src="/" height="600" width="600"/>
</body>
-</html>
\ No newline at end of file
+</html>
<link rel="stylesheet" href="css/colours.css" type="text/css">
<link rel="stylesheet" href="css/swmui.css" type="text/css">
<script type="text/javascript" src="js/mootools-1.2-core.js"></script>
- <!--<script type="text/javascript" src="js/debug/version.js"></script>
- <script type="text/javascript" src="js/debug/jslib.js"></script>
- <script type="text/javascript" src="js/debug/irc/ircconnection.js"></script>
- <script type="text/javascript" src="js/debug/irc/irclib.js"></script>
- <script type="text/javascript" src="js/debug/irc/baseirc.js"></script>
- <script type="text/javascript" src="js/debug/irc/irctracker.js"></script>
- <script type="text/javascript" src="js/debug/irc/commandparser.js"></script>
- <script type="text/javascript" src="js/debug/irc/ircclient.js"></script>
- <script type="text/javascript" src="js/debug/ui/baseui.js"></script>
- <script type="text/javascript" src="js/debug/ui/colour.js"></script>
- <script type="text/javascript" src="js/debug/ui/theme.js"></script>
- <script type="text/javascript" src="js/debug/ui/swmlayout.js"></script>
- <script type="text/javascript" src="js/debug/ui/swmui.js"></script>-->
<script type="text/javascript" src="js/qwebirc.js"></script>
<script type="text/javascript" src="js/swmui.js"></script>
- <script type="text/javascript">
- window.addEvent("domready", function() {
- var theme = new Theme();
- var ui = new SWMUI($("ircui"), theme);
-
- /* TODO: look at URI and detect nickname/channels... */
-
- var details = ui.loginBox(function(options) {
- var IRC = new IRCClient(options, ui);
- IRC.connect();
- });
- });
+ <script type="text/javascript">
+ new QWebIRCInterface("ircui", SWMUI);
</script>
</head>
<body>
<script type="text/javascript" src="js/debug/ui/theme.js"></script>
<script type="text/javascript" src="js/debug/ui/swmlayout.js"></script>
<script type="text/javascript" src="js/debug/ui/swmui.js"></script>
- <!--<script type="text/javascript" src="js/qwebirc.js"></script>
- <script type="text/javascript" src="js/swmui.js"></script>-->
- <script type="text/javascript">
- window.addEvent("domready", function() {
- var theme = new Theme();
- var ui = new SWMUI($("ircui"), theme);
-
- /* TODO: look at URI and detect nickname/channels... */
-
- var details = ui.loginBox(function(options) {
- var IRC = new IRCClient(options, ui);
- IRC.connect();
- });
- });
+ <script type="text/javascript" src="js/debug/qwebircinterface.js"></script>
+ <script type="text/javascript">
+ new QWebIRCInterface("ircui", SWMUI);
</script>
</head>
<body>
<link rel="stylesheet" href="css/colours.css" type="text/css">
<link rel="stylesheet" href="css/uglyui.css" type="text/css">
<script type="text/javascript" src="js/mootools-1.2-core.js"></script>
- <!--<script type="text/javascript" src="js/debug/version.js"></script>
- <script type="text/javascript" src="js/debug/jslib.js"></script>
- <script type="text/javascript" src="js/debug/irc/ircconnection.js"></script>
- <script type="text/javascript" src="js/debug/irc/irclib.js"></script>
- <script type="text/javascript" src="js/debug/irc/baseirc.js"></script>
- <script type="text/javascript" src="js/debug/irc/irctracker.js"></script>
- <script type="text/javascript" src="js/debug/irc/commandparser.js"></script>
- <script type="text/javascript" src="js/debug/irc/ircclient.js"></script>
- <script type="text/javascript" src="js/debug/ui/baseui.js"></script>
- <script type="text/javascript" src="js/debug/ui/colour.js"></script>
- <script type="text/javascript" src="js/debug/ui/theme.js"></script>
- <script type="text/javascript" src="js/debug/ui/uglyui.js"></script>-->
<script type="text/javascript" src="js/qwebirc.js"></script>
<script type="text/javascript" src="js/uglyui.js"></script>
- <script type="text/javascript">
- window.addEvent("domready", function() {
- var theme = new Theme();
- var ui = new UglyUI($("ircui"), theme);
-
- /* TODO: look at URI and detect nickname/channels... */
-
- var details = ui.loginBox(function(options) {
- var IRC = new IRCClient(options, ui);
- IRC.connect();
- });
- });
+ <script type="text/javascript">
+ new QWebIRCInterface("ircui", UglyUI);
</script>
</head>
<body>
<script type="text/javascript" src="js/debug/ui/colour.js"></script>
<script type="text/javascript" src="js/debug/ui/theme.js"></script>
<script type="text/javascript" src="js/debug/ui/uglyui.js"></script>
- <!--<script type="text/javascript" src="js/qwebirc.js"></script>
- <script type="text/javascript" src="js/uglyui.js"></script>-->
- <script type="text/javascript">
- window.addEvent("domready", function() {
- var theme = new Theme();
- var ui = new UglyUI($("ircui"), theme);
-
- /* TODO: look at URI and detect nickname/channels... */
-
- var details = ui.loginBox(function(options) {
- var IRC = new IRCClient(options, ui);
- IRC.connect();
- });
- });
+ <script type="text/javascript" src="js/debug/qwebircinterface.js"></script>
+ <script type="text/javascript">
+ new QWebIRCInterface("ircui", UglyUI);
</script>
</head>
<body>