From: yomguy Date: Thu, 12 Apr 2012 22:23:47 +0000 (+0200) Subject: fix CSRF token parse, fix l10n time X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=639dd1e43bc4c7f7dea71704113ea8d1a030b8b5;p=django-jqchat.git fix CSRF token parse, fix l10n time --- diff --git a/jqchat/static/jqchat.js b/jqchat/static/jqchat.js deleted file mode 100644 index 0bba288..0000000 --- a/jqchat/static/jqchat.js +++ /dev/null @@ -1,133 +0,0 @@ -// Chat client code. - - -// Keep track of the last message received (to avoid receiving the same message several times). -// This global variable is updated every time a new message is received. -var timestamp = 0; - -// URL to contact to get updates. -var url = null; - -// How often to call updates (in milliseconds) -var CallInterval = 8000; -// ID of the function called at regular intervals. -var IntervalID = 0; - -// A callback function to be called to further process each response. -var prCallback = null; - -function callServer(){ - // At each call to the server we pass data. - $.get(url, // the url to call. - {time: timestamp}, // the data to send in the GET request. - function(payload) { // callback function to be called after the GET is completed. - processResponse(payload); - }, - 'json'); - }; - -function processResponse(payload) { - // if no new messages, return. - if(payload.status == 0) return; - // Get the timestamp, store it in global variable to be passed to the server on next call. - timestamp = payload.time; - for(message in payload.messages) { - $("#chatwindow").append(payload.messages[message].text); - } - // Scroll down if messages fill up the div. - var objDiv = document.getElementById("chatwindow"); - objDiv.scrollTop = objDiv.scrollHeight; - - // Handle custom data (data other than messages). - // This is only called if a callback function has been specified. - if(prCallback != null) prCallback(payload); -} - -function InitChatWindow(ChatMessagesUrl, ProcessResponseCallback){ -/** The args to provide are: - - the URL to call for AJAX calls. - - A callback function that handles any data in the JSON payload other than the basic messages. - For example, it is used in the example below to handle changes to the room's description. */ - - $("#loading").remove(); // Remove the dummy 'loading' message. - - // Push the calling args into global variables so that they can be accessed from any function. - url = ChatMessagesUrl; - prCallback = ProcessResponseCallback; - - // Read new messages from the server every X milliseconds. - IntervalID = setInterval(callServer, CallInterval); - - // The above will trigger the first call only after X milliseconds; so we - // manually trigger an immediate call. - callServer(); - - // Process messages input by the user & send them to the server. - $("form#chatform").submit(function(){ - // If user clicks to send a message on a empty message box, then don't do anything. - if($("#msg").val() == "") return false; - - // We don't want to post a call at the same time as the regular message update call, - // so cancel that first. - clearInterval(IntervalID); - - $.post(url, - { - time: timestamp, - action: "postmsg", - message: $("#msg").val() - }, - function(payload) { - $("#msg").val(""); // clean out contents of input field. - // Calls to the server always return the latest messages, so display them. - processResponse(payload); - }, - 'json' - ); - - // Start calling the server again at regular intervals. - IntervalID = setInterval(callServer, CallInterval); - - return false; - }); - - -} // End InitChatWindow - -/** This code below is an example of how to extend the chat system. - * It's used in the second example chat window and allows us to manage a user-updatable - * description field. - * */ - -// Callback function, processes extra data sent in server responses. -function HandleRoomDescription(payload) { - $("#chatroom_description").text(payload.description); -} - -function InitChatDescription(){ - - $("form#chatroom_description_form").submit(function(){ - // If user clicks to send a message on a empty message box, then don't do anything. - if($("#id_description").val() == "") return false; - // We don't want to post a call at the same time as the regular message update call, - // so cancel that first. - clearInterval(IntervalID); - $.post(url, - { - time: timestamp, - action: "change_description", - description: $("#id_description").val() - }, - function(payload) { - $("#id_description").val(""); // clean out contents of input field. - // Calls to the server always return the latest messages, so display them. - processResponse(payload); - }, - 'json' - ); - // Start calling the server again at regular intervals. - IntervalID = setInterval(callServer, CallInterval); - return false; - }); - -} \ No newline at end of file diff --git a/jqchat/templates/jqchat/chat_payload.json b/jqchat/templates/jqchat/chat_payload.json index 13add89..290461f 100644 --- a/jqchat/templates/jqchat/chat_payload.json +++ b/jqchat/templates/jqchat/chat_payload.json @@ -1,7 +1,9 @@ {% load timezone_filters %} +{% load l10n %} + { "status": {{ StatusCode }}, - "time": {{ current_unix_timestamp }}, + "time": {% localize off %}{{ current_unix_timestamp }}{% endlocalize %}, {% if NewDescription %} "description": {{ NewDescription }},{% endif %} "messages": [ {% for row in NewMessages %}{# The localtime filter is part of Django timezone and adjusts a datetime to the given timezone #}