diff options
| -rwxr-xr-x | static/js/pichat.js | 20 | ||||
| -rwxr-xr-x | template/chat.st | 1 |
2 files changed, 7 insertions, 14 deletions
diff --git a/static/js/pichat.js b/static/js/pichat.js index df79c17..20d3928 100755 --- a/static/js/pichat.js +++ b/static/js/pichat.js @@ -1,4 +1,5 @@ var cache = {} +var pendingMessages = {} function escapeHtml(txt) { if (!txt) { return ""; } @@ -24,17 +25,13 @@ function buildMsgContent(content) { return linkify(content) } -var SpinnerImage = '<img class="spinner" src="/static/spinner.gif" />'; - function buildMessageDiv(msg, isLoading) { var nick = escapeHtml(msg.nick); var msgId = !isLoading ? 'id="message-' + msg.message_id + '"' : ''; - var spinnerHtml = isLoading ? SpinnerImage : ''; var loadingClass = isLoading ? ' loading' : ''; return '<div class="msgDiv ' + loadingClass + '" ' + msgId + '>' + '<b><a href="/u/' + nick + ' ">' + nick + '</a>: </b>' + buildMsgContent(msg.content) - + spinnerHtml + '</div>'; } @@ -80,9 +77,9 @@ function handleMsgError(resp) { function submitMessage() { var content = $.trim($('#msgInput').val()); - if (content == '') { return; } - PostedMessages.push(content); $('#msgInput').val(''); + if (content == '') { return; } + pendingMessages[content] = true; var msg = { 'nick': Nick, 'content': content }; var div = addNewMessage(msg, true); @@ -90,7 +87,6 @@ function submitMessage() { var onSuccess = function(json) { div.attr('id', 'message-' + json) .removeClass('loading').addClass('loaded'); - div.find('.spinner').remove(); }; var onError = function(resp, textStatus, errorThrown) { div.remove(); @@ -164,15 +160,13 @@ function updateUI(msgs, users) { } } -// A duplicate message is a message that was likely to have -// originated from this browser. -// TODO: replace w/ msg_id checks. function isDuplicateMessage(m) { - if (m.nick != Nick || $.inArray(m.content, PostedMessages) == -1) { + if (m.nick == Nick && m.content in pendingMessages) { + delete pendingMessages[m.content]; + return true; + } else { return false; } - var now = new Date().getTime(); - return m.created_on - now < 5000; } function refresh() { diff --git a/template/chat.st b/template/chat.st index 7c723d7..7fbc29e 100755 --- a/template/chat.st +++ b/template/chat.st @@ -8,7 +8,6 @@ var Nick = $json_user_nick$; var Room = $json_room_key$; var Timestamp = $timestamp$; - var PostedMessages = []; $if(isadmin)$ var IsAdmin = true; $else$ |
