Files
clever-show/Server/static/js/main.js
2019-08-29 16:36:09 +03:00

118 lines
2.8 KiB
JavaScript

let spinner = document.getElementById('spinner');
var tabledata = [];
var delay = 0;
updateData();
updateDelay();
function updateDelay() {
let req = new XMLHttpRequest();
req.open('POST', '/get/delay', false);
req.send();
delay = parseInt(req.response);
document.getElementById('delay').innerText = 'Set time (now is ' + delay.toString() + ')';
}
function setDelay(delay) {
let req = new XMLHttpRequest();
req.open('POST', '/set/delay?delay=' + delay.toString(), false);
req.send();
}
function updateData() {
let req = new XMLHttpRequest();
req.open('POST', '/selfcheck/all', false);
req.send();
tabledata = JSON.parse(req.response);
}
var table = new Tabulator("#copters-table", {
data: tabledata,
reactiveData: true,
selectable: true,
layout: "fitColumns",
columns: [
{title: "Name", field: "name"},
{title: "Animation id", field: "anim_id"},
{title: "Batt voltage", field: "batt_voltage"},
{title: "Cell voltage", field: "cell_voltage"},
{title: "Selfcheck", field: "selfcheck"},
{title: "Time delta", field: "time"},
],
});
function refreshRows(selectedRows) {
spinner.style.display = 'inline-block';
setTimeout(function () {
selectedRows.forEach(function (element) {
let req = new XMLHttpRequest();
req.open('POST', '/selfcheck/selected?ip=' + element._row.data.ip, false);
req.send();
element.deselect();
let response = JSON.parse(req.response);
Object.keys(response).forEach(function (item) {
element._row.data[item] = response[item];
});
});
spinner.style.display = 'none';
}, 20);
}
function refreshSelected() {
refreshRows(table.getSelectedRows());
}
function refreshAll() {
refreshRows(table.getRows());
}
function selectAll() {
table.getRows().forEach(function (element) {
element.select();
});
}
function deselectAll() {
table.getRows().forEach(function (element) {
element.deselect();
});
}
function testLedSelected() {
spinner.style.display = 'inline-block';
setTimeout(function () {
table.getSelectedRows().forEach(function (element) {
let req = new XMLHttpRequest();
req.open('POST', '/test_led/selected?ip=' + element._row.data.ip);
req.send();
});
deselectAll();
spinner.style.display = 'none';
}, 20);
}
function pauseCopters() {
}
function stopCopters() {
}
function emLand() {
}
function setStartTime() {
Ply.dialog("prompt", {
title: "Set animation delay",
form: {delay: "Delay"}
}).done(function (ui) {
setDelay(parseInt(ui.data.delay));
updateDelay();
});
}
function startAnimation() {
}