+var preloaded = false;
+
function imageRefresh(id) {
img = document.getElementById(id);
var d = new Date;
var websocket = startWebsocket();
-//if (window.obssstudio) {
-//}
-
var prev = document.querySelector('#prev'),
next = document.querySelector('#next'),
first = document.querySelector('#first'),
current = document.querySelector('#current'),
total = document.querySelector('#total'),
users = document.querySelector('.users'),
- prev_img = document.querySelector('#prev_img'),
+ current_img = document.querySelector('#current_img'),
next_img = document.querySelector('#next_img'),
current_div = document.querySelector('#current_div'),
next_div = document.querySelector('#next_div'),
+ controls_container = document.querySelector('#controls_container'),
+ controls_container_inner = document.querySelector('#controls_container_inner'),
show_current = document.querySelector('#show_current'),
- show_next = document.querySelector('#show_next');
+ show_next = document.querySelector('#show_next'),
+ shortcuts = document.querySelector('#shortcuts');
prev.onclick = function (event) {
websocket.send(JSON.stringify({action: 'prev'}));
if (e.which == 13) this.blur();
});
+current_img.onclick = function (event) {
+ next.click()
+}
+
+next_img.onclick = function (event) {
+ next.click()
+}
+
+
function sync_current() {
- console.log("State of current checkbox changed");
if (show_current.checked) {
current_div.style.display = "block";
slide_label.style.display = "none";
next_div.style.width = "25%";
} else {
current_div.style.display = "none";
- slide_label.style.display = "block";
- next_div.style.width = "95%";
+ slide_label.style.display = "inline";
+ next_div.style.width = "calc(100% - 20px)";
}
+ set_control_width();
saveSettings();
}
show_current.onclick = sync_current;
function sync_next() {
- console.log("State of next checkbox changed");
if (show_next.checked) {
next_div.style.display = "block";
current_div.style.width = "70%";
} else {
next_div.style.display = "none";
- current_div.style.width = "95%";
+ current_div.style.width = "calc(100% - 20px)";
}
+ set_control_width();
saveSettings();
}
show_next.onclick = sync_next;
+function set_control_width() {
+ var width = window.innerWidth
+ || document.documentElement.clientWidth
+ || document.body.clientWidth;
+ if (show_current.checked && show_next.checked && width > 800) {
+ controls_container_inner.style.width = "70%"
+ } else {
+ controls_container_inner.style.width = "100%"
+ }
+}
+
+
+document.addEventListener('keydown', function (e) {
+ if (shortcuts.checked) {
+ switch (e.key) {
+ case "Left":
+ case "ArrowLeft":
+ case "Up":
+ case "ArrowUp":
+ case "k":
+ case "K":
+ prev.click();
+ break;
+ case " ":
+ case "Spacebar":
+ case "Enter":
+ case "Right":
+ case "ArrowRight":
+ case "Down":
+ case "ArrowDown":
+ case "j":
+ case "J":
+ next.click();
+ break;
+ case "b":
+ case "B":
+ black.click();
+ case "w":
+ case "W":
+ white.click();
+ default:
+ return
+ }
+ }
+});
+
websocket.onmessage = function (event) {
data = JSON.parse(event.data);
switch (data.type) {
current_img.src = "/white.jpg";
break;
default:
- current_img.src = "/cache/" + data.current + ".jpg?t=" + d.getTime();
+ //current_img.src = "/cache/" + data.current + ".jpg?t=" + d.getTime();
+ current_img.src = "/cache/" + data.current + ".jpg";
break;
}
if (data.current == data.total + 1) {
current.value = data.current;
}
total.textContent = data.total;
+ document.title = data.name;
break;
case 'users':
users.textContent = (
console.error(
"unsupported event", data);
}
+ if (!preloaded) {
+ var i = 0
+ var preload = [];
+ for (let i=1; i<=Number(total.textContent); i++) {
+ image = new Image();
+ image.src = "/cache/" + i + ".jpg";
+ preload.push(image);
+ console.log("Preloaded image " + i);
+ }
+ preloaded = true;
+ }
+
};
var interval = setInterval(refresh, 5000);
function refresh() {
websocket.send(JSON.stringify({action: 'refresh'}));
}
+