60 lines
1.2 KiB
JavaScript
60 lines
1.2 KiB
JavaScript
|
var app = new Vue({
|
||
|
el: '#wrapper',
|
||
|
data: {
|
||
|
hit: {}
|
||
|
},
|
||
|
})
|
||
|
|
||
|
|
||
|
var hits = {};
|
||
|
var hitIds = [];
|
||
|
|
||
|
// fetch ?all in database
|
||
|
let ws = new ReconnectingWebSocket('ws://localhost:8888/status/ws?all')
|
||
|
|
||
|
|
||
|
ws.addEventListener('open', () => {
|
||
|
// ws.send('hi server')
|
||
|
})
|
||
|
|
||
|
ws.addEventListener('message', (event) => {
|
||
|
console.log('message: ')
|
||
|
|
||
|
let load_hits = JSON.parse(event.data)
|
||
|
for(let hit of load_hits) {
|
||
|
console.log(hit);
|
||
|
hits[hit.id] = hit;
|
||
|
if(hit.scanned_at && hitIds.indexOf(hit.id) < 0){
|
||
|
// only add if indeed scanned
|
||
|
hitIds.push(hit.id);
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
var currentI = 0;
|
||
|
setInterval(function(e){
|
||
|
if(hitIds.length < 1) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
currentI = (currentI + 1) % hitIds.length;
|
||
|
let currentHitId = hitIds[currentI];
|
||
|
console.log(currentHitId);
|
||
|
let hit = hits[currentHitId];
|
||
|
hit['visible'] = false;
|
||
|
app.hit['visible'] = false;
|
||
|
setTimeout(() => {
|
||
|
app.hit = hits[currentHitId]
|
||
|
}, 1000);
|
||
|
setTimeout(() => {
|
||
|
app.hit['visible'] = true;
|
||
|
let wrapperEl = document.getElementById("collaborators");
|
||
|
let innerEl = document.getElementById("collab_items");
|
||
|
let size = 100;
|
||
|
do {
|
||
|
innerEl.style.fontSize = size + "%";
|
||
|
size --;
|
||
|
} while(innerEl.clientHeight > wrapperEl.clientHeight && size > 10);
|
||
|
}, 1100);
|
||
|
|
||
|
}, 4000);
|