summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xstatic/js/pichat.js20
-rwxr-xr-xtemplate/chat.st1
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$