chat: Prevent user from submitting a 2nd message before his 1st is received.

Some users reported that mod/chat was silently dropping some messages. The
user's browser may not be able to keep up with the rate at which he submits
chat messages. This update keeps things sane.

Author: Donal McMullan <[email protected]>
This commit is contained in:
martinlanghoff
2006-07-12 02:28:37 +00:00
parent 7203acd306
commit 551d2b59bf
3 changed files with 21 additions and 5 deletions
+16 -4
View File
@@ -29,13 +29,25 @@
?>
<script type="text/javascript">
<!--
var waitFlag = false;
function empty_field_and_submit() {
document.sendForm.chat_message.value = document.inputForm.chat_message.value;
document.inputForm.chat_message.value = '';
if(waitFlag) return false;
waitFlag = true;
var input_chat_message = document.getElementById('input_chat_message');
document.sendForm.chat_message.value = input_chat_message.value;
input_chat_message.value = '';
input_chat_message.className = 'wait';
document.sendForm.submit();
document.inputForm.chat_message.focus();
return false;
}
function enableForm() {
var input_chat_message = document.getElementById('input_chat_message');
waitFlag = false;
input_chat_message.className = '';
input_chat_message.focus();
}
// -->
</script>
<?php
@@ -46,7 +58,7 @@
?>
<form action="../empty.php" method="POST" target="empty" name="inputForm"
OnSubmit="return empty_field_and_submit()">
&gt;&gt;<input type="text" name="chat_message" size="60" value="" />
&gt;&gt;<input type="text" id="input_chat_message" name="chat_message" size="60" value="" />
<?php helpbutton('chatting', get_string('helpchatting', 'chat'), 'chat', true, false); ?>
</form>
+1 -1
View File
@@ -58,7 +58,7 @@
if ($chatuser->version == 'header_js') {
/// force msg referesh ASAP
echo '<script type="text/javascript">parent.jsupdate.location.href = parent.jsupdate.document.anchors[0].href;</script>';
echo '<script type="text/javascript">parent.jsupdate.location.href = parent.jsupdate.document.anchors[0].href;parent.input.enableForm();</script>';
}
redirect('../empty.php');
+4
View File
@@ -709,6 +709,10 @@ table.message_search_results td {
color:#888
}
#mod-chat-gui_header_js-chatinput .wait {
background: #dddddd;
}
/***
*** Modules: Choice
***/