1
0
mirror of https://github.com/schollz/cowyo.git synced 2023-08-10 21:13:00 +03:00
cowyo/static/js/cowyo.js
Zack Scholl 1bbf430c5f Fixed folders for static
Former-commit-id: 4d35a63d79a2559b84942c367fe2661d3aa4c05c [formerly 854233d77cd5b2899730073ae2df31e376f62105] [formerly 4f6395b69f9cefc5ab2d0963116fd0404b9c93f5 [formerly 6c32d08c5d]]
Former-commit-id: c799a74322aed4d6a2c884c0fff88a7b690cfba7 [formerly 791f7519e3541687550db65fd8ff30ae7905dbe6]
Former-commit-id: 48b7406f6996921787a4ee34f7394414fa928014
2016-02-08 10:10:48 -05:00

61 lines
1.8 KiB
JavaScript

$(document).ready(function() {
var isTyping = false;
var typingTimer; //timer identifier
var updateInterval;
var doneTypingInterval = 500; //time in ms, 5 second for example
var pollToGetNewestCopyInterval = 10000;
//on keyup, start the countdown
$('#emit').keyup(function() {
clearTimeout(typingTimer);
clearInterval(updateInterval);
typingTimer = setTimeout(doneTyping, doneTypingInterval);
});
//on keydown, clear the countdown
$('#emit').keydown(function() {
clearTimeout(typingTimer);
clearInterval(updateInterval);
document.title = "[UNSAVED] " + title_name;
});
//user is "finished typing," do something
function doneTyping() {
payload = JSON.stringify({ TextData: $('#emit_data').val(), Title: title_name, UpdateServer: true, UpdateClient: false })
send(payload)
console.log("Done typing")
updateInterval = setInterval(updateText, pollToGetNewestCopyInterval);
document.title = "[SAVED] " + title_name;
}
function updateText() {
console.log("Getting server's latest copy")
payload = JSON.stringify({ TextData: $('#emit_data').val(), Title: title_name, UpdateServer: false, UpdateClient: true })
send(payload)
}
// websockets
url = 'ws://'+external_ip+'/ws';
c = new WebSocket(url);
send = function(data){
console.log("Sending: " + data)
c.send(data)
}
c.onmessage = function(msg){
console.log(msg)
data = JSON.parse(msg.data);
if (data.UpdateClient == true) {
console.log("Updating...")
$('#emit_data').val(data.TextData)
document.title = "[LOADED] " + title_name;
}
console.log(data)
}
c.onopen = function(){
// updateText();
updateInterval = setInterval(updateText, pollToGetNewestCopyInterval);
}
});