paprika-0.1.0.1: static/cutter/viewer.js
window.addEventListener( 'load', function(event){
var thresholds = new Array(5,10,20,40,80,100,120,140);
var ws = new WebSocket('ws://' + window.location.host + '/viewer');
var current_threshold = 10;
document.getElementById('title').style.background = '#FF0000';
ws.onopen = function() {
document.getElementById('title').style.background = '#00FF00';
};
ws.onclose = function(event) {
document.getElementById('title').style.background = '#FF0000';
};
ws.onmessage = function(event) {
console.log('onmessage: ' + event.data);
var json = JSON.parse(event.data);
if(json.type === 'freq') {
var lc = json.content.left;
var rc = json.content.right;
document.getElementById('left-counts').innerHTML = lc + ' taps';
document.getElementById('right-counts').innerHTML = rc + ' taps';
if( current_threshold <= lc ){
document.getElementById('left-hist').style.height = '100%';
document.getElementById('left-hist').style.background = '#00FF00';
}else{
var h = Math.floor((lc / current_threshold) * 100);
console.log(h);
document.getElementById('left-hist').style.height = h + '%';
document.getElementById('left-hist').style.background = '#FF0000';
}
if( current_threshold <= rc ){
document.getElementById('right-hist').style.height = '100%';
document.getElementById('right-hist').style.background = '#00FF00';
}else{
var h = Math.floor((rc / current_threshold) * 100);
console.log(h);
document.getElementById('right-hist').style.height = h + '%';
document.getElementById('right-hist').style.background = '#FF0000';
}
} else if(json.type === 'members') {
document.getElementById('left-members').innerHTML = json.content.left + ' members';
document.getElementById('right-members').innerHTML = json.content.right + ' members';
} else if(json.type === 'threshold') {
current_threshold = json.content;
for(var i = 0; i < thresholds.length; i++) {
var thr = thresholds[i];
var elem = document.getElementById('threshold-' + thr);
if(thr === json.content){
elem.style.background = '#FF9090';
}else{
elem.style.background = '';
}
}
}
};
function clickHandlerGen(thr){
var handler = function(event) {
ws.send(thr);
}
return handler;
}
for(var i = 0; i < thresholds.length; i++) {
var thr = thresholds[i];
document.getElementById('threshold-' + thr).addEventListener('click', clickHandlerGen(thr));
}
}, false );