summaryrefslogtreecommitdiff
path: root/static/pichat.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/pichat.js')
-rwxr-xr-xstatic/pichat.js51
1 files changed, 44 insertions, 7 deletions
diff --git a/static/pichat.js b/static/pichat.js
index 8e8647e..d665e2b 100755
--- a/static/pichat.js
+++ b/static/pichat.js
@@ -1,6 +1,7 @@
// pichat.js
var Nick = null;
+var LoggedIn = false;
function handleMsgError(resp) {
var respText = resp.responseText ? resp.responseText.trim() : false;
@@ -49,6 +50,12 @@ function buildMessageDiv(msg) {
+ buildContent(msg.content) + '</div>';
}
+function setNick(nick) {
+ Nick = nick;
+ $('#nickspan').text(nick);
+ $('#welcomebar').show();
+}
+
function submitMessage() {
var content = $('#msgInput').val();
var msg = { 'nick': Nick, 'content': content, 'timestamp': new Date() };
@@ -64,8 +71,7 @@ function submitMessage() {
}
var onSuccess = function() {};
- var onError = function(resp, textStatus, errorThrown) {
-
+ var onError = function(resp, textStatus, errorThrown) {
handleMsgError(resp);
};
@@ -87,6 +93,33 @@ function ifEnter(fn) {
};
}
+function login() {
+ var nick = $('#nickInput').val();
+ var password = $('#passwordInput').val();
+ var hash = hex_sha1(nick + '$' + password + '$dumpfm');
+
+ var onSuccess = function(json) {
+ $('#loginbar').hide();
+ LoggedIn = true;
+ setNick(nick);
+ };
+
+ var onError = function(resp, textStatus, errorThrown) {
+ alert("Error logging in!");
+ };
+
+ $.ajax({
+ type: 'GET',
+ timeout: 5000,
+ url: 'login',
+ data: {'nick': nick, 'hash': hash },
+ cache: false,
+ dataType: 'json',
+ success: onSuccess,
+ error: onError
+ });
+};
+
function isScrolledToBottom(div) {
return Math.abs(div.scrollTop - (div.scrollHeight - div.offsetHeight)) <= 3;
}
@@ -126,15 +159,19 @@ function refresh() {
});
}
-
-
function init() {
var onSuccess = function(json) {
$('#loadingbox').hide();
Nick = json.nick;
- $('#nickspan').text(Nick);
- $('#welcomebar').show();
+ setNick(Nick);
+ if (json.loggedin) {
+ LoggedIn = true;
+ } else {
+ $('#loginbar').show();
+ $('#loginSubmit').click(login);
+ $('#passwordInput').keyup(ifEnter(login));
+ }
var msgStr = $.map(json.messages, buildMessageDiv).join('');
$('#messageList').append(msgStr);
@@ -148,7 +185,7 @@ function init() {
var onError = function(resp, textStatus, errorThrown) {
alert("Error connecting to chat server!");
- };
+ };
$.ajax({
type: 'GET',