60 lines
No EOL
1.2 KiB
JavaScript
60 lines
No EOL
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); |