mirror of
https://github.com/schollz/cowyo.git
synced 2023-08-10 21:13:00 +03:00
Major additions. Only updates if has changes
Former-commit-id: 3e0a208c0264f303cefaaa1ff38dcabc2de368a7 [formerly 404c1e940d33da42a5b8178fe769227e3b2c7f70] [formerly 179ebb2430889ecf0d2d6f48c647ff3391030983 [formerly 21a35c52830eb630d30bbf61d27972c8287839e0 [formerlya6d89e5585
]]] Former-commit-id: d8e2f5594b62ab4f1f0a64688d808258bf08ebf4 [formerly a850ea2f7ececc9ac74b1eebcf06e3a4a520828a] Former-commit-id: 607f80005f5126ea4012e99bd15fdd312525607c Former-commit-id:d1c4a0b1f3
This commit is contained in:
60
static/js/cowyo.js
Executable file
60
static/js/cowyo.js
Executable file
@@ -0,0 +1,60 @@
|
||||
$(document).ready(function() {
|
||||
var isTyping = false;
|
||||
var typingTimer; //timer identifier
|
||||
var updateInterval;
|
||||
var doneTypingInterval = 1000; //time in ms, 5 second for example
|
||||
|
||||
//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, doneTypingInterval);
|
||||
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, doneTypingInterval);
|
||||
}
|
||||
});
|
Reference in New Issue
Block a user