2011-05-18 06:14:02 +00:00
|
|
|
// Copyright 2009 FriendFeed
|
|
|
|
//
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
|
|
// not use this file except in compliance with the License. You may obtain
|
|
|
|
// a copy of the License at
|
|
|
|
//
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
//
|
|
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
|
|
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
|
|
// License for the specific language governing permissions and limitations
|
|
|
|
// under the License.
|
|
|
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
if (!window.console) window.console = {};
|
|
|
|
if (!window.console.log) window.console.log = function() {};
|
|
|
|
|
|
|
|
$("#messageform").live("submit", function() {
|
|
|
|
newMessage($(this));
|
|
|
|
return false;
|
|
|
|
});
|
|
|
|
$("#messageform").live("keypress", function(e) {
|
|
|
|
if (e.keyCode == 13) {
|
|
|
|
newMessage($(this));
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$("#message").select();
|
|
|
|
updater.start();
|
|
|
|
});
|
|
|
|
|
|
|
|
function newMessage(form) {
|
|
|
|
var message = form.formToDict();
|
|
|
|
updater.socket.send(JSON.stringify(message));
|
|
|
|
form.find("input[type=text]").val("").select();
|
|
|
|
}
|
|
|
|
|
|
|
|
jQuery.fn.formToDict = function() {
|
|
|
|
var fields = this.serializeArray();
|
|
|
|
var json = {}
|
|
|
|
for (var i = 0; i < fields.length; i++) {
|
|
|
|
json[fields[i].name] = fields[i].value;
|
|
|
|
}
|
|
|
|
if (json.next) delete json.next;
|
|
|
|
return json;
|
|
|
|
};
|
|
|
|
|
|
|
|
var updater = {
|
|
|
|
socket: null,
|
|
|
|
|
|
|
|
start: function() {
|
2012-01-22 01:39:37 +00:00
|
|
|
var url = "ws://" + location.host + "/chatsocket";
|
2013-04-21 18:30:23 +00:00
|
|
|
updater.socket = new WebSocket(url);
|
2011-05-18 06:14:02 +00:00
|
|
|
updater.socket.onmessage = function(event) {
|
|
|
|
updater.showMessage(JSON.parse(event.data));
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
showMessage: function(message) {
|
|
|
|
var existing = $("#m" + message.id);
|
|
|
|
if (existing.length > 0) return;
|
|
|
|
var node = $(message.html);
|
|
|
|
node.hide();
|
|
|
|
$("#inbox").append(node);
|
|
|
|
node.slideDown();
|
|
|
|
}
|
|
|
|
};
|